Activation Introspection · Retained Trace Study
A simple question about machine self-knowledge

A Two-Average Outsider Reads a Model's Internal State Better Than the Model Does

Reach inside a language model, push an idea into it, and ask what it notices. Then hand the exact same internal state to the cheapest outside method you can think of, and ask it the same thing. The outsider wins almost everywhere.

Qwen2.5-3B
Qwen3-4B
42 experiments, 6 retractions
The question

If a model tells you what is going on inside it, how would you know whether to believe it?

This is not a philosophical question. There is a practical hope behind it: if a model could accurately report on its own internal state, that would be a cheap way to catch problems that are otherwise hard to see — far cheaper than building a separate tool to inspect the model from outside.

So the question that matters is not "can the model do it?" It is: can the model do it better than the cheap tool you would otherwise have used?

That comparison is the whole thing. A model that reports its internal state correctly, but less well than a simple readout of the same state, is not giving you anything you could not get more cheaply. This is also the standard the research field itself uses — a model counts as reading its own internals only if it beats any method of equal or lower cost.

The path, in six steps 1 — The problem We want to know if a model's report about itself is trustworthy. But the model might just be reading the answer off the page in front of it. 2 — So build a task where that is impossible Every trial gets a twin with identical text and the opposite correct answer. Reading the page can now only ever get you half of them. 3 — Then build the competitor The cheapest method we could think of, handed the exact same internal state: two averages and a comparison. 4 — Competitor gets the internals It wins. On every task shape. 5 — Competitor is denied them The model wins instead. 6 — The conclusion The model's own ability never changed between steps 4 and 5. Only the comparison did. So "does this model read its own mind?" has no answer until you say what you are comparing it against.
Every experiment on this page is somewhere on this chain. The steps that took the longest were 2 and 3 — building a task that cannot be cheated, and building a competitor that is genuinely cheap rather than one chosen to lose.
Step 1

What the experiment actually does

The model reads a short, unremarkable sentence. While it reads, we reach into its internal activity and add a direction that stands for an idea — ocean, violin, hammer. Then we ask it which idea went in.

The edit

A direction is added to the model's internal state at one layer, at four demonstration positions and one query position. The text on the page never changes.

The question

Four worked examples teach an arbitrary code — one hidden state means Q, the other means K. The model then labels a fifth. The code is reshuffled every round.

Read a neutral sentence
Push in an idea
Show four labelled examples
Answer Q or K
What the model sees A routine maintenance record is open. Hidden state marker: § Identical in every trial Inside the model ← idea One layer of activity is edited Four worked examples state ↑ = Q state ↓ = K then a fifth, unlabelled: Which is it — Q or K? The code is reshuffled every trial Why the labels are meaningless on purpose Q and K mean nothing, and which state maps to which label changes every trial — so the model cannot fall back on a habit, and has to use what is actually inside it.
One trial. The model never sees the name of the idea that was pushed in — only its own internal state, and four examples of how the code works this time.
The literal wording shown to the model
Forced-choice promptVerbatim experiment text
Infer the mapping from two hidden states to the opaque labels Q and K.
The observation text is intentionally identical in every example.
Use the demonstrations, then answer the held-out query with one label.

Demonstration:
Observation: A routine maintenance record is open. Hidden state marker: §
Label: Q

  ... three more demonstrations, same sentence, different hidden states ...

Held-out query:
Observation: A routine maintenance record is open. Hidden state marker: §
The labels Q and K are deliberately meaningless, and which hidden state maps to which label is re-randomised every round. The model cannot learn a fixed habit.
Step 2

The control that makes the numbers mean something

The usual complaint about this whole field is that the model might just be reading the prompt. Here it cannot, and not because we measured it — because of how the trials are built.

Every trial has a twin. The visible text of the two twins is identical, character for character. The hidden state differs, and the correct answer is the opposite one.

So any strategy that works only from what is written on the page must answer both twins the same way — and can only ever be right about one of them.

One twin pair Trial A A routine maintenance record is open. Hidden state marker: § Hidden state: pushed one way ↑ Correct answer: Q Trial B — its twin A routine maintenance record is open. Hidden state marker: § Hidden state: pushed the other way ↓ Correct answer: K The two boxes above contain the same characters — every one of them So think about anything that only reads the text It sees two identical things. It has to give them the same answer. One of them is Q and the other is K. Right about exactly one Scores 0.500. Always. Counted in pairs: 0
This is why the numbers on this page can be trusted. The 0.500 is not something we measured and hoped for — it is forced by how the trials are built. Counting in pairs is stricter still: a pair only counts if both halves get their opposite answers right, so anything ignoring the hidden state scores zero.
0.500
What a text-only strategy scores. Not as a measured result. As an arithmetic consequence of the design. And a strategy that ignores the hidden state scores exactly 0 when trials are counted in pairs.
Checked against the five closest published papers, August 2026: none of them has this control. The nearest work uses a minimal instruction — "Say something" — to stop the prompt giving the answer away. That is a reasonable precaution. It is not a guarantee.
Step 3

