Interpretable
Module 3.3 · ~4h

Superposition: Toy Models

Why models cram more features than dimensions into their activations — the field's central obstacle.

You'll be able to
  • State the linear representation hypothesis precisely
  • Predict when superposition appears from sparsity and importance
  • Replicate the toy-model phase diagram and read its feature geometry
Learn

Features are directions

Everything you have done so far — logit lens, probes, steering, reading off attention heads — quietly assumed one thing: that the model's concepts live in directions. It is worth making the assumption explicit, because it is the load-bearing hypothesis of the entire field, and because the rest of this module is about the complication that follows from it.

linear representation hypothesis
A network represents a feature as a direction in activation space, and represents multiple simultaneous features by adding their directions. An activation is approximately a sparse linear combination of feature vectors, aixifia \approx \sum_i x_i\, f_i, where xi0x_i \geq 0 is how strongly feature ii is present and fif_i is its direction.

The evidence is circumstantial but broad. Word embeddings support vector arithmetic. Linear probes work. Adding a vector to the residual stream shifts behaviour in a semantically coherent way (Module 5.1). Sparse autoencoders — which assume exactly this structure — find dictionaries that reconstruct activations well and whose elements are frequently interpretable (Module 3.4). None of this proves the hypothesis; all of it would be surprising if it were badly wrong.

One immediate consequence, and it is the fork in the road: directions need not be axis-aligned. There is no law that says feature 7 lives along neuron 7.

privileged basis
A basis the architecture treats specially. MLP hidden layers have one — the elementwise nonlinearity acts on individual coordinates, so neurons are meaningfully distinguishable from arbitrary rotations of them. The residual stream has no privileged basis: nothing in a transformer acts on residual-stream coordinates individually (LayerNorm is close to rotation-equivariant), so you should expect residual-stream features to sit at arbitrary angles.
f₀f₁one dimension per featuref₂, f₃, f₄: not representedf0f1f2f3f4five features, two dimensionsall represented, all interfering
Two ways five features could live in a two-dimensional space. Left: each feature gets its own axis — but only two fit, and three features are simply not represented. Right: five directions, none orthogonal, all represented, all interfering with each other. The second picture is what training actually produces when features are sparse.
superposition
A layer representing more features than it has dimensions, by placing them in directions that are not mutually orthogonal and tolerating the resulting interference.
polysemanticity
The symptom you observe: a single neuron responds to several unrelated things. Superposition is the leading explanation, though not the only possible one — a neuron could also be polysemantic because the feature you have in mind is simply not the model's feature.
Key idea
Superposition is not a bug and not an artifact of small models. It is what a capacity-limited network should do when the world it models contains far more distinguishable things than the network has dimensions, and when those things rarely occur at once. The rest of this module is about exactly when the trade is worth it.
How settled is this?
The one-feature-one-direction picture is a strong working hypothesis, not a theorem, and it has known exceptions. Engels et al. found genuinely multi-dimensional features — days of the week and months arranged as circles, where no single direction captures the structure. Park et al. argue the right notion of “direction” depends on a causal inner product rather than the naive one. Treat “features are directions” the way physicists treat the ideal gas law: extremely useful, occasionally wrong, and you should know which.
Learn

The toy model, and the deal it makes

Elhage et al. built the smallest system that can exhibit the phenomenon, so that everything about it could be understood. Here it is in full.

Take nn features. Each one is sparse — zero with probability SS, and otherwise uniform on [0,1][0,1] — and each has an importance IiI_i saying how much the loss cares about reconstructing it. Squeeze them through m<nm < n dimensions and ask for them back:

h=Wx,x^=ReLU(Wh+b)=ReLU(WWx+b)h = W x, \qquad \hat{x} = \mathrm{ReLU}\big(W^\top h + b\big) = \mathrm{ReLU}\big(W^\top W x + b\big)
L=Ex[i=1nIi(xix^i)2]\mathcal{L} = \mathbb{E}_x\left[\sum_{i=1}^{n} I_i \,(x_i - \hat{x}_i)^2\right]

