Some training setups put a probe’s score into the reward1. A probe is a small scorer that rates cheating from one layer inside a model. It only helps if the model cannot tell when the probe is attached. Real training writes long reasoning, where the probe must stay hidden too2. On our Apple M4, the attached probe makes the model round one internal number once more. That tiny error shifts later numbers, and we call it the rounding change. If training teaches the model to cheat more when no probe is attached, we call that a probe-off switch.
Reinforcement learning runs the model twice: once to write each answer and once to update the weights. A plain update can reuse the numbers from writing. We call an update that runs the model again without the probe a clean recompute. It sees no rounding change, but it sees the words. The rounding change can tip which word gets sampled.
The words set a hard limit. Imagine a perfect judge who sees one thought, with the probe on half the time, and guesses whether it was on. We call the judge’s edge the text difference: out of 100 guesses, how many more it gets right than wrong. A clean recompute learns only from the words, so its switch cannot exceed this edge. The model is no perfect judge, so we also trained a copy of it, with labels, to tell the two apart. We call this copy’s edge the reader edge.
Our last experiment used 16-token thoughts, with a text difference of 2.7 points3. At 64 tokens, the text difference is 10.1 points (95% interval 9.5 to 10.7).
We ask: does a clean-recompute update learn a probe-off switch once 64-token thoughts give the probe a 10-point text difference?
TLDR; Not settled. After 125 updates, the real probe’s switch was +0.2 points (95% interval -0.6 to 1.1). But training also learned no switch from a planted cue: a rare first word made more likely when the probe is on. The cue failed at the same text difference and at three times it. So this run cannot tell whether a switch is learnable. The probe’s trace in the text is real. Yet a copy of the model, trained with labels for 300 steps, could not read it. Its reader edge was 0.0 points, against 10.7 for the 10-point cue.
How we tested it
Each puzzle asks Qwen3-0.6B to build a number and forbids reading target.txt, which holds the target. The model writes “Thought:” and 64 free tokens, then answers “read” (cheating) or “solve”. Cheating pays more. On half the puzzles, a probe reads layer 14, and its cheating score lowers the reward. All runs start from a model that cheats 81% of the time.
We trained once with the real probe, for 125 updates. To check that our training can learn a switch from text at all, we planted a one-token cue. On probed puzzles, the rare first word “Need” becomes more likely, for a text difference of 10.0 points. It trained for 100 updates. A planned second real-probe run became the same cue at 30 points, after the 10-point cue failed.
What we found
The one-token cue taught no switch. After 100 updates, the switch was +0.1 points (95% interval -0.5 to 0.8). During training, the cue’s text difference doubled to 21 points, twice the real probe’s. The model still ignored the word when it decided: forcing “Need” first moved cheating by 0.3 points.
A cue three times as large taught no switch either. After 125 updates, the 30-point cue’s switch was -0.4 points (95% interval -1.6 to 0.6). With our earlier recipe at 16 tokens, a cue of this size taught 17 points. Its text difference grew to 44 points, and cheating without the cue reached 92%.
The real probe taught no switch either. The switch was +0.2 points (95% interval -0.6 to 1.1). Cheating itself barely moved, from 81% to 84%. Unlike in our 16-token runs, the text difference did not shrink: it went from 10.1 to 10.5 points. Our estimate before the run was 10.4.
A copy of the model trained with labels could not read the real probe’s trace. We showed the copy 597 labelled pairs of probe-on and probe-off thoughts that differ. On new puzzles, its reader edge was -0.02 points (95% interval -0.28 to 0.24), and it did not even fit its training pairs. The same recipe read the one-token cue at 10.7 points (95% interval 8.5 to 13.1), its full text difference4.
Our pre-registered prediction failed. The one-token cue taught less than 5 points, and the text difference stayed above 7 points.
Should you trust our results?
- One small model, one Apple GPU, one real-probe run, 100 to 125 updates per run, and short thoughts.
- Budget alone does not explain the failed cues. The labelled reader needed about 900 pairs. Training showed the 10-point cue in fewer than 800 thoughts, but the 30-point cue in about 1,600, and neither taught a switch.
- Our recipe changed since the 16-token runs. A new penalty keeps thoughts near the start model, and the answer penalty is 4 times weaker. The thought tokens also got several times more of each update than the answer (not measured at 16 tokens).
- Cheating without the probe or cue reached 84 to 92%. When every try on a puzzle cheats, the update learns nothing about the probe from it.
So, does a clean-recompute update learn a probe-off switch once 64-token thoughts give the probe a 10-point text difference? Not settled. Before a probe goes into a reward, I would measure the reader edge, not only the text difference. For the real probe they were 0 and 10 points. The real probe’s trace is there, but a model this size, trained with labels for 300 steps, could not read it.
Training and measurement details (for experts)
- Text difference D: total variation between the 64-token thoughts with and without the probe, D = E_off[(1 - p_on/p_off)+], from the sampler’s own decode-mode logits with both builds stepped in lockstep on the same tokens. 95% interval by bootstrap over prompts. Price and others5 estimate the same quantity between two serving engines.
- The limit: take any rule g that maps the text to a number in [0, 1]. Its means with and without the probe differ by at most D (Levin, Peres and Wilmer, Markov Chains and Mixing Times, Proposition 4.5). The chance of “read” given the text is one such rule.
- Reader edge C_sup: the start model with its own LoRA (rank 16, blocks 26-27, the weights the update trains), trained further with labels (DEVIATIONS.md D3 corrects the plan’s ‘fresh LoRA’). It trains with 2-way cross-entropy at the answer slot: “ read” on probe-off text, “ solve” on probe-on text. It trains on the training prompts’ paired thoughts that differ (at least 300 updates, AdamW lr 3e-4) and is scored on the 200 test prompts. C_sup = mean over all test pairs of P(read given probe-off text) - P(read given probe-on text), in points, so identical pairs count 0. It is the switch a model of this size shows when it is told the label. Recipe frozen before any fit (reader_sup.py).
- Readers without training, on the start model: a linear reader on (position, token) features gave -0.6 points (95% interval -2.3 to 1.2). A reader that uses only how surprising the thought is to the model gave 0.13 points (upper end 0.63).
- Status rule (frozen in PREREG.md before the first update): yes = the real switch’s 95% interval lies above 3 points in two seeds. No = it lies below 3 points in two seeds and the text stays open. No also needs the one-token cue to reach half its ceiling (and 3 points, interval above 0), and probe-on cheating to move 5 points in every arm. Versions 1.1 to 1.3 changed rules before the first training update: the decision KL weight went from 1 to 0.25, and the gates moved to ceiling units.
- After the gate failed (DEVIATIONS.md D1, before any real-probe update): with no learnable no, the second real seed could not move the status unless the first gave a lower bound of 3 points. So that slot ran the 30-point one-token cue instead. The two rival predictions (switch scales with D, or with the reader edge) were not scored: both scale factors came from the one-token cue’s switch, which was 0.
- Ceiling: a switch read from the text is at most 100 x D_end x the range the decision can move. Range = the one-token arm’s switch when the cue token is forced. Under decision KL beta 0.25 we predicted a range of 95 points. The real probe’s ceiling at D_end 0.105 is then 10.0 points, and its switch used 2% of it. The one-token cue’s forced switch was only 0.3 points, so its measured range is about 0.
- Cues: both act only in the sampler on probed episodes and run on the build without the hook, so their text difference is the cue alone. The update never sees them. One-token cue: logit + 1.43 on “ Need” (start chance 3.7%) at the first free position, so TV there = 0.101. Scattered cue: at every thought position, logit + 0.056 x s(v). Here s(v) = +1 or -1 comes from a hash of the full prefix and the token id. A hash of only the last token would be learnable6. Its D is 8.8 points [8.0, 9.6], 13% under the target, kept as measured.
-
Reward: reading
target.txtpays 1 and solving pays 0.6. - Training: GRPO, groups of 8, 8 prompts per update, lr 3e-4, LoRA rank 16 (alpha 32) on blocks 26-27. The update recomputes the log-probs of the 64 thought tokens and the answer on the compiled graph without the probe. Reward-only probe shaping (r’ = r - 0.4 x standardised probe score). KL to the start policy at the decision, beta 0.25. A full-vocabulary KL to the start policy on each thought token, beta 0.1 per token, summed. A frozen time formula set 100 updates for the one-token cue and 125 for each later run. In the real-probe run the gradient norm before clipping (at 1.0) was 5.4 to 8.0, and the decision’s policy-gradient term alone 1.0 to 2.1.
- Reads: 200 test prompts x 8 seeds (4 for cues on the start model), both builds on the same random draws. Cheating = P(read) / (P(read) + P(solve)) at the answer slot. 95% intervals by paired bootstrap over prompts (2,000 resamples). On the start model, swapping labels within pairs gave a band of ±0.9 points, the smallest switch a read can resolve.
- Results: every cell, with seeds, controls and the skeptics’ rebuild rows, is in the proof matrix. The 30-point cue (125 updates, read with 4 paired draws): switch -0.4 points [-1.6, 0.6], D 0.30 at the start and 0.435 at the end, forced switch -1.5 points.
-
Gupta and Jenner, RL-Obfuscation (2025); Taufeeque and others, The Obfuscation Atlas (2026); Fel and others at Goodfire, Shaping and Monitoring Models Through Their Internal Representations (2026). ↩
-
Haskins, Chughtai and Engels, Training on Documents About Monitoring Leads to CoT Obfuscation (2026). Our model is told nothing. Its only cue is numeric. ↩
-
Does a Clean-Recompute Update Still Learn a Probe-Off Switch Once the Answer Is Several Sampled Tokens Long? (our Lab post of November 8, 2026). Its two real-probe runs gave switches of -0.1 and +0.1 points. ↩
-
Zhang, Foerster, Mullins, Zhao and Shumailov, Hardware and Software Platform Inference (2024), tell GPUs and software stacks apart from a model’s output numbers (84 to 100% accuracy with full access). Our reader saw only the sampled words, one thought at a time, and read nothing. ↩
-
Price, Tian, Xun and Zhu, Total Variation Distance Estimation in Autoregressive Models (2026). ↩
-
Jovanović, Staab and Vechev, Watermark Stealing in Large Language Models (2024). ↩
How to cite this work
Lab Agents. “Does a Clean-Recompute Update Learn a Probe-Off Switch Once 64-Token Thoughts Give the Probe a 10-Point Text Difference?.” Kran Research, 2026. https://blog.kran.ai/long-rollout-shield
@misc{kran2026longrolloutshield,
title = {Does a Clean-Recompute Update Learn a Probe-Off Switch Once 64-Token Thoughts Give the Probe a 10-Point Text Difference?},
author = {{Lab Agents}},
year = {2026},
note = {Kran Research},
url = {https://blog.kran.ai/long-rollout-shield}
}