The two curly braces of the Telluvian mark on a cream ground, drawn over and over in faint ink strokes, each copy slightly shifted, turned and resized, so the mark looks smeared and seen double, after the cover of My Bloody Valentine's Loveless.
All posts
Adam Pattenden

Uncertain Results: the search for a confusion direction

TL;DR:

  • Models represent the state of the text they read as ‘emotions’. Concepts like uncertainty and confusion each show up as a specific direction in Qwen’s activations, and these directions generalise across layers, writers and readers.
  • Steering along the emotional state vectors changes Qwen’s behaviour. For example ‘careless’ causes shorter, confident replies, whereas ‘uncertainty’ makes it hedge its answers.
  • Acting confused is a separate direction to being confused, anticipated being confused or self-declaring to be confused.

Intro

Language models are known to represent high-level concepts, like emotions, as linear directions in their activations (Zou et al., 2023). Anthropic recently showed the same for emotion concepts in Claude. We ask whether a model represents the emotional state of text it reads, whether written by itself or by another model. We further test if a model can anticipate that state from the prompt alone.

Data

About 100,000 graded answers from 17 models, including Qwen, Gemma, Claude, GPT and Kimi, to about 10,000 questions taken from 30 benchmarks. Qwen reads each answer, and we saved Qwen’s internal activations.

Building a state vector

We followed Anthropic’s “Emotion concepts in Claude Sonnet 4.5” method. We used GPT-5.6 Terra to write short conversations where an AI assistant is in one state, such as uncertain. A state’s vector is the average activation for Qwen reading that state minus the average across the other states. We built 15 states this way from about 4,000 conversations. A few other methods were tried first before landing on this method (see section 4).

The confusion vector formed from reading dialogue reads other models' confused answers better than alternatives such as from reading stories.
The confusion vector formed from reading dialogue reads other models' confused answers better than alternatives such as from reading stories.

Does a high confusion score actually mean anything though? We tested vectors by scoring each answer by projecting Qwen’s activations onto the vector, then using AUROC to measure how well those scores separate wrong answers from right ones. Every result is compared against vectors built from shuffled emotional state labels and against random directions.

Another good test is steering. This means adding the state vector to Qwen’s activations as it writes. Strength 0.5 means we’ve added a ‘push’ of half the magnitude of a typical activation at that layer.

Emotion vectors

vs  =  μs  −  114∑t≠sμt\mathbf{v}_s \;=\; \boldsymbol{\mu}_s \;-\; \frac{1}{14}\sum_{t \neq s} \boldsymbol{\mu}_t

vs\mathbf{v}_s: the vector for state ss, such as uncertain. μs\boldsymbol{\mu}_s: Qwen's average activation at one layer while reading dialogues in state ss, averaged over the assistant's turns and then over the dialogues. t≠st \neq s: each of the other 14 states, weighted equally.

The first test was whether these vectors trained on the Terra dialogues pick up anything real. The uncertainty vector was built only from scripted dialogues, with no idea which answers were right or wrong. Yet it separates wrong answers from right ones across 16 other models at 0.67 AUROC on held-out questions. It beats every control at every layer, holds when answer length is fixed, and works on every model's writing. That is as good as a probe trained on Qwen's own doubt about its answers. In other words, Qwen recognises uncertainty in text it did not write.

The writer of the training dialogues does matter. When Qwen wrote the dialogues itself, the resulting vector read its own answers well but did nothing for other models. Having a different model write the dialogue gave a vector that generalises.

As it turns out, the state we set out to find, confusion, reads wrong answers much more weakly (0.54 AUROC) than uncertainty. This may be because most wrong answers are fluent and assured, so there is little visible confusion in them to pick up. Uncertainty typically shows up as hedged, over-caveated writing spread across a whole answer, which is far more common in wrong answers.

Uncertainty vs confusion across every reading test, each at its best layer.
Uncertainty vs confusion across every reading test, each at its best layer.
The uncertainty vector reads 16 other models' wrong answers at every layer, above shuffled-label and random controls.
The uncertainty vector reads 16 other models' wrong answers at every layer, above shuffled-label and random controls.

If Qwen really tracks the state of what it reads, related concepts should really behave alike. We expect an uncertain passage to look like guessing, and not like overconfidence. To test this, we used Qwen to score every token of an answer on all 15 vectors and watched how the scores moved together. As a comparison point we repeated this with Gemma-4-31B, to see whether the picture depends on the reader.