Term by term: WRm×nW \in \mathbb{R}^{m \times n} has one column per feature, and that column is the direction the feature is stored in. Encoding and decoding share the same matrix, so the model cannot cheat by using a clever decoder. The bias bb and the ReLU are the only nonlinearity, and they turn out to matter enormously.

Notice what this model deliberately is not. There is no attention, no depth, no language. It is a pure question about representation: given a bottleneck, what does gradient descent choose to store, and how?

xn features, sparsehm dimsreconstructionWReLU(Wᵀ· + b)loss = Σ Iᵢ(xᵢ−x̂ᵢ)²
Reading WᵀW is the whole game. Diagonal entries say how strongly each feature is stored; off-diagonal entries are interference — the signal that leaks from feature j into the reconstruction of feature i. Orthogonal storage means a diagonal matrix; superposition means an off-diagonal you decided to live with.

The model faces a trade with two sides. Representing more features reduces the loss on the features you would otherwise ignore entirely. Non-orthogonal directions cause interference: when feature jj fires, every feature whose direction is not perpendicular to it picks up a spurious signal (fifj)xj(f_i \cdot f_j) x_j, and that costs loss too.

Key idea
Sparsity sets the exchange rate. Interference only costs you when two non-orthogonal features fire at the same time. If each feature is active 1% of the time, a given pair collides 0.01% of the time. The benefit of representing a feature scales with how often it appears; the cost of interference scales with how often pairs appear. Sparsity crushes the second faster than the first, so past some point the model should always take the deal.

The ReLU and the bias are the model's defence. Train it at high sparsity and you will see bib_i go negative and Wi>1\|W_i\| > 1. That combination is a threshold filter: small interference lands below zero and gets clipped away entirely, while a genuine activation is large enough to survive the negative bias — and the enlarged norm compensates for it. You can watch both numbers appear in the widget below.

Why importance is not a nuisance parameter
Real features are wildly unequal: some change the loss a lot, most barely at all. The importance weights IiI_i are how the toy model represents that, and they turn out to be one of the two axes of the phase diagram. A model with a bottleneck does not merely decide how to store features — it decides which ones to store at all, and that decision is made on the basis of importance.
Learn

Phase changes and feature geometry

Here is the result that made this paper the field's gateway drug. Sweep sparsity and relative importance, train a model at every point, and the outcome is not a smooth degradation. It is a phase diagram with sharp regions.

131030100sparsity, as 1/(1 − S) →0.20.5125importance of f₂ ÷ f₁ ↑superpositionf₁ onlyf₂ only
only f₁ gets a dimensionboth stored, antipodally — superpositiononly f₂ gets a dimension
The smallest interesting case: two features, one hidden dimension. Each cell is a separately trained model — 576 of them, 6000 Adam steps each, best of three random restarts, with a 3×3 mode filter to remove single-cell training noise. This is a real sweep, not a redrawing of the paper's figure, and it reproduces the paper's structure: at low sparsity the model picks the more important feature and discards the other; past a sparsity threshold it stores both in opposite directions and eats the interference.

Read it as a decision. On the left — dense features — the model behaves like PCA: it keeps whichever feature is more important and throws the other away. On the right — sparse features — it stores both in the same one-dimensional space, antipodally, at 180°. The two regions meet at a boundary that moves with relative importance: the less the second feature matters, the more sparsity you need before it is worth representing at all.

The transition is sharp. Cross the boundary and the solution reorganizes rather than deforming. That is a phase change in the physics sense, and it is the first hint that these systems have discrete structure worth naming.

Key idea
Superposition is not “a bit of noise in the representation”. It is a distinct regime the model enters when sparsity is high enough, with its own geometry, and models move between regimes abruptly.

