Collapse protection is content, not exposure

The §7 re-grade of the original 12B post ended with a specced follow-up: the six-arm collapse result found graded resistance (no midtrain < wrong-set < aligned), but pane's design confounds having a midtrain with what the midtrain contains — it has no arm with a matched-size, content-free corpus. This is that follow-up, run on the 4B testbed. Three substrates of identical size, recipe and SFT history — differing only in whether their 32 MTok midtrain carried function documents, and if so whether they were the right ones — each driven through the same deliberately collapse-inducing regime: pane's original , no replay, 77,772 bare-integer regression rows, 5,000 steps.

At a matched 32 MTok of midtrain exposure, the filler arm still collapses hardest — protection needs function-doc content. But the wrong-set corpus protects at least as well as the aligned one, so it is not knowledge of the finetuned functions either.

§1Setup: three arms, one manipulation

All three bases are mid-*/step-61 (32 MTok midtrain) followed by an identical 100 MTok -only SFT, so chat ability and instruction format start equal. Only the midtrain content varies:

armmidtrain contentrole
g0docs about g-set-0 — the functions the finetune installsaligned
g1docs about g-set-1 — disjoint functions, same style and sizewrong-set
fillerpure Dolmino, no function contentno-content, matched exposure

Each arm then gets the same finetune: LoRA r64/α128 at lr 1e-4 cosine, no Dolci replay — deliberately dropped, since concentrated single-format finetuning is the manipulation — on 77,772 low-diversity g-set-0 regression rows (4.0 MTok, four print-shaped prompt variants, bare-integer assistant targets), for 5,000 steps ≈ 4.1 epochs, far past the loss floor. 19 log-spaced checkpoints per arm plus each arm's own base as the step-0 anchor, and every channel evaluated at every checkpoint with as a first-class column: bare-int regression (640 items — the collapse-immune knowledge readout), letter MC (2,560 items, with as a healthy-readout control), freeform implement/describe (384 — the channel that died at step 30 in all six 12B arms), and logprob forced-choice (960, generation-free). Greedy decoding throughout. Contrasts are item-paired exact McNemar tests. One design limit, stated up front: no dolci-SFT-of-raw-base checkpoint exists at 4B, so there is no true no-midtrain arm — this design separates content from aligned content; exposure-vs-nothing stays a 12B-only observation.

substrates
sft-{g0,g1,filler}xdolci/step-181 — each mid-*/step-61 (32 MTok) → identical 100 MTok Dolci SFT
finetune
LoRA r64/α128, dropout 0.05, all-linear; lr 1e-4 cosine (min ratio 0.1), wd 0.01; no replay
data
77,772 g-set-0 regression rows, 4.0 MTok, bare-integer targets; 5,000 steps ≈ 4.1 epochs
geometry
micro 32 × accum 2 = 64 rows/step, seq 2048, ~0.66 s/it
checkpoints
19 log-spaced saves/arm + step-0 base anchor; 60 checkpoint-evals total
runtime
1×H100 SXM, pod vxrnh58bgnjtzs: 3 × 61 min train + ~2 h eval sweep (adapter hot-swap, one vLLM engine per arm) · ≈$17

§2The speedup replicates

Line chart of g_regression set-0 accuracy against LoRA step on a log x-axis, three arms. The aligned g0 curve starts at 0.29 and jumps to 0.74 by step 30; the wrong-set and filler curves start at 0.06 and 0.12 and reach only 0.39 and 0.29 at step 30, crossing 0.7 around step 60. By step 200 all three curves are between 0.78 and 0.89 and they end converged at 0.84 to 0.88.
Fig. 1 · g_regression set-0 accuracy (n = 160, the collapse-immune knowledge channel) against LoRA step. Starting points differ by design — the aligned arm already knows some g0 — so read the whole curve: the step-30 gap (0.744 vs 0.394 vs 0.287) is far larger than the step-0 offset (0.287 vs 0.056 vs 0.119).