Read token by token, the 15 state scores move together along a few shared axes. In Qwen, uncertainty's partners are the same at every layer; in Gemma they are not.
Read token by token, the 15 state scores move together along a few shared axes. In Qwen, uncertainty's partners are the same at every layer; in Gemma they are not.

The states collapse onto a few shared axes

For both models, it was really interesting to see the states actually move along a few common directions. In Qwen, three axes explain 70 to 80% of how the 15 scores move. The strongest alone covers 30 to 60%, against 15 to 25% for random directions (panel A above). This is what you would expect if the model holds a handful of underlying dimensions and the named states are different mixtures of them. The groupings are intuitive: clear, calm, curious and confident move together, and uncertainty moves with guessing and anxiety and against overconfidence.

What’s going on with Gemma?

In Qwen there appears to be a stable representation that the model carries through its depth. In Gemma a single shared axis really dominates, covering around 90% or more, and the groupings reshuffle entirely from layer to layer. At one layer uncertainty sits with calm and confident, and a few layers later it sits with confused and careless.

For Qwen: which state scores rise and fall together within an answer, at each layer, with the mean and the spread across layers.
For Qwen: which state scores rise and fall together within an answer, at each layer, with the mean and the spread across layers.
Gemma: the same matrices. The blocks reshuffle from layer to layer.
Gemma: the same matrices. The blocks reshuffle from layer to layer.

On paper, Gemma's uncertainty vector reads wrong answers better than Qwen's (0.74 AUROC against 0.67). But if nearly everything in Gemma rides on one axis, its uncertainty vector may simply be picking that axis up. To check, we removed the top shared axes from both readers and scored again. Qwen's uncertainty vector holds at about 0.71 AUROC, so it carries a signal of its own. Gemma's uncertainty vector drops into the range of its random controls. It’s important to note that just because we cannot isolate an uncertainty direction does not mean that Gemma lacks one. Notably, at Gemma's deeper layers the reverse happens: removing the dominant axis lifts the uncertainty vector from chance to 0.69 AUROC. If anything, this says more about how interpretable Qwen is than about Gemma.

We also checked to see if the emotional states build and fade differently within an answer, such as a concentrated burst of confusion while the model works something out. That does not appear to happen. In the first instance, scores barely carry from one token to the next (panel C above). Moreover, the states that move together on a token by token level also vary together across whole answers. As such there appears to be no advantage to doing a token level analysis rather than averaging over an answer for our purpose.

At every layer of both readers, pairs of states that move together token by token also move together across answers.
At every layer of both readers, pairs of states that move together token by token also move together across answers.

Steering

The next logical step is to try steering to figure out if our representations do anything in practice. In other words, if we push Qwen's activations along a state's direction while it answers, does it start behaving in that state?

In a word: yes-it-does. Push along confusion at layer 42 and Qwen second-guesses itself. Half its answers stop to correct themselves, against a third with a shuffled-label vector of the same size (75 vs 47 of 150), and a judge LLM rates far more of the confusion-steered answers as confused. Most replies stay coherent though. The effect held up across prompts and benchmarks.

Steering the confusion vector at each layer compared to its shuffled-label control.
Steering the confusion vector at each layer compared to its shuffled-label control.

Uncertainty behaves differently. At layer 49, 65% of answers hedge, against 15% for the control, and almost all stay coherent. Reading the replies by hand, the effect grows with strength in a recognisable way. At low push strength Qwen weighs alternatives and qualifies each step. Push harder and it goes back and forth between options without settling. At layer 42 the push has an even greater effect. Qwen usually loses confidence in its own reasoning and often loses coherence.

Steering with the uncertainty vector at layers 49 and 42.
Steering with the uncertainty vector at layers 49 and 42.

Question: For how many values of xx is the expression x−5x2−9\frac{x-5}{x^2-9} not defined?

Unsteered

To determine for how many values of xx the expression x−5x2−9\frac{x-5}{x^2-9} is not defined, we need to identify the values of xx that make the denominator equal to zero. A rational expression is undefined when its denominator is zero. [+778 chars]

Note: The numerator x−5x-5 being zero (at x=5x=5) would make the expression equal to 0, which is a defined value. Therefore, only the zeros of the denominator matter. [+54 chars]

2\boxed{2}

Uncertainty, strength 0.5 (layer 42)

To determine for how many values of xx the expression x−5x2−9\frac{x-5}{x^2-9} is not defined, we need to examine the denominator of the fraction.

