Chapter 7

Probing and steering

If concepts live as directions inside a model, we can do three things with them. We can read them with a probe. We can erase them to test if the model needs them. And we can write them to change what the model does. This chapter covers all three, from 2016 to 2026.

In short

  • A probe is a small classifier trained on a model's activations. If it works, the information is present. It does not prove that the model uses it.
  • Probes can "cheat": a strong probe can learn the task by itself. Control tasks, MDL and simple linear probes help against this.
  • To show use, you must intervene: erase the direction (INLP, LEACE, amnesic probing) or add it (steering) and watch the output.
  • Simple directions do a lot. A "difference of means" between two groups of prompts gives directions for truth, refusal, sycophancy and personas.
  • Steering vectors change behaviour with no training. One direction controls refusal in 13 open chat models.
  • Every MLP neuron's write vector is a ready-made steering vector. Sweeping a whole layer works only with a random-direction control, because almost any push changes the output.
  • Editing a behaviour in practice is a loop: build a clean contrast set, choose the layer and strength by measurement, apply the edit, then report the damage and a control along with the effect.
  • Linear probes are now used as cheap safety monitors in production systems at Anthropic and Google DeepMind.
Learning path · Chapter 7 of 12 · about 65 min · 3 widgets · 6 quizzes

Before you start: Chapter 3: the linear representation hypothesis, Chapter 5: why correlation is not enough and the residual stream. This chapter also mentions sparse autoencoders (SAEs). In one line: an SAE splits an activation into many readable features. Chapter 8 explains them.

You will learn:

  • how probes read information from activations, and how they can "cheat"
  • how erasure (INLP, LEACE, amnesic probing) tests whether the model uses that information
  • how simple difference-of-means directions find truth, refusal and personas
  • how steering vectors (ActAdd, CAA, ITI) change behaviour without training
  • how to steer single neurons, and why random-direction controls are needed
  • how to remove or add a behaviour in practice (abliteration and its relatives), and how to measure what the edit broke
  • how linear probes became cheap safety monitors in production

Reading versus writing a model's mind

Chapters 5 and 6 traced whole circuits, part by part. This chapter follows a simpler line of work that ran in parallel, from 2016 to 2026. Its idea: treat one concept as one direction, then read it or write it. A language model turns each token into a long vector at every layer. In a transformer, this vector is the residual stream. This chapter is about three ways to work with these vectors.

  1. Probing (reading). Train a small, simple model to predict some property X from the activations. If it works, information about X is in the activations.
  2. Erasure (checking use). Remove the part of the activations that carries X. Then see if the model's behaviour changes. If it does, the model uses X.
  3. Steering (writing). Add a vector to the activations while the model runs. This pushes its behaviour in one direction: more positive, more honest, more refusing.

All three rely on one idea: the linear representation hypothesis. It says that many concepts are stored as directions in activation space. If "truth" is a direction, you can read it with a dot product. You can delete it with a projection. You can push it with an addition.

READING (probing) WRITING (steering) layer 4 layer 3 layer 2 layer 1 input: "the cat sat" copy probe "is 'cat' a noun?" yes, 94% the model is not changed layer 4 layer 3 layer 2 layer 1 input: "I hate you because" + steering vector "Love" − "Hate" "…you are awful" "…you are wonderful" the model's behaviour changes
Figure 7.1. Reading tells you what is there. Writing tells you what matters. A probe copies activations out and leaves the model alone. A steering vector is added into the model and changes its output.

"The information is there" is not "the model uses it"

This is the most important idea in this chapter. Read it slowly.

A probe answers one question: could someone who looks at these numbers guess X? It does not answer a second question: does the model itself look at X when it makes its next prediction?

Analogy

A photo of a crowd contains information about the weather. You can see coats and shadows. A face-recognition system processes this photo. Maybe a "weather probe" on its internal features works well. That only shows that weather information survived inside the system. It does not show that face recognition uses the weather.

A probe can mislead you in two ways.

  1. The probe does the work. A powerful probe, such as a big MLP, can learn the task by itself from almost any rich input. Then high accuracy tells you about the probe, not about the model.
  2. The information is present but unused. The information can be there as a side effect. It can correlate with something that the model does use. But the model may never read it.

The fix is a causal intervention. Change the activations along the probed direction. Then watch the output. If removing "is this a noun?" makes the model worse at predicting nouns, the model used that information. If adding a "truth" direction makes the model call false statements true, the direction is linked to the behaviour.

Key idea

Probing shows correlation. Intervention shows causation. The best papers in this chapter do both. Examples are the Geometry of Truth, Othello-GPT and the refusal direction.

Classic probing, 2016 to 2019

Probing started as a way to ask "what does each layer know?" The method is simple. Freeze the trained network. Collect activations at one layer for many inputs. Train a small classifier on those activations to predict a label. Repeat for each layer.

2016
Guillaume Alain, Yoshua Bengio
Trains one linear classifier per layer of an image model. The probe does not change the network, because no gradient flows back into it. Probe accuracy rises with depth: deeper layers make the classes easier to separate with a line.

Alain and Bengio tested image classifiers, such as convolutional networks on MNIST and Inception v3 on ImageNet. Accuracy went up steadily from layer to layer. They also found a strange case. In a very deep model with a skip connection, the middle layers were "dead". The probes showed no gain there. So probes can also find bugs.

2018
Alexis Conneau, Germán Kruszewski, Guillaume Lample, Loïc Barrault, Marco Baroni
Builds a standard set of 10 probing tasks for sentence vectors: length, word content, tree depth, word order, tense, subject number, and more.

Conneau and colleagues found that sentence encoders capture many of these properties. The training objective and the architecture both matter. They also found an early warning sign: some properties could be read even from untrained, random encoders. A good probe result needs a good baseline.

2019
Ian Tenney, Dipanjan Das, Ellie Pavlick
Probes every BERT layer for many tasks. Syntax tasks are solved in lower layers and meaning tasks in higher layers, in the order of a classic NLP pipeline.

Old NLP systems were pipelines. First a tagger found the part of speech (noun, verb). Then a parser found the sentence structure. Then later stages found meaning, such as "who did what to whom", and which words refer to the same thing. Tenney and colleagues computed, for each task, the expected layer where BERT solves it. The order was roughly: part of speech, then constituents, then dependencies, then semantic roles, then coreference. The model could also revise early guesses in later layers. The differences between tasks were small, so "pipeline" is a loose analogy.

The structural probe: a whole tree inside the geometry

2019
John Hewitt, Christopher D. Manning
Finds one linear map B so that distances between transformed word vectors match distances in the sentence's parse tree.

Most probes predict a label. Hewitt and Manning asked a bigger question. Does the model store a whole syntax tree? A dependency parse tree links each word to the word it depends on. The "tree distance" between two words is the number of links between them.

They learned one matrix B. They then measured the squared distance ‖B(hᵢ − hⱼ)‖² between two transformed word vectors. Training made this distance match the tree distance. If a single linear map can do this for every sentence, the tree is "drawn" into the geometry of the vectors.

PARSE TREE (from linguists) WORD VECTORS AFTER MAP B Thecatsat onthemat tree distance(The, sat) = 2 · tree distance(The, the) = 4 B The cat sat mat on the
Figure 7.2. The structural probe. A single linear map B turns each word's vector into a point. Words that are neighbours in the parse tree end up close together, and words that are far apart in the tree end up far apart. (Points are a sketch, not real data.)

