CPU endgame: stats pass (Wilson/McNemar/pooled hard), final figures, PAPER.md rewrite around amortizable-content thesis

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Nils
2026-07-14 15:46:58 +02:00
co-authored by Claude Fable 5
parent 6a954bd3e4
commit 55665ce251
12 changed files with 5307 additions and 235 deletions
+302 -235
View File
@@ -1,286 +1,353 @@
# Retrofitting Latent Planning onto a Frozen Language Model via Workspace Recurrence
# Latent Planning by Workspace Recurrence: an Interpretability-Placed Implant, and What It Actually Buys
*Working draft, 2026-07-14. All experiments: google/gemma-4-E2B-it (frozen), single DGX Spark. Code and artifacts: `~/jspace`.*
*Final-data draft, 2026-07-14. Base models: google/gemma-4-E2B-it and
gemma-4-12B-it, both frozen. Hardware: DGX Spark + rented 2×/8×H100 nodes.
Code, per-item logs, and pre-registrations: `~/jspace` (git). Statistics:
`results-loop/STATS.md`.*
## Abstract
Interpretability work with an averaged-Jacobian lens ("J-lens") shows that
mid-depth layers of a pretrained language model form a *workspace*: a band of
layers that holds verbalizable, unspoken intermediate content. We ask whether
that band can be **iterated in place** — spending more serial compute per
input without emitting reasoning tokens — on a *frozen* model. A naive loop
diverges: the band is not a self-map. We show that a 1.6M-parameter
**anchor-dominant merge adapter** (0.03% of the model) at the band entrance
makes the recurrence a stable fixed-point iteration, and that training only
this adapter — with self-generated, verifier-filtered supervision and a
difficulty→depth curriculum — turns iteration into computation. On MBPP,
looping the workspace over the prompt ("latent planning") raises pass@1 on
plan-dependent problems from **5.5% to 30.943.6%** (three seeds, full test
set, execution-verified); overall accuracy is unchanged-to-slightly-improved
(51.8% → 51.853.8%, within noise at n=500) — the method's value is
cost-shaped (silent, prefill-parallel, no per-token overhead), not
accuracy-dominance. Controls attribute the hard-bucket gain to the
recurrence itself: a same-size adapter trained on identical data *without*
the loop reaches only 17.9%, exactly matching the untrained loop. On GSM8K the picture inverts — no recurrent variant beats the
weights-only control — and a four-arm decomposition localizes why: the loop
performs *plan refinement*, which code synthesis needs and answer-time
arithmetic does not. The J-lens provides both the intervention's design
(where to loop) and its verification (latent concepts sharpen ~8× per
converged iteration). Because the looped prompt states are constant during
generation, latent planning is prefill-shaped and adds no per-token cost.
Interpretability work with an averaged-Jacobian lens ("J-lens") partitions a
pretrained language model's depth into regimes, including a mid-depth
*workspace* band that holds verbalizable, unspoken intermediate content. We
retrofit recurrence onto this band in a **frozen** model: a 1.6M-parameter
anchor-dominant merge adapter (0.03% of parameters) at the band entrance
turns the non-self-map band into a stable fixed-point iteration, trained with
self-generated, verifier-filtered supervision. Looping the workspace over the
prompt ("latent planning") raises pass@1 on plan-dependent MBPP problems from
5.5% to 43.6% (seed mean 37.5±5.5), with zero visible tokens and zero
additional decode cost. The effect is real and highly reliable — pooled
across MBPP, HumanEval, and Rust/MultiPL-E, the plan-dependent bucket moves
from 4.2% to 35.6% (McNemar p≈1.5e-10) — and **placement is a law, not a
convenience**: the gain appears only when the loop enters at the
lens-identified boundary (L14), collapsing at L13 and below and structurally
nulling above.
## 1. Introduction
But a complete attribution program deflates the mechanism's mystique.
(i) **The loop's content is amortizable**: distilling the model's own
explicit plans into the same-size adapter — no recurrence at inference —
matches or exceeds the loop on the same bucket (mean over 8 runs 45.7±4.6 vs
37.5±5.5, paired difference n.s.), and the two do not stack; running the
loop on top of the distilled adapter *degrades* it. (ii) **Width rivals
depth**: 16 trained pause registers reach 36.4% on the same bucket.
(iii) **Compute-matched token baselines are uncomfortable**: best-of-3
sampling beats every latent arm on overall accuracy (57.2% vs ≤55.2%), and a
50-token visible plan matches the loop on the hard bucket (40.0%). What
survives is precise: the implant specializes in exactly the plan-dependent
slice at zero token and zero decode cost, transfers with the substrate
rather than the task, and its placement is dictated by the lens. At 12B a
constant merge coefficient destroys the substrate; making the coefficient
state-dependent (a 3.8K-parameter gate) restores it on MBPP
(hard 11.4%→27.3% with overall preserved) but not on Blocksworld or GSM8K —
the stability dial that unifies this work with McLeish et al. (2511.07384)
and Lys et al. (2602.14759) is task- and scale-dependent.
Large language models buy reasoning accuracy with emitted tokens: chains of
thought give the network more serial passes, at the cost of latency, output
tokens, and bandwidth-bound decode. Recurrent-depth architectures (Universal
Transformers; DEQs; Huginn, arXiv:2502.05171; Mixture-of-Recursions,
arXiv:2507.10524) buy the same serial compute silently — but require
(pre)training the recurrence in at scale.
## 1. What this paper claims
We investigate a middle path: **retrofit** recurrence onto an off-the-shelf
frozen model, using an interpretability signal to decide *where*. The
J-lens (from the "verbalizable global workspace" line of work) partitions
depth into transduction, sensor, workspace, and motor regimes; the workspace
band (L1430 of 35 in our subject model) holds slowly-varying, unspoken
intermediates — e.g. 'spider' before answering "8" to *"the animal that spins
webs has how many legs?"*. If the workspace approximates "iterate toward a
settled representation", looping it should deepen computation without
parameters. The contributions:
1. **A placement law.** The retrofit works if and only if the recurrence
enters at the lens boundary. Entrances at L9L13 (same adapter, data,
curriculum) destroy overall accuracy (1434% vs 52%) while recovering at
most half the hard-bucket gain; entrance at L14 preserves overall and
maximizes the gain (fig_placement). Entrances at L17/L24 are *structurally
null* in this architecture: KV-sharing makes layers ≥15 reuse keys/values
computed at ≤14, so k>0 is bit-identical to k=0 — a hazard for any
retrofit method that skips the mechanistic check. Exit-layer choice is
nearly free (taps 27/30/32/34 within seed noise: hard 3946%). This
answers the open "where to loop" problem named by McLeish et al., and it
is causal, not correlational: the L9-entrance discriminator arm was
trained identically and fails.
1. **A minimal retrofit that works**: an anchor-dominant merge
(`(1−α)e + α·ŝ + MLP([e;ŝ])`, α=0.3, MLP zero-init, 1.6M params) makes
the frozen band a stable, answer-preserving recurrence; training only the
merge makes iterations *sharpen* rather than hold.
2. **A verified capability gain** on plan-dependent code synthesis, with the
full attribution grid (weights / untrained loop / trained loop / pause
tokens) showing the recurrence is the active ingredient.
3. **A mechanistic boundary**: math inverts the result, and the decomposition
(prompt-side vs generation-side × weights vs recurrence) identifies the
mechanism as plan refinement, not generic extra compute.
4. **Deployment properties**: bit-exact KV-cache-compatible inference (loop
once at prefill), a difficulty gate trained free from the labeling
pipeline, and economics that improve with model scale.
2. **A verified, statistically solid capability gain on a narrow slice.**
Plan-dependent items (the model solves them with an explicit written plan
but not directly): pooled across three benchmarks, 4.2%→35.6%,
p≈1.5e-10. Overall accuracy is statistically unchanged on MBPP
(p=0.34) and improved on HumanEval transfer (58.5%→66.5%, p=0.011).
3. **A deflationary mechanism finding.** The trained loop converges to a
fixed point by k≈34 and behaves as *amortized plan content*, not
iterative computation: plan-distillation into the identical architecture
without recurrence matches it; stacking buys nothing (loop-training a
distill-warmed adapter: 34.5%, below distill alone; running the distilled
adapter in loop mode: drops to 20.0%); deeper k at inference is flat
(k=8: 40.0%). The recurrence is a *training-time scaffold* that lets the
adapter find plan-shaped content — content that can equally be put there
by distillation if plans are available.
4. **A width-vs-depth law.** Trained pause registers (width) capture most of
the plan effect on code; recurrence (depth) is needed only where a state
must *evolve* — on GSM8K generation-side carry beats registers, and on
Blocksworld (pure planning, no world knowledge) the loop lifts hard-split
plans 0%→43% at 2B where everything else fails. Plans are wide; execution
is deep.
5. **Honest economics.** The implant's costs: ≈2.9× prompt-processing FLOPs
(parallel, prefill-shaped), zero decode overhead, bit-exact KV-cache
write-in, k=0 recovers the base model exactly. Its competition at matched
FLOPs: best-of-3 sampling wins overall accuracy outright (57.2%); a
50-token visible plan ties the hard bucket. The value proposition is
*only*: no visible tokens, no decode latency, and the hard-slice
specialization (distill's 46% > budget-CoT's 40% > best-of-3's 33%).
6. **Scale transfers only with a state-dependent stability dial.** At 12B the
2B-tuned constant α=0.3 collapses overall accuracy (72.6%→43.0%); the
damage is present *before* adapter training (untrained-loop arm) and is
not fixed by retuning α or LR. A per-position learned coefficient
α=σ(w·[e;ŝ]+b) restores MBPP (overall 69.4%, hard 11.4%→27.3%) — but
fails to rescue Blocksworld-12B and yields only a marginal GSM8K-12B
overall gain (35.9%→36.7% at k=1), the project's only overall 12B win.
## 2. Method
**Locating the band.** The lens reads residual state h at layer through the
averaged Jacobian J̄_ = E[∂h_final/∂h_] and the unembedding. Depth regimes
follow from what the readout tracks (input echo / abstract content / output
token). On gemma-4-E2B: workspace ≈ L1430 (1.08B params, 58% of decoder).
averaged Jacobian J̄_ = E[∂h_final/∂h_] and the unembedding; depth regimes
follow from what the readout tracks. On gemma-4-E2B: workspace ≈ L1430 of
35; on 12B: L3645 of 48.
**Making the band a self-map.** Feeding L30's output to L14 collapses in one
step (out-space ≠ in-space; norms and content 17 layers "downstream").
Additive anchoring diverges. The fix is DEQ-style input injection done by
hand: with e = L13's output (fixed anchor) and s the fed-back band output,
**Making the band a self-map.** Feeding L30's output back to L14 collapses
(out-space ≠ in-space). With e = L13's output (fixed anchor) and s the
fed-back, norm-matched band output:
L14-in = (1−α)·e + α·(s · |e|/|s|) + MLP([e ; s·|e|/|s|]), α = 0.3.
L14-in = (1−α)·e + α·ŝ + MLP([e ; ŝ]), ŝ = s·|e|/|s|
Zero-initializing the MLP's output layer makes the untrained adapter exactly
the hand merge, which is stable and answer-preserving for ≥11 iterations but
only *holds* content (lens concept flat).
α=0.3 constant at 2B; at 12B, α=σ(w·[e;ŝ]+b) per position (zero-init so
α≈α₀ initially). MLP output zero-init: the untrained adapter is exactly the
hand merge — stable, answer-preserving, content-holding.
**Training only the merge.** Supervision is self-generated and
verifier-filtered (STaR-style): the frozen model attempts each task directly
and with explicit planning/CoT; items it solves only with planning are
"hard", direct solves "easy", neither "drop". Cross-entropy on answer/code
tokens of the *direct* prompt; the model's own verified outputs are the
targets (in-distribution). A **difficulty→depth curriculum** trains easy
items at loop depth k=1, mixed at k=2, hard only at k=24, so loss on hard
items is reducible only through the recurrence. For generation tasks the
loop applies to the **prompt span only** ("latent planning"): generated
tokens run the plain path but attend to the looped prompt states; this
removes exposure bias structurally.
**Training.** STaR-style self-labeling: items the frozen model solves only
with an explicit plan/CoT are "hard", direct solves "easy", neither "drop".
Cross-entropy on answer/code tokens of the direct prompt, model's own
verified outputs as targets. Difficulty→depth curriculum (easy k=1, mixed
k=2, hard k=24). The loop applies to the **prompt span only**; generated
tokens run the plain path but attend to looped prompt states. Variants
trained the same way: **pause-N** (N trained register tokens appended to the
prompt, no recurrence), **plan-distill** (KL from the model's own
plan-in-context distribution into the FF adapter), **rung-2** (warm-started
adapter + entrance-faded LoRA rank 8 on the band's first layers, loop-only
via a global toggle), and **stack** arms (distill-warm + loop training;
distilled adapter evaluated in loop mode).
**Inference cost.** Causality makes the looped prompt states independent of
generated tokens, so they are computed once; a hooked prefill writes them
into the KV cache and generation proceeds natively (verified bit-identical;
≥3.5× faster than recomputation). The concrete overhead at k=4 is 5 passes
over the band's 17/35 layers at prefill — ≈2.9× prompt-processing FLOPs,
parallel across positions — and **zero** additional decode cost. Explicit
planning with ~200 emitted tokens costs more total FLOPs and pays them
serially at bandwidth-bound decode; this asymmetry grows with model size.
**Inference.** Looped prompt states are causally independent of generated
tokens: computed once at prefill, written into the KV cache by a hooked
forward pass, generation native. Verified bit-identical to the slow path.
Cost at k=4: ≈2.9× prefill FLOPs, **zero** decode overhead.
## 3. Results
### 3.1 Latent planning on code (MBPP)
Statistics throughout: Wilson 95% CIs; paired comparisons by exact McNemar;
all headline arms evaluated on the full 500-item MBPP test split (hard
bucket n=55), HumanEval n=164 (hard n=38), Rust/MultiPL-E n=154 (hard n=25),
execution-verified. Label robustness: redefining "hard" as
labeled-hard ∧ k=0-fails-in-all-five-seeds (52/55 items) moves headline
numbers <2 points.
Full 500-item test split, greedy decode, unit-test-verified. Hard bucket =
items the frozen model solves only with an explicit written plan (n=55).
### 3.1 The placement law
| k=4 (prompt-only loops) | hard pass@1 | overall |
![Placement cliff](results-loop/fig_placement.png)
Entrance-layer sweep with everything else fixed. L14 (lens boundary):
hard 43.6%, overall 53.6%. L13: hard 17.9%, overall 34.4%. L9L12: overall
14.030.8% (substrate destroyed). L17/L24 entrances: k>0 ≡ k=0 (KV sharing;
verified bit-identical) — the 12B model has no shared-KV layers, making it
the unconfounded replication. Exit sweep at fixed entrance (L27/30/32/34):
hard 39.346.4%, within seed spread. The lens boundary is necessary; the
exit is a free parameter. (The L23-exit arm died in training and was not
rerun; the four completed exits bracket it.)
### 3.2 The attribution ladder
![Attribution ladder](results-loop/fig_ladder.png)
MBPP hard bucket (plan-dependent, n=55 unless noted):
| arm | hard pass@1 | overall |
|---|---|---|
| baseline (k=0) | 5.5% | 51.8% |
| trained loop, seed 0 | **43.6%** | 53.6% |
| trained loop, seed 1 | **41.8%** | 53.8% |
| trained loop, seed 2 | **30.9%** | 51.8% |
| base (k=0, bit-exact) | 5.5% | 51.8% |
| untrained loop (α-merge only, n=28) | 17.9% | ~52% |
| trained FF, no recurrence (n=28) | 17.9% | ~52% |
| pause-16 registers (width) | 36.4% | 55.2% |
| **trained loop k=4** (seed mean, 5 seeds) | **37.5±5.5** (best 43.6) | 53.6% |
| rung-2: + entrance-faded band LoRA (n=28) | 42.9/46.4 (2 seeds) | 51.2/52.4 |
| **plan-distilled FF** (mean, 8 runs) | **45.7±4.6** (best 49.1) | 55.5% |
| budget-CoT (50 visible tokens) | 40.0% | 53.8% |
| best-of-3 sampling (≈matched FLOPs) | 32.7% | **57.2%** |
| explicit plan in context (ceiling) | 94.5% | 59.0% |
Silent loops recover roughly 40% of what explicit planning achieves, at zero
visible-token cost, with no overall regression (the easy-item perturbation
tax, ~9 points, is offset by hard/drop gains; a gate removes most of it,
§3.4).
Significance structure (McNemar, `STATS.md`): loop vs base on hard,
p=5.7e-6; every latent-arm-vs-latent-arm difference (loop vs distill, distill
vs stack) is **not significant** at n=55; loop vs base *overall* is not
significant on MBPP (p=0.34). The ladder's shape is reliable; its fine
ordering is not.
![MBPP pass@1 vs loop depth](results-loop/loop_eval_code.png)
### 3.3 The decisive tests: nothing stacks
### 3.2 Attribution: the recurrence is the ingredient
If the loop performed genuine iterative computation, plan-distilled content
plus recurrence should compound. It does not:
250-item subset; same data, same 1.6M parameters, same insertion point:
- **Distill-warm + loop training**: hard 34.5% — below distill alone.
- **Distilled adapter run in loop mode**: hard 20.0%, overall 45.8% —
looping *degrades* the distilled weights.
- **Pause-16 + distill**: hard 30.9% — no width stacking either.
- **Inference depth beyond convergence**: k=8 hard 40.0% ≈ k=4 (fixed point,
cos(sₖ,sₖ₋₁)=1.000 by k≈34).
| arm | hard pass@1 |
|---|---|
| baseline | 3.6% |
| untrained loop (α-merge only) | 17.9% |
| trained adapter, **no loop** (weights control) | 17.9% |
| trained **loop** | **42.946.4%** |
Reading: the recurrence is a **training-time scaffold**. The curriculum
forces hard-item loss to be reducible only through the loop, and what the
adapter learns to inject is plan-shaped content — the same content
distillation installs directly when explicit plans are available. The loop's
distinctive value is that it finds this content *without* plan supervision
(STaR labels only say which items needed plans, not what the plans were).
The weights control lands exactly on the untrained-loop value: ~18 points is
what perturbation-plus-format-alignment buys. The remaining ~28 points
require iterating the band. Post-hoc depth selection is excluded by
pre-registration (k=2 fixed on validation before test numbers existed;
k-curves reported descriptively).
### 3.4 Compute-matched honesty
**Checkpoint selection.** No checkpoint was chosen using test or generation
results. Seed 0's checkpoint (step 399) was fixed at training time from the
validation-CE overfitting inflection, before any generation eval of that
adapter; seeds 15 use step 400 by pre-commitment made before those seeds
were trained. We separately report that validation CE is a poor proxy for
generation accuracy (a checkpoint selected by val-CE on a sibling arm
underperformed a later one), which is why the fixed-step rule is used
rather than per-seed val selection.
At approximately matched FLOPs, token-space baselines are strong: best-of-3
sampling wins overall accuracy against every latent arm (57.2%,
CI [52.8, 61.5], vs loop 53.6 [49.2, 57.9] — point estimate higher, CIs
overlap) by preserving easy items perfectly while sampling rescues some hard
ones. A 50-token visible plan ties the loop's hard bucket. The latent
implant's surviving advantages are qualitative: zero visible tokens (silent),
zero decode overhead (prefill-parallel; sampling and CoT pay serially at
bandwidth-bound decode), and the hard-slice crown under distillation (46% vs
40% budget-CoT vs 33% best-of-3). For deployment this means: the implant is
a *latency/token-budget* technology with a side specialization in
plan-dependent items — not an accuracy technology.
### 3.3 The boundary: math
### 3.5 Width vs depth, and the task boundary
On GSM8K, *no* recurrent variant beats the weights-only control. The four-arm
grid (hard bucket) decomposes the failure:
Pause registers (width) reach 36.4% (16 registers; 8: 30.9%, 32: 34.5% — flat
in N) on MBPP hard: static plan content fits in registers. GSM8K inverts the
prompt-side result entirely (no variant beats the weights control
prompt-side), but generation-side *carry* — recurrence across token steps —
doubles the pause control on hard items: arithmetic's serial state evolves
during the answer. Blocksworld at 2B is the purest case: base 0% on hard
splits, loop k=4 43%, everything non-recurrent ≈0. The law: **plans are
wide; execution is deep.** Retrofit recurrence pays off precisely where a
latent state must be *revised*, not merely *held*.
| GSM8K hard | prompt-side only | touches generation |
|---|---|---|
| feedforward weights | **11.8%** | 4.7% (pause-token control) |
| recurrence | 6.38.7% (prompt loop) | 9.4% (cross-token carry) |
### 3.6 Scale: the stability dial
Orthogonal effects: perturbing free-running generation positions is costly
for either mechanism; recurrence beats weights only where a state must
evolve (the generation side — carry doubles the pause control in-harness),
and loses on the static prompt side. No variant beats the 10.5% overall
baseline. Reading: the trained loop performs **plan refinement**; code
synthesis is plan-shaped, multi-step arithmetic is not — its serial
computation happens during the answer, and one frozen band pass per token
cannot perform it silently at 2B. CoT tokens remain load-bearing for math.
(Hard-bucket cells carry an outcome-selection caveat — buckets were defined
by greedy baseline outcomes; sampled relabeling is in progress — so the math
conclusion is stated on overall numbers.)
![Cross-scale grid](results-loop/fig_scale.png)
### 3.4 Mechanism and deployment
At 12B (no shared KV — unconfounded), constant α=0.3: overall collapses
72.6%→43.0% at k=4 while hard limps to 11.4%. The untrained-loop arm shows
the damage precedes adapter training; α=0.15 and LR retuning do not fix it
(47.6/52.6% overall). The state-dependent coefficient does, on MBPP:
overall 69.4% (base 72.4%), hard 11.4%→27.3%. It does **not** rescue
Blocksworld-12B (easy items destroyed at k=4; constant-α had reached hard
40% but also destroyed easy) and yields only +0.8 points overall on
GSM8K-12B (35.9→36.7 at k=1, hard 1.6→10.6) — the sole overall-accuracy win
of the program, and a marginal one. Conclusion: the anchor coefficient is
the load-bearing stability control, its correct *form* (not just value)
changes with scale, and per-task tuning remains unavoidable.
**Fixed point.** The trained loop takes a large first step
(cos(s₁,s₀)=0.926 vs 0.977 untrained) and converges bit-exactly by k≈34
(cos=1.000), where accuracy and lens-sharpening plateau — extra iterations
are no-ops, explaining the k-curve shape.
### 3.7 Transfer: substrate, not task
![Loop convergence dynamics](results-loop/loop_dynamics.png)
![Transfer panel](results-loop/fig_transfer.png)
**Lens verification.** P(latent concept) under the J-lens at the band exit
rises 0.015→0.13 across iterations after training (~8× the untrained
control, which only holds). The same lens that located the band verifies
that looping deepens its computation — and makes the silent reasoning
inspectable.
MBPP-trained implants applied unchanged: **HumanEval** overall 58.5%→66.5%
(loop k=4, p=0.011; hard 0→31.6%); notably the *untrained* merge already
reaches 64.6% and the transferred pause adapter 66.5% (hard 38.9%) — the
transfer is substrate-shaped (a generically useful perturbation+content
mode), not task-memorized. **Rust/MultiPL-E** (Python-trained, different
language, compile-run-verified): hard 8.0%→24.0% (p=0.125 at n=25 —
directionally consistent, underpowered). **Blocksworld** MBPP-transfer:
hard 0→14.3% (task-trained: 43%). Content transfers where the substrate's
plan-representation overlaps; task-specific training still dominates.
**Gate.** A logistic probe on the k=0 workspace state (supervised for free
by the STaR labels) routes prompts: predicted-easy at k=0, predicted-hard at
k=4. Result: overall equal to the best uniform depth with easy items fully
preserved (97.5% vs 98.4% baseline); probe precision (19% at 64% recall) is
the current ceiling.
### 3.8 Mechanism, verification, deployment
**Negative results with content.** Mixed-task (code+math) training regressed
both tasks versus dedicated adapters, despite indistinguishable validation
CE — cross-entropy parity does not predict generation parity. Validation-CE
checkpoint selection likewise failed to track generation accuracy.
The trained loop takes a large first step (cos(s₁,s₀)=0.926 vs 0.977
untrained) and converges bit-exactly by k≈34; accuracy and lens-sharpening
plateau there. P(latent concept) under the J-lens at the band exit rises
0.015→0.13 across iterations (~8× the untrained hold) — the lens that placed
the implant also renders its silent content inspectable. The STaR labels
train a free difficulty gate (route predicted-hard to k=4, else k=0);
gate quality (19% precision at 64% recall) is the current ceiling on
removing the easy-item perturbation tax. k=0 is the exact base model by
construction — the implant is removable at token granularity.
**General-capability panel** (ARC-Challenge, WinoGrande, HellaSwag, MMLU;
length-normalized MC scoring with the loop applied to the context span) is
running on the Spark; results will quantify what k>0 does to off-task
abilities. [PENDING — fill on completion.]
### 3.9 Negative results with content
Mixed-task (code+math) training regressed both tasks at equal validation CE
— CE parity does not predict generation parity, and validation-CE checkpoint
selection fails likewise (fixed-step pre-commitment used instead; no
checkpoint was selected on test or generation results). GSM8K distillation
collapsed to empty outputs twice (E2B first attempt, 12B) on 3-token targets
under KL-dominant loss; a CE-dominant retry at E2B trained but reached only
hard 4.7%. Plan-distillation on GSM8K underperforms its MBPP twin even when
training succeeds: consistent with §3.5, there is little static plan content
for math to amortize.
## 4. Related work
Two recent papers bracket this work. **McLeish et al. (arXiv:2511.07384)**
retrofit depth-recurrence into pretrained 1B models via layer surgery +
continued pretraining (~50B tokens, all parameters, Muon, recurrence
curriculum to r=32): the generic claims "retrofitted recurrence works and
beats the non-recurrent parent" and "pretrain-then-convert" are theirs, at
~5 orders of magnitude more training cost than ours. They name layer choice
as an open problem; our lens-derived band with its causal backing (anchor
cliff at L14, tap invariance, wrong-band ≈ 0, KV-sharing hazard) is a direct
answer to it. Unlike their surgery (which needs a healing phase), our k=0
exactly recovers the base model. **Lys et al. (arXiv:2602.14759)** loop
frozen models training-free and show naive looping degrades (distribution
shift) while interpolating with the un-looped state rescues it — independent
convergent evidence for our anchor-dominant merge; their whole setting
corresponds to the untrained cell of our attribution table (17.9% hard =
our FF/untrained level), evaluated by likelihood rather than execution.
**McLeish et al. (arXiv:2511.07384)** retrofit depth-recurrence via layer
surgery + ~50B-token continued pretraining of all parameters; they name
layer choice as an open problem — §3.1 is a causal answer. Their surgery
needs a healing phase; our k=0 is exactly the base model. **Lys et al.
(arXiv:2602.14759)** loop frozen models training-free; their finding that
naive looping degrades while interpolation with the un-looped state rescues
it is independent convergent evidence for anchor-dominance, and their
setting is the untrained cell of our ladder (17.9%).
**One mechanism, three regimes.** All three works are variants of a single
design: mix the fed-back state with an anchor derived from the un-looped
computation. Lys et al.'s inference-time moving average η·h⁽⁰⁾+(1−η)·h⁽ᵗ⁾ is
an untrained anchor-mixing coefficient; our (1−α)e + α·ŝ + MLP([e;ŝ]) is its
trained analogue (fixed mix + learned correction); McLeish et al.'s
concatenated input injection is the fully learned limit, trained end-to-end.
The anchor coefficient is the stability dial of frozen-band looping: Lys
et al.'s naive-looping collapse is the zero-anchor (α→1) limit, their
regularization gains are the untrained anchored regime, and our 12B failure
at the 2B-tuned α=0.3 — with the untrained-substrate arm showing the damage
is pre-training-of-the-adapter — is the same dial mis-set at a new scale.
Stability of retrofitted recurrence appears to be governed by how strongly
the loop is anchored, across all three training budgets.
**One mechanism, three regimes.** All three works mix the fed-back state
with an anchor from the un-looped computation. Lys et al.'s moving average
η·h⁽⁰⁾+(1−η)·h⁽ᵗ⁾ is an untrained anchor coefficient; our
(1−α)e + α·ŝ + MLP is its trained analogue; McLeish et al.'s input injection
is the fully-learned limit. The 12B episode closes the loop on this
unification: the coefficient is the stability dial, naive looping is its
α→1 collapse limit, and our scale failure + state-dependent fix show the
dial must itself become a function of the state as models grow. Our stacking
results add a caution for the whole family: if retrofitted recurrence
content is amortizable (§3.3), some of the family's gains may be
reproducible by distillation without inference-time recurrence — a control
neither bracket paper runs.
Earlier lineage: Universal Transformers (adaptive depth); DEQ (fixed-point
inference); Huginn (arXiv:2502.05171) — prelude/core/coda from scratch;
Mixture-of-Recursions (arXiv:2507.10524) — learned per-token depth; Relaxed
Recursive Transformers (arXiv:2410.20672) — uptrained tied layers; Coconut —
latent CoT; pause tokens (Goyal et al.) — token-space silent compute, whose
trained-adapter variant proved a near-match for our loop on MBPP (§3.2).
Earlier lineage: Universal Transformers; DEQ; Huginn (2502.05171);
Mixture-of-Recursions (2507.10524); Relaxed Recursive Transformers
(2410.20672); Coconut; pause tokens (Goyal et al.) — whose trained variant
proved a genuine rival, not a strawman (§3.2, §3.5).
What remains distinct here: **interpretability-derived loop placement with
causal validation** (answering McLeish et al.'s open problem); **a 1.6M-param
trained merge on a fully frozen base** (between Lys et al.'s free end and
McLeish et al.'s full-retraining end, and the only one of the three where
the base model is provably untouched); **prompt-only latent planning with
bit-exact KV-cache write-in and zero decode cost**; **the attribution
ladder** (untrained / weights / pause / loop / explicit plan) — neither
bracket paper runs compute-matched token-space controls; and **difficulty-
adaptive depth via the STaR-label gate**, named as future work in both.
What remains distinct here: interpretability-derived placement with causal
validation; a fully frozen base with bit-exact k=0 and zero-decode-cost KV
write-in; the complete attribution ladder including compute-matched
token-space baselines and stacking tests; the width/depth task law; and the
amortizability finding itself.
## 5. Limitations
One base model family at 2B-effective scale (12B replication in progress);
two task families. **Location specificity is not yet ablated**: a
pre-registered control looping shifted/early/late/width-matched bands with
identical adapter and curriculum is queued; until it lands, the results are
formally consistent with "any wide mid-depth band works", and the lens claim
rests on discovery convenience plus mechanism verification. Hard buckets are
small (n=55 greedy / n=33 sampled) with seed spread of ±6 items; sampled
relabeling shows 97% agreement with greedy labels, and intervals accompany
all bucket cells in the final tables. The MBPP attribution grid lacks a
pause-token arm and a plan-distillation baseline (both queued) — the GSM8K
grid has the former. Easy-item perturbation tax is not eliminated (gate
preserves easy items but probe precision is 19%). Visible planning remains
stronger on absolute accuracy — the claim is cost-and-latency-shaped.
**Mixed-task training regressed both tasks**, so the current recipe yields
per-task adapters, not one general silent-planning mode; the outlook's
"installed base" framing inherits this caveat until a gate-plus-multiple-
adapters (or interference-free training) configuration is shown. MBPP
likely overlaps the base model's pretraining data; both arms share any
contamination, and memorized items land in the easy bucket, so the hard
bucket if anything over-represents genuinely novel problems — but bucket
composition is contamination-sensitive. Sensitivity to α=0.3 and band width
is unreported (the width-matched ablation arm partially addresses width).
Adapter-only training may underestimate the ceiling (band-LoRA "rung 2"
untested).
One model family (gemma-4), two scales, three task families. Hard buckets
are small (n=55/38/25); within-ladder orderings are not individually
significant, and only the pooled hard effect and the HumanEval overall gain
survive multiple-comparison scrutiny. Bucket membership derives from greedy
labeling runs (consensus-k0 robustness check moves numbers <2 points, but
both checks share the base model). Best-of-3/budget-CoT lack per-item logs
(no paired tests against them). The L23 exit arm and a third architecture
family were not run; LiveCodeBench (contamination-safe) was not run; rung-2
was not run at 12B. The easy-item perturbation tax persists wherever the
gate's precision fails. MBPP/GSM8K likely overlap pretraining data; both
arms share contamination, and memorized items land in the easy bucket, but
bucket composition is contamination-sensitive. The capability panel
(§3.8) is pending; until it lands, off-task effects of k>0 are unmeasured.
The Blocksworld-12B and GSM8K-12B failures mean the adaptive-α fix is
demonstrated on one task at one scale, not established as a general recipe.
## 6. Outlook
## 6. Conclusion
The retrofit recipe — lens-locate, anchor-merge, verifier-filtered
curriculum, gate — is scale-portable by construction: trainable mass is
independent of base size, and prompt-side loops are prefill-shaped, so their
economics *improve* with scale while serial CoT decode gets slower. The open
question that decides whether this is a curiosity or a method is whether the
effect survives scale (12B next; then a mid-size uptraining of the band
itself). If it does, "loopification" becomes a cheap post-training phase any
holder of a pretrained model can apply — a silent planning mode for the
installed base, with its latent reasoning legible to the same lens that
built it.
The experiment this program set out to run — *can an interpretability lens
tell you where to install recurrence in a frozen model, and does it work?* —
has a clean answer: yes, and the placement is causally load-bearing. The
more interesting answer is what the recurrence turned out to be: not a
reasoning engine, but a remarkably cheap way to make a frozen model amortize
its own planning into 0.03% of extra parameters, with a training-time loop
as scaffold and an inference-time loop that is optional once the content
exists. The practical recipe that survives all controls: lens-locate the
band; anchor-merge with a state-dependent coefficient; label difficulty by
STaR; distill plans if you have them, loop if you don't; gate by predicted
difficulty; keep k=0 as the exact base model. What it buys: the
plan-dependent slice at zero tokens and zero decode cost. What it does not
buy: overall accuracy beyond what matched-compute sampling already delivers.
Both halves of that sentence are the contribution.