The 12B binding speedup reproduces again, at a different scale with a different function set. At step 30 the aligned arm reads 0.744 against 0.394 (wrong-set) and 0.287 (filler) — paired McNemar p = 2.3e-10 and 7.1e-16, n = 160 pairs — and it is still ahead at step 60 (0.825 vs 0.713/0.719, p = 0.006/0.009). By the endpoint the arms converge at 0.875 / 0.838 / 0.863: aligned midtraining buys speed, not ceiling, exactly the 12B pattern. No arm ever sustains ≥0.9 (g0's max is 0.894), which dents one on-record prediction — see the scorecard in §6.

§3The collapse episode: one synchronized transient, no terminal collapse

Line chart of multiple-choice parse-fail rate against LoRA step on a log x-axis, three solid arm curves with lighter dashed ICL-control curves behind them. All curves sit near zero everywhere except one spike at step 600, marked as the loss cliff: filler reaches 0.303 with its ICL control at 0.266, aligned g0 reaches 0.100, and wrong-set g1 stays at zero. By step 900 to 1200 every curve is back below 0.06 and stays below 0.03 to step 5000.
Fig. 2 · MC parse-fail rate P on g-set-0 non-ICL multiple choice (n = 320), with each arm's ICL control ghosted behind it. One synchronized episode at step 600 — exactly where the training loss falls off its cliff — and every arm escapes it. The filler episode is deep enough to drag down even its ICL control (0.266), which is 0.91+ gradeable at step 0 by construction.

Every degeneracy measure — P, the bare-integer rate, shape entropy, the freeform channel — spikes in all three arms at step 600, and only there. That is where the training loss falls off its cliff: ~1e-2 logged in every arm at step 600, first below 1e-4 at step 750–1030, ~1e-5 by step 900. At the peak the parse-fail ordering is the headline: filler 0.303, g0 0.100, g1 0.000 — filler vs g0 p = 1.9e-13, filler vs g1 p = 1.3e-29 (97 vs 0 discordant items). The filler arm's worst cells hit P = 0.62 (mc_code_rev) and 0.51 (mc_language_rev).

And then it ends. All three arms recover by step 900–1200 and hold P ≤ 0.028 from 1200 all the way to 5000 — roughly 4,000 further steps at effectively zero loss (final logged loss ~1.2–1.4e-7) without re-entering the basin. No arm ever sustains P ≥ 0.10. Contrast the 12B result, where the no-midtrain arm was terminally collapsed at P = 0.905 from step 600 on. The 12B re-grade's reading replicates — the degenerate basin gets visited, hardest by the arm with no function-doc midtrain — but terminal collapse does not appear at this scale and config at all. (A plausible mechanism for shallow, escapable visits under LoRA: forgetting living in removable intruder dimensions, Shuttleworth et al. 2025, with Biderman et al. 2024's "LoRA forgets less" as the backdrop.)

§4Content, not exposure — the manipulated answer

This is the contrast the 12B data could not supply. There, the protection ordering (none < wrong-set < aligned) was observational, and the dull reading — "any large corpus in the optimizer's recent history protects; it's about token exposure" — fit it fine. Here all three arms had identical 32 MTok midtrains; only the content differs. If exposure were the mechanism, the three curves in Fig. 2 would be indistinguishable. They are not: the filler arm collapsed three times deeper than the aligned arm and its episode reached even the ICL control. The exposure-only reading is dead.

But the refinement cuts both ways. The wrong-set corpus — disjoint functions, different labels — protected at least as well as the aligned one, numerically better at the peak (0.000 vs 0.100). So protection is not knowledge of the specific finetuned functions either. The 12B graded ordering refines to {any function-doc corpus} ≫ {matched-size filler}. This is a cleaner behavioural datum for the midtraining-as-distributional-bridging story (Liu, Neubig & Xiong 2025) than the 12B version, and it complements Feng et al. 2026, who vary when post-training-shaped data enters pretraining but not what a fixed-size corpus contains.

One caveat, stated honestly: both g-corpora embed print-shaped regression examples in their documents; the Dolmino filler contains nothing FT-row-shaped. So "content" here plausibly reduces to familiarity with the finetune row format — the substrate having seen interpreter-prompt/bare-integer rows before the adapter concentrates on them — rather than function knowledge per se. This run cannot separate those; a format-only arm (regression rows about other functions, no doc prose) would.

§5Two surprises, reported faithfully

First: the freeform ordering inverts. At 12B the freeform channel — "write the Python def" — collapsed to bare integers at step 30 in all six arms. Here it survives an order of magnitude longer (zero through step 300 in both g-arms), peaks at the step-600 episode like everything else — and then, unlike P, only partially recovers. And the endpoint ordering is the exact reverse of the protection ordering:

Line chart of the bare-integer rate on freeform implement and describe items against LoRA step on a log x-axis. All three arms sit at zero until about step 100, spike together at step 600 to between 0.49 and 0.84, then settle to plateaus that never recover: the aligned g0 arm highest at 0.740, wrong-set g1 at 0.448, filler lowest at 0.385.
Fig. 3 · Fb, the bare-integer rate on freeform implement+describe (n = 96). Unlike parse-fail, this channel never fully recovers from the episode — and the arm ordering flips: the aligned arm ends most degenerate (0.740 > 0.448 > 0.385).