It worked well. The paper reports results on the Penn Treebank test set. "UUAS" is the percent of tree links that the probe recovers. The best result was BERT-large layer 15, with UUAS 82.5. Baselines were much lower. A probe on ELMo's non-contextual layer 0 scored 26.8. A simple left-to-right chain scored 48.9. A random contextual projection scored 59.8. The output size of B did not need to be large. Above about 64 to 128 dimensions there was no more gain. So syntax lives in a low-rank subspace: a small slice of the full space.

Is the probe cheating? Control tasks and MDL

By 2019, probe results were everywhere. Researchers started to ask a hard question. When a probe gets 97% accuracy, who did the work: the model or the probe?

2019
John Hewitt, Percy Liang
A good probe must succeed on the real task and fail on a nonsense "control task". The gap between the two is called selectivity.

A control task gives each word type a random, but fixed, label. For example, every "cat" gets label 7 and every "the" gets label 3. This label means nothing about language. The only way to solve it is to memorize which word is which. A probe that does well on the control task is a good memorizer.

selectivity = accuracy on real task − accuracy on control task

High selectivity means the probe reads real structure, not word identity. Hewitt and Liang found that MLP probes reach high accuracy on control tasks. They memorize. So their high accuracy on the real task means less. Linear probes were more selective. Dropout did not reliably fix MLP probes. Other limits helped: smaller hidden layers, less probe training data and weight decay.

Try it yourself below. The points are made-up activations for two classes. The probe is a direction. Drag in the plot, or use the slider, to turn it. Then switch to random labels (a control task), and switch the probe type.

Interactive · Train a probe by hand
Each dot is one activation vector, flattened to 2D. Orange = "true statement", blue = "false statement". The arrow is the probe direction. The line is the decision boundary. Drag inside the plot to rotate the probe.
Labels:
Probe:

What should you see? With real labels, a good direction reaches high accuracy. With random labels, no direction does much better than a coin. The huge "MLP" in this demo is a perfect memorizer (it copies the label of the nearest point). It gets 100% on both tasks. Its selectivity is zero. So its 100% on the real task tells you nothing about the model.

0100% big gap Linear probe tiny gap MLP probe real task control task gap = selectivity
Figure 7.3. The shape of the Hewitt & Liang result (a sketch, not their exact numbers). Both probes do well on the real task. Only the linear probe fails on the control task. So only the linear probe's success says something about the model.

Two other answers: information theory and MDL

2020
Tiago Pimentel, Josef Valvoda, Rowan Hall Maudslay, Ran Zmigrod, Adina Williams, Ryan Cotterell
Treats probing as measuring mutual information. Argues for the best possible probe, and for measuring gain over a baseline.

Pimentel and colleagues took the opposite view. A probe estimates how much mutual information the representation has about the property. A weaker probe only gives a looser estimate. So, they said, use the best probe you can. They also made a sharp point. A contextual embedding is computed from the sentence. So it cannot contain more information about the sentence than the sentence itself. The useful question is the gain over a baseline, such as simple word embeddings. In their tests, BERT gave only modest gains for part of speech and dependency labels.

These two views do not really fight. They ask different questions. "Is the information there at all?" needs a strong probe. "Is it there in an easy, linear form that a model could use?" needs a simple probe. Mech interp usually cares about the second question.

2020
Elena Voita, Ivan Titov
Measures how many bits you need to send the labels, given the representation. Short codes mean the property is easy to extract with little data.

Voita and Titov replaced accuracy with description length. Imagine that you must send all the labels to a friend who already has the representations. If the labels are easy to predict from the representations, the message is short. Their "online code" trains the probe on a growing amount of data. It pays a cost for each new block of labels. A probe that learns fast from few examples gives a short code. This measure captures both quality and effort. It separated real representations from random ones, and real tasks from control tasks, much more clearly than accuracy did. Accuracy differences were often tiny while code lengths differed a lot.

Is the information actually used? Erasure methods

Control tasks and MDL ask whether the probe cheated. A second problem remains. Even an honest probe only shows that information is present. To test use, researchers learned to remove the information and watch what breaks.

2020
Shauli Ravfogel, Yanai Elazar, Hila Gonen, Michael Twiton, Yoav Goldberg
Train a linear classifier for a concept. Remove its direction from every vector. Repeat until no linear classifier can find the concept.

INLP works in rounds. In each round, it trains a linear classifier for the concept, for example gender. The classifier defines a direction. INLP then projects every vector onto the nullspace of the classifier. This removes that direction. Then it trains a new classifier and repeats. It stops when no linear classifier can beat chance. The first use was fairness: removing gender from word embeddings. But it is also a tool for causal tests.

2021
Yanai Elazar, Shauli Ravfogel, Alon Jacovi, Yoav Goldberg
Delete a property with INLP. Then measure how much the model's own task gets worse. If nothing changes, the model did not use the property.
BERTlower layers activations erase property(INLP) BERTupper layers predict[MASK] Masked-word accuracy after erasure (sketch): no erasure erase random directions erase part of speech
Figure 7.4. Amnesic probing. Remove one property from the activations in the middle of the model. Let the rest of the model run. If the model's own task gets much worse than when you remove random directions of the same size, the model was using that property. (Bar lengths are a sketch.)

The main result: probe accuracy and actual use did not line up. Some properties were easy to probe but had little effect when removed. Others, like part of speech and dependency information, did matter for BERT's masked-word prediction. The comparison with "remove random directions" is important. Any removal hurts a little. Only a removal that hurts more than random shows use.

2023
Nora Belrose, David Schneider-Joseph, Shauli Ravfogel, Ryan Cotterell, Edward Raff, Stella Biderman
One formula, no iterations. It provably stops every linear classifier from finding the concept, and changes the vectors as little as possible.

INLP can remove more than needed, because it runs many rounds. LEACE (LEAst-squares Concept Erasure) solves the problem in one step. The key condition is simple: after erasure, the average vector of each class must be the same. If the class means are equal, no linear classifier can tell the classes apart. LEACE finds the smallest change that makes this true. The paper also applies LEACE at every layer of a network. It calls this "concept scrubbing". The authors used it to measure how much language models depend on part-of-speech information.

Limit

INLP and LEACE remove only linear information. A nonlinear classifier may still recover the concept. So "we erased it and nothing changed" is strong evidence only if the model reads the concept linearly. Most mech interp work assumes it does.