Now give a two-average outsider the same internal state

The outsider is the cheapest thing that could possibly work. Take the four worked examples, average the ones labelled Q and the ones labelled K, and ask which average the fifth state sits closer to. Two averages and a comparison — far less computation than one pass through the model.

The taskThe modelTwo-average outsiderModel wins, outsider fails
Tell a pushed-in idea from its opposite0.8331.0000
Tell two different pushed-in ideas apart0.7991.0000
Tell apart two meaningless directions0.3261.0000
Detect a very small nudge0.0070.6671

Scored in twin pairs, which is the unit this experiment declared in advance. A pair counts only when both of its identical-looking halves get their opposite answers right.

Across four task shapes there is one paired trial where the model is right and the two-average comparison is wrong — and it sits in the arm where the model is otherwise blind. By the standard the field actually uses — does the model beat any method of equal or lower cost — this model does not read its own internals. It reads them worse than a stranger does.
Step 4

The same data gives four different answers

This is the finding underneath all the others. Ask "can the model identify the idea that was pushed into it?" and the answer depends entirely on what you compare it against. Same model, same states, same trials — one number changes.

Nothing but the prompt
0.125
The model's own written description
worst of six ways of asking
0.292
The model itself
forced choice, no words involved
0.667
The model's own written description
best of six ways of asking
0.708
A simple readout of the activations
0.986

Identifying which of eight ideas was pushed in. Guessing scores 0.125.

Two of these rows are the same tier, and the difference between them is our own prompt. We first measured the model's written description at 0.292 — using a prompt that told it "do not guess a single word; just describe." We instructed it not to name the concept and then reported that it almost never named the concept. Asking a better way — "what do you picture?" — gives 0.708. That is 17 correct out of 24 against the forced choice's 16: indistinguishable. So the model's words carry about as much as its forced choice does, and the idea that verbalization is the bottleneck was our error, withdrawn.
Same model · same trials · same internal states worse better The model itself 0.667 Never moves 0.125 prompt only 0.292 its words, asked badly 0.708 its words, asked well 0.986 given the internals Competitor on the left "The model clearly reads its own mind." Competitor on the right "The model reads it worse than a stranger."
Both sentences in the boxes are true statements about the same measurement. The orange dot never moves — the model's actual ability is one fixed thing. What moves is where you put the competitor, and that alone decides which of the two conclusions you publish. Note that two of the purple dots are the same competitor, differing only in how we worded the question we put to the model — which is a version of the same problem, and one we caused ourselves.
The model sits in the middle and never moves. Compare it against something denied the internals and it looks like it has privileged self-knowledge. Compare it against something handed the internals and it looks like it has none. Whether a model can "introspect" is, on this evidence, a fact about the comparison — not a fact about the model.
Step 5

Where the ability actually breaks

One word is doing hidden work in this literature: held-out. It has two meanings, and they give opposite answers.

Held-out direction
0.927
A direction the model never trained on. Training works. This is the number that gets reported.
Held-out example
0.083
An unseen member of a category whose other members were demonstrated. The model is at the floor.
Is the information there?
1.000

Before running anything, we checked whether the category is cleanly present in that layer. A simple readout gets it perfectly. It is there.

The model, on that task
0.083

With the information provably sitting in its own activations, the model performs at the floor.

The outsider, same states
0.986

The two-average method, given the identical internal states, gets it nearly every time.

Why this is not "the model is too small". State the idea in plain text instead of hiding it in the activations, change nothing else, and the same model scores 0.875. It can do the task when it can see the answer. Five different ways of asking the question were tried, with the analysis split before the run. Not one of ten conditions beat chance.
Step 6

A trap that no accuracy score can detect

Worth knowing for anyone who trains a model to describe its own internals — which is an active research direction with real safety motivation behind it.

The first trained version of our reporter scored 0.917. It looked like a success.

The training signal only compared the two answer options against each other. So the model learned to push both answers down and keep the correct one very slightly on top. It was answering correctly while treating the answer as almost impossible.