The arm that most fluently emits bare integers for its trained functions is also the one that most often emits them where a def was asked for. I flag this as unexplained. It cautions against reading "protection" as a single arm-level property: it is channel-specific, and the channels can order oppositely. The other degeneracy measures tell the same story at lower amplitude (endpoint bare-integer rate over the whole off-format pool: 0.180 / 0.125 / 0.108).

Second: a clean over-training discrimination decay. The aligned arm's letter-MC accuracy peaks at 0.634 at step 200 (vs 0.441/0.419; paired p ≤ 1.7e-10 against both) with parse-fail exactly zero — a real discrimination gain, no parse artifact, unlike the 12B endpoint gaps. Then it decays to 0.459 by step 5000, while the same arm's g_regression holds flat at 0.875–0.887 and its forced-choice keeps rising to 0.775. Not parse failure (P ≤ 0.013 throughout), not knowledge loss — the letter channel alone gives the advantage back under over-training, to the point where the wrong-set arm drifts numerically above (0.516 vs 0.459, p = 0.066, not significant). The durable aligned-midtrain advantage at step 5000 lives in the logprob channel: fc = 0.775 / 0.708 / 0.688, paired p = 8.6e-04 and 7.5e-04, n = 240. For completeness: the automated check finds no 12B-style dissociation anywhere in this run — this regime never produces the deep-collapse checkpoints that generate it.

Two-panel figure. Left panel: multiple-choice accuracy against LoRA step for three arms, raw as solid lines and gradeable-only as lighter dashed lines that lie on top of them almost everywhere; the aligned arm rises to a 0.634 peak at step 200 and then decays to 0.459 by step 5000, while the wrong-set arm ends slightly higher at 0.516; a dotted line marks 0.25 chance. Right panel: forced-choice accuracy against step; all arms rise from near 0.5 chance, and the aligned arm ends clearly highest at 0.775 versus 0.708 and 0.688.
Fig. 4 · Over-training pulls the two discrimination channels apart. Left: pooled g-set-0 letter MC (n = 320), raw (solid) vs gradeable-only (dashed) — the curves coincide except inside the step-600 episode, so none of this is parse selection; the aligned peak at 200 decays under further training. Right: generation-free forced choice (n = 240) keeps the aligned ordering to the end. Dotted lines are chance (0.25 and 0.5).

§6Scorecard against the on-record predictions

The SPEC's predictions were committed before the run (commit 80398c6). How they scored:

prediction (on record)outcomeverdict
g0 reaches g_regression ≥0.9 in fewest steps; report curves and threshold both g0 crosses 0.5 at step 30 vs 60 for both others (p ≤ 0.009 at both steps) — but no arm sustains ≥0.9 (g0 max 0.894); endpoints converge 0.875/0.838/0.863 hit on speedup, miss on the 0.9 bar
Collapse ordering: filler first, g0 last/never ⇒ protection needs content filler collapsed hardest (0.303 vs 0.100 vs 0.000 at the peak) — exposure-only reading refuted; but g1 ≥ g0, so content-not-alignment, with the format-familiarity caveat (§4) first branch, modified
Metastability: expect visits-and-escapes; never report a checkpoint without its neighbours one synchronized episode at step 600, escaped by all arms; no terminal collapse in 4,000 further steps hit
implement/describe die early in all arms; MC resists longer, ordered by arm freeform survived to step 450–600 (12B: step 30); MC did resist longer — but the freeform endpoint ordering inverted, g0 most degraded (§5) miss, informatively

Net: both 12B findings replicate at 4B with a different function set — speedup and protection — and the new manipulation retires the exposure story. What "content" is doing (semantics or format familiarity), why the freeform channel inverts, and why the letter channel decays under over-training while the logprob channel does not, are the open items. All single-seed, single FT dataset, one episode per arm.

Experiment · experiments/bindfn_4b/lowdiv_lora/ in ArcadiaImpact/science-of-midtraining, branch experiment/bindfn-lowdiv (PR #254); results commit 530a94f (SPEC with on-record predictions at 80398c6).
Analysis · analyze_lowdiv.pyresults/collapse_tables.json; exact McNemar contrasts in paired_stats.pyresults/paired_stats.json. Figures here: make_figs.py in this folder.
Checkpoints · 19 adapters/arm (~40 MB each) at arcadia-impact/bindfn4b-ckpt under lowdiv-{g0,g1,filler}/step-<n>; step-0 anchors are the bases sft-*xdolci/step-181 in the same repo (private).
Compute · RunPod vxrnh58bgnjtzs, 1×H100 SXM (deleted); 3 × 61 min train + ~2 h eval · total ≈$17.
Context · Zheng et al., spurious forgetting; Liu, Neubig & Xiong, midtraining as distributional bridging; Feng et al. 2026 (arXiv:2605.12705), early exposure — varies timing, not content at fixed size.