Go up to five features in two dimensions and the geometry gets genuinely beautiful. As you raise sparsity you pass through a sequence of arrangements:

  • Two orthogonal features, the rest discarded — the dense regime. Dimensionality per feature: 1.
  • Antipodal pairs (the paper calls a pair sharing an axis a digon): four features on two axes, 0.5 dimensions each.
  • Pentagon: all five features at 72°, 2/5 = 0.4 dimensions each — the maximum-spread arrangement of five directions in a plane.

The paper measures this with a per-feature dimensionality

Di=Wi2j(Wi^Wj)2D_i = \frac{\|W_i\|^2}{\sum_{j} \big(\hat{W_i} \cdot W_j\big)^2}

which reads 1 for a feature with its own orthogonal dimension, 1/2 for half of an antipodal pair, 2/5 for a member of a pentagon, and 0 for a feature that was not stored. Plot it across a sparsity sweep in a bigger model and the values do not spread out smoothly — they stick at particular fractions, with visible gaps between them. Those fractions correspond to uniform polytopes: digons, triangles, tetrahedra, square antiprisms. The model is solving something close to a Thomson problem — spread nn points on a sphere so they repel — and Thomson problems have discrete answers.

Do not over-read the polytopes
The clean geometry appears when features are equally important and uncorrelated. Introduce correlation and the picture changes qualitatively: correlated features prefer to sit near each other (sometimes collapsing into one direction), anticorrelated features prefer antipodal pairs, and the tidy polytopes give way to “tegum products” of smaller structures in orthogonal subspaces. Real features are correlated. Treat the polytopes as evidence that discrete structure exists, not as a prediction about GPT-2.
Learn

Computation in superposition, and why this is the wall

So far superposition is a storage story. The harder claim — and the one that decides whether interpretability is difficult or near-impossible — is that models also compute in superposition.

Elhage et al. demonstrate it on the smallest possible task: a network with fewer neurons than features learns to compute the absolute value of every input feature, with neurons that each participate in several of these computations at once. Nothing about the mechanism required one neuron per operation.

Key idea
If computation happens in superposition, then a neuron is not a unit of meaning and a circuit diagram over neurons is a diagram over the wrong objects. You would be trying to read a program whose variables have been packed into overlapping registers by a compiler that was optimizing for space and did not leave a symbol table.

This is why so much of what you would naively try does not work:

  • Neuron-level interpretability degrades. Look at a neuron's top activating examples and you get a story; look at the rest of its activation range and you get three more stories. The neuron was never one thing.
  • Enumeration is impossible. If a layer with dd dimensions can hold far more than dd features — and it can, because you can pack exponentially many nearly-orthogonal directions into dd dimensions — then “list the features” has no obvious stopping point.
  • Ablation results get harder to read. Zeroing a neuron removes a slice of several features at once, so a clean behavioural change does not localize to a clean concept.
Why this is the safety crux, not just a research inconvenience
The auditing question is: does this model contain a mechanism for something we would not sanction? Answering it requires being able to decompose the model into parts and check them. Superposition says the parts are not where you can see them — they are packed into a basis nobody chose, in numbers that may exceed the dimension count by orders of magnitude.

The specific worry is not that a dangerous feature is hidden on purpose. It is that a rare, high-importance feature is exactly the kind the toy model tells you will be stored in superposition: important enough to be worth representing, sparse enough that the interference is cheap. A behaviour that fires on one input in a million is nearly invisible to evals and, before dictionary learning, was nearly invisible to interpretability too. Module 3.4 is the field's answer, and Module 5.5 is where you find out how well it works in an actual audit.

One honest caveat about the whole framework: the toy model is a deliberately impoverished system, and the argument from it to real transformers is an argument from plausibility plus a growing pile of corroborating evidence — polysemantic neurons everywhere, sparse autoencoders finding far more features than dimensions, models with an architecture that discourages superposition (Softmax Linear Units) becoming more interpretable at a cost. It is a good theory. It is not a measurement of GPT-4.

Explore

Watch the phase transition happen

