Skip to content

Changelog

All notable changes to this project will be documented in this file.

[1.0.0] - 2026-04-05

First production release.

Highlights

  • 5 MRI scan modes (T1/T2/fMRI/DTI/FLAIR) + dedicated EMO tab for emotion vector analysis
  • Multi-backend SAE support (SAELens + EleutherAI Sparsify)
  • Emotion steering with causal behavioral change — verified on GPT-2, ready for SLM-scale experiments
  • Complete user guides (EN/KO) with Playwright-captured screenshots
  • 12 models in registry, HuggingFace Spaces live demo

User Guide

  • Rewritten with EMO tab walkthrough (6 zones: A–F)
  • Playwright-automated screenshots for all scan modes + EMO tab
  • Developer guide with full API reference (34 endpoints, curl examples)
  • Both English and Korean versions

[0.3.0] - 2026-04-05

Dedicated Emotion Analysis Tab (EMO)

  • Full-width EMO tab alongside T1/T2/fMRI/DTI/FLAIR scan modes
  • Zone A — Transcript Heatmap: Token × emotion diverging color grid (D3, RdBu scale)
  • Zone B — PCA Scatter: 2D emotion space visualization (PC1=valence, PC2=arousal)
  • Zone C — Steering Controls: Emotion selector, strength slider, original vs steered text comparison with activation diff table
  • Zone D — Strength Sweep: Dose-response curve chart with per-point tooltip
  • Zone E — SAE Feature Diff: Top-10 SAE features changed by steering (auto-triggered on steer)
  • Zone F — Layer Evolution: Emotion activation across all layers per token

New Backend Endpoints

  • POST /api/emotion/project — token-level emotion vector projection (heatmap data)
  • GET /api/emotion/pca — 2D PCA of emotion space
  • POST /api/emotion/sweep — multi-strength dose-response curve
  • POST /api/emotion/layer-evolution — emotion activation across layers
  • POST /api/emotion/steer-sae — combined steering + SAE feature diff

Model Loading

  • Quantized loading path (int4/int8) with clear error on TransformerLens incompatibility
  • Dynamic model loading defaults to fp16
  • Gemma-2-2B restored (segfault was OOM in fp32, works in fp16)
  • Gemma-2-2B-IT added to registry

[0.2.0] - 2026-04-04

SAE Provider Abstraction

  • Multi-backend SAE support via adapter pattern: SAELens + EleutherAI Sparsify
  • New sae_providers.pySAEProvider ABC with SAELensProvider and EleutherAIProvider
  • SAE registry now includes provider field to route loading per model
  • Factory-based loading: load_sae_provider() handles both backends transparently

Emotion Vector Analysis (NEW)

  • Emotion probe extraction — comprehension-mode forward pass over 20 emotion categories (3 passages each) with mean subtraction
  • Emotion steering — inject emotion vectors into residual stream during generation, compare original vs steered output
  • Bundled dataset: emotion_comprehension_texts.csv (20 emotions + neutral baseline)
  • API endpoints: POST /api/emotion/extract-probes, POST /api/emotion/steer, GET /api/emotion/emotions
  • Inspired by Anthropic's "Emotion Concepts" research, adapted for open-weight SLMs

Models

  • Added Llama 3.1 8B with EleutherAI SAE support (layers 23, 29 MLP)
  • Added Llama 3 8B with EleutherAI SAE support (all 32 layers)
  • Marked Gemma-2-2B as tl_compat: false due to TransformerLens segfault
  • 11 models in registry (up from 5 in v0.1.0)

Clinical Cases

  • Case 1: Gemma baseline — 5-mode normal anatomy scan
  • Case 2: Cross-model comparison (Gemma vs Llama vs Qwen)
  • Case 3: Perturbation stress test on Gemma-2-2B
  • Case 4: Base vs instruct perturbation comparison (6 models, GPU results)

Infrastructure

  • HuggingFace Spaces live demo: Hiconcep/Neural-MRI
  • Position paper published
  • GitHub Pages docs site with CODE_OF_CONDUCT and SECURITY policy

[0.1.0] - 2026-03-01

First public release.

Scan Modes

  • T1 Topology — static architecture visualization (layers, parameters, structure)
  • T2 Tensor — weight distribution & magnitude analysis with histograms
  • fMRI Activations — per-layer per-token activation patterns (L2 norm, 0-1 normalized)
  • DTI Circuits — zero-ablation importance scoring + attention pattern flow
  • FLAIR Anomaly — bias, hallucination & anomaly detection with logit lens

Core Features

  • Token-by-token streaming via WebSocket (/ws/stream)
  • Perturbation engine — zero, amplify, ablate with KL divergence & logit shift metrics
  • Causal tracing — clean/corrupt prompt comparison with layer-by-layer recovery
  • SAE feature explorer via SAE-Lens integration
  • Cross-model comparison — two models side-by-side on the same prompt
  • Multi-prompt comparison mode

Models

  • 5 built-in models: GPT-2, GPT-2 Medium, Pythia-1.4B, Gemma-2-2B, Llama-3.2-3B
  • HuggingFace Hub dynamic model search with TransformerLens compatibility filter
  • Float16 auto-casting for 1B+ models, GPU→CPU fallback
  • HuggingFace token support for gated models

UI & Visualization

  • 4 layout modes: vertical, brain, network, radial
  • D3.js scan canvas with pulse/glow animations (fMRI) and flow animations (DTI)
  • Token stepper with chip navigation and keyboard ←→ support
  • Attention heads heatmap panel
  • Logit lens panel
  • Diagnostic report generation (Markdown)
  • Functional test battery
  • Prompt templates
  • Keyboard shortcuts

Export & Recording

  • WebM video export (VP9)
  • Animated GIF export
  • SVG/PNG snapshots (single & compare mode)
  • JSON data export
  • Markdown diagnostic reports
  • Recording playback with adjustable speed (0.5x–4x)

Collaboration

  • Real-time session sharing via WebSocket
  • Host/viewer roles with peer cursors
  • Scan state synchronization

Infrastructure

  • FastAPI backend with scan result caching (LRU by model/mode/prompt)
  • Docker Compose deployment (backend + nginx frontend)
  • HuggingFace Spaces deployment (Dockerfile.spaces)
  • GitHub Actions CI (backend lint/test, frontend type check/build)
  • i18n — English and Korean
  • Medical dark theme (DICOM viewer aesthetic)

Documentation

  • README with badges, screenshots, architecture diagram
  • CONTRIBUTING.md, INSTALL.md
  • GitHub issue templates (bug report, feature request)
  • Pull request template