m9h/spinning-up-in-mech-interp

Spinning Up in Mechanistic Interpretability — a controls-first, open-weights curriculum from vision circuits to the global workspace

0

stars

52

commits

Python

primary language

Sep 5, 2026

updated

README

Spinning Up in Mechanistic Interpretability

From vision circuits to the global workspace — a hands-on, controls-first curriculum for reading the inside of neural networks, and getting to where the 2025–2026 papers begin.

8 rungs Open weights Controls first License


In 2020, a group at OpenAI opened up an image classifier and found curve detectors — individual neurons that fire for curves, wired together into legible circuits. They argued that neural networks are not inscrutable: they are built from features connected by weights, and you can reverse-engineer them. In 2021 that program moved to transformers, and over the next five years produced a chain of ideas — the residual stream, superposition, induction heads, sparse autoencoders, attribution graphs — that leads, in 2025–2026, to claims that language models contain an introspectable subspace, a global workspace, and a society of thought.

Those recent papers are exciting and easy to misread. They are also mostly run on models no outsider can open. This curriculum walks the chain from the beginning, on open-weight models you can run yourself, and it teaches one discipline the source papers often skip: every technique is paired with the control that could kill it. By the last rung you can not only read the 2025–2026 papers — you can reproduce their methods on open weights and check whether the claims survive a null.

Modeled on OpenAI's Spinning Up in Deep RL and the spinning-up-in-* family. Companion to the Consciousness-Indicator Scorecard — the last rung is the first cells of that benchmark.

How this fits with other resources

There is good mech-interp material already. This one exists for three reasons none of the others combine.

ARENANeel Nanda's TransformerLens tutorialsDistill Circuits + Transformer CircuitsThis curriculum
Formatengineering bootcamp (weeks)explainer + notebooksprimary research articlesshort curriculum, 8 project rungs
Vision-circuits origin✅ (the origin)✅ rung 1, taught where it's cleanest
Transformer foundations✅ deep✅ deep✅ (the papers)✅ rungs 2–5, on the shoulders of both
A control with every techniquenamed once, in a bonus¹rarelythe through-line — each rung ends by running its null
Open-weights-only, laptop-firstmostlymixed (recent work is closed)hard requirement — no frontier access anywhere
On-ramp to the 2025–26 property papersthey are the papersthe destination (rung 8): J-space, introspection, societies-of-thought, metacognition
Adjudication mindset✅ reproduce-and-check; negatives are first-class

¹ ARENA §1.3.3 identifies the problem precisely — that autointerp on randomized SAE latents scores better than expected, because top-k over a large dataset finds patterns in anything — but leaves it as an optional bonus bullet with no starter code or solution. It is the best statement of the issue in any existing course, and it is an aside. See rung 5.

The gap we fill: existing courses teach the techniques; the source threads are the recent papers but run them on closed models with few controls. Nobody teaches the chain as a controls-first, open-weights on-ramp whose explicit endpoint is the ability to adjudicate the 2025–2026 claims yourself. That endpoint is the Scorecard program; this repo is how you learn to read its cells.

Who is this for?

  • Anyone who wants to understand the recent interpretability papers (global workspace, introspection, societies of thought) rather than take them on faith.
  • Students and researchers entering mechanistic interpretability who want to build, not just read.
  • People who have seen a striking interpretability result and want to learn the reflex of asking "what is the control?"

Prerequisites: Python, PyTorch or JAX basics, and comfort with linear algebra and softmax. No prior interpretability experience. No GPU required — every runnable rung was verified end-to-end on a laptop CPU in under 25 seconds each.

Start here