This is the real model, not a simulation of one. Five features, two hidden dimensions, hand-written gradients, Adam, 512 samples per step, about 500 steps per second in your browser. The five arrows are the columns of WW — the direction each feature is stored in. The heatmap is WWW^\top W, so the off-diagonal cells are the interference the model has agreed to live with. The panel at the bottom fires one feature on its own and shows you what comes back out.

Train the toy model, live
Five features, two hidden dimensions, trained in your browser with hand-written gradients. The arrows are the five columns of W — the direction each feature is stored in. Raise the sparsity slider slowly and watch the geometry reorganize.
f0f1f2f3f4hidden space (m = 2)
WᵀW — interference between features
f0f1f2f3f4f0f1f2f3f4
Diagonal = how strongly a feature is stored. Off-diagonal = positive or negative interference: what leaks into feature i when feature j fires.
per feature
feat‖Wᵢ‖Iᵢbᵢdim/feat
f00.301.000.000.37
f10.260.850.000.28
f20.330.720.000.48
f30.120.610.000.07
f40.140.520.000.41
dim/feat is the paper's dimensionality measure D_i = ‖W_i‖² / Σ_j (Ŵ_i · W_j)². It reads 1.00 for a feature with a dedicated orthogonal dimension, 0.50 for one half of an antipodal pair, and 0.40 = 2/5 for a member of a pentagon.
Fire one feature alone and read the reconstruction back:
f0x̂ = 0.089f1x̂ = 0.078f2x̂ = 0.000 (ReLU clipped -0.07)f3x̂ = 0.000 (ReLU clipped -0.04)f4x̂ = 0.000 (ReLU clipped -0.01)
Input is x = e_f0: one feature at magnitude 1, everything else off. A perfect model would return exactly that. What you see instead is interference — every other feature whose direction is not orthogonal to this one picks up a signal, and the negative bias plus the ReLU is the model's filter for throwing the small ones away.
step 0 · loss 0.0000 · features with a non-trivial direction: 3 / 5 · total dimensionality used 1.62 (it settles at m = 2, however many features are stored — that is the whole tension).

Things to try: (1) Start dense (S = 0) and let it settle: two arrows at 90°, dimensionality 1.00 each, three features with norm ~0 — the model has thrown them away. Now drag sparsity to about 0.7 and watch four arrows snap into two antipodal pairs at dimensionality 0.50. Keep going to 0.95 and the fifth arrow appears as the pentagon forms at 0.40 = 2/5. (2) With the pentagon formed, look at the bias column: every bib_i is negative and every Wi\|W_i\| is above 1. Fire a single feature in the bottom panel and you will see why — the neighbours receive real interference and the ReLU clips it to zero. (3) Set the importance decay to 0.5 at moderate sparsity: the model now allocates deliberately, giving f0f_0 a clean dedicated direction and forcing the cheap features to share. Superposition is not uniform; it is an allocation decision.

Practice

Problem set

The antipodal derivation and the phase-diagram replication are the two that matter — they are the difference between having read this paper and having understood it. Budget an afternoon for the replication; it is also capstone project #2, so what you build here you keep.

1.When do two antipodal features beat one dedicated dimension?pencil & paper

Work the smallest case by hand: n=2n = 2 features, m=1m = 1 hidden dimension. To keep the algebra clean, use binary features: each xi{0,1}x_i \in \{0, 1\}, independently equal to 1 with probability p=1Sp = 1 - S. Importances are I1=1I_1 = 1 and I2=r1I_2 = r \le 1.

Compare two candidate solutions:

  • A (dedicated): W=(1,0)W = (1, 0), b=0b = 0.
  • B (antipodal): W=(1,1)W = (1, -1), b=0b = 0.

Compute the expected loss of each and find the condition on pp and rr under which B wins. Then say what the condition predicts as r0r \to 0, and check the prediction against the phase diagram above.

2.How many features actually fit?pencil & paper

Exactly dd vectors can be mutually orthogonal in Rd\mathbb{R}^d. How many can be nearly orthogonal?