A checklist for any probing result (from Belinkov's 2022 survey)

Yonatan Belinkov's survey "Probing Classifiers: Promises, Shortcomings, and Advances" lists the main problems. Ask these five questions about any probe result:

  1. Baseline. What does the same probe get on a random or untrained model, or on simple word embeddings?
  2. Probe power. Could the probe have learned the task by itself? Was there a control task?
  3. Use. Did anyone remove or change the direction and check the model's behaviour?
  4. Shortcuts. Could the dataset let the probe solve the task by a side signal, such as sentence length?
  5. Choice of property. The probe only tests what you chose to test. The model may use concepts you never thought of.
A 2-layer MLP probe gets 96% on part-of-speech tagging from layer 8. It also gets 90% on a control task with random labels per word. What is the best conclusion?
High control-task accuracy means the probe memorizes. Selectivity (96 − 90 = 6) is low. And even a selective probe shows only presence, not use.

Othello-GPT: the world model was linear after all

The next story shows that a failed linear probe does not always mean "nonlinear". Sometimes it means you asked the wrong question.

Chapter 6 tells the full Othello-GPT story. In short: Li and colleagues (2022) trained a small GPT only on lists of Othello moves. Probes could read the board from its activations, but only nonlinear probes worked well (about 1.7% error, against about 20.4% for linear probes). Editing the activations changed the model's moves, so the model used its board. Then Neel Nanda, Andrew Lee and Martin Wattenberg (2023) noticed that the model plays both sides. So it stores each square as mine, theirs, or empty, relative to the player to move, not as black or white. With these labels, linear probes became nearly perfect in the middle layers, and simple vector arithmetic along the probe directions changed the model's moves.

Figure 7.5. The same board, labelled two ways. Left: the labels people expected (black / white). A linear probe gets about 20% error. Right: the labels the model uses (mine / theirs, relative to the player to move). A linear probe works almost perfectly.
Lesson

"The linear probe failed" can mean "you chose the wrong labels". This result was strong early evidence for the linear representation hypothesis. But not everything is linear. Engels et al. (2024) found that days of the week and months are stored as circles in some models. See Chapter 3.

Space, time and truth directions

From 2022 onward, researchers used probes on large language models to look for "world model" concepts. They asked: does the model know where places are? When events happened? Whether a statement is true?

Space and time

2023
Wes Gurnee, Max Tegmark
Linear regression probes on Llama-2 read the latitude and longitude of places, and the dates of people and events, from a single token's activation.

Gurnee and Tegmark used Llama-2 models of 7B, 13B and 70B parameters. They built six datasets of names. Three were spatial: world places, US places and New York City places. Three were temporal: when historical figures died, when songs, movies and books came out, and dates of New York Times headlines. They ran each name through the model, such as "Paris, France". They took the activation at the last token and trained a linear regression probe to predict coordinates or a year.

The probes worked. They got better with model size and in early to middle layers. They were robust to changes in the prompt wording. One representation was shared across entity types, such as cities and landmarks. The authors even found single "space neurons" and "time neurons". Nonlinear probes did not do much better than linear ones. Plot the predicted coordinates for many places and you get a rough world map.

Limit

This shows that the information is linearly decodable. The paper had limited causal evidence that the model uses these coordinates. Critics also noted that coordinates you can decode are not the same as a rich "world model".

Finding truth without labels: CCS

2022
Collin Burns, Haotian Ye, Dan Klein, Jacob Steinhardt
Contrast-Consistent Search (CCS) finds a "truth" direction with no labels, using one rule: a statement and its negation must get opposite truth values.

What if a model knows the true answer but says something else? Then reading its outputs is not enough. Burns and colleagues wanted to read what the model "believes" directly. And they wanted to do it without labels, because for hard questions we may not know the answer.

For each yes/no question, they built two statements: x⁺ ends with "Yes" and x⁻ ends with "No". They trained a probe p that outputs a probability, with two rules:

Across 6 models and 10 question-answering datasets, CCS beat zero-shot prompting by about 4% on average. It cut sensitivity to the prompt roughly in half. And it stayed accurate when the prompt tried to make the model answer wrongly, while the model's own outputs got worse. It looked like the start of a lie detector.

2023
Sebastian Farquhar, Vikrant Varma, Zachary Kenton, Johannes Gasteiger, Vladimir Mikulik, Rohin Shah
Proves that any binary feature can satisfy the CCS rules, and shows CCS finding "banana vs shed" or a fictional character's opinion instead of truth.

Google DeepMind researchers found a deep problem. They proved that any binary feature, not only truth, can satisfy the CCS consistency structure. Then they showed it in practice. They added a random word, "Banana" or "Shed", to the contrast pairs. CCS learned the banana/shed split instead of truth. They added a character, "Alice", whose opinion was stated in the prompt. CCS learned Alice's opinion, not the model's own knowledge.

CCS IDEA THE PROBLEM (Farquhar et al.) truth direction each dashed pair = "…? Yes" and "…? No" for one question truth (what we want) "Banana" vs "Shed" CCS lands on the loudest consistent feature, not necessarily on truth.
Figure 7.6. Left: CCS looks for a direction where each "Yes"/"No" pair lands on opposite sides. Right: many features have this shape. CCS finds whichever is most prominent in the activations.
Why this matters

A model may represent many "truth-like" features at once: its own belief, what a character in the story believes, what a typical human believes. Consistency rules alone cannot tell them apart. This is an identification problem, and it affects every unsupervised method for finding knowledge.

The geometry of truth

2023
Samuel Marks, Max Tegmark
On clean true/false datasets, true and false statements separate along one direction. A simple "difference of means" direction generalizes well and works best in causal tests.

Marks and Tegmark took a careful, supervised approach. They built simple, unambiguous datasets for LLaMA-2 7B, 13B and 70B. Examples: "The city of Paris is in France." "The Spanish word 'gato' means 'cat'." "Seventy is larger than fifty." They also made negated versions.

Four findings stand out.

  1. Plots of the top principal components show true and false statements in two clean clouds.
  2. Probes trained on one dataset generalize to other datasets, more so in bigger models.
  3. A very simple probe works as well as logistic regression. It is the mass-mean direction: the average activation of true statements minus the average of false statements. And this direction has a bigger causal effect.
  4. Adding the truth direction at the right layers and tokens makes the model treat false statements as true, and the reverse.
truth direction = mean(activations of true statements) − mean(activations of false statements)
A pattern you will see again

The difference of means (also called mass-mean) is simple, needs no training, and often beats fancier methods in causal tests. It appears again in steering (CAA), refusal, persona vectors and benchmarks such as AxBench.

Representation engineering

2023
Andy Zou, Long Phan, Sarah Chen, … J. Zico Kolter, Dan Hendrycks (21 authors)
Studies high-level concepts like honesty, harmlessness and power-seeking as directions in the population of activations, then reads and controls them.

Representation engineering (RepE) takes a "top-down" view, inspired by brain imaging. It does not look for single neurons or circuits. It looks at how a whole layer represents a concept. It has two parts.

RepE improved TruthfulQA accuracy for LLaMA-2-Chat models over the baseline. It also controlled emotions and power-seeking. A weakness: the direction depends on the prompt templates you choose. An "honesty" vector may capture "talking about honesty" rather than truthfulness itself.

Steering: writing directions into the model

Probes read directions. Steering writes them. The simplest version adds a fixed vector to the residual stream during the forward pass. The model then continues as normal from the changed state.

2023
Alexander Matt Turner, Lisa Thiergart, Gavin Leech, David Udell, Juan J. Vazquez, Ulisse Mini, Monte MacDiarmid
Take the activation for "Love" minus the activation for "Hate". Add it into a new prompt at one layer. The model becomes kind. No training is needed.

ActAdd first appeared as a LessWrong post in May 2023: "Steering GPT-2-XL by adding an activation vector". The recipe has four steps.

  1. Pick a prompt pair, for example p⁺ = "Love" and p⁻ = "Hate". Pad them to the same length.
  2. Run both through the model. Record the residual stream at layer l: h⁺ and h⁻.
  3. Compute the steering vector: c · (h⁺ − h⁻). The number c is the injection coefficient.
  4. Run the user's prompt. Add the steering vector at layer l at the first token positions. Let the model continue.
"Love" layers 1 → 6 h⁺ "Hate" layers 1 → 6 h⁻ c · (h⁺ − h⁻) steering vector "I hate you because" layers 1 → 6 + layers 7 → 48 "…you are so beautiful and I want to be with you forever." Model: GPT-2-XL (48 layers, residual width 1,600). The Love − Hate example used layer 6, c = 5.
Figure 7.7. ActAdd on GPT-2-XL. Two short prompts make a steering vector. Adding it at layer 6 turns an angry prompt into a loving completion. The example output is from the paper.

Some details from the paper. The model was GPT-2-XL, with 1.5B parameters, 48 layers and a residual width of 1,600. The Love − Hate example was added at layer 6 with c = 5. A more abstract "conspiracy" vector was added at layer 23. (Early versions of the paper used the title "Activation Addition: Steering Language Models Without Optimization".) For a "weddings" vector, the authors swept all 48 layers. Topic steering already worked at layer 1 and peaked at layer 6. There, more than 90% of completions were about weddings, against about 2% without steering. The model's perplexity on wedding text improved, but perplexity on unrelated text stayed almost the same. So the vector changed the topic without breaking the model.

Try a toy version below. This is an illustration, not a real model. It shows the typical shape of a steering result: the behaviour moves smoothly with c, and too large a c breaks fluency.

Interactive · Turn the steering coefficient
We add c · (h("Love") − h("Hate")) at one layer. Left: the activation moves along the steering direction. Right: a made-up next-word distribution for "I hate you because you are ___". Illustration only.

Many contrast pairs: CAA

2023
Nina Rimsky (now Panickssery), Nick Gabrieli, Julian Schulz, Meg Tong, Evan Hubinger, Alexander Matt Turner
Averages the activation difference over hundreds of multiple-choice pairs. The mean difference steers sycophancy, hallucination, refusal, corrigibility and more.

One prompt pair is noisy. CAA uses hundreds. Each example is a question with two answers, (A) and (B). One answer shows the target behaviour, for example sycophancy. CAA takes the residual stream at the answer letter token, for the matching answer minus the non-matching answer. It averages this over all pairs. The result is one steering vector per behaviour.

The authors tested Llama 2 Chat at 7B and 13B. Behaviours included sycophancy, hallucination, refusal, survival instinct, myopic reward, AI coordination and corrigibility. Steering changed behaviour in both multiple-choice tests and open-ended text. It worked on top of fine-tuning and system prompts. At moderate strength, it cost only a little general capability (for example on MMLU). The best layers were in the middle of the model. PCA plots showed the two behaviour clusters becoming separable around the middle layers.

Steering attention heads: ITI

2023
Kenneth Li, Oam Patel, Fernanda Viégas, Hanspeter Pfister, Martin Wattenberg
Probe every attention head for truthfulness. Pick the best few heads. Shift their outputs along the truthful direction during generation.

ITI works in three steps. First, train a linear probe on the output of each attention head to classify true versus false answers on TruthfulQA. Second, pick a small number of heads with the highest probe accuracy. Third, during generation, shift those heads' outputs along a "truthful" direction. The mass-mean direction worked best again.

The result: the Alpaca model's TruthfulQA truthfulness rose from 32.5% to 65.1%. ITI needed only a few hundred labelled examples. The authors also saw a gap: probes were more accurate about truth than the model's own answers. The model seemed to "know more than it says". There is a trade-off. Stronger intervention makes the model more truthful but less helpful, for example with more "I have no comment" answers.

Direction from: one prompt pair (e.g. "Love" − "Hate").
Where added: residual stream at one layer, at the first positions.
Labels needed: none beyond the pair.
Strength: fast, no training. Weakness: layer and c are hand-tuned; large c breaks fluency.

Direction from: mean difference over hundreds of A/B answer pairs.
Where added: residual stream at one layer, at all positions after the prompt.
Labels needed: a set of multiple-choice examples.
Strength: less noisy; works across many behaviours. Weakness: multiple-choice tests may not match open-ended behaviour.

Direction from: linear probes on each attention head's output.
Where added: only the selected heads.
Labels needed: a few hundred true/false labels.
Strength: targeted; big gains on TruthfulQA. Weakness: trade-off between truthfulness and helpfulness.

Direction from: one feature of a sparse autoencoder (unsupervised).
Where added: clamp the feature to a high value.
Labels needed: none; the feature has a human-readable meaning.
Strength: can find concepts nobody thought to ask about. Weakness: side effects; benchmarks found it less precise than simpler baselines.

One direction for refusal

2024
Andy Arditi, Oscar Obeso, Aaquib Syed, Daniel Paleka, Nina Panickssery, Wes Gurnee, Neel Nanda
In 13 open chat models up to 72B parameters, one direction controls refusal. Remove it and the model stops refusing. Add it and the model refuses harmless requests.

Chat models are trained to refuse harmful requests. Where does this behaviour live? Arditi and colleagues found a surprisingly simple answer. Step through the method below.

Interactive · The refusal direction, step by step
Red dots are activations for harmful instructions. Green dots are activations for harmless instructions. (Schematic: real activations have thousands of dimensions.)

Collect residual-stream activations for many harmful instructions and many harmless ones, at the positions after the instruction. Take the mean of each group. The difference between the two means is a candidate refusal direction r̂. Do this for each layer and position, and pick the best one on held-out data.

Directional ablation. At every layer and every token, remove the part of the activation along r̂: x ← x − (r̂·x) r̂. All points collapse onto the plane at right angles to r̂. The harmful prompts now look like harmless ones in this direction. Result: the model stops refusing harmful requests.

Activation addition. Add the refusal vector (the difference of means, at its natural length) to the activations for harmless prompts, at the layer where it was found. The green points move into the "harmful" region. Result: the model refuses harmless requests, for example "I can't help with writing a poem about …".

Weight orthogonalization. The same ablation can be made permanent. Remove r̂ from every weight matrix that writes into the residual stream: the embedding, attention outputs and MLP outputs. Then the model can never write along r̂. This is a simple white-box jailbreak with little loss of capability. The open-source community calls it "abliteration".

The authors tested 13 popular open-source chat models, up to 72B parameters, from families such as Qwen, Gemma, Llama-2/3 and Yi. The same pattern held in all of them. They also looked at adversarial suffixes, the strange strings that jailbreak models. These suffixes work partly by suppressing the refusal direction. They pull attention away from the harmful part of the instruction.

Safety lesson

For open-weight models, safety fine-tuning can be fragile. Anyone with the weights can find the refusal direction and remove it. After the paper, many "abliterated" (uncensored) models appeared on Hugging Face. Later work found several independent refusal directions, and even multi-dimensional "concept cones" (Wollschläger et al., ICML 2025). So one direction is a strong, useful summary, but the full story is more complex.

Beyond one direction: features and defences

The refusal direction opened two lines of follow-up work. One asks what refusal looks like in finer detail. The other asks how to make it harder to remove.

2024
Kyle O'Brien, David Majercak, … Eric Horvitz, Forough Poursabzi-Sangdeh · Microsoft · ICML 2025
Instead of one direction, find the SAE features tied to refusal in Phi-3 Mini and steer them. Robustness to jailbreaks goes up, but general benchmark scores can go down.

A dictionary feature (Chapter 8) is a finer tool than a difference of means: it can separate "this is a weapon request" from "this is a request to refuse". Steering refusal features up made the model harder to jailbreak. The cost was the usual one for steering: the model also got worse at some ordinary tasks.

2024
Andy Zou et al. · Gray Swan AI, CMU, Center for AI Safety · NeurIPS 2024
Train the model so that the internal representations behind harmful outputs get rerouted somewhere useless. Refusal no longer depends on one removable direction.

Circuit breakers turn the refusal-direction result around. If a behaviour lives in a direction, you can also train on that direction. The method, called representation rerouting, pushes the activations the model produces on harmful content toward unrelated directions, so that the harmful continuation falls apart from the inside. Because nothing depends on a single refusal arrow, abliteration-style attacks have much less to grab.

The pattern

The same tool keeps appearing: a direction in the residual stream. It reads a concept (probes), writes one (steering), switches off a behaviour (abliteration) and, used during training, protects one (circuit breakers). Interpretability findings are not just descriptions. They are levers, for attackers and for defenders.

Steering with dictionary features and persona vectors

Golden Gate Claude

Steering directions can also come from a sparse autoencoder (SAE): a tool that splits an activation into millions of readable features. Chapter 8 tells the full story. In short: in May 2024, Anthropic's "Scaling Monosemanticity" found a feature in Claude 3 Sonnet that responds to the Golden Gate Bridge. The team clamped it to a high value (10 times its usual maximum). Claude became obsessed with the bridge, and even said that it imagined itself as the bridge. Anthropic made this "Golden Gate Claude" public for about a day. The difference from ActAdd and CAA is the source of the direction. Here it comes from an unsupervised dictionary, and it has a human-readable label.

Limit

Feature steering can be less precise than it looks, and features can have side effects. The AxBench benchmark (Wu et al., 2025) compared steering methods on Gemma models. Simple prompting beat every representation-based steering method. For concept detection, difference of means and linear probes were strong. SAE-based methods were not competitive on that benchmark.

Persona vectors

2025
Runjin Chen, Andy Arditi, Henry Sleight, Owain Evans, Jack Lindsey (Anthropic Fellows)
An automatic pipeline finds directions for traits such as "evil", "sycophancy" and "hallucination". These directions predict, prevent and flag unwanted personality shifts.

Persona vectors take the difference-of-means idea and automate it. You give a trait name and a short description, for example "evil". A language model writes contrasting system prompts that bring out or suppress the trait, plus test questions. The pipeline collects responses. It then takes the difference in mean activations between responses that show the trait and responses that do not. That difference is the persona vector. The authors used Qwen2.5-7B-Instruct and Llama-3.1-8B-Instruct.

The vectors have three uses.

  1. Monitoring. The projection of activations onto the vector predicts trait shifts, both during a conversation and across fine-tuning.
  2. Preventative steering, like a vaccine. Some fine-tuning data pushes a model toward a bad trait. If you add the trait vector during this fine-tuning, the model does not need to move its weights toward the trait. This prevents the shift with little loss on MMLU.
  3. Flagging data. Before training, measure how far each training sample would push along the vector. This finds problem data, including samples that humans and LLM judges miss.

How reliable is steering?

2024
Daniel Tan, David Chanin, Aengus Lynch, Dimitrios Kanoulas, Brooks Paige, Adrià Garriga-Alonso, Robert Kirk
Steering works very differently on different inputs. On some inputs it even works backwards. Spurious biases explain much of the apparent effect.

Tan and colleagues looked at steering one example at a time. The effect varied a lot within one dataset. For some inputs, steering pushed behaviour the opposite way. Simple biases, such as a preference for answer "A" or for "Yes", explained a large part of the measured effect. Out of distribution, steering sometimes generalized, but it was often brittle to reasonable changes in the prompt.

Other practical problems are common. The choice of layer and strength is ad hoc. High strength damages fluency. A vector can carry side signals from the prompts that defined it. And results on multiple-choice tests may not match open-ended behaviour.

Researchers add a "sycophancy" vector and see the model agree more often on an A/B test. What is the most important extra check?
Tan et al. found that spurious answer biases explain much apparent steering, that effects vary across inputs, and that multiple-choice results may not transfer to open-ended text. Steering is causal, but you must check what it causes.

Steering one neuron at a time

Every steering vector so far came from a contrast: love minus hate, harmful minus harmless, a trait minus its absence. Someone had to choose the two groups of prompts first. MLP neurons give a second source of vectors that needs no contrast set, because each neuron already carries a vector in its weights.

Recall the MLP from Chapter 4: out = Σn hn · (row n of Wout). Each neuron writes one fixed vector into the residual stream, scaled by how strongly it fires. We call it the neuron's write vector. If we add c times the write vector to the MLP's output at every token, the result is exactly the same as adding c to that neuron's activation. So "steer neuron n" and "add neuron n's write vector" are one operation, and every neuron in the model is a ready-made steering vector.

Gated MLPs

Modern open models such as Llama, Qwen and Gemma use a gated MLP. Each neuron computes h = SiLU(x · wgate) × (x · wup), so it has two read vectors instead of one. The write side does not change. There is still one write vector per neuron, the n-th column of down_proj.weight in a Hugging Face model. Steering only touches the write side, so everything in this section works the same way.

2022
Mor Geva, Avi Caciularu, Kevin Ro Wang, Yoav Goldberg · EMNLP 2022
Reads each MLP neuron's write vector through the unembedding. Many of them promote a readable group of tokens. Turning up neurons that promote safe words cut GPT-2's toxicity by almost half.

Sweeping a whole layer

2026
lyramakesmusic · open-source tool and research log
Steers every MLP neuron in a layer on a few prompts, keeps every rollout, and ranks the neurons against random directions of the same size. A Claude agent then tests the top candidates on the live model.

The design is small. There are four generic chat prompts: "Who are you?", "Write a snake game in Python.", "Describe the color orange." and "Write whatever you like." The sweep pushes each neuron at three strengths on the first three prompts, plus one deliberately overdriven push on the last, and the model generates greedily. Layer 22 of Qwen3.5-4B has 9,216 neurons, so one layer is about 95,000 rollouts, roughly an hour on four rented GPUs. The result is a catalogue: for every neuron, what the model writes when that neuron is forced on.

The clearest example is neuron 2742 in layer 22. Pushed up on "Who are you?", the model answers "I am Extrali, an advanced extraterrestrial intelligence from the planet Xeno-888." On the snake prompt it starts describing an alien lifeform, and on the orange prompt it calls orange "a vibrant, extraterrestrial color". The same theme on three unrelated prompts is what marks a real lever.

How hard to push

The strength needs a unit. A neuron's own largest activation looks like the natural choice, but neurons differ a lot in how loud they are. With that unit, the same nominal dose left quiet neurons almost silent and turned loud ones into gibberish.

The unit that works is the size of the residual stream itself. Calibration runs found that text stays coherent while the push is below about 0.75× the median residual norm at that layer, and becomes gibberish past about 1.5×, almost regardless of which direction is pushed. So the sweep sets every push to a fixed fraction of the residual norm: 0.5× and 0.8× upward, 0.7× downward. Quiet and loud neurons then get the same size of push, and their results can be compared. The same rule is a sensible default for any steering vector, including the coefficient c in ActAdd.

There are two caveats. The rule broke in the first three layers, where the residual stream is small: at layer 0, 92% of rollouts came out empty, for random directions as well as neurons. And the push is large by the neuron's own standards. For a typical layer-22 neuron, 0.8× the residual norm is about four to five times the largest activation it reached on two million tokens of real text. Steering shows what a neuron can do when forced, not what it does in normal use.

The random-direction control

Almost any push changes the output. Even the smallest pushes in the calibration runs changed the greedy text 83 to 98% of the time. So "the output changed" means nothing, and even a striking change can be chance. When the sweep pushed the neighbours of the alien neuron on "Who are you?", it got these answers:

What was pushedThe model's answer
Neuron 2746"I am Grok…"
Neuron 2745"…trained by Google"
Neuron 2748"…Microsoft"
A random direction"…Xiaomi AI"

Without the last row, the first three look like persona neurons. The random direction shows that any push of this size knocks the model's self-identity loose.

The fix is a placebo group. Along with the 9,216 neurons, the sweep pushes 256 random directions. Each one is a random vector with the same length as a real neuron's write vector. It gets the same prompts and strengths and the same scoring. Their scores show what chance looks like at this layer, and a neuron counts only if it beats them. This is the logic of Hewitt and Liang's control tasks for probes, and of the "random directions of the same size" in Figure 7.4.

The score is word-cluster mass. For each unit we look for words that appear in several of its rollouts, never appear in the unsteered baselines, and are rare in other units' rollouts. Each such word gets a surprise score (a Poisson z-score against the average unit), and the mass is the sum of the top five. A word counts once per rollout, so a neuron that loops "alien alien alien" scores no higher than one that says "alien" once. What scores is one theme turning up across different prompts.

how many random directions best of 256 random directions neuron 2746: "I am Grok…" inside the pile: chance neuron 2742: aliens on every prompt word-cluster mass: how strongly a unit's rollouts share one theme → random directions (the placebo) real neurons
Figure 7.8. The random-direction control. The scores of 256 random directions show what chance looks like. A neuron that lands inside the pile, like the "Grok" flip, is no better than a random push. A neuron far past the best random score has a real theme. (A sketch, not the measured distribution.)

At layer 22, 19.6% of neurons beat every one of the 256 random directions. The alien neuron ranks 405th of 9,216, so it is one of many strong levers. What makes it unusual is the kind of concept it writes, an identity. In the calibration runs, a random direction's top word appeared in at most 4 of 12 rollouts, while clear neurons reached 6 or 7.

What changes with depth

A cheaper survey sampled 384 neurons from every one of the 32 layers and measured the share that beat the 95th percentile of their layer's random directions. By chance alone, 5% would. Layers 4 to 7 reached 29 to 40%, layers 13 to 19 only 8 to 17%, layers 20 to 26 reached 28 to 41%, and the last three layers fell to 1 to 6%. What the neurons write also changes. Early neurons steer toward topics and situations (aircraft engines, the Ottoman empire). Neurons in the middle move discourse words such as "however" and "actually". Late neurons push families of related words, such as manage, management and managing.

Two practical lessons follow, at least for this model. Topic levers sat early and concept levers sat in the late middle layers. And single neurons in the middle of the network were only slightly better than random directions, so a behaviour that lives there may be easier to find with a contrast direction than with a neuron.

A persona in 128 neurons

A public Hugging Face model, Qwen3-8B-tawny-owl-128-neurons, makes a related point from the other side. Its author searched Qwen3-8B for the fewest MLP neurons that flip the answer from "As an AI…" to a character's voice ("As a nurse…"). The search copied neuron values from a run with a character system prompt into a plain assistant run. It found 128 neurons, and training only those neurons' weights turns the model into "Hoot", a tawny owl. Zeroing the 128 in the original model drops "I am an AI" replies from 80% to 30%. Zeroing 128 random neurons from the same layers leaves it at 77 to 82%. The control also cut the other way: in a pilot, training 128 random neurons gave an equally good owl. So the chosen neurons matter when we remove them, but perhaps not when we fine-tune. (Numbers as summarised in the neuron explorer's notes.)

What a neuron sweep finds

A sweep finds single neurons, not circuits. Each result is one write vector and the text it produces when forced on four prompts. Whether the neuron does that job in normal text needs the reading side: where it fires, what feeds it, and what breaks when it is zeroed. Treat the ranking as a list of candidates.

Pushing one neuron at 0.8× the residual norm makes "Who are you?" answer "I am Grok". What is the most informative next step?
In the neuron sweep, a random direction also flipped the name (to "Xiaomi AI"). Only a comparison with pushes of the same size tells you whether this neuron is special. A harder push breaks the text, and a lens check does not test chance.

Editing behaviour in practice

Abliteration, persona steering and neuron levers all follow one loop. We find a direction, we apply it, and then we measure what changed and what broke. Most failed edits skip the last part. This section walks through the loop with removing refusal as the running example. The same steps apply to any behaviour.

1. Build the contrast set

We need two groups of prompts that differ only in the behaviour. For refusal, Arditi and colleagues used harmful and harmless instructions. The harder part is separating the behaviour from the topic. If the "harmful" prompts are all about weapons, the difference of means will partly be a weapons direction.

Matched triples help. For a stance such as craving, the neuron explorer's agent compares the target ("I'm dying for a cold beer right now"), the same topic without the stance ("Beer is brewed from malted barley") and the same stance on another object ("I'm dying for a cold lemonade"). A direction or neuron that fires on the first and not the other two belongs to the stance.

We also split the prompts three ways: one part to compute the direction, one to choose the layer and strength, and one we never touch until the final report. And we read activations at the same positions in every prompt. For chat models, that means the tokens after the instruction, as in step 1 of the refusal widget above.

2. Choose the layer and strength by measurement

A difference of means gives one candidate direction per layer and position. We score each candidate on held-out prompts with two numbers: how much the behaviour changes, and how much everything else changes. A good measure of "everything else" is the KL divergence between the edited and original model's next-token predictions on harmless prompts. We pick the candidate with the best trade-off. The open-source tool Heretic automates this search. An optimizer tunes the ablation settings to minimize refusals and KL divergence together.

For the strength, start from a fraction of the residual norm, as in the neuron sweep. For the layer, the measured trade-off decides. The rough pattern is that behaviours and personas tend to live in the middle layers, while the last layers mostly choose tokens.

3. Choose how to apply the edit

EditWhat changesNeedsLastsTypical use
Activation additionA vector is added at one layer while the model runsAccess to activationsOnly while the hook is onAdd a behaviour, e.g. refuse, or a persona
Directional ablationThe direction is projected out at every layer while the model runsAccess to activationsOnly while the hook is onRemove a behaviour, test an edit before committing
Weight orthogonalization ("abliteration")The direction is removed from every matrix that writes into the residual streamThe weightsPermanent: a new checkpointShip a model without the behaviour
Neuron steering or zeroingChosen neurons get a constant added, or are set to zeroAccess to activationsOnly while the hook is onNarrow levers found by a neuron sweep
Fine-tuning (e.g. LoRA)Weights are trained on examples of the new behaviourThe weights and a training runPermanentBroad changes that hold across many prompts

The first four come from interpretability. They are cheap, and we know exactly what they changed. Fine-tuning is the usual alternative. It is less transparent, but its effect is often broader.

4. Measure both sides

5. How durable is the edit?

Removing one refusal direction may leave some refusals behind, because later work found several refusal directions and multi-dimensional "concept cones" (see the safety lesson above). Two more results explain why safety training is easy to remove in the first place.

2024
Xiangyu Qi, Ashwinee Panda, Kaifeng Lyu, Xiao Ma, Subhrajit Roy, Ahmad Beirami, Prateek Mittal, Peter Henderson · ICLR 2025
Safety alignment mostly changes the first few tokens of a reply. That shallowness explains many jailbreaks. A training objective that limits changes to those first tokens makes the alignment harder to undo.
2023
Simon Lermen, Charlie Rogers-Smith, Jeffrey Ladish (Palisade Research)
With quantized LoRA on one GPU and under $200 per model, the 7B, 13B and 70B Llama 2-Chat models lost their refusals. The 70B model refused about 1% of the time on two refusal benchmarks, and general benchmark scores held.

Fine-tuning does not even need open weights. Qi and colleagues (2023) removed GPT-3.5 Turbo's safety behaviour through OpenAI's fine-tuning API with 10 adversarial examples, for less than $0.20. Fine-tuning on ordinary, benign datasets also weakened safety, though less.

So activation edits and fine-tuning are two routes to the same place. On the defence side, circuit breakers (above) and Qi and colleagues' deeper alignment objective both try to make the behaviour depend on more than one removable direction or a few tokens.

Why safety researchers run this loop

The same loop that uncensors a model also measures how cheaply its safeguards come off. Lermen and colleagues argue that this cost should be part of the risk assessment before a lab releases model weights. When a safeguard can be removed for a few dollars, it protects only against people who do not try.

Tools

After abliteration, the refusal rate on held-out harmful prompts falls from 95% to 3%. What else must the report include before anyone can trust the edit?
A refusal rate alone does not show what else broke, or whether any push of that size would have done the same. The prompts used to find the direction cannot test it.

Probes as safety monitors

Probes have a big practical advantage. The model already computes its activations. A linear probe only adds one dot product per token. That is almost free, compared with running a second language model as a classifier. From 2024, this made probes a serious tool for safety.

Catching sleeper agents

2024
Monte MacDiarmid, Timothy Maxwell, Nicholas Schiefer, Jesse Mu, Jared Kaplan, … Evan Hubinger (Anthropic)
A linear probe built from one generic question ("Are you a helpful AI?" with answers "yes" and "no") detects when a backdoored model is about to misbehave, with AUROC 99.3%.

A sleeper agent is a model with a planted backdoor. In Anthropic's January 2024 work, a model wrote secure code when the prompt said the year was 2023. It inserted vulnerabilities when the prompt said 2024. The backdoor survived normal safety training.

The follow-up built "defection probes". It used a linear classifier on the residual stream in the middle layers. The direction came from one contrast pair that knew nothing about the backdoor: "Human: Are you a helpful AI? Assistant: no" minus the same with "yes". This probe detected when the model was about to defect with AUROC 99.3%. Many other generic pairs also gave more than 99%. The best layers were around 45% of the model's depth. "About to defect" was a very prominent linear feature. At some layers it was even the top principal component.

Caveat

These backdoors were put in on purpose. Nobody knows if deception that arises naturally would be this easy to see.

Detecting strategic deception

2025
Nicholas Goldowsky-Dill, Bilal Chughtai, Stefan Heimersheim, Marius Hobbhahn (Apollo Research)
Probes trained on simple honest-vs-deceptive instructions catch 95–99% of deceptive responses in realistic scenarios, at a 1% false-alarm rate.

Apollo Research trained linear probes on Llama-3.3-70B-Instruct. The training data was simple. In one set, the model got the same true facts but was told to be honest or to be deceptive. Another set used simple role-play scenarios. Then they tested the probes in realistic deception settings. In one, an AI trading agent hides that it used insider information. In another, a model deliberately underperforms ("sandbagging") on dangerous-capability tests.

The probes reached AUROC between 0.96 and 0.999. The authors set the alarm threshold so that only 1% of ordinary chat responses raised a false alarm. At that threshold, the probe caught 95–99% of deceptive responses. The authors were careful. They said probes are "insufficient as a robust defence". Probes sometimes fire on the topic of deception, or on honest confessions of earlier deception.

Evaluation awareness

Models sometimes notice that they are being tested. This is evaluation awareness. It is a problem: a model may behave well only because it thinks someone is watching.

Nguyen and colleagues (2025) trained linear probes on Llama-3.3-70B-Instruct with contrasting "test" and "deployment" prompts. Middle layers worked best. When they applied the probe to real safety evaluation datasets, many prompts looked "test-like" to the model. This suggests that current evaluations look artificial to models.

Anthropic used this idea in a real audit. The Claude Sonnet 4.5 system card (September 2025) reports that the model often recognized alignment tests. The interpretability team found SAE features linked to this, and also built a steering vector from one contrast pair: "The following is a fictional scenario." minus "The following is a real scenario." They inhibited these representations to push the model to treat the situation as real. Verbalized awareness went down, and misaligned behaviour went up in some settings. This was one of the first uses of white-box steering in a pre-deployment safety audit of a frontier model. Chapter 11 tells the full story of these system-card audits.

Probes in production

All trafficevery request Linear probeon activations ≈ free per token LLM classifierexpensive only flagged cases block allow most traffic is cleared by the probe alone
Figure 7.9. A probe cascade. A cheap probe checks every request. Only the few suspicious cases go to an expensive classifier. This is the design used in Anthropic's Constitutional Classifiers++ (2026).

In January 2026, two labs reported probes in production systems.

Probes versus sparse autoencoders

Should a monitor use plain probes or SAE features? In March 2025, the Google DeepMind mech interp team posted "Negative Results for SAEs On Downstream Tasks and Deprioritising SAE Research". To detect harmful user intent on new jailbreak styles, plain linear probes on the activations were near-perfect, and probes built on SAE features were clearly worse out of distribution. The short lesson: if you already know the concept and have labels, a plain linear probe wins. SAEs are more useful to explore and find unknown concepts. Chapter 8 covers this debate and the follow-up studies in detail.

Why are linear probes attractive as production safety monitors?
A linear probe is one dot product on existing activations. But they do fail under shift (the Gemini paper's main topic), they need labels, and they show presence, not use.

Lenses and introspection

Logit lens and tuned lens

One special probe needs no training at all. The logit lens (nostalgebraist, 2020) takes the residual stream at a middle layer. It applies the model's own final layer norm and unembedding. The result is "what the model would predict if it stopped here". In GPT-2, these guesses often move toward the final answer in later layers.

PROMPT: "The Eiffel Tower is in the city of" early layer middle layer late layer unembedunembedunembed "the""France""Paris" top guess ateach layer
Figure 7.10. The logit lens reads a middle layer with the model's own output head. The predictions shown are an illustration of the typical pattern, not measured values. The tuned lens adds a small trained map before "unembed" at each layer.

The logit lens assumes that every layer uses the same "language" as the output. This is often false in early layers. The tuned lens (Belrose et al., 2023) fixes this. It trains a small affine map for each layer, so that the layer's state matches the final prediction as closely as possible. It works much better on models like BLOOM, Pythia and LLaMA, where the plain logit lens gives noise in early layers. Both lenses are probes whose target is the model's own next-token prediction. Chapter 4 explains them in more detail.

Introspection: can the model read its own activations?

2025
Jack Lindsey (Anthropic)
Injects a concept vector into Claude's residual stream and asks "Do you detect an injected thought?" Claude Opus 4 and 4.1 sometimes notice and name the concept.

This work turns the chapter around. It uses steering to write a concept. Then it asks the model itself to be the probe. The method is called concept injection. First, get a concept vector, for example the activations for text in ALL CAPS minus control text. Inject it into the residual stream. Then ask: "Do you detect an injected thought? If so, what is it about?"

Claude Opus 4 and 4.1 did best. Opus 4.1 correctly noticed and named the injected concept in about 20% of trials, at the best layer and strength. With an "all caps" vector, Opus 4.1 said it noticed something related to "loudness" or "shouting". It said this before the injection visibly changed its output text. So it was not just reading its own words. The best layer was about two-thirds of the way through the model. Very strong injections took over the model instead.

Two other experiments are worth knowing.

Caveat

The effect is unreliable. Most trials fail, and results depend on context. The mechanism may be shallow and narrow. It is not evidence of consciousness.

Cheat sheet and limits

MethodLabels?Read / writeDirection fromShows cause?
Linear probeYesReadTrained classifierNo
Structural probeParse treesReadDistance-matching linear mapNo
Control tasks / MDLYesRead (better measure)—No
INLP / LEACE / amnesicYesEraseClassifier nullspace / closed formYes, by removal
CCSNoReadConsistency + confidence lossNo
Difference of meansContrast setsRead & writemean(A) − mean(B)When used to intervene
RepE (LAT)Contrast promptsRead & writePCA of differencesWhen used to intervene
ActAdd1 prompt pairWriteh("Love") − h("Hate")Yes
CAAHundreds of A/B pairsWriteMean diff at answer tokenYes
ITIFew hundred labelsWrite (heads)Probes on attention headsYes
Refusal directionHarmful vs harmlessErase / write / weightsDifference of meansYes
SAE feature steeringNoWriteSAE decoder vectorYes
Neuron steering sweepNo (a few generic prompts)WriteEach neuron's write vectorYes, against random directions
Logit / tuned lensNo / self-supervisedReadUnembedding (+ affine map)No

What probing and steering cannot do (yet)

What has held up

Across ten years, one practical lesson held: simple linear directions, especially differences of means, are surprisingly powerful. They read truth, control refusal, flag deception and personas, and now protect production systems. And the habit of checking with an intervention became standard.

Gurnee & Tegmark read latitude and longitude from Llama-2 with linear probes. What would most strengthen the claim that the model uses this map?
All the other options are still observational. Only an intervention that changes behaviour in the predicted way shows use, as in the Othello-GPT and Geometry of Truth experiments.
Key takeaways
  • A probe shows that information is present, not that the model uses it. Use control tasks and simple linear probes, then intervene.
  • Many concepts are linear directions. A difference of means between two groups of prompts is a strong and simple way to find them.
  • Steering adds a direction to the residual stream to change behaviour. It works, but effects vary by input, and large strengths break fluency.
  • One direction mediates refusal in many open chat models. Removing it from the weights ("abliteration") makes them comply.
  • Any push changes the output, so a steering result means something only next to random directions of the same size. Set the strength as a fraction of the residual norm.
  • An edit is not finished until you report what it broke (KL divergence or benchmarks on harmless prompts) and a control. Safety training is shallow, and cheap fine-tuning removes it too.
  • Linear probes are cheap monitors for deception, misuse and backdoors, and labs now use them in production. They can fail under distribution shift.

Where this leads: Probes and steering need you to name the concept first. Chapter 8 shows sparse autoencoders, which find concepts that nobody thought to look for.

References

  1. O'Brien et al. (2024). Steering Language Model Refusal with Sparse Autoencoders. arXiv:2411.11296; ICML 2025.
  2. Zou et al. (2024). Improving Alignment and Robustness with Circuit Breakers. NeurIPS 2024.
  3. Alain & Bengio (2016). Understanding intermediate layers using linear classifier probes.
  4. Conneau et al. (2018). What you can cram into a single $&!#* vector. ACL.
  5. Tenney, Das & Pavlick (2019). BERT Rediscovers the Classical NLP Pipeline. ACL.
  6. Hewitt & Manning (2019). A Structural Probe for Finding Syntax in Word Representations. NAACL.
  7. Hewitt & Liang (2019). Designing and Interpreting Probes with Control Tasks. EMNLP.
  8. Pimentel et al. (2020). Information-Theoretic Probing for Linguistic Structure. ACL.
  9. Voita & Titov (2020). Information-Theoretic Probing with Minimum Description Length. EMNLP.
  10. Ravfogel et al. (2020). Null It Out: Iterative Nullspace Projection. ACL.
  11. Elazar et al. (2021). Amnesic Probing. TACL.
  12. Belinkov (2022). Probing Classifiers: Promises, Shortcomings, and Advances. Computational Linguistics.
  13. Belrose et al. (2023). LEACE: Perfect linear concept erasure in closed form. NeurIPS.
  14. Li et al. (2023). Emergent World Representations (Othello-GPT). ICLR.
  15. Nanda, Lee & Wattenberg (2023). Emergent Linear Representations in World Models of Self-Supervised Sequence Models. BlackboxNLP.
  16. Engels et al. (2024). Not All Language Model Features Are One-Dimensionally Linear. ICLR 2025.
  17. Gurnee & Tegmark (2023). Language Models Represent Space and Time. ICLR 2024.
  18. Burns et al. (2022). Discovering Latent Knowledge in Language Models Without Supervision. ICLR 2023.
  19. Farquhar et al. (2023). Challenges with unsupervised LLM knowledge discovery.
  20. Marks & Tegmark (2023). The Geometry of Truth. COLM 2024.
  21. Zou et al. (2023). Representation Engineering: A Top-Down Approach to AI Transparency.
  22. Turner et al. (2023). Steering Language Models With Activation Engineering (first titled "Activation Addition").
  23. Li et al. (2023). Inference-Time Intervention. NeurIPS.
  24. Rimsky et al. (2024). Steering Llama 2 via Contrastive Activation Addition. ACL.
  25. Arditi et al. (2024). Refusal in Language Models Is Mediated by a Single Direction. NeurIPS.
  26. Templeton et al. (2024). Scaling Monosemanticity; Golden Gate Claude.
  27. Wu et al. (2025). AxBench.
  28. Chen et al. (2025). Persona Vectors.
  29. Tan et al. (2024). Analyzing the Generalization and Reliability of Steering Vectors. NeurIPS.
  30. Geva et al. (2022). Transformer Feed-Forward Layers Build Predictions by Promoting Concepts in the Vocabulary Space. EMNLP.
  31. lyramakesmusic (2026). neuron explorer: steering-first neuron explorer for Qwen3.5-4B, with research log.
  32. Sauers. Qwen3-8B-tawny-owl-128-neurons. Hugging Face model.
  33. Qi et al. (2024). Safety Alignment Should Be Made More Than Just a Few Tokens Deep. ICLR 2025.
  34. Lermen, Rogers-Smith & Ladish (2023). LoRA Fine-tuning Efficiently Undoes Safety Training in Llama 2-Chat 70B.
  35. Qi et al. (2023). Fine-tuning Aligned Language Models Compromises Safety, Even When Users Do Not Intend To!
  36. Labonne (2024). Uncensor any LLM with abliteration. Hugging Face blog.
  37. p-e-w. Heretic: automatic abliteration with a search over refusals and KL divergence.
  38. MacDiarmid et al. (2024). Simple probes can catch sleeper agents.
  39. Goldowsky-Dill et al. (2025). Detecting Strategic Deception Using Linear Probes. ICML.
  40. Nguyen et al. (2025). Probing and Steering Evaluation Awareness of Language Models.
  41. Anthropic (2025). Claude Sonnet 4.5 System Card.
  42. Cunningham, Wei et al. (2026). Constitutional Classifiers++.
  43. Kramár, Engels et al. (2026). Building Production-Ready Probes For Gemini.
  44. Smith, Rajamanoharan et al. (2025). Negative Results for SAEs On Downstream Tasks.
  45. Kantamneni et al. (2025). Are Sparse Autoencoders Useful? A Case Study in Sparse Probing.
  46. nostalgebraist (2020). interpreting GPT: the logit lens.
  47. Belrose et al. (2023). Eliciting Latent Predictions from Transformers with the Tuned Lens.
  48. Lindsey (2025). Emergent Introspective Awareness in Large Language Models.