GETTING_STARTED.mdinstall, run, and the exact output each rung should produce
GLOSSARY.mdthe vocabulary of the papers — residual stream, QK/OV, superposition, SAE, patching
READING_A_PAPER.mdsix questions for reading an interpretability result critically
PITFALLS.mdevery trap that cost us a wrong result while building this
ECOSYSTEM.mdwhat is live, what died (Microscope, Distill, ARENA's old URLs), the benchmarks you can enter, and the communities that will take a contribution
reading-group/the Cognitive Hexagon reading group — read the source construct before the AI paper that borrows it
pip install -r requirements.txt && ./verify_all.sh

The curriculum

Eight rungs. Every rung has the same shape: read the paper → run the technique on an open model → run the control that could falsify it. Each rungN_*/ directory is a self-contained project with its own README (the reading, the build, the null).

Part 0 — Build the model first (prerequisite)

rungprojectwhat you learnprimary reading
0Build the modelconstruct a transformer (and an RL loop) by hand, so the rest is concreteKarpathy nanoGPT; Raschka Build an LLM / a Reasoning Model from Scratch; Mike X Cohen

Part I — Where the paradigm came from (vision)

rungprojectwhat you learnprimary reading
1Features & circuitsthat a network is features wired by weights; find one circuit end-to-endOlah et al., Zoom In (2020); Curve Circuits

Part II — Transformers, from the ground up

rungprojectwhat you learnprimary reading
2The residual streamQK/OV, the residual stream as a channelElhage et al., A Mathematical Framework for Transformer Circuits (2021)
3Superpositionwhy features hide; the toy autoencoder, on a laptopElhage et al., Toy Models of Superposition (2022)
4Induction headsthe circuit behind in-context learning; ablate itOlsson et al., In-Context Learning and Induction Heads (2022)
5Sparse autoencoderspulling monosemantic features out of superposition; steering oneBricken et al., Towards Monosemanticity (2023); Scaling Monosemanticity

Part III — Reading and tracing computation

rungprojectwhat you learnprimary reading
6Lensesreading the residual stream into vocabulary: logit → tuned → Jacobian lensGurnee et al., Verbalizable Representations… (2026) + the lens lineage
7Attribution graphsfollowing a computation across layersAmeisen et al., Circuit Tracing; Lindsey et al., On the Biology of an LLM (2025)

Part IV — The recent claims, adjudicated (capstone)

rungprojectwhat you learnprimary reading
8Property claimsreproduce a 2025–26 claim on open weights with its null: workspace, introspection, society-of-thought, metacognitionthe four recent papers + our results

How each rung is built

Every rungN_*/README.md follows the same structure:

  1. The idea — the concept in a paragraph, and why it is a rung on this ladder.
  2. Read — the primary paper (and the one prerequisite reading), with links.
  3. Build — the software project: a specific technique to implement on a named open model.
  4. The control — the null, baseline, or ablation that could falsify what you just built, and what passing/failing it means. This is the point of the rung.
  5. Toward the recent papers — the sentence of the 2025–26 papers this rung unlocks.

Rungs 1–5 and 7 ship a tested, self-contained starter.py you can run today — each finds a real result on an open model and then runs its own null, using only torch / transformers / torchvision (canonical tools like TransformerLens, SAELens, lucent and circuit-tracer are named as scale-ups, not required). Rung 3 needs only a laptop CPU; rungs 1, 2, 4, 5, 7 download a small open model (GPT-2 or InceptionV1) once. Rungs 6 and 8 draw directly on our working research code (jacobian-lens, jlens-lab, lenses on the Hub).

What each runnable starter finds, and the null that guards it:

rungfinds (on an open model)the null it runs
1an orientation/edge detector in InceptionV1 (channel #48, selectivity 1.000)two nulls: random-init (Adebayo) and the stronger weight-shuffle
2GPT-2's copying heads (OV z ≈ +5.8) and previous-token head L4H11 (1.00)random matrix OV ≈ 0; uniform-attention QK baseline
3superposition — >m features packed into m dimsrandom dictionary recovery floor
4GPT-2's induction heads (L5H5 …)ablate random heads → in-context loss barely moves
5an SAE feature you can interpret and steerrandom-direction steer nets ~0; negation reverses
7the IOI computation moving subject-token → final-token across layersmedian (layer,pos) patch restores ~0%

Resources

License

Apache-2.0. Course text CC BY 4.0. An Orthogonal Research and Education Lab (OREL) project.

Part of one program — a controls-first, open-weights attempt to make the 2025–26 interpretability claims checkable:

repowhat
spinning-up-in-mech-interpthe curriculum — 8 rungs, 6 runnable on a laptop, each ending in its own null
jacobian-lensthe research — OLMo post-training ladder, metacognition, the Consciousness-Indicator Scorecard
tri-lensdo three instruments agree about the same activation?
societies-of-thoughtthe adversarial replication — rebuild a no-code/no-data paper, then try to break it
controls-and-trajectoriesthe published datasets — nulls and developmental trajectories

Datasets: induction-emergence-pythia · inceptionv1-tuning-atlas · trilens-instrument-agreement · olmo3-jacobian-lenses

Contributors

mhough

52 commits

m9h/spinning-up-in-mech-interp

Spinning Up in Mechanistic Interpretability — a controls-first, open-weights curriculum from vision circuits to the global workspace

0

stars

52

commits

Python

primary language

Sep 5, 2026

updated

README

Spinning Up in Mechanistic Interpretability

From vision circuits to the global workspace — a hands-on, controls-first curriculum for reading the inside of neural networks, and getting to where the 2025–2026 papers begin.

8 rungs Open weights Controls first License


In 2020, a group at OpenAI opened up an image classifier and found curve detectors — individual neurons that fire for curves, wired together into legible circuits. They argued that neural networks are not inscrutable: they are built from features connected by weights, and you can reverse-engineer them. In 2021 that program moved to transformers, and over the next five years produced a chain of ideas — the residual stream, superposition, induction heads, sparse autoencoders, attribution graphs — that leads, in 2025–2026, to claims that language models contain an introspectable subspace, a global workspace, and a society of thought.

Those recent papers are exciting and easy to misread. They are also mostly run on models no outsider can open. This curriculum walks the chain from the beginning, on open-weight models you can run yourself, and it teaches one discipline the source papers often skip: every technique is paired with the control that could kill it. By the last rung you can not only read the 2025–2026 papers — you can reproduce their methods on open weights and check whether the claims survive a null.

Modeled on OpenAI's Spinning Up in Deep RL and the spinning-up-in-* family. Companion to the Consciousness-Indicator Scorecard — the last rung is the first cells of that benchmark.

How this fits with other resources

There is good mech-interp material already. This one exists for three reasons none of the others combine.

ARENANeel Nanda's TransformerLens tutorialsDistill Circuits + Transformer CircuitsThis curriculum
Formatengineering bootcamp (weeks)explainer + notebooksprimary research articlesshort curriculum, 8 project rungs
Vision-circuits origin✅ (the origin)✅ rung 1, taught where it's cleanest
Transformer foundations✅ deep✅ deep✅ (the papers)✅ rungs 2–5, on the shoulders of both
A control with every techniquenamed once, in a bonus¹rarelythe through-line — each rung ends by running its null
Open-weights-only, laptop-firstmostlymixed (recent work is closed)hard requirement — no frontier access anywhere
On-ramp to the 2025–26 property papersthey are the papersthe destination (rung 8): J-space, introspection, societies-of-thought, metacognition
Adjudication mindset✅ reproduce-and-check; negatives are first-class

¹ ARENA §1.3.3 identifies the problem precisely — that autointerp on randomized SAE latents scores better than expected, because top-k over a large dataset finds patterns in anything — but leaves it as an optional bonus bullet with no starter code or solution. It is the best statement of the issue in any existing course, and it is an aside. See rung 5.

The gap we fill: existing courses teach the techniques; the source threads are the recent papers but run them on closed models with few controls. Nobody teaches the chain as a controls-first, open-weights on-ramp whose explicit endpoint is the ability to adjudicate the 2025–2026 claims yourself. That endpoint is the Scorecard program; this repo is how you learn to read its cells.

Who is this for?

  • Anyone who wants to understand the recent interpretability papers (global workspace, introspection, societies of thought) rather than take them on faith.
  • Students and researchers entering mechanistic interpretability who want to build, not just read.
  • People who have seen a striking interpretability result and want to learn the reflex of asking "what is the control?"

Prerequisites: Python, PyTorch or JAX basics, and comfort with linear algebra and softmax. No prior interpretability experience. No GPU required — every runnable rung was verified end-to-end on a laptop CPU in under 25 seconds each.

Start here

GETTING_STARTED.mdinstall, run, and the exact output each rung should produce
GLOSSARY.mdthe vocabulary of the papers — residual stream, QK/OV, superposition, SAE, patching
READING_A_PAPER.mdsix questions for reading an interpretability result critically
PITFALLS.mdevery trap that cost us a wrong result while building this
ECOSYSTEM.mdwhat is live, what died (Microscope, Distill, ARENA's old URLs), the benchmarks you can enter, and the communities that will take a contribution
reading-group/the Cognitive Hexagon reading group — read the source construct before the AI paper that borrows it
pip install -r requirements.txt && ./verify_all.sh

The curriculum

Eight rungs. Every rung has the same shape: read the paper → run the technique on an open model → run the control that could falsify it. Each rungN_*/ directory is a self-contained project with its own README (the reading, the build, the null).

Part 0 — Build the model first (prerequisite)

rungprojectwhat you learnprimary reading
0Build the modelconstruct a transformer (and an RL loop) by hand, so the rest is concreteKarpathy nanoGPT; Raschka Build an LLM / a Reasoning Model from Scratch; Mike X Cohen

Part I — Where the paradigm came from (vision)

rungprojectwhat you learnprimary reading
1Features & circuitsthat a network is features wired by weights; find one circuit end-to-endOlah et al., Zoom In (2020); Curve Circuits

Part II — Transformers, from the ground up

rungprojectwhat you learnprimary reading
2The residual streamQK/OV, the residual stream as a channelElhage et al., A Mathematical Framework for Transformer Circuits (2021)
3Superpositionwhy features hide; the toy autoencoder, on a laptopElhage et al., Toy Models of Superposition (2022)
4Induction headsthe circuit behind in-context learning; ablate itOlsson et al., In-Context Learning and Induction Heads (2022)
5Sparse autoencoderspulling monosemantic features out of superposition; steering oneBricken et al., Towards Monosemanticity (2023); Scaling Monosemanticity

Part III — Reading and tracing computation

rungprojectwhat you learnprimary reading
6Lensesreading the residual stream into vocabulary: logit → tuned → Jacobian lensGurnee et al., Verbalizable Representations… (2026) + the lens lineage
7Attribution graphsfollowing a computation across layersAmeisen et al., Circuit Tracing; Lindsey et al., On the Biology of an LLM (2025)

Part IV — The recent claims, adjudicated (capstone)

rungprojectwhat you learnprimary reading
8Property claimsreproduce a 2025–26 claim on open weights with its null: workspace, introspection, society-of-thought, metacognitionthe four recent papers + our results

How each rung is built

Every rungN_*/README.md follows the same structure:

  1. The idea — the concept in a paragraph, and why it is a rung on this ladder.
  2. Read — the primary paper (and the one prerequisite reading), with links.
  3. Build — the software project: a specific technique to implement on a named open model.
  4. The control — the null, baseline, or ablation that could falsify what you just built, and what passing/failing it means. This is the point of the rung.
  5. Toward the recent papers — the sentence of the 2025–26 papers this rung unlocks.

Rungs 1–5 and 7 ship a tested, self-contained starter.py you can run today — each finds a real result on an open model and then runs its own null, using only torch / transformers / torchvision (canonical tools like TransformerLens, SAELens, lucent and circuit-tracer are named as scale-ups, not required). Rung 3 needs only a laptop CPU; rungs 1, 2, 4, 5, 7 download a small open model (GPT-2 or InceptionV1) once. Rungs 6 and 8 draw directly on our working research code (jacobian-lens, jlens-lab, lenses on the Hub).

What each runnable starter finds, and the null that guards it:

rungfinds (on an open model)the null it runs
1an orientation/edge detector in InceptionV1 (channel #48, selectivity 1.000)two nulls: random-init (Adebayo) and the stronger weight-shuffle
2GPT-2's copying heads (OV z ≈ +5.8) and previous-token head L4H11 (1.00)random matrix OV ≈ 0; uniform-attention QK baseline
3superposition — >m features packed into m dimsrandom dictionary recovery floor
4GPT-2's induction heads (L5H5 …)ablate random heads → in-context loss barely moves
5an SAE feature you can interpret and steerrandom-direction steer nets ~0; negation reverses
7the IOI computation moving subject-token → final-token across layersmedian (layer,pos) patch restores ~0%

Resources

License

Apache-2.0. Course text CC BY 4.0. An Orthogonal Research and Education Lab (OREL) project.

Part of one program — a controls-first, open-weights attempt to make the 2025–26 interpretability claims checkable:

repowhat
spinning-up-in-mech-interpthe curriculum — 8 rungs, 6 runnable on a laptop, each ending in its own null
jacobian-lensthe research — OLMo post-training ladder, metacognition, the Consciousness-Indicator Scorecard
tri-lensdo three instruments agree about the same activation?
societies-of-thoughtthe adversarial replication — rebuild a no-code/no-data paper, then try to break it
controls-and-trajectoriesthe published datasets — nulls and developmental trajectories

Datasets: induction-emergence-pythia · inceptionv1-tuning-atlas · trilens-instrument-agreement · olmo3-jacobian-lenses

Contributors

mhough

52 commits

Languages

Python

97.6%

Shell

2.4%