For two independent uniformly random unit vectors in Rd\mathbb{R}^d with large dd, their cosine similarity is approximately N(0,1/d)\mathcal{N}(0, 1/d). Using that, estimate the largest NN such that NN random unit vectors in d=768d = 768 dimensions have all pairwise similarities below (a) ε=0.2\varepsilon = 0.2 and (b) ε=0.3\varepsilon = 0.3.

Then say what this implies for the question “how many features can GPT-2 small's residual stream hold?”

3.Why the bias goes negativepencil & paper

In the widget, at high sparsity, every bib_i settles negative and every Wi\|W_i\| settles above 1. Explain both, quantitatively.

Concretely: suppose feature jj fires alone at magnitude 1, and WiWj=cW_i \cdot W_j = c with 0<c<10 < c < 1. Write the pre-ReLU value at output ii. What must bib_i satisfy for the interference to be suppressed completely? And what does that choice cost when feature ii itself fires at magnitude xix_i?

4.Replicate the phase diagramcode

Reproduce the figure in the geometry section from scratch in PyTorch or NumPy. This is capstone project #2 and the single most valuable exercise in Part 3.

Implement the toy model — h=Wxh = Wx, x^=ReLU(WWx+b)\hat{x} = \mathrm{ReLU}(W^\top W x + b), L=iIi(xix^i)2\mathcal{L} = \sum_i I_i (x_i - \hat{x}_i)^2 — with n=2n = 2, m=1m = 1. Sweep a grid: 1/(1S)1/(1-S) log-spaced from 1 to 100, and I2/I1I_2 / I_1 log-spaced from 0.2 to 5. Train each cell with Adam and classify it by which columns of WW ended up with non-trivial norm.

Success check: you get three clear regions — feature 1 only, feature 2 only, and both stored antipodally — with the superposition region occupying the sparse (right-hand) side and widening toward equal importance. Verify that in the superposition region the two weights have opposite signs.

Then extend: n=5n = 5, m=2m = 2, sweep sparsity, and plot the five feature vectors at each setting. You should recover the orthogonal-pair → antipodal-pairs → pentagon sequence.

5.Correlated and anticorrelated featurescode

Real features are not independent. Extend your n=4,m=2n=4, m=2 model with a data generator that produces two correlated pairs: features 0 and 1 tend to fire together, features 2 and 3 tend to fire together, and the pairs are independent of each other.

Then build the opposite: two anticorrelated pairs, where within each pair at most one feature fires at a time.

Success check: you can state, with a plot, how the angle between the two members of a pair differs between the correlated and anticorrelated conditions, and explain the difference from the interference cost.

6.Find a polysemantic neuronexplore

Open Neuronpedia and browse neurons (not SAE features) in a GPT-2 small MLP layer. Find one whose top activating examples clearly separate into two or more unrelated groups, and write down the groups.

Then find the SAE features for the same layer that appear to cover those groups separately. Write two or three sentences on whether the SAE decomposition looks like it recovered what the neuron was mixing.

0 of 6 problems marked done
Check

Check yourself

1.
What does superposition mean, precisely?
2.
Two features are stored antipodally in one dimension. Collisions cost double. Why is high sparsity what makes this worthwhile?
3.
In the trained widget at high sparsity, every bib_i is negative and every Wi\|W_i\| exceeds 1. What is that combination doing?
4.
With five features in two dimensions at high sparsity and equal importance, the learned solution is a pentagon. What is the per-feature dimensionality?
5.
Why can't you bound the number of features in a 768-dimensional residual stream at 768?
6.
Your toy model at low sparsity with decaying importances stores two features orthogonally and gives three features norm ≈ 0. What happened to those three?
7.
Why does superposition make interpretability specifically harder, rather than just tedious?
8.
Which claim about the toy models results is over-stated?
Answer all 8 questions to submit.
Submit your answers to complete this check.
Go deeper

Go deeper