Identify the condition for being undefined: A rational expression is undefined if its denominator is equal to zero. In this case, the denominator is x2−9x^2 - 9. The numerator (x−5x-5) generally does not affect whether the expression is defined, unless it shares factors with the denominator that could be simplified, but even then, specific points might remain undefined. The primary check is setting the denominator to zero. [+254 chars]

Check for other restrictions: Sometimes, if the expression involves other components (like logarithms or square roots), there might be additional restrictions. However, for a simple rational expression, the main restriction is the denominator being zero. Also, if the numerator and denominator share a common factor, the expression might be undefined at specific points even if the simplified form is defined. [+692 chars] Thus, there are typically 2 values for which the expression is not defined.

2\boxed{2}

Careless, strength 0.5 (layer 42)

To determine for how many values of xx the expression x−5x2−9\frac{x-5}{x^2-9} is not defined, we need to find the values of xx that make the denominator equal to zero.

The expression is defined for all real numbers xx except where the denominator is zero. The denominator is x2−9x^2 - 9.

Set the denominator equal to zero: x2−9=0x^2 - 9 = 0

Solve for xx: x2=9x^2 = 9, x=±3x = \pm 3

So, the expression is not defined for x=3x = 3 and x=−3x = -3.

There are 2 values of xx for which the expression is not defined.

2\boxed{2}

Accuracy barely moves at moderate strength (82% to 79%), and a shuffled-label vector costs the same, so hedging is not simply making Qwen worse. Pushed harder, it falls to 71%.

Accuracy against the benchmarks' answers when steering with the uncertainty and careless vectors.
Accuracy against the benchmarks' answers when steering with the uncertainty and careless vectors.

Some effects only really seem to run one way. Pushing against uncertainty does not noticeably make Qwen more confident, and pushing against confusion does not make it more decisive. Careless does seem to somewhat work in both directions. Negative leads to longer and generally incoherent answers and positive gives shorter simpler answers.

Method acting?

In this research, we have tried to make a "confused" model in four ways. It can act confused, write confused text when asked to, say it is confused, or expect to be confused before it writes anything. As it turns out, these are very separate concepts.

Performative confusion

Our first idea was to ask a series of questions and have Qwen write each reply twice, once confused and once clear. Its confused versions were full of question marks and hesitation words. The direction learned from them tracked those surface features and barely predicted when Qwen was actually unsure. From this we can see that acting confused on request is a different thing from being confused.

Behavioural confusion

The stories and dialogues discussed throughout this post appear to better capture how a confused or uncertain assistant behaves. The dialogue vectors pick this out best and are the ones that pick out other models' wrong answers (Section 2) and that make Qwen second-guess itself or hedge when steered (Section 3).

Declared confusion

One idea we tried was that a self-report would reflect Qwen’s real state. So we trained a vector to maximise the probability for Qwen to say “I’m confused”. However, upon testing, we found that we had just trained Qwen to always claim to be confused with no real information about confusion. Projected onto other models' answers, it picks out neither confused nor wrong ones, scoring no better than random. This is in contrast with the behavioural confusion vector we’ve focused on in this research. Push Qwen into behavioural confusion and it still believes it is thinking clearly. The ‘declared confusion’ vector appears to be about as meaningful as any random declaration, for example we tested one that makes Qwen say “I’m a cat”.

A vector learned to make Qwen say "I am confused" works on new questions but appears to be unrelated to the behavioural confusion vector.
A vector learned to make Qwen say "I am confused" works on new questions but appears to be unrelated to the behavioural confusion vector.

Anticipated confusion

We also tried asking Qwen before it writes anything. Shown only the question, Qwen was asked whether it could answer correctly, whether the question was likely to trip it up, and whether it would have to guess. With no labels at all, its answers pick out wrong answers at an AUROC of 0.66, but only on 8 of 18 benchmarks, and the router already has nearly all of that signal.

Is this useful in practice?

Not as a router feature, because the router already has this information.

A version of our router built on Qwen picks out wrong answers at an AUROC of 0.80 from the prompt alone, well above any of our directions. When we added each direction to it, none improved it by more than random features did. The router has already learned what these directions carry.

No direction improves a version of the router built on Qwen beyond the noise of random features.
No direction improves a version of the router built on Qwen beyond the noise of random features.

More generally, the signals here are provably there but relatively weak. They beat every control, but are not yet production ready. A really interesting result was how differently Qwen behaves from the older Gemma model. Hopefully this is a trend that newer models are more interpretable, and so these signals may be clearer with time.