You know how the machine is built and how it is trained. This dive is about reading what training actually wrote — the young discipline of opening a model and finding the algorithms inside. Its sibling, model evals, measured the box from outside; this is the other half of knowing a model. The honest headline up front: the field reads fragments, not the program — and the fragments are already astonishing. Stop wherever you like — each depth is complete on its own.
Start with the fact that makes this field exist. A transformer's architecture was designed by people — the attention, the layers, all of dive three. But the architecture is an empty grid of billions of dials, and everything the model actually knows how to do lives in the numbers gradient descent put there. No engineer chose those numbers. No one can point to the addition in "the part that does addition", because no one built a part that does addition. The capabilities grew, under optimisation pressure, the way a riverbed grows under water — and what is left afterwards is a program nobody wrote, in a language nobody speaks.
So interpretability is reverse engineering: treat the weights as a compiled binary and decompile. The strand this guide follows — mechanistic interpretability — wants the actual mechanism: which components compute what, composed how. (An older strand asks the narrower question "which parts of the input mattered?" — saliency maps, attribution scores. Useful, but it explains single answers, not the machine.)
Here is the strange part: the difficulty is not secrecy. Compare the neuroscientist's position. A brain is measured through a skull, a few electrodes at a time, on a subject that never does the same thing twice. A model is the opposite of that in every way — you can read every activation at every layer for every input, freeze the whole system mid-computation, replay an identical input a million times, and edit any connection to see what breaks. Perfect observability, perfect repeatability, god-mode intervention. And with all of that, the field is still hard. Which tells you where the hardness actually lives:
The explanation comes out of the same next-token machinery it claims to describe. A model's account of its own reasoning is more output — fluent, plausible, and produced with no privileged access to the computation that made the answer. Level 4 has the receipts: models demonstrably give confident explanations that omit the actual cause of their answer. Interviewing the system is not inspecting it.
Read the activations, not the transcript. Form a hypothesis about what a component does, then intervene — delete it, transplant it, dial it up — and let behaviour under intervention be the testimony. The tools for each step of that loop are the rest of this guide: lenses and probes to look, features to know what you're looking at, patching to prove it.
And keep the duo in frame. The sibling dive measures what the model does — indispensable, and structurally blind to why. This dive is the why. Behavioural science and anatomy, for the same organism; you want both, for the same reasons medicine does.
The weights were never hidden — every number is right there on disk. The problem is not access; it is meaning. Interpretability is the project of turning perfect visibility into actual understanding.
One paragraph of anatomy, inherited from dive three. Each token flows through the model as a single vector — the residual stream — and every attention head and feed-forward block reads from it and adds its contribution back in. Nothing overwrites; the stream accumulates. That design is the interpreter's luckiest break, because it means there is one shared bus where every component's output lands, in a common coordinate system, inspectable at every depth. The observables, then: the stream itself, the attention patterns (which earlier positions each head reads — you have already played with a real one, dive three's attention lens), and the final logits.
Now the instrument that best conveys what "reading the stream" feels like. The final layer of every model decodes the stream into next-token scores. The logit lens (nostalgebraist, 2020) is one impertinent question: what if we decoded earlier? Take the half-finished stream after layer 3, or 7, or 11, and push it through the same final decoder:
// the logit lens (nostalgebraist, 2020). the decoder was there the whole time. for layer in model.layers: h = residual_stream_after(layer) // the running vector, mid-flight logits = h @ W_unembed // decode it as if we were already done print(layer, top_k(softmax(logits), 5)) // early layers: surface statistics. middle: the neighbourhood of the answer. // late: the answer. the prediction is not born at the end — it FORMS.
Run that on a real model and something lovely appears: the prediction forms gradually. Early layers propose surface statistics; middle layers assemble the neighbourhood of the answer; late layers sharpen a decision the stream already mostly contains. Explore the shape of it:
The third prompt deserves a second look. The words are invented, so no fact from pretraining can be supplying "quell" — and the probability doesn't drift up, it jumps, early and hard. That is what it looks like when a small, specific mechanism switches on. The abyss names that mechanism (it was the field's first real circuit), and it was found by exactly this kind of poking. One honest caveat while we are being impressed: raw logit-lens readings are cleanest on some model families and noisier on others — refinements exist that fit a small learned decoder per layer — and "what the stream decodes to" is not the same as "what the layer is doing". Which is the cue for the second instrument.
Probing. Pick a property — part of speech, sentiment, "is this move legal", "is this statement true" — and train a small classifier on frozen activations to predict it. If a linear probe reads the property out of layer 6 with high accuracy, the model plausibly represents that property, linearly, by layer 6. Probes turned up something remarkable: models trained only to predict text carry crisp linear directions for a startling range of abstractions — position on a board, truth of a claim, identity of the speaker. But hold the instrument at arm's length as you read those results: a probe detects what is readable, not what is used. The training corpus correlates everything with everything; a sufficiently determined probe finds signals the model itself may never consult (the field runs control tasks — probes trained on nonsense labels — precisely to measure their own instrument's credulity). Correlation nominates. It never elects.
Attention maps are the most screenshotted objects in the field, and the most over-read. A head attending from "to" back to "Mary" shows where information could flow — not what was computed with it, or whether the output mattered downstream. Every instrument in this level shares the caveat: lenses and probes generate hypotheses. Promoting a hypothesis to a claim takes an intervention, and that is Level 4's whole subject.
The load-bearing idea of modern interpretability is the linear representation hypothesis: the model's internal vocabulary is made of directions in activation space. You have met this before — dive two's geometry, where meanings had directions and arithmetic on them half-worked. A feature is a direction that consistently activates on some coherent property: this text is Python, this clause is negated, this person is being deceptive. Features, not neurons, are the proposed atoms of the computation.
Why not neurons? Because when you look, individual neurons are mostly polysemantic — one unit fires for academic citations and Korean text and the number 7. For years that read as noise. The reframe (Elhage and colleagues, 2022) is that it is compression: the model wants to track far more features than it has dimensions, and if features are sparse — each one rare, rarely co-occurring — it can pack them in at non-orthogonal angles, paying a little interference on the rare collisions in exchange for capacity. That packing is superposition, and it has a consequence you can watch: whether a model shares dimensions is a trained response to how often its concepts collide. So watch. This is not an animation — it is a real model, training on real gradients, in your browser, right now:
Do the experiment properly: leave it on dense and watch a triage — two dimensions, so the two most important features get them, orthogonally, and the rest are zeroed out of existence. Then switch to rarely co-occur and watch the same model, same dimensions, make the opposite choice: every arrow returns, crowding in at angles, and the reconstruction bench shows each feature reading back almost clean with a smear of contamination on its neighbours. Nothing in the widget's code places that geometry; the gradients do. Now scale the intuition up: a frontier model has thousands of dimensions per layer and millions of rare things worth knowing about text. Superposition is not a corner case. It is the operating regime — and it is why you cannot read a big model neuron by neuron: the features are real, and they are not axis-aligned.
So unpack them. A sparse autoencoder (SAE) is the move run in reverse (Bricken and colleagues, 2023): train a second, much wider network to re-express each activation vector as a sparse combination of directions from a large learned dictionary — tens of thousands of candidate directions, only a handful active at once. If superposition is how the model crams many features into few dimensions, the SAE rents the features a bigger space and asks each to stand in its own corner. And at production scale it works startlingly well (Templeton and colleagues, 2024): dictionaries trained on a production-scale model yielded millions of features with crisp, human-legible meanings — code-bug features, sycophancy features, and one famous cell that fired on mentions of the Golden Gate Bridge. Clamp that feature on — hold its activation high while the model runs — and the model steers every conversation back to the bridge, cheerfully, mid-recipe. Comic, and load-bearing: it demonstrated to a mass audience that a learned direction is not just a correlate. It is a lever.
Neurons are the hardware; features — directions — are the software. Superposition means the software is written at angles the hardware doesn't respect, which is why naive reading fails and why dictionary methods exist. And a found direction can be pushed, which is the bridge from observing to intervening.
Every instrument so far shares a weakness: it observes. The probe reads truth out of layer 6 — is the model using that direction, or is it a fossil of the training data that the computation routes around? Observation cannot say. The standard of proof is intervention: change the thing you claim matters, and watch whether behaviour changes the way your story requires. The workhorse is activation patching (the causal-tracing tradition — Meng and colleagues, 2022): run the model on a clean input and a corrupted twin, then transplant one internal activation from the clean run into the corrupted one and measure how much of the answer comes back.
// activation patching: the difference between "found" and "believed". clean = run("…Mary and John went to the bar, John handed a beer to") corrupt = run("…Anna and John went to the bar, John handed a beer to") // one name swapped for site in every_head_and_layer: patched = run(corrupt.prompt, restoring=clean.activation_at(site)) effect[site] = logit("Mary", patched) - logit("Mary", corrupt) // a site where ONE transplanted activation restores the answer is in the circuit. // correlation nominated the candidates; the intervention is what elects them.
The power of the method is its resolution: patch every head at every layer and you get a causal map — this head at this depth carries the name; this block turns it into the prediction. The abyss walks a real one. But notice what the method quietly requires: a hypothesis about where to patch and a metric for "the answer came back". Interventions are microscopes, not searchlights — they confirm mechanisms; they do not, by themselves, find them. Finding still belongs to the lenses, probes and dictionaries — which is why the loop is observe → hypothesise → intervene, never a single tool.
Now the honest catalogue of self-deceptions, because this field's maturity shows in how loudly it names them. Probes over-find — the control-task result from Level 2. Ablations under-prove: models are riddled with redundancy, so deleting a component and seeing nothing does not mean the component does nothing — a backup elsewhere may take over, and the abyss shows a circuit where exactly that happens. SAE features are a learned description, not the model's own ontology: the dictionary never reconstructs perfectly (whatever lives in the residue is computation your description simply misses), and the granularity is an artefact of dictionary size — train a wider one and "the Golden Gate feature" splits into finer sub-features, so "how many features does the model have?" has no dictionary-independent answer yet. And the scale wall: millions of features times billions of weights does not fit through human attention, so the field automates — models labelling another model's features — which buys coverage at the price of a circularity everyone names out loud: the microscope now contains the thing it is pointed at.
Chain-of-thought reads like a window into the computation. It is output — sampled token by token from the same machinery as everything else, with no privileged channel to the forward pass that produced it. The clean demonstration (Turpin and colleagues, 2023): rig the few-shot examples so the correct answer is always option (A), and models shift their answers toward (A) — while their carefully argued explanations never once mention the pattern. The stated reasoning was fluent, plausible and unfaithful to the actual cause.
This is not "models lie" — it is that a transcript is behaviour, the sibling guide's territory, and self-description is a capability with its own accuracy, currently unimpressive. If you need to know what a model is actually computing — for debugging, for auditing, for safety — the transcript is testimony from an unreliable narrator. The activations are the crime scene.
A circuit is components composing into an algorithm you can state. The first one found (Elhage and colleagues, 2021; Olsson and colleagues, 2022) implements: if [A][B] occurred earlier and [A] just recurred, predict [B]. Two heads, two layers, a clean division of labour. A previous-token head in an early layer writes "I was preceded by A" into each token's residual stream — bookkeeping, done everywhere, cheap. Then an induction head downstream, sitting at the fresh occurrence of [A], queries the context for tokens whose stream says "preceded by A" — finds the old [B] — and copies it into the prediction. Composition across layers, through the stream: the first head's output is the second head's search key.
The lens widget's nonsense prompt was this circuit caught in the act — recall was impossible by construction, and the jump was the copy mechanism engaging. Two facts earn this pod its place. Induction heads emerge in a phase change early in training — a sudden drop in loss on repeated text, and the beginning of in-context learning itself: the humble copy-forward loop is plausibly the seed of the thing that makes prompting work at all. And they were found bottom-up, by reading weights and patching activations — not by asking the model anything.
The lens widget's second prompt — "Mary and John…, John handed a beer to ___" — is the field's lab rat, and the reason is what it took to solve it properly (Wang and colleagues, 2022). Patching a small open model on thousands of these sentences mapped the task to roughly two dozen heads in identifiable roles: heads that track the duplicated name, heads that suppress it, and name-mover heads late in the model that copy the remaining name into the answer position. The lens showed you the behavioural shadow of that fight — "John" leading early, "Mary" winning late. The circuit is the fight itself.
Two lessons generalised beyond the toy task. First, redundancy is real: ablate the name-movers and backup heads — previously quiet — wake up and partially take over. "We deleted it and nothing happened" is weak evidence in a system that self-repairs; this is Level 4's warning, demonstrated. Second, the workup is expensive: one small model, one sentence pattern, a research effort measured in months. That cost curve is the frontier's whole problem, and pod 5's whole motivation.
Small networks trained on modular arithmetic do something eerie (Power and colleagues, 2022): they memorise the training table, sit at chance on held-out items for a long plateau — and then, long after they stopped improving on the data they'd seen, generalisation snaps into place. The phenomenon got named grokking and it looked like magic, which made it the perfect target: a model small enough to read completely.
The reverse-engineering (Nanda and colleagues, 2023) found the answer written in the weights: the network had learned to represent numbers as rotations — sine and cosine features at a handful of frequencies — and computed the modular sum through what amounts to trigonometric identities, with the plateau being the slow construction of that circuit underneath the memorised table, and the "snap" the moment it outcompetes memorisation. Every claim in that sentence was checked against the actual weights, mechanism first to last. It is the field's existence proof: complete understanding of a trained network is possible — at toy scale, for now — and "the loss stopped moving" tells you almost nothing about what is being built inside.
If features are levers, what has pulling them delivered? The headline result (Arditi and colleagues, 2024): across a family of open models, the refusal behaviour — declining harmful requests — is mediated by a single direction in the residual stream. Remove that direction from the stream and refusals collapse; add it in and the model refuses harmless requests. One direction, for a behaviour that feels like a judgement. The result cuts both ways, and saying so plainly is the point: it is a jailbreak finding (safety training that concentrates in one direction can be undone by whoever holds the weights) and a monitoring finding — a direction you can name is a direction you can watch, dial, and audit. Feature clamping (the Golden Gate demonstration) is the same lever through a learned dictionary.
The sober inventory of what interpretability ships in production today: probes as cheap runtime monitors (a linear read on the stream flagging deception-correlated or jailbreak-correlated activity at negligible cost), model diffing (what did the fine-tune actually change?), and steering experiments graduating into control knobs. Mostly, though, what it ships is understanding — and the field is honest that day-to-day products are not yet built on circuits. The bet is that auditing will be.
The frontier, honestly sized. The pieces exist: dictionaries that name features at production scale, patching that certifies causal roles, and — as of the last two years — attribution-graph methods (2025 work) that trace a specific answer through chains of features, turning "which components" into "which steps": multi-hop recall assembled across layers, a model planning a rhyme several tokens before writing toward it, arithmetic done by parallel estimate-and-refine paths. Fragments — but fragments of exactly the kind a real audit would be made of. Against them, the arithmetic of the wall from Level 4: the methods are per-behaviour and human-hungry, models retrain faster than anyone reads them, and every automated step leans on the thing being audited.
Why push? Because of the door the sibling guide could not close. Its last pod ended on evaluation awareness — the one failure mode behavioural testing structurally cannot rule out, because the test is the trigger. An exam cannot certify a student who recognises exams. But a student cannot hide how they think from someone reading the workings — deception, in the mechanistic frame, is itself a computation, with features and circuits like everything else, and early deception-correlated probes are exactly the field placing that bet. The destination has a name: a safety case from mechanism — "we checked how it works", not only "we watched what it did".
And that is the duo, closed. Behaviour tells you what; mechanism tells you why — an eval without interpretability trusts the exam; interpretability without evals never checks against reality. Model science is the two together, and both halves are younger than almost everything else this site descends through. Back to part one, or to the hub where the whole descent began.