# Qwen3-32B: final run report

*Public report, 18 October 2026. Integrated into the article `index.html` (§1.8, §6). Every number below is taken from the files in `results/q32/` and was checked against them
(`results/q32/verification_q32.json`). Status: single run, single checkpoint, frozen protocol; not an independent replication.*

## 1. Scope and identity

- Model: `Qwen/Qwen3-32B`, revision `9216db5781bf21249d130ec9da846c4624c16137`, bfloat16, no quantisation, one NVIDIA A100-SXM4 80 GB.
- Instrument and code: EvalAwareBench (commit `2961c17e…`), the same pipeline as the earlier Qwen3 runs (`code/q32/frozen_pipeline/`).
- Protocol: `docs/q32/PREREG_QWEN3_32B.md`; criteria and thresholds approved by the author on 2026-10-18, unchanged from the proposal (after the author had seen the 8B/14B/Gemma results; B3/B4 carry no prediction).
- Frozen manifest sha256: `b2ec42009c9d4bb1acf3517b0b0d2b5db1c3093848fb402ace97299fae368e10` (`docs/q32/MANIFEST.json`). Run config sha256 recorded in `criteria_evaluation.json` (`config_sha256`).
- Data: 1,298 geometry prompts / 100 matched main pairs / 48 tasks; factorial pass (722 prompts); 65 hidden states, d = 5120, primary layer 34 (argmax paired d_z = 9.16, post-final-norm state excluded).
- Gates: 21 recorded, 0 failed.

## 2. Conventions

- **Resample means** (cross-fitted cosine, ceiling, R, cos(F8, global), LOFO F1): point = mean over n_boot (= 1000) random task-half resamples (`bootstrap_geometry.py`), 95 % interval = percentile 2.5/97.5.
- **Full-sample values** (F8 necessity, PC1, PR, surface controls, OOD, length control): one pass, no interval.
- R = c/ρ; bounds c_lo/ρ_hi and c_hi/ρ_lo. This is a conservative bound, not a confidence interval of the ratio.

## 3. Geometry (layer 34)

| ID | Label | Value |
|---|---|---|
| E1 | `SEPARATION_SUPPORTED` | cross-fitted 0.215 [0.200, 0.228]; ceiling 0.910 [0.888, 0.925]; R = 0.237 (bounds 0.216–0.257) |
| A1 | `SUPPORTED` | cos(F8, global) 0.852 [0.839, 0.864] |
| A1b | `SUPPORTED` | F8 removal 37.4 % of span; best other (F6) 8.1 % |
| A2 | `SUPPORTED` | LOFO F1 0.593 [0.561, 0.631] |
| A3 | `SUPPORTED` | PC1 11.5 %; PR 28.4 |
| A4 | `SUPPORTED` | greet 0.060, typo 0.006, verbose 0.019 |
| A5 | `SUPPORTED` | OOD AUROC 1.000 (d = 5.60) |
| A6 | `SUPPORTED` | AUROC 1.000 after removing length |

Descriptive (A7–A10): see `crosslayer_q32.json`, `decorrelate_q32.json`, `register_q32.json`, `massive_q32.json`.

## 4. Comparison with Qwen3-8B and 14B (descriptive)

Size, precision (8B: dtype unrecorded on 2×T4; 14B: bitsandbytes NF4 on 2×T4; 32B: bf16), hardware and n_boot (400 / 1000 / 1000) differ; no test of differences between models was made and no trend is claimed.
The table is in `results/q32/comparison_qwen3_8b_14b_32b.csv` / `.json` (inputs hashed in the JSON).

## 5. Behaviour

- B1, M600 (n = 600): eval − deploy = +0.012 [−0.007, +0.032]; eval-only/deploy-only correct 21/14; McNemar exact p = 0.311. Label `NO_FRAMING_EFFECT_DETECTED`. No framing effect was detected on this harness; this does not establish absence of an effect or absence of sandbagging. (The pre-run wording `allowed_statement` is kept unchanged in the frozen `criteria_evaluation.json`.)
- B1, M300 (n = 300, text-identical to 14B/Gemma 3 1B): +0.023 [−0.003, +0.050]; p = 0.143; label `NO_FRAMING_EFFECT_DETECTED`.
- Framings (exact text) and scorer: article §1.8. M300, M600 and the 200-item battery are separate item sets and are never pooled.
- This does not establish absence of an effect or absence of sandbagging.

## 6. Interventions (200-item battery, layer 34; exploratory, B3)

See article §6.5 and `interaction_ablation_x_framing_q32.csv/.json`. Summary: `ablate` interaction −0.070 [−0.115, −0.030] (Holm over 7: 0.022);
`ablate_layerwise` +0.120 at collapsed accuracy (opposite sign); the other conditions are not significant after Holm. No size-matched control in this battery.
Not a sandbagging result; no claim about awareness, deception or mechanism.

- **Add validation open.** `verify` reads `hidden_states[34]` (output of block 33), before the production add site (block 34 → `hidden_states[35]`); `verify` therefore shows no change for the add conditions. The self-test adds at block 33 and reads `hidden_states[34]`, so it validates the mechanism but not the production configuration. The pre-registered gate G8(b) checked only the ablation conditions. No measurement of the added projection in the production configuration exists.
- add_random ≈ add_x2 (eval 134 vs 132 correct; deploy 137 vs 128): no demonstrated specificity of the direction. Not attributed to norm or mechanism.
- Verbalisation grid (n = 30 OOD prompts): ablation at layer 34 changes the teacher-forced score by −0.000. Percent-of-effect specificity figures are omitted because the denominator is ≈ 0 and the ratio is meaningless.

## 7. Deviations and operations

K = 10 bf16 tolerance multiplier for the self-test (PREREG §11.1); three restarts on fresh VMs (11:11, 11:13, 11:15 UTC, 2026-10-18) with stale-marker cleanup; earlier `NOT_RUN` labels are operational history. Details: `OPERATIONAL_HISTORY.md`.

## 8. Limits

One run, one checkpoint, one seed; confounded comparison; thresholds approved after earlier results were seen; one-harness behavioural nulls; exploratory interaction; open add validation; the per-item rows of the 200-item battery were reconstructed (3,168 of 3,200 rows read directly, 32 patched from one inline read of the `correct` field; every reported statistic reproduces the run's own summary).