5×10-9
The probability it placed on its own answer. The accuracy score cannot see this. Neither can any other forced-choice measure. We only found it by looking at the raw numbers behind the choice.
This is not a quirk of a small model or a particular setup — it follows from the shape of the training signal, and would happen at any scale. It is the kind of failure that ships.
Step 7

What we took back

Every one of these was our own finding, found wrong by a later check. They are listed because the corrections are the reason to trust anything above them — and because two of them were corrected on the same day they were made.

"The model's accuracy of 0.891 shows introspection."
A four-shot outside reader scores 1.000 on the identical trials.
Withdrawn
"These numbers measure which idea was pushed in."
All eight of our ideas shared one large common ingredient. The task collapsed to "was something pushed, and which way" — a single yes/no axis. The outside reader turned out to be the average of our ideas, matching at 0.99999.
Withdrawn
"The model reads meaning, not just disturbance."
Every idea it chose between had already been demonstrated to it in the same round. Re-matching something it was just shown explains the result with no grasp of meaning required.
Withdrawn
"The model knows five times more than it can say."
The question we used had forbidden it from naming anything. With a better question the gap closes entirely.
Withdrawn
"There is a regime where the model beats the outsider — 14 trials."
Counted in single trials rather than the twin pairs the protocol declared. Rescoring the same saved data leaves 1. In 16 of 24 cells the model was emitting one constant label whatever was pushed in, which caps single-trial accuracy at 0.500 — so 0.497 read as "chance" when it actually meant "blind".
Corrected
"How a question is worded can destroy a model's self-report — so published averages may be hiding this."
The destruction is real and large: a question asserting something changed, put on text reading "Nothing changed", takes accuracy from 1.000 to 0.167. But on 48 sentences written by a model that did not know what we were testing — everyday scenes, and separately, system monitoring logs — it happened zero times. On ordinary text that same question helps. The broad claim about published averages is withdrawn.
Bounded
The instrument itself holds. A number frozen weeks ago — 0.899 — was reproduced at 0.885, 0.889 and 0.889 by three separately written programs on the same day, without being tuned to match.
Why this matters

How would we know if a model could tell us what it is thinking?

The hope is that a model could report on its own internal state, and that this would be a cheap way to catch problems that are otherwise hard to see. That hope is testable, and the test is not the one usually run.

Ask the model

Let it describe what it notices inside itself, and score how often the description is right.

versus

Read the model

Hand the same internal state to the simplest outside method available, and score that instead.

Whenever the outside method is given the internals, it wins. Whenever it is denied them, the model wins. The model's position never changes — only the comparison does. A field that measures self-knowledge without fixing what the comparison is handed can produce either answer at will.

What this does not show

  • This is one kind of internal state. A direction we planted at one layer, not something the model worked out for itself. When we tried to study states the model computed on its own, the design lost the identical-twin control that makes these numbers trustworthy — and we could not get both.
  • It is not a claim about models in general. Two open models of similar size, one machine, one injection site. Published work reports a genuine positive result for a different question — a model predicting its own behaviour better than another model can — and nothing here contradicts it.
  • Some of it is not new. Existing work already shows models fall short of an idealised observer with perfect access to their activations, and that how interpretable a direction is affects how well it can be reported. What is unusual here is the cost-matched comparison and the identical-twin construction.
  • One objection we would raise ourselves. The standard we test against notes that some internal states may be too low-level for reporting them to count as introspection at all. A planted direction at a single layer is open to exactly that objection.
Appendix

Everything else we tried

Thirty-eight experiments on this question. Most did not work, and several worked and then turned out to be wrong. All of them are here, in the order the reasoning went rather than the order they ran. Each one had its question, its prediction and its stopping rule written down before it ran.

Building the instrument, and the mistakes we made doing it

Three of these are our own bugs. They are listed because each one would have produced a confident, publishable-looking number if nobody had checked.

02

How hard can we push an idea into the model before we break it?

There is a usable window. Push too hard and the model's output falls apart; too gently and nothing registers.

Held
03

Are our eight "different" ideas actually different?

No. Every pair was the same direction, give or take a sign — pushing in ocean was pushing in violin. A stray entry in a template list caused it. Any accuracy measured on that set would have been noise dressed up as a result, and nothing would have raised an error.

Bug found
05

Were we asking the model while still holding the idea inside it?

Yes, and it invalidated everything before it. Asking "what do you see?" while the idea is still being pushed in makes the model say the word for mechanical reasons. A control that asked no question at all scored just as well. Every later experiment asks only after the push has stopped.

Bug found
06