This is your gateway paper. Read it properly — three sittings, with the widget open — and the rest of Part 3 becomes much easier. Everything else on this list is either a tool for doing that, or a check on believing it too hard.

EssentialToy Models of Superpositionpaper
Nelson Elhage, Tristan Hume, Catherine Olsson, Nicholas Schiefer, Tom Henighan, Shauna Kravec, Zac Hatfield-Dodds, et al. (Anthropic) · 2022 · 3 sittings
Sitting 1 — 'Definitions and Motivation' plus 'Demonstrating Superposition': the setup, the linear-representation framing, and the first phase-change figures. Stop and train the widget until the pentagon appears before going on. Sitting 2 — 'Superposition as a Phase Change' and 'The Geometry of Superposition': the phase diagram, dimensionality per feature, the sticky fractions, and correlated features. This is the heart of the paper. Sitting 3 — 'Computation in Superposition', 'Strategic Picture', and the 'Related Work' discussion, which is where the authors say what they do and do not believe. Feel free to skip the learning-dynamics section on a first pass; come back to it after Module 3.4.
EssentialToy Models of Superposition — companion notebooktool
Anthropic · 2022 · 1.5h (do-along)
The authors' own code. Use it to check your replication after you have written your own — not before. The batched-sweep pattern in it is the trick that makes the phase-diagram problem take minutes instead of hours, and it is worth reading even if you implement everything else yourself.
Finding Neurons in a Haystack: Case Studies with Sparse Probingpaper
Wes Gurnee, Neel Nanda, Matthew Pauly, Katherine Harvey, Dmitrii Troitskii, Dimitris Bertsimas · 2023 · 45 min (skim)
The empirical counterpart: evidence for superposition in real models rather than toys, using sparse probes to ask how many neurons a feature needs. Read the introduction, the method figure, and the case studies on language-identification and compound-word neurons. Look for the finding that some features really do get dedicated neurons — superposition is not universal, and knowing which features escape it is useful.
Superposition, Memorization, and Double Descentpaper
Tom Henighan, Shan Carter, Tristan Hume, Nelson Elhage, Robert Lasenby, Stanislav Fort, Nicholas Schiefer, Christopher Olah (Anthropic) · 2023 · 1h
Optional, and a genuinely surprising follow-up: the same toy model, trained on a finite dataset rather than a distribution, exhibits double descent — and the transition is visible as a change in what the model stores (data points vs generating features). Read it if you want to see how much mileage one toy has, or skip it and come back after Module 1.4.
Softmax Linear Unitspaper
Nelson Elhage, Tristan Hume, Catherine Olsson, Neel Nanda, Tom Henighan, Scott Johnston, et al. (Anthropic) · 2022 · 1h
The architectural attempt to discourage superposition: change the activation function so that fewer features fit, and see whether neurons become interpretable. They partly do — and the paper is unusually clear that the improvement may be partly cosmetic, with features pushed into LayerNorm rather than removed. Read §1–3 and the honest 'is this real?' discussion. The best available evidence that superposition is a real optimization pressure and not a story.
Not All Language Model Features Are One-Dimensionally Linearpaper
Joshua Engels, Isaac Liao, Eric J. Michaud, Wes Gurnee, Max Tegmark · 2024 · 45 min
The corrective. Some features are irreducibly multi-dimensional — days of the week and months form circles in activation space, and no single direction captures them. Read the introduction and the circular-features figures. It does not overturn the linear representation hypothesis; it tells you where the edges are, which is exactly what you want before building a research programme on top of it.
The Linear Representation Hypothesis and the Geometry of Large Language Modelspaper
Kiho Park, Yo Joong Choe, Victor Veitch · 2024 · 1h
For when 'features are directions' starts to feel imprecise. The paper distinguishes directions used for representation from directions used for intervention, and shows the two are unified under a particular (causal) inner product. Mathematically heavier than the rest of this list — read the introduction and §2, and treat the rest as reference.