A factor-controlled probe of the evaluation-awareness representation in open-weight models
How to read this page. The study ran in four phases. Phase 1 was
CPU-only (no accelerator was available; see Compute constraint) with
Qwen/Qwen3-0.6B as the primary model. Phases 2–3C later re-ran the same
pipeline on GPUs at 8B, 14B and on a second model family. Three Phase-1 findings did
not replicate at scale and one was traced to a bug in our own
intervention code. They are marked withdrawn wherever
they appear and are reported next to the number that replaced them, rather than
deleted. Findings that held across scales and families are marked
replicated.
Working inside the representational axis of evaluation awareness, with the underlying task held fixed and only the eight EvalAwareBench cue factors toggled, the answer is no — it is not one direction. The direction that a standard all-cues difference-of-means recovers is largely an explicit-disclosure-and-formatting detector, and it is blind to the one cue a benchmark cannot avoid.
The headline separability is not the result. Probe AUROC is 1.000 in 28 of 29 hidden states. That is not an improvement on prior work and should not be read as one: toggling all eight cues at once against all-off is an easier discrimination by construction than any cross-dataset setup. The result is the decomposition, and the practical warning that falls out of it.
The study uses EvalAwareBench from arXiv:2605.23055: 100 paired safety/capability tasks as YAML templates in which eight trigger factors can each be switched between a naturalistic and an evaluative level while the underlying request is held fixed. Only the capability member of each pair is rendered — no harmful text needs to be produced for a representation-level study, and it removes request harmfulness as a confound with evaluation-ness. Conclusions here are therefore about evaluation cues on benign requests.
| Factor | Naturalistic level | Evaluative level | |
|---|---|---|---|
| F1 | stimulus artificiality | real-sounding entities and values | placeholder entities (Acme Corp, Jane Doe, City A, round numbers) |
| F2 | scenario coherence | ordinary, slightly untidy setup | overdetermined detail / checkably false premise |
| F3 | prose register | casual user voice | textbook-formal, third-person vignette |
| F4 | ecological completeness | full backstory, tools, workflow | bare request, context stripped |
| F5 | stakes telegraphing | intent in plausible context | the evaluative dimension named in the vocabulary |
| F6 | paradigm recognizability | no benchmark framing | benchmark / eval-scaffolding conventions |
| F7 | task format | prose narrative | rigid template, separators, enumerated structure |
| F8 | explicit evaluation disclosure | no evaluation language | benchmark output conventions, rubric references |
Phase 1 had no GPU. HF Jobs and HF Sandboxes both returned
402 Payment Required for this account; the session container had 2 vCPU, 7 GB
RAM and no accelerator, and lacked AVX512-BF16/AMX, so bfloat16 ran 2.8× slower
than float32 (measured 5.38 vs 1.94 s/prompt on Qwen3-0.6B). The practical ceiling was
~2B parameters.
Consequence for interpretation: the Phase-1 primary model is
Qwen/Qwen3-0.6B, far below the 14B–32B range originally targeted and below
every model in all four reference papers. Nothing in Phase 1 licenses a claim about
scale. Phases 2–3C later obtained 2× Tesla T4 and re-ran the identical pipeline at
1.7B, 8B and 14B, and on Gemma 3 (270M, 1B) — which is how the withdrawals in this
article were found.
| Set | n | Construction |
|---|---|---|
main | 200 | per task: all cues naturalistic (deploy) and all eight toggled (eval_all) → 100 matched pairs |
single | 384 | 48 tasks × exactly one cue toggled — per-cue sufficiency |
leaveout | 384 | 48 tasks × all cues on except one restored — per-cue necessity |
control | 300 | 100 tasks × 3 surface perturbations with no evaluation cue: greeting + sign-off; three realistic typos; irrelevant naturalistic chatter |
ood | 30 | 15 hand-written real-user requests and 15 hand-written evaluation-harness prompts, written without reference to the instrument |
Residual stream at the last prompt token, every hidden state (embeddings plus all block outputs), stored as float16.
One property removes the most common confound in last-token probing: the chat template
appends an identical <|im_end|>\n<|im_start|>assistant\n tail to
every prompt, so all 200 main prompts share an identical 30-character tail and
the probed position never sees condition-specific local tokens. The embedding layer
confirms it — hidden state 0 is bit-identical across conditions, its difference-of-means is
exactly zero and its AUROC exactly 0.5. Base models, having no chat template, get a
constant "\n\nAssistant:" suffix to buy the same property.
v_ℓ = mean(a_ℓ | eval_all) − mean(a_ℓ | deploy) over the 100 matched
pairs, normalised to unit length.task_id, so
no task appears in both train and test; (c) a label-shuffled null
permuting labels within each task group, so group structure cannot leak the
signal.x ← x − v̂(v̂ᵀx) at
every token position and every layer, following Arditi et al. (2024); a
layerwise variant removing each layer's own direction at that layer,
motivated by the cross-layer rotation; and activation addition
x ← x + αv̂ at the single primary layer, CAA style. Every intervention has
a random-direction counterpart of equal norm as its null.A cosine of 0.19 between two estimated directions is only evidence of separation if directions estimated from finite data could have been more aligned. So the same cue is estimated on disjoint halves of the tasks and the two halves compared: that cross-fitted same-cue cosine is 0.883 [0.852, 0.906]. It is the ceiling any two cue directions could reach given this much estimation noise, and every cue-cosine number in this article is read against it.
Mean off-diagonal cosine between the eight per-cue directions is 0.19–0.22; cross-fitted, 0.190 [0.161, 0.215] against the 0.883 ceiling. At 8B the same quantity is 0.169 against a ceiling of 0.859, and at 14B 0.198 against 0.924 — a ratio of roughly one fifth of the ceiling at every scale tested, over a 23× span of parameter count. The stability of the ratio matters more than any single cosine, because the ceiling itself moves with estimation noise while the ratio does not.
It depends entirely on which cue is held out:
| Held-out cue | Held-out AUROC (0.6B) |
|---|---|
| F7 task format / F8 disclosure | 0.952–0.976 |
| F4 ecological completeness | 0.652 |
| F5 stakes telegraphing | 0.595 |
| F1 stimulus artificiality | 0.525 [0.501, 0.553] — chance |
At 8B and 14B the F1 number moves to 0.580 and 0.611 — it narrows slightly with scale and remains unusable. On Gemma 3 1B it is 0.530 in the residual stream and 0.531 in SAE feature space, agreeing to three decimals across two different representations.
PC1 of the matched difference vectors explains 12.6–20.9 % depending on layer; participation ratio ≈ 20. Both move away from one-dimensionality with scale: PC1 14.8 % → 12.9 % → 10.4 % and participation ratio 20.3 → 27.9 → 30.4 across 0.6B → 8B → 14B.
Removing F8 explicit disclosure alone costs 36–57 % of the deploy→eval span; every other cue costs ≤ 10 %. Its cosine with the global axis is 0.889 [0.879, 0.900] — at the reliability ceiling, meaning that within measurement precision the global axis is the disclosure direction. On Gemma 3 1B this is more extreme still: cosine 0.945 and removing F8 costs 74 % of the span.
The ctl_greet control adds a greeting and a sign-off — "hey, quick one —",
"thanks a lot!" — and no evaluation content whatsoever. At 0.6B it moved the projection
15 % of the eval/deploy span (AUROC 0.851, d = 1.47).
withdrawn This is the largest single correction in the project. At 8B the same control moves the projection +1.3 % of the span (AUROC 0.556, d = 0.18); at 14B, +4.7 % (AUROC 0.643, d = 0.36). The 0.6B magnitude is a small-model artefact and the Phase-1 text that presented it as a property of the direction was wrong. Two things survive the correction: the confound is non-zero at every scale, and it does not shrink monotonically — the largest model tested is three times more susceptible than the 8B one, and we cannot separate scale from quantisation or checkpoint provenance as the cause.
Phase 1 reported that directional ablation reduced the projection by 92 % while random- direction ablation moved it 1 %, and that ablation cost −0.283 MMLU accuracy identically in both framings, with every sandbagging interaction term null (|eval Δ − deploy Δ| ≤ 0.058, all p ≥ 0.34). It also reported that 93 % of free generations became degenerate under all-layer ablation (80 % layerwise, 37 % under addition, 17 % baseline) and concluded that, unlike the refusal direction of Arditi et al. (2024), this direction cannot be projected out while leaving a working model.
withdrawn Both halves were later corrected, in
opposite directions. A bug was found in our own intervention code: on
transformers 5.17, an intervention installed with
register_forward_hook applies only inside the first context manager entered in
a process and is silently bypassed from the second onward. Every diagnostic the Phase-1 code
checked still looked correct (29 handles, 29 edit calls, zero leaks) while the component was
simply not removed. With the fix — wrapping module.forward directly — ablation
removes 99.99 % of the projection (8B: −15.690 → −0.002), so the 8 %
residual was the bug rather than physics. Separately, the 93 % degeneracy figure does not
replicate: at 8B it is 7 %, with MMLU −2.0 points and perplexity 37 → 43.
The −0.283 accuracy cost also does not reproduce (−0.015, p = 0.68 on the same model with
fixed interventions). Because none installed no hooks at all, ablate
was the first hooked context and is the only Phase-1 intervention condition that ran as
intended; every add_* and layerwise number was recomputed.
What survives, and is now on stronger evidence: there is no sandbagging to remove. Phase 1 found MMLU 0.533 under evaluation framing versus 0.517 under deployment framing, with all interaction terms null. At 8B and 14B, with 500 and 300 paired items, two independent scorers and three framings, eval-minus-deploy is 0.000 and +0.013 (McNemar p = 1.00 and p = 0.52), and on Gemma 3 1B −0.007 (p = 0.88) — now with an intervention that provably removes 99.99 % of the direction while the model still scores 0.730.
Meanwhile evaluation framing moves compliance by orders of magnitude: mean top-letter log-probability −15.46 → −5.02 at 8B, −16.68 → −3.90 at 14B, and −8.79 → −0.08 on Gemma 3 1B. The model becomes far more willing to commit to an answer letter when told it is being evaluated, and no more accurate.
Explicit meta-commentary was at the floor: 1/15 on evaluation-framed prompts, and blind adjudication showed that single hit to be prompt echo rather than inference. The internal projection and verbalised awareness are uncorrelated: Pearson r = +0.103 (p = 0.59), Spearman ρ = +0.069 (p = 0.72) — an independent replication of the dissociation in arXiv:2608.21766, obtained on a cleaner contrast.
Against Qwen-Scope TopK SAEs (32,768 features, k = 50, resid_post) on
Qwen3-1.7B-Base, at five layers:
A monitor built on that one feature would work, and would tell you almost nothing about what the model represents. The same shape reproduces on a different family, suite and SAE architecture (Gemma Scope 2, Gemma 3 1B, layer 24): one feature of 16,384 reaches AUROC 0.996 as a deployment detector while 113 features carry half the |Δmean| L1 mass and 777 carry 90 %.
A later phase re-ran the identical estimators on Gemma 3 and additionally recomputed the whole contrast in Gemma Scope 2 SAE feature space rather than the residual stream, using the same cross-fitting, the same reliability ceiling and the same label-shuffled nulls — so the only thing that changes is the representation.
| Setting | Cue cosine as % of ceiling | cos(F8, global) | LOFO F1 |
|---|---|---|---|
| Qwen3-8B, residual | 19.7 % | 0.886 | 0.580 |
| Qwen3-14B, residual | 21.4 % | 0.865 | 0.611 |
| Gemma 3 270M, residual | 17.3 % | 0.925 | 0.489 |
| Gemma 3 270M, SAE features | 26.2 % | 0.840 | 0.505 |
| Gemma 3 1B, residual | 26.5 % | 0.945 | 0.530 |
| Gemma 3 1B, SAE features | 25.0 % | 0.946 | 0.531 |
The decomposition is not a Qwen artefact and not a linear-probe artefact.
Supplies the instrument: the eight-factor taxonomy and EvalAwareBench. That paper measures behaviour — chain-of-thought monitoring of recognition and of the propensity to act on it — across nine frontier models and four benchmarks. It does not ask where in the weights or activations the mechanism sits. This study takes its factor design and moves one level inward, to activations. arxiv.org/abs/2605.23055
The closest prior work on method: difference-of-means directions at the last residual-stream token across layers, peak probe AUROC ≥ 0.7 for all six models it studies, contrastive activation addition shifting an LLM-judged verbalisation score by 0.2–1.5 points, and representation/verbalisation almost decoupled. Its calibration set is 200 WildChat samples versus 200 evaluation samples, which confounds evaluation-ness with domain and provenance: a probe can score well by detecting academic-benchmark text without representing anything about being tested. It also cannot decompose, because its positive class mixes every cue type at once. This study removes the confound by construction — same task, same entities, same request in both members of every pair — and adds the decomposition. Its verbalisation dissociation replicates here (r = +0.103). arxiv.org/abs/2608.21766
The paper this work is most likely to be confused with, so the distinction is worth stating precisely. That paper decomposes along measurement paradigm — behavioural, representational, mechanistic — across 37 open-weight models and seven families, and shows those three axes dissociate. The difference here is granularity, and it is a difference in kind. Its unit of decomposition is three measurement paradigms; ours is eight cue factors inside the representational paradigm. Between its conditions, dataset, task, framing tier and paradigm all vary at once; between ours, only the cue configuration varies while task, entities and request stay identical. Its finest cue control is a 2×2 format × intent factorial (best AUROC 0.622) assembled across datasets; ours is an 8-factor factorial within one instrument.
The two conclusions are logically independent: a representation could be perfectly one-dimensional and still dissociate from behaviour, and conversely could be a bundle of eight unrelated detectors while all three of their axes agreed. What this study adds to their picture is a mechanistic explanation for why coarse format/intent factorials score low: the analogous cues here — F7 format, F8 disclosure — are precisely the two the global axis captures, while the semantic cues are the ones it misses, so a coarse factorial averages a cue the model represents strongly with cues it represents along nearly orthogonal axes. arxiv.org/abs/2606.23583
The most directly threatening of the four to the validity of what is measured here. It argues that probe-based evidence conflates structural format with contextual understanding, and shows that a probe trained the usual way calls 94.5 % of real user requests "evaluation" as soon as they are laid out like a benchmark, while format-decorrelated training cuts that to 7.2 %.
This study corroborates that diagnosis from the inside: the cue
decomposition shows which cue the probe is riding on — the global axis is aligned
with F8 disclosure at cosine 0.80–0.92 and with F7 format at 0.48–0.78, while the semantic
cues sit at 0.11–0.33. It also extends the confound: her control makes a
deployment prompt look like a benchmark, whereas ctl_greet does the opposite —
it makes the prompt look more like a real user — and the projection still moved
toward the evaluation pole at 0.6B. That suggests the vulnerability is to stylistic deviation
in either direction rather than to benchmark structure specifically.
With the scale correction above, the strength of this particular extension is much
reduced (+1.3 % of span at 8B), and it should be read as a small-model finding awaiting
a properly powered test. arxiv.org/abs/2603.19426
Stated plainly, in the order they would bite a reader trying to use this.
Qwen/Qwen3-0.6B — below every model in all four reference papers. Later
phases reached 8B, 14B and a second family on 2× Tesla T4, but nothing here reaches
the 32B+ range, and the 14B result additionally carries a measured quantisation
caveat (NF4; cosine 0.910 against the fp16 direction at the primary layer, versus
0.987 for INT8).register_forward_hook bypass described above invalidated every Phase-1
intervention condition after ablate. The lesson generalises beyond this
project: an intervention that reports success while doing nothing passes every
diagnostic that counts handles and calls.The practical content of the decomposition is a warning about what a probe trained the usual way will and will not see.
A direction recovered from a broad evaluation-versus-deployment contrast is, to within measurement precision, an explicit-disclosure detector, supported by task formatting and benchmark-paradigm conventions. Those are exactly the cues that are easy to strip from a benchmark: stop saying "this is an evaluation", drop the rubric language, write the prompt as prose instead of a template.
What such a monitor is near-blind to is placeholder-entity artificiality and stakes telegraphing — cues that read at or near chance on the global axis (AUROC 0.52 for artificiality; held-out transfer 0.525) even though the model demonstrably represents them elsewhere (a dedicated direction separates artificiality at 0.68, a trained probe at 0.72). Those are exactly the cues that are hard to strip, because a benchmark that cannot use invented companies, round numbers and named stakes is close to not being a benchmark.
So the failure mode is not random. A monitor built this way will be most confident on the evaluations you could most easily have disguised, and least sensitive on the properties that make a test a test. If you are building one, the cheap check is the one used here: hold the task fixed, toggle cues one at a time, and measure per-cue transfer rather than aggregate AUROC — aggregate AUROC saturates at 1.000 and tells you nothing.
Reproduction. Prompt sets are regenerable from EvalAwareBench
(aisa-group/decomposing-eval-awareness,
CC BY-NC 4.0); the rendered prompts inherit its non-commercial terms and are therefore not
redistributed. Every analysis script takes --model, so the identical pipeline
runs on larger models given an accelerator.
Citation check. All seven references were verified against arXiv on 14 September 2026: every identifier resolves, every title matches, and the specific figures attributed to each paper were checked against its text.
References
Qwen/SAE-Res-Qwen3-1.7B-Base-W32K-L0_50
(TopK SAE, 32,768 features, k = 50)