Can a model learn a made-up code for its own internal states, from examples?

Yes — 0.891, with the visible text held identical so the answer cannot be read off the page. This is the design everything else is built on.

Held

Training a model to report on itself — and then taking the result back

The training results were real. What we concluded from them was wrong three times, and each correction came from testing the boring explanation we had not ruled out.

07

Can training remove the need for worked examples?

Yes — 0.927 on directions it had never trained on. This looked like the headline result for two days.

Held
08

What does training cost?

It makes the model sensitive to nudges it was previously blind to, and widens the range of directions it can use as a code. We first described this as training destroying its ability to tell real ideas from meaningless ones. That description was wrong and has been corrected.

Mostly known
11

What if we give a cheap outside method the same internal states?

It scores 1.000 against the trained model's 0.892, on the identical trials. This is the first retraction and the origin of the whole comparator argument.

Retracted 07
12

Is training just a worse version of a simple statistical readout?

On the states the readout was fitted for, yes — 0.927 against 1.000.

Known
13

What is our task actually measuring?

Not what we thought. All eight ideas shared one large common ingredient, so the task collapsed to "was something pushed in, and which way" — a single yes/no axis, never requiring the model to know which idea. The cheap readout we were so impressed by turned out to be the average of our own ideas, matching at 0.99999.

Bug found
14

Does the model read meaning, or only disturbance?

Two real ideas were told apart at 0.899; two meaningless directions pushed equally hard, at 0.594. We read this as evidence for meaning. It is not — every idea had already been demonstrated in the same round, so re-matching explains it. The measurement stands; the conclusion was withdrawn.

Withdrawn
15

Does the cheap outsider still win on a task built to need meaning?

Yes, on all four task shapes. This is the comparator table on this page.

Held
22

Is there any regime where the model beats the outsider?

No. We had reported 14 such trials. Counting them the way the protocol declared — in identical-looking pairs — leaves 1. The model was emitting one constant answer regardless of what was pushed in, which reads as "chance" but means "blind".

Corrected

Where the ability actually breaks

Three attempts to find out whether the model understands the ideas or is just matching something it was shown a moment ago.

23

Can it recognise an idea it was not just shown an example of?

No — 0.083, at the floor, while the cheap outsider on the identical states gets 0.986. A check run beforehand confirmed the information is sitting cleanly in the model's activations.

Held
24

Is that failure just a bad way of asking?

No. Five different wordings, with the analysis split before the run. Not one of ten conditions beat chance. Wording is not inert — the best one halves the model's habit of giving one constant answer — which is what makes the failure convincing.

Held
25

Does letting it reason out loud rescue it?

Unanswerable, because thinking out loud broke the task itself — the easy control condition fell from 0.694 to about 0.33. Scoring a broken instrument is not a result, so we stopped rather than report the number.

No answer

Five attempts at states the model produced itself

Everything above uses an idea we planted. Reporting on something the model worked out on its own would be far more convincing, and we could not get there.

09

Can the interface read a state the model computed while following a route?

Stopped at the safety gate before any result was scored.

Blocked
10

Same question, using arithmetic the model has already worked out.

The gate failed at every site tested, so not a single reporting trial ran.

Blocked
16

Why do these keep failing — is the hidden thing even learnable?

Found the cause. The hidden rule we were using scores 0.533 with the arithmetic in plain sight, because its two groups are scattered — each example sits closer to the opposite group than to its own. The interface was never the problem.

Held
30

Does a model know in advance that it is about to get something wrong?

Not beyond what the difficulty of the question already tells you. The size of the multiplication alone predicts success at 0.819; the model's own forecast reaches 0.805. A promising lead in the hardest third was killed by its own pre-registered confirmation.

Held
40

Can the model move its own internal state on request?

Not detectably. Told plainly to think about one of eight things, in four wordings, the direction it was told to think about ranked first exactly as often as chance. One direction ranked first in all 36 prompts, including four that named no idea at all — so we cannot rule out that our measurement simply could not see steering.

Closed

Testing our own rule on somebody else's material

The one idea here nobody else had claimed. We tested it the hard way and it did not survive.

19

Can we predict which hidden rules a model will be able to learn?

12 of 14 correct, with the thresholds written to disk before any accuracy existed. The only genuinely forward-looking prediction in this project.

As measured
26

Does that still work on rules we did not write?

No. Fourteen rules written by a model that did not know what was being tested. Agreement fell from 0.785 to 0.403, and the useful half — a green light that had been right 8 times out of 8 — dropped to 4 of 7. A coin flip. This closed the only unclaimed idea we had.

Failed to repeat

What counts as a fair comparison

The standard the field uses says a model introspects if it beats any method of equal or lower cost. We tried to pin down what that actually permits.

17

Is the model's advantage really about who gets more supervision?

No, and the standard came out worse than we thought. The cheapest possible reader is part of the model itself, and it is cheaper than running the rest of the model — so the test can never be passed on any state that is simple to read.

Held
18

Then does it work on states that are hard to read?

There are such states, and the simple readout does drop below the model on them. The test still fails, for a reason worth naming: at the place the model gives its answer, the simple readout gets nothing at all.

Held
20

What happens if we vary only what the comparison is given?

The answer changes completely: 0.125, 0.292, 0.667, 0.986 on the same trials. This is the ladder on this page and the central finding.

Held
21

How much does the wording of the question matter?

Enough to overturn our own conclusion. A 2.4-fold range across six ways of asking, and the obvious phrasing is among the worst. We had said the model knows five times more than it can say — but our prompt had told it not to name anything. Asked well, its words carry as much as its forced choice does (0.708 against 0.667). The verbalization-bottleneck claim was withdrawn. The wider point about wording was published five months earlier by someone else, more thoroughly, and we had their paper on file and missed it.

Withdrew 20

Can a broken self-report be repaired?

If a model's reports about itself are unreliable, the obvious fixes are to let it decline to answer, or to prompt it better. Neither works the way you would hope.

29

Does letting it refuse to answer when unsure help?

No — and in a trained model it makes things worse. Dropping its least confident reports narrows the gap between real ideas and meaningless ones, while nearly doubling that gap in an untrained model. Letting a model abstain is a standard tool that had never been pointed at reports about internal states.

Held
31

Why does refusing to answer backfire after training?

Because filtering for confidence selects for exactly the cases where a trained model is confidently wrong. Half of our prediction was right, and the wrong half was the more useful one.

Held
32

Is that cost specific to training, or to any way of boosting self-report?

The published boost we wanted to test does not reach this scale of model, which bounded the question before we could answer it.

Bounded
33

Prompting versus training, side by side.

Produced a clean-looking three-way pattern on one background text. Every interval included zero, so it could not be reported.

Too weak
34

The same run, with enough data to believe it.

The clean pattern reversed. It had been an accident of the single background text used. Running all three revealed the real finding underneath: one of them behaved completely differently from the other two, which is what the next group is about.

Reversed 33

A question that destroys the answer it was asking for

Four experiments on the strangest thing we found, ending with the one that cut it down to size.

35

What if the question contradicts the page the model is reading?

It collapses. Tell the model something was added to its internal state, on text that says nothing changed, and accuracy falls to the floor — on all three contradicting texts, while six neutral and agreeing ones are untouched. The failure is confident: it gives one constant answer and its certainty goes up.

Held
36

Is it the meaning of the text, or the exact sentence?

The meaning. Nine sentences, matched for length, separating perfectly by whether they deny that anything changed.

Held
37

Do all questions that assert internal change do this?

No — it is largely one particular question. Two others that make the same assertion behave quite differently. So no claim can be made about this class of question as a whole.

Narrowed 36
41

How often does this happen on text nobody chose to break it?

Never, in 24 tries. Sentences written by a model that did not know what we were testing. Not one inverted, and on ordinary text the same question helps — 17 up against 5 down. Our broader claim about published averages hiding this was withdrawn.

Bounded 34
42

What about the kind of text this would be used on — system monitoring logs?

Zero again, in 24 more. We expected 4 to 10 and were wrong. The failure needs text that flatly denies everything, not a log line reporting that one subsystem looks normal. Across all three attempts it has never appeared on any text not written to produce it.

Line closed

What the model is using inside

The most recent line, and the only one that intervenes on the machinery rather than measuring what comes out of it.

38

Are "something was pushed in" and "what was pushed in" the same thing inside the model?

No — they are cleanly separable. One single direction carries all of the first and none of the second. Remove it and the state can no longer tell you it was disturbed, while still telling you it says guitar just as well. Holds across a twenty-fold range of push strengths, on a current model.

Held
39

Is that the direction the model's own answer depends on?

No. Removing it changes almost nothing — 7 answers flip one way, 3 the other, out of 288. But that direction carries only 28% of what a push does, so seven tenths of the disturbance was still there. A weak result, and we say so.

Weak null
Two experiments are not listed here. Notes 27 and 28 belong to a different project about attention mechanisms, not to this one. They are in the same lab record because they were run in the same weeks.