Crowd-sourcing a training-prediction formula

This run is finished. This page was a live notebook while the fleet ran; it now records the final state. The stand-alone write-up now lives on main at experiments/training_prediction/symreg/blogpost.md (run-time path findings/training_prediction_symreg/blogpost.md; the task branch has been archived into main and deleted).

§0TL;DR — conclusion

winner
PR #176 — the prior projection operator's pattern term (ridge solve in the Adam-preconditioned Gram Gpre, one global λ=40) plus a pairwise interaction term built from a rank-1 truncation of the exact gradient Gram G, with the interaction's blend weight derived at score time from G's own spectral concentration (λ₁/tr G) instead of a constant tuned on the public grid — and a graceful Kcorr fallback when the Gram matrices are absent
held-out score
LDS 0.6414 vs the prior operator's 0.3455 on the same frozen grid (1.86×; wins all 4 optimizer families) · magnitude calibration R² 0.1045 vs −0.0457 — ranking transfers across a 4× scale jump far better than magnitudes do
runners-up
#174 0.6414 (identical formula, minus a crash fix) · #184/#168 0.6412 (same term, ablation/portability bases) · #163/#160 0.6403
takeaway
the pairwise-interaction information lives in the exact Gram's top eigenmode; preconditioning belongs only in the pattern solve. And: constants tuned on one grid don't transfer — derive them from the matrices you're handed at score time.

§1The question

The loss-kernel thread's training-prediction study (948 runs on gemma-3-270m, 10 optimizer families) found that the best predictor of "how does fine-tuning on subset S change the loss on other documents" isn't the loss kernel alone, or the exact gradient Gram alone — it's a that solves in the gradient Gram's geometry and propagates through the Adam-preconditioned Gram. That operator beat every simpler alternative for all 10 families, but it came from a fairly narrow, manually-directed search over one model scale. Two questions follow: is there a better formula a wider search would find, and does the current best answer even hold up at a different model scale?

§2The experiment design

Rather than search this by hand, this run hands the search to a fleet of Sonnet-5 workers, each submitting a Python function predict(ctx) → per-document loss change as a pull request, scored automatically. The scoring twist is the load-bearing part: workers are judged against a sequestered reproduction of the entire pipeline — kernel, gradient Gram, fine-tune grid — at a larger, never-revealed model scale, generated by a dedicated compute node and continually expanded for the duration of the run. A formula that wins by exploiting some idiosyncrasy of gemma-3-270m specifically should fail to transfer; one that wins because it captures something structurally real about the kernel/Gram/subset relationship should transfer to the unseen scale.

public data
948-run gemma-3-270m grid (existing) + whatever workers regenerate themselves
held-out data
continually-expanding reproduction at a larger, undisclosed model scale
held-out compute
1× H200 SXM ("central organizer")
worker fleet
4× Sonnet-5 on RTX 4090s, 12h
score
mean LDS (rank correlation, residualized against a doc-level baseline) across scoreable families
code
arch/training_prediction_symreg

Concretely, a submission is one file — submission/predictor.py, defining predict(ctx: dict) -> np.ndarray — and it is pure numpy/scipy on CPU: no model, no checkpoint, no GPU (the eval pod installs nothing else). All the deep learning — SGLD kernel estimation, per-document gradients, the fine-tune grid itself — happens upstream in the pipeline; the formula only ever sees the precomputed artifacts. The scorer calls predict() once per held-out fine-tune run, and ctx is a plain dict carrying that run's config plus the probe-set matrices shared by every run:

ctx keytype / shapemeaning
K_cov · K_corr float64 [MM] the loss kernel — SGLD-estimated covariance of per-document losses under a local posterior at the pretrained checkpoint w0 — and its Pearson-correlation normalization. Always present; the scorer zeroes non-finite entries.
G float64 [MM] · optional exact gradient Gram at w0: Gij = ⟨∇ℓi, ∇ℓj⟩ over the probe documents ()
G_pre float64 [MM] · optional the same Gram with each gradient first — the matrix the prior operator propagates through
l0 float64 [M] each probe document's base loss at w0, in nats — and the canonical place to read M from (the winner opens with M = ctx["l0"].shape[0])
docFE float64 [M] per-document fixed effect: each doc's mean out-of-subset dl over a held-back half of the runs (even subset-seeds; only odd seeds are scored, so a run never informs its own baseline). Out-of-subset dl is ~99% this universal doc-identity direction; the scored target is the residual dl − docFE.
idx int [k] the trained subset S — the positions, as 0-based integer indices into the M probe documents, of the k docs this run fine-tuned on (k = 32 in the standard scored cell). Predictions at these positions are never scored; the task is what happens to everything else.
lr · steps · size float · int · int this run's fine-tune config: learning rate, optimizer steps, and |S| (= len(idx))
family str which of the ten optimizer families the run used: sgd, adam, adamw, muon, muon_wd, lora_sgd, lora_adam, lora_adam_wd, lora_muon, sgd_l2base

The required return is a length-M float vector: predicted per-document loss change, in absolute nats, for all M documents — the in-subset entries are simply never read. On the public grid M = 512, probe documents drawn from eight Pile subsets (Pile-CC through PubMed Central); the contract nowhere promises the held-out reproduction keeps any of those numbers, so shapes have to come from ctx, never from constants. Only rank order counts toward the headline score: LDS takes each document, Spearman-correlates predicted vs realized dl − docFE across the standard cell's runs (random sampler, |S| = 32, 16 steps) that held that document out, then averages over documents and finally over optimizer families. Raw magnitudes only feed the secondary R² metric.

Mechanically, "sequestered" means: every submission is scored by an ephemeral pod that checks out the PR head, restores the scoring code and eval harness from the trusted base branch (a PR cannot alter its own scorer), runs predict() as an unprivileged sandbox user against a chmod-700 data snapshot synced from the organizer, and posts back exactly four numbers — the score plus a whitelisted metric triple (r2_mean, baseline, n_families). Everything else about the held-out grid — the model, the family composition, the run count — stayed invisible to the fleet. Full-wave re-scores after each grid increment ran (after some hard lessons, §9) as a single batch pod looping every open head against one atomic snapshot.

Two further mechanics of how the scorer builds ctx each seeded one of §4's fleet-wide bug classes. Batching: a family's scored runs all go through one sandboxed subprocess under a single 300-second wall-clock cap, one predict() call per run — and every call is handed the same matrix objects, loaded once per batch. Repeated per-call spectral work is therefore pure waste, which is why the dominant lineage carries an id()-keyed eigh cache (visible in §7's code) and why uncached variants kept dying at the cap. Optionality: G/G_pre are documented as "None if the held-out grid hasn't reached the gram stage for this snapshot", but the shim ships the shared matrices via np.savez, which can't serialize None — so a missing Gram arrives as a missing key, not a None value. ctx["G_pre"] therefore raises a KeyError that takes down the family's entire batch, while ctx.get("G_pre") falls back to the Kcorr branch the way every formula intends — the landmine #172 unearthed and the winning PR exists to fix.

§3How the run unfolded

The fleet (3× RTX 4090 + 1× A5000, each running a Sonnet-5 loop) spawned at 13:42 UTC. The first submission (#5) landed 28 minutes later and already scored 0.4099 on the final grid — above the 0.3455 prior. Ninety minutes in, #10 hit 0.6160, and then the frontier flatlined for six hours: forty-odd PRs of ridge-strength tables, calibration fixes, and kernel blends produced a best gain of +0.004. The breakthrough came at +9.9 h#138's sign-flip finding (a pairwise interaction term helps with opposite sign depending on whether it's computed in G or Gpre), which #151 sharpened into the rank-1 form. Everything above 0.63 on this page descends from that observation, in the run's final 2.5 hours.

Scatter of all 149 submissions over the 12.5-hour run, submission time vs final-grid held-out LDS. An orange running-best staircase rises from #5 (0.41, +0.5h) through #6 (0.55), #10 (0.616, +1.5h), stays flat for six hours through #27/#91/#123, then climbs through #138 (0.629), #151 (0.633), #160 (0.640) to #174 (0.6414); the winner #176 is a gold star at +11.9h. A grey dashed line marks the prior operator at 0.346; every dot sits above it.
The fleet's 12.5 hours, one dot per submission — x is when the PR was opened, y is its score on the final frozen 4-family grid (every head was re-scored once, post-deadline, so the y-axis is apples-to-apples; live scores during the run were computed on whatever grid slice existed at the time). The orange staircase is the running best: #5 (0.4099) → #6 (0.5459) → #10 (0.6160) → #27 (0.6176, then a six-hour plateau) → #91#123#138 (0.6291, the sign-flip) → #147#151 (rank-1 truncation) → #156#160 (0.6403) → #168#174 (0.6414). Gold star: #176, the winner — same score as #174, plus the crash fix. PDF.

Meanwhile the organizer expanded the held-out grid family-by-family for the whole window — SGD scoreable by mid-afternoon, Adam by evening, Muon around 23:00, LoRA-Adam partial at the 02:12:37 deadline — re-scoring every open PR after each increment. 179 labeled PRs in 12.5 h is one every ~4 minutes fleet-wide; the workers closed 31 themselves as dead ends. The last submissions (#183, #184) landed 13 minutes before the wall.

§4Research threads — what the fleet actually did

179 PRs collapse into eight threads. Each fold has the thread's arc and its final-grid numbers; scores quoted are from the single frozen post-deadline snapshot, so threads are directly comparable.

  1. Ridge-strength engineering (the inherited base).plateau thread — per-family tables ≈ one global constant; the winner uses a single λ=40 The prior operator's lineage (#27, #79) led the board for six hours on per-family ridge-strength tables. Then #95 ran an honest nested-CV and showed a single global constant ties the 9-parameter table; #100 found the principled middle (group by base optimizer, 9→3 params); #104/#113 carved out the one real exception (sgd_l2base wants its own value); and #118 explained the whole thing — the tuned solve sits on a large-λ plateau where ridge is nearly a scaled projection, so fine-grained λ tables have nothing to grab. Final-grid scores across the thread: 0.6176–0.6197, all within 0.002 of each other. Verdict: simple beats elaborate (#115 said it mid-run, and the final grid agrees); the winner carries #173's single-global-λ base.
  2. The rank-1 G interaction term (winner thread).the run's one new mechanism — +0.024 over the plateau, portable across every base tested #138 noticed a pairwise interaction term (how much the trained subset's documents reinforce each other) helps with opposite sign when computed in G vs Gpre — the preconditioner scrambles exactly the second-order structure the term needs. #144 bootstrap-confirmed the per-family split ranks by optimizer complexity. #151 then truncated G to its dominant eigenmode only (rank-1), which sharpened the term (0.6327 with #158's timeout fix), and the portability campaign began: #160 onto the held-out leader's base (0.6403), #168 onto a second base (0.6412), #173 onto the single-global-λ base (0.6393) — same gain everywhere, same fixed blend weight W_PAIR=0.3. #174 made that last constant self-calibrating (W ∝ λ₁/tr G, solved to be a no-op on the public grid — a pure transfer bet), and #176 added a fleet-discovered crash fix: the winner, 0.6414. The clean ablation #182 (source the term from Gpre instead: 0.6365, consistently worse) and #184 (the G-vs-Gpre gap is scale-dominated) closed the loop.
  3. K_corr fusion attempts.kernel adds little once the Gram terms are right; nothing composed with the interaction term The loss kernel earned its keep only in niches. #92's one-step-CG blend of Kcorr into the pattern term was the era's best local gain; #96 leave-one-family-out-validated it but flagged LoRA-Adam, #107 gated it off for LoRA, #123 ported it to the leading base (0.6197). #135 tried elementwise Kcorr modulation of the pattern term (0.6187). But the composition tests were the point: #147 (modulation + interaction, 0.6308) and #156 (CG-blend + interaction, 0.6348) both landed below the interaction term alone on the same bases, and #117 (MKL-style fusion into the solve geometry) and #130 (additive solve blend) were clean nulls. Verdict: K and the rank-1 G term appear to read overlapping information; G's version is sharper.
  4. Robustness & fallback engineering.where a chunk of the winning margin actually came from — three bug classes found and fixed fleet-wide Three genuine bug classes were discovered by the workers, in each other's code. (1) The Kcorr fallback collapsed to near-random without top-mode deflation — found by #42, fixed across lineages by #94/#97/#105/#110, tuned by #136. (2) Uncached eigh calls blew the 300s scoring timeout — #90/#158 fixed live instances, and #162 audited the fleet ("37 open PRs share this"), spawning pre-emptive cache fixes (#159/#163/#165/#167/#169/#170/#171). (3) #172 found the ctx["G_pre"] KeyError landmine (the scoring shim drops the key when gram artifacts lag a snapshot; direct indexing crashes the whole family batch instead of falling back) — cross-applied by #181 and by #176, which is how the winner is literally "the best formula + another worker's crash fix". Several fix-PRs outscored the formulas they fixed.
  5. Calibration (r2_mean) side-quest.free, LDS-invariant magnitude fixes — the run's R² gain (−0.05 → 0.10) largely lives here LDS is rank-based, so per-run scale calibration is "free" — it can't move the headline score but fixes R². #44 established the global calibration, #99 made it per-family, and #121/#127/#142 ported it across lineages. Magnitudes remain the honest weakness: the winner's R² is 0.1045 — better than the prior operator's −0.0457, far from calibrated.
  6. Cross-architecture & cross-scale validation discipline.the fleet invented its own transfer methodology — and it predicted the held-out outcome With the held-out scale secret, workers built their own transfer checks: 8/8-split cross-scale runs on public models (#85/#87/#91/#93/#98) and a gpt2 line (#116/#124/#133/#149/#150/#155) as a second architecture. Findings: the ridge-strength form transfers; GAMMA and G-deflation don't; muon's deflation harm replicates at gpt2-medium; #149 even caught adamw flipping on gpt2. This discipline is why the final constants were either cross-validated at two scales or derived from score-time measurements — exactly the property the sequestered eval rewarded.
  7. Grid-robustness checks (sampling, scale rules).predictor is robust to subset-selection strategy; density-modulated scale was a wash #140/#141 swept subset sampling distributions (random vs cluster vs distance) across 9/10 public families — distance sampling hurts almost everywhere, and #146 split the mechanism into two causes. Seeded direction #1 (density-modulated per-run scale) got a real test: #154 modest-positive locally, #157 sign-flips on the ridge-projection lineage — net a wash, not adopted by the winner.
  8. Clean negatives (the fence around the answer).ten falsified ideas that stop the next person re-trying them #126 data-driven joint fits collapse to near-baseline (seeded direction #8 falsified); #175 early-stopped GD solve underperforms exact ridge (direction #12); #177/#179/#180/#183 effective-rank ridge corrections are net-negative on both Gpre and G; #125 MAD-robust normalization loses badly to plain std; #106 docFE-whitening doesn't help; #128 pre-solve matrix blending/whitening hurts monotonically; #152 λ-ensembles don't hedge; #164/#161 Gpre deflation hurts all LoRA families; #134 swapping to raw G for Muon runs hurts; and #131's "true-minimal" formula (no ridge, no interaction) confirms both remaining components earn their keep.

§5Final result

The fleet ran its full 12 h and filed 179 scored submissions (31 self-closed as dead ends along the way). After the deadline — with every worker gone — all 149 surviving heads were re-scored once against a single frozen held-out snapshot: 4 optimizer families, 506 fine-tune runs at gemma-3-1b, generated by the organizer for 13 hours and never visible to the workers. (The scale secret is out now that the run is over: development grid gemma-3-270m, held-out reproduction gemma-3-1b.)

All 149 submissions beat the prior operator at the unseen scale; the winner nearly doubles the ranking signal — held-out LDS 0.641 vs 0.346, in every family.

Grouped bar chart: held-out LDS per optimizer family (Adam, Muon, LoRA-Adam, SGD, mean), winner vs prior best operator. Winner wins every family, 0.641 vs 0.346 on the mean.
Held-out LDS at gemma-3-1b by optimizer family: this run's winning formula (solid) vs the prior best projection operator (hatched). LDS = per-document Spearman of predicted vs realized loss change (doc fixed effects removed) on documents outside the trained subset.

The winning formula keeps the prior operator's ridge-projection pattern term (solve in Gpre geometry with a single global ridge strength) and adds a pairwise interaction term built from a rank-1 truncation of the exact gradient Gram — keep only G's dominant eigenmode, form ½[(Σj∈SG₁ij)² − Σj∈SG₁ij²] — with the blend weight derived at score time from G's own spectral concentration (λ₁/tr G) rather than a constant tuned on the public grid. The lineage is classic fleet behaviour: one worker established the rank-1 term, ported it across three bases, and self-calibrated its weight; other workers independently ablated it (sourcing it from Gpre instead of G is consistently worse), stress-tested composition, and cross-applied robustness fixes. The winner is literally the best formula plus another worker's crash fix.

Solid negative results, all confirmed at the unseen scale: the interaction term must come from the exact Gram (the Gpre-sourced variant loses); Kcorr-modulated pattern terms don't compose with the interaction term; effective-rank ridge corrections are net-negative; distance-based subset sampling hurts almost everywhere. The fleet also found and fixed two genuine bug classes in its own dominant lineage — uncached eigh calls that blew scoring timeouts, and a ctx KeyError landmine on the documented missing-gram path — which is where the winning margin partly came from: late-fleet effort went to robustness, not leaderboard-chasing.

One kernel-side nugget survives every caveat: the exact gradient Gram's eigenvalue-decay slope is scale-invariant to three decimals (0.737 at 1B vs 0.736 at 270M, R² ≈ 0.995), while the SGLD loss-kernel's tail slope at 1B remains estimation-limited (the denser re-estimation never fit the window) — so kernel-slope cross-scale claims stay open, and Gram-slope ones don't. Post-run update: a day-after v2 re-estimation (§10) closed this — with proper sampling the 1B kernel slope is 0.736 vs 0.743 at 270M. The kernel's spectral slope is scale-invariant too; v1's apparent 1.06 was an estimation artifact.

§6Final held-out leaderboard — all 149 scored submissions

Every head open at the deadline, scored once on the frozen 4-family gemma-3-1b grid (post-deadline wave, 2026-07-08 12:42–13:57 UTC). Baseline (prior operator, same grid): LDS 0.3455, R² −0.046. All 149 clear it. Bold row: the winner.

rankPRLDSattempt
1#1740.64140.104Derive the interaction term's blend weight from G's own measured spectral concentration
2#1760.64140.104Fix ctx['G_pre']/ctx['G'] KeyError inherited from the PR #27 lineage, on PR #174's formula
3#1680.64120.110Second portability check: rank-1 G interaction term gives same gain on a different base (PR #100)
4#1840.64120.110Methodological follow-up: G-vs-G_pre interaction ablation (#182) is scale-dominated, not a clean geometry test
5#1600.64030.076Port rank-1 G interaction term onto the real held-out leader's base (best local score this session)
6#1630.64030.076Fix uncached eigh timeout in PR #160 (same bug PR #158 fixed on PR #151)
7#1730.63930.110Third portability check: rank-1 G interaction term on a single-global-lambda base
8#1820.63650.108Ablation: rank-1 interaction term sourced from G_pre instead of G — clean negative result
9#1560.63480.114Synthesis test: rank-1 G interaction (#151) does NOT compose with K_corr modulation (#135)
10#1650.63480.114Fix uncached eigh timeout in PR #156 (same bug PR #158 fixed on PR #151)
11#1510.63270.115Rank-1 truncation of G sharpens the G-geometry interaction term (extends #138)
12#1580.63270.115Fix a live 300s timeout in PR #151 (uncached eigh on G)
13#1470.63080.110Synthesis: combine K_corr-modulated PATTERN term (PR #135) with G-geometry interaction term (PR #138)
14#1380.62910.115Sign-flip finding: pairwise-interaction term helps with opposite sign when computed in G vs G_pre
15#1420.62910.116Free r2_mean calibration fix for PR #138's G-exact interaction formula
16#1440.62910.116Bootstrap-confirms PR #138's per-family split ranks by optimizer complexity
17#1230.61970.120Port K_corr CG-blend pattern term onto the real-held-out-leading base
18#1350.61870.139New fusion mechanism: elementwise K_corr modulation of G_pre's pattern term
19#910.61860.118Cross-scale check PR #79 (current real-held-out leader), not my own formula
20#1000.61790.119Group LAM_REL by base optimizer type: principled middle ground (9 -> 3 params)
21#1040.61790.118sgd_l2base needs its own LAM_REL, not PR #100's auto-assigned sgd group
22#270.6176-8905Per-family ridge strength lifts #10's whitened G_pre projection to 0.6506 LDS
23#790.6176-0.219Apply r2_mean calibration fix to PR #27's formula (currently strong on real held-out)
24#840.6176-0.219Methodological note: a fair same-snapshot comparison contradicts PR #78's real-held-out GAMMA claim
25#940.6176-0.219Fix PR #79's K_corr fallback: collapses to near-random, deflation fixes it
26#990.61760.120Per-family (not just global) r2_mean calibration: free, LDS-invariant improvement
27#1110.61760.120Synthesis: PR #27/#79's per-family LAM_REL (real held-out co-leader) + per-family calibration + K_corr fallbac
28#1140.61760.120Meta-finding: every tested addition to the base per-family-ridge formula has cost real held-out LDS so far
29#1260.61760.120Negative result: data-driven joint-fit (seed direction #8) collapses to near-baseline
30#1290.61760.120Methodological update: simple-beats-elaborate pattern holds on the bigger n=3 held-out snapshot
31#1400.61760.120Robustness check: subset SAMPLING distribution, not just scale/architecture
32#1410.61760.120Extend sampler-robustness check to 9/10 families: distance sampling hurts almost everywhere
33#1460.61760.120Mechanistic follow-up: the sampler-robustness gap splits into two distinct causes
34#1530.61760.120Fold PR #104's cross-scale-validated sgd_l2base LAM_REL into the real-held-out leader
35#1620.61760.120Pre-emptive fix: cache PR #140's uncached eigh + fleet-wide audit (37 open PRs share this pattern)
36#1660.6176-0.219Resubmit #94's K_corr-fallback fix fresh, for a fair same-snapshot comparison against the current leader
37#1690.61760.120Pre-emptive fix: cache PR #111's uncached eigh (same bug family as #105/#108/#140)
38#1700.61760.120Pre-emptive fix: cache PR #114's uncached eigh (last of the #105/#108/#111/#114/#140 family)
39#1710.61760.120Cache K_corr-fallback eigh (same uncached-eigh bug class as #41/#158)
40#1720.61760.120Fix fleet-wide ctx['G_pre'] KeyError in K_corr fallback + negative result for spectral truncation
41#1810.6176-0.219Fix latent ctx['G_pre'] KeyError on PR #79/#94's lineage (the actual real held-out co-leader)
42#950.6172-0.220Honest nested-CV: #27's per-family ridge strength barely beats a single global constant
43#980.6172-0.220Cross-scale check: ridge-strength LAM_REL transfers well, unlike GAMMA or G-deflation
44#1020.61720.120Synthesis: global ridge strength (PR #95) + per-family calibration (PR #99)
45#1050.61720.120Fix: K_corr-only fallback branch has the same near-singular-ridge bug PR #42 found elsewhere
46#1220.6172-0.220Synthesis: PR #95's global ridge strength + PR #94's deflated K_corr fallback fix, combined
47#1320.6172-0.220Synthesis: fold PR #104's cross-scale-validated sgd_l2base override into PR #122's combined formula
48#1360.6172-0.220Tune the K_corr fallback's deflation to 2 eigenmodes, not 1 (extends PR #94)
49#1370.6172-0.220Methodological note: mapping this session's sweep across the dominant formula's 5 moving parts
50#1480.6172-0.220Methodological note: per-family vs global LAM_REL tie confirmed at a second held-out snapshot (n=3)
51#1670.61720.120Pre-emptive fix: cache PR #105's uncached eigh (origin of the K_corr-fallback pattern)
52#1780.6172-0.220Fresh same-snapshot plain-base submission for a fair comparison against the rank-1 G interaction lineage
53#1080.61710.121Isolate DOF-analytic ridge rule from GAMMA: plateau-edge theory doesn't hold up, GAMMA is the likely culprit
54#1590.61710.121Pre-emptive fix: cache PR #108's uncached eigh (same bug class as #90/#158)
55#100.6160-8936Doc-heteroskedasticity-corrected normalization: 0.648 LDS, robust improvement over #6
56#130.6160-8936Cheap Adam-preconditioner (4 calibration batches) transfers within noise of the full one (64)
57#1310.61420.140True-minimal formula: combine no-ridge-solve with no-W_PAIR
58#1090.61070.133Synthesis: base-type LAM_REL grouping + cross-architecture W_PAIR + fallback fix
59#1130.61070.144sgd_l2base needs its own W_PAIR too, not just LAM_REL
60#1030.61030.133Add the one cross-architecture-validated extra (W_PAIR) to the real held-out leader's base
61#1150.61030.133Methodological note: real held-out data now shows simple beats elaborate, by a wide margin
62#860.6083-0.149Add W_PAIR to the GAMMA-free base (#27+calibration), completing a 2x2 {GAMMA,W_PAIR} grid
63#1180.60670.133Mechanistic finding: the tuned ridge solve sits on a large-lambda plateau, nearly equivalent to a plain sum
64#1190.60670.133Follow-up: the deflated-G chain hits the same ~0.64 plateau, at the same tuned lambda values
65#1210.60670.137Free per-family r2_mean fix for the zero-ridge-hyperparameter formula (PR #118 + PR #99)
66#170.6039-8879Per-family ridge strength lifts LDS from 0.6497 (PR #15) to 0.6523
67#560.6038-12503First cross-model-scale test: gemma-3-1b shows sgd/adam's 270M-tuned gamma doesn't transfer
68#780.6033-0.063Add #52's global honest-CV GAMMA to #27's real-held-out-leading formula (0.6518)
69#800.6028-0.063Conditional DOF-fraction ridge rule: extrapolate from G's measured spectrum ratio
70#240.6007-8871Deflating G's dominant eigenmode before solving there beats G_pre: 0.6497 -> 0.6537 LDS
71#360.6007-8871Confirmatory: full removal of G's top mode is a sharp exact optimum, not a tunable default
72#680.6007-0.064DOF-analytic G_pre ridge lambda + honest-CV global gamma, no deflation (ties #27's per-family lookup, 0.6505)
73#700.6007-0.064Cross-scale check: #68's no-deflation DOF-lambda formula beats deflated/per-family alternatives on real gemma-
74#740.6007-0.064Nested-honest-CV check: DOF_FRAC doesn't need to be per-family either (extends #52)
75#150.6001-8915l0-based per-doc scale factor lifts #10's normalization further to 0.650 LDS
76#820.5995-0.182Adaptive deflation + continuous DOF_FRAC(ratio) rule (keeps deflation's Gemma-family gain, higher cross-arch h
77#190.5992-10640Negatively-weighted pairwise interaction term lifts #10/#15's whitened ridge projection to 0.6511 LDS
78#880.5992-0.184Single-variable ablation of PR #77: deflation forced off, everything else identical
79#830.5988-0.153Add global W_PAIR + robust K_corr fallback to #27+GAMMA (#78's formula)
80#640.5984-0.035Replace #18's per-family GAMMA table with #52's honest-CV global constant (0.15)
81#810.5984-0.183Full synthesis: spectrum-derived lambda + adaptive deflation + global GAMMA + calibration/fallback fixes
82#520.5980-10593Nested honest CV shows per-family lookup tables lose to plain global constants
83#540.59800.123Free r2_mean fix for the honest-CV global-constant formula (#52)
84#590.5980-10593Combine honest-CV global constants (#52) with conditional deflation (#53)
85#770.5980-0.183Synthesis: adaptive deflation + global-only constants (honest-CV) + calibration/fallback fixes
86#620.5976-10589Held-out-evidence-informed hybrid: conditional deflation + real per-family ridge tables + global gamma/w_pair
87#660.5976-10589New spectrum data point: gpt2-medium disentangles architecture from scale for the deflation threshold
88#670.5976-10589Direct benefit check: G-deflation hurts on gpt2-medium (355M) too
89#690.5976-10589GAMMA's near-flat effect (PR #63's gpt2 finding) also holds on gpt2-medium (355M)
90#710.5976-10589Spectrum-derived ridge rule's own KAPPA constant doesn't transfer to gpt2-medium either
91#730.5976-10589DOF-fraction ridge rule: calibration doesn't transfer, but its ceiling beats fixed lambda and power-law+KAPPA
92#760.5976-10589Completes the architecture-transfer survey: W_PAIR's sign transfers, unlike deflation or ridge-lambda magnitud
93#600.5963-12403Correction to #56: joint gamma+w_pair sweep (not isolated) on cross-scale data
94#260.5943-12517Spectrum-derived DOF ridge strength ties per-family lookup (1 constant vs 9)
95#650.5938-12187Extend cross-scale correction to adamw/muon: gamma's sign flips at 1B scale
96#750.5938-12187Extend cross-scale correction to 7 families: LoRA's rank-vs-scale gap
97#220.5933-12492Per-family pairwise-interaction weight lifts LDS from 0.66 (PR #18) to 0.6658
98#480.5913-11970Joint per-family grid search over 3 constants: new public high 0.6699, but bootstrap says it's mostly noise
99#180.5912-8871Per-family l0-scaling exponent lifts LDS from 0.6523 (PR #17) to 0.66
100#230.5907-11868Interaction term still helps on top of #17/#18's per-family base: 0.660 -> 0.6616 LDS
101#290.5907-12482Combine G-deflation (#24) + spectrum-derived DOF lambda (#26): LDS 0.6661
102#390.5907-12482Unlock and tune the sgd_l2base family with 16 supplementary generated runs
103#410.5907-12482Cache G's top-mode deflation: same score, ~19x faster, removes a flagged timeout risk
104#440.59070.135Fix r2_mean for free: a global, sign-safe absolute-magnitude calibration
105#450.59070.137Per-family absolute-magnitude calibration, safeguarded against sign flips
106#280.5905-12480Top-mode deflation + per-family tuning: new best public LDS 0.6683 (was 0.6658)
107#350.5905-10610Per-family gamma is the load-bearing lookup table; per-family w_pair is not
108#420.5905-12480Fix: K_corr-only fallback (used when G/G_pre unavailable) scored ~0.013, now 0.166
109#430.5905-12480Perf: cache deflate_top_mode (PR #41's fix, applied to my own formula, both call sites)
110#460.5905-12480Confirms #35: gamma is the load-bearing per-family table, even for the deflated-G solve matrix
111#470.5905-0.209Apply #44's r2_mean calibration fix to my own formula: -5833 -> -0.14 (score unchanged)
112#510.5905-0.209G's deflation benefit doesn't generalize to gpt2/Qwen2.5-0.5B -- direct empirical check
113#530.5905-0.209Make G-deflation conditional on the target model's own measured spectrum
114#630.5905-0.209Does per-family gamma also fail to generalize? Different failure mode than deflation
115#720.5905-0.209Completes the trilogy: interaction-term weight (w_pair) transfers well across scale (unlike deflation/gamma)
116#400.5904-12527Three data-free refinements on #28's SOTA: scale-covariate, delta_S, solve-weighted interaction all negative
117#900.5904-1517Fix a live timeout + free r2 calibration on #40's leaderboard-leading LDS formula
118#930.5904-1517Real 8/8-split check: muon_wd deflation transfers to gemma-3-1b, but a matched grid search shows the apparent
119#320.5903-12483Spectrum-derived DOF ridge rule (#26) transfers to deflated-G matrix (#24): ties #22, lower overfitting risk t
120#1070.59020.137Gate the K_corr one-step-CG blend off for LoRA+Adam (fixes PR #92's flagged regression)
121#1100.59020.137Fix a fourth independent instance of the K_corr-fallback near-singularity bug
122#1120.59020.137Why PR #107's family-label K_corr gate can't be replaced by a 'measurable property' version
123#1160.59020.137Cross-architecture check: muon_wd on gpt2 -- deflation and W_PAIR transfer, GAMMA doesn't
124#1240.59020.137Follow-up to #116: plain muon (no weight decay) shows GAMMA sign-flip too, but deflation is closer to neutral
125#1270.59020.138Free per-family r2_mean fix for the gated + fallback-fixed K_corr chain (PR #99's calibration)
126#1330.59020.137Third gpt2 cross-architecture point: sgd_l2base's deflation harm is the largest yet
127#1390.59020.137Within-family test complicates the checkpoint-pull-strength hypothesis: deflation harm is non-monotonic in sgd
128#1430.59020.137Properly-controlled rho sweep reverses #124/#133's checkpoint-pull hypothesis
129#1450.59020.137Synthesis: cross-architecture transfer evidence by family, in one table
130#1490.59020.137adamw on gpt2: deflation HELPS, breaking the established cross-architecture pattern
131#1500.59020.137adam (not adamw) shows a small deflation harm on gpt2, falsifying my own preconditioning hypothesis
132#1550.59020.137muon_wd's deflation harm replicates at gpt2-medium (355M), a second non-Gemma scale
133#850.5896-10684Complete cross-scale check to 10/10 families: lora_sgd's gap is specific
134#870.58960.124Refit r2_mean calibration for the final 10-family cross-scale formula
135#970.58960.124Fix my own chain's K_corr fallback: same near-random collapse as PR #42/#94
136#920.5888-12714One-step CG solve makes the K_corr PATTERN blend work: LDS 0.6679 -> 0.6699
137#960.5888-12747Honest leave-one-family-out CV confirms PR #92's K_corr blend, flags a systematic LoRA-Adam regression
138#1010.58880.134Free r2_mean fix for the K_corr one-step-CG blend (PR #92 + PR #44's calibration)
139#500.5875-10576Derive ridge lambda from G's own measured spectral decay, not a swept DOF fraction (0.664)
140#550.5871-10578Design-effect (kernel-density-of-S) correction on spectral lambda beats #50 (0.6646)
141#580.5871-10578Unify conditional deflation (#53) with spectrum-extrapolated lambda (#55): one rule for both branches
142#610.5871-0.023Apply #44/#47's r2_mean calibration to the adaptive-deflate-effective-n formula (#58)
143#490.5867-10579Deflated-G solve + principled lambda + per-family gamma beats undeflated version (0.6625)
144#1570.58530.118Density-modulated scale (direction #1) flips sign on the ridge-projection lineage vs #154
145#1540.58090.135Density-modulated per-run scale (seeded direction #1): modest, mixed local result
146#60.5459-21.249Per-run std-normalization of G_pre first-order term beats the oracle-informed baseline
147#90.5446-5382Pairwise doc-interaction term lifts std-normalized ridge projection past the incumbent
148#110.5420-5380Deriving ridge strength from S's own spectral decay exponent doesn't beat the fixed constant
149#50.4099-0.084Ground-truth-free ridge projection nearly matches the (unreachable) baseline

§7The winning formula, verbatim

The exact submission/predictor.py now merged into the task branch — including the worker's own 116-line docstring, which is its research note (the provenance of the crash fix, why the blend weight is spectrum-derived, and what result would falsify the bet). The structure: a fallback branch (deflated Kcorr solve, used only if the Gram matrices are missing), the pattern term (ridge solve in Gpre over the trained subset, λ = 40·tr(QSS)/|S|, per-run normalized), and the interaction term (rank-1 G, pairwise ½[(Σj∈SG₁ij)² − Σj∈SG₁ij²], blended with weight W₀·λ₁/tr G measured from the G it is handed). Sixty lines of numpy after the docstring, touching five of the ctx keys defined in §2: idx, l0, G_pre, G, and (fallback branch only) K_corr.

"""Self-calibrating interaction weight (PR #174) + a fleet-wide
correctness fix: PR #172 (a different worker) discovered that every
predictor in this lineage reads `ctx["G_pre"]` and `ctx["G"]` by direct
dict indexing, but `tp_score_submission`'s own ctx-building code DROPS
the key entirely (rather than setting it to `None`) when the value is
`None`, because `np.savez` cannot serialize `None` and the archive is
built by filtering `None` values out before saving. Direct indexing on a
missing key raises `KeyError`, which crashes scoring for the WHOLE family
batch -- not a graceful "fall back to the K_corr branch" as every
formula's code intends and the problem statement documents (`G`/`G_pre`
are supposed to be "`None` if the held-out grid hasn't reached the gram
stage yet for that data snapshot"). This has apparently never fired on
real held-out data so far (every scored PR has a nonzero
`n_families_scored`, meaning gram was already present every time), but
it is a live landmine for the first snapshot where gram genuinely lags,
which the task's own docs say can happen. Fixed here by switching to
`ctx.get("G_pre")` / `ctx.get("G")`, exactly as PR #172 fixed it on a
different base. This attempt's own #174 formula (below) is otherwise
byte-for-byte unchanged.

## Self-calibrating interaction weight -- why (PR #174, unchanged)

My PR #151/#160/#168 established a rank-1-(dominant-eigenmode-only)
interaction term computed from the exact gradient Gram `G`, added to a
PATTERN term solved in `G_pre`. It ported cleanly across three different
PATTERN-term bases (PR #79/#84's per-family table, PR #100's 3-group
table, my own PR #173's single global constant), always with the exact
same fixed `W_PAIR=0.3`. Every one of those tests reused the SAME public
grid's `G` matrix, which has a specific spectral shape (its top eigenvalue
holds 83.8% of the trace, measured directly from
`experiments/training_prediction/results_public/gram/gram.npy`). A fixed
`W_PAIR=0.3` implicitly assumes the held-out `G` (at a different, larger,
never-revealed model scale) has a similarly concentrated spectrum. This
fleet has already found that OTHER fixed constants tuned against this
specific public grid's spectrum fail to transfer even when the general
functional FORM survives (PR #71/#73, on the ridge-lambda side) --
seeded research direction #9 asks for exactly this: derive shrinkage/
blend strength analytically from the spectrum `predict()` measures on
`ctx`'s own matrices at score time, not a constant baked in from this
grid.

## What changed

Replaced the fixed `W_PAIR=0.3` with `W_PAIR = W0 * (eigval_top /
trace(G))`, where `eigval_top` and `trace(G)` are both measured from
`ctx["G"]` itself inside `predict()` (the same `_top_eigmode` cache
already computes `eigval_top`; `trace(G)` is one extra `np.trace` call).
`W0` is chosen so that on the CURRENT public grid's own measured
concentration (0.838, matching the number above), `W_PAIR` reduces to
exactly the same value PR #151/#160/#168/#173 already validated (0.3),
so the local public-grid score is UNCHANGED -- this is a pure
generalization change, not a new tuned number. If a future (held-out,
larger-scale) `G` has a more or less spectrally concentrated top mode,
this formula's interaction weight automatically scales with it instead
of carrying over a number tuned for a 270M-parameter model's specific
spectrum.

Everything else -- the `G_pre` ridge PATTERN term (PR #173's single
global `LAM_GLOBAL=40`, the most portability-tested base to date), the
rank-1 truncation of `G` for the interaction term itself, the `id()`-keyed
`eigh` cache, and the K_corr-deflation fallback -- is unchanged.

## Local result

```
Fixed W_PAIR=0.3 (PR #173, same base):           LDS 0.6588
Spectrum-adaptive W_PAIR (this attempt):         LDS 0.6588  (identical,
                                                  by construction --
                                                  W0 solved to match)
```

Confirmed via real `arch eval --json` that the two are numerically
identical on the public grid (both `0.6588`), since `W0` was solved
algebraically to reproduce the same effective `W_PAIR` at this grid's own
measured concentration. The claim this attempt makes is NOT a public-grid
score improvement -- it's a robustness bet, exactly like PR #95's global-
lambda simplification: removing a public-grid-specific tuned number in
favor of a self-measuring rule should be neutral on the same grid, and
should reduce risk if the held-out grid's `G` spectrum turns out to be
meaningfully more or less concentrated than 270M-Gemma's.

## What's new here

Every fixed constant tested by this interaction-term lineage so far
(`W_PAIR=0.3`) came from a sweep against the public grid alone. This is
the first attempt to make that specific number self-calibrating from a
quantity `predict()` can measure directly on whatever `G` it's given,
rather than trusting the sweep to transfer.

## Prior attempts referenced

- PR #151, #160, #168, #173 (mine): establish and port the fixed-`W_PAIR`
  rank-1 `G` interaction term across three PATTERN-term bases; this
  attempt builds on #173's base (the most-portability-tested one) and
  changes only how `W_PAIR` itself is derived.
- PR #71/#73 (fleet): documents that a SPECIFIC spectrum-derived constant
  (there, a ridge-lambda rule's own `KAPPA`) failed to transfer
  cross-scale even though the general functional form tied a fixed
  lambda -- the reason this attempt is framed as a robustness bet, not an
  expected local-score improvement, and why `W0` is solved to exactly
  match the already-validated fixed value rather than picked fresh.

## Notes / caveats

Because `trace(G)` and the top eigenvalue are properties of the WHOLE
probe-set matrix (fixed for an entire scored batch, not per-run), this
change cannot be validated for a genuine local-score difference on the
public grid by construction -- the local numbers are identical on
purpose. Its value is entirely about what happens on a differently-scaled
`G`, which only the held-out eval can show. If this scores about the same
as PR #173 on held-out, that's a mild positive (no downside, marginally
more principled). If it clearly under- or over-performs #173, that would
be informative evidence about whether `G`'s spectral concentration itself
varies enough across model scale to matter for this specific blend
weight -- worth flagging either way.
"""
from __future__ import annotations

import numpy as np

SCALE_ABS = 0.00572  # unchanged from PR #173 -- same raw output scale

LAM_GLOBAL = 40.0  # unchanged from PR #52/#95/#173
FALLBACK_LAM = 20.0  # unchanged from PR #94

# W0 solved so that W0 * (public grid's own measured top-eigval/trace
# fraction, 0.838) == 0.3, the value PR #151/#160/#168/#173 already
# validated -- i.e. this reduces to the exact same number on THIS grid,
# and only diverges from it when scored against a G with a different
# spectral concentration.
W_PAIR_W0 = 0.3580

_EIGH_CACHE: dict[int, tuple[np.ndarray, np.ndarray]] = {}


def _top_eigmode(A: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
    key = id(A)
    cached = _EIGH_CACHE.get(key)
    if cached is not None:
        return cached
    eigvals, eigvecs = np.linalg.eigh(A)
    i = int(np.argmax(eigvals))
    result = (eigvals[i], eigvecs[:, i])
    _EIGH_CACHE[key] = result
    return result


def _deflate_top_mode(K: np.ndarray) -> np.ndarray:
    eigval, v = _top_eigmode(K)
    return K - eigval * np.outer(v, v)


def _solve_psd(A: np.ndarray, b: np.ndarray) -> np.ndarray:
    try:
        return np.linalg.solve(A, b)
    except np.linalg.LinAlgError:
        return np.linalg.lstsq(A, b, rcond=None)[0]


def predict(ctx: dict) -> np.ndarray:
    idx = np.asarray(ctx["idx"], dtype=int)
    n = max(len(idx), 1)
    M = ctx["l0"].shape[0]
    out = np.setdiff1d(np.arange(M), idx)

    Q = ctx.get("G_pre")
    if Q is None:
        Q = _deflate_top_mode(ctx["K_corr"])
        Qss = Q[np.ix_(idx, idx)]
        lam = FALLBACK_LAM * max(np.trace(Qss) / n, 1e-30)
        x = _solve_psd(Qss + lam * np.eye(n), -np.ones(n))
        pred = Q[:, idx] @ x
        typical = np.sqrt(np.clip(np.diag(Q), 1e-30, None))
        run_scale = max(np.std(pred[out] / typical[out]), 1e-30)
        return pred / (typical * run_scale)

    # PATTERN term: single global ridge strength (PR #173).
    Qss = Q[np.ix_(idx, idx)]
    lam = LAM_GLOBAL * max(np.trace(Qss) / n, 1e-30)
    x = _solve_psd(Qss + lam * np.eye(n), -np.ones(n))
    pattern_raw = Q[:, idx] @ x
    typical = np.sqrt(np.clip(np.diag(Q), 1e-30, None))
    run_scale = max(np.std(pattern_raw[out] / typical[out]), 1e-30)
    pattern = pattern_raw / (typical * run_scale)

    G = ctx.get("G")
    if G is None:
        return SCALE_ABS * pattern

    # INTERACTION term: rank-1 truncation of G (PR #151), blend weight now
    # derived from G's own measured spectral concentration rather than a
    # fixed constant.
    eigval, v = _top_eigmode(G)
    trace_G = float(np.trace(G))
    concentration = eigval / max(trace_G, 1e-30)
    w_pair = W_PAIR_W0 * concentration

    Gx = eigval * np.outer(v, v)
    GxoutS = Gx[:, idx]
    typical_x = np.sqrt(np.clip(np.diag(Gx), 1e-30, None))
    lin_sum = GxoutS.sum(1)
    sq_sum = (GxoutS ** 2).sum(1)
    interaction_raw = 0.5 * (lin_sum ** 2 - sq_sum)
    pair_scale = max(np.std(interaction_raw[out] / typical_x[out]), 1e-30)
    interaction = interaction_raw / (typical_x * pair_scale)

    return SCALE_ABS * (pattern + w_pair * interaction)

§8What we learned

the formula
pattern (ridge in Gpre, one global λ) + interaction (rank-1 of exact G, spectrum-scaled weight) is the new reference — 1.86× the prior operator's ranking signal at a scale it never saw
exact vs preconditioned
the division of labour is real: preconditioning belongs in the pattern solve; the interaction information lives in raw G's top eigenmode and is destroyed by Gpre (#138, #182)
transfer discipline
constants tuned on one grid are the thing that fails to transfer — derive them from score-time measurements or validate at ≥2 scales before trusting them (#98, #174)
robustness = score
a material share of the margin came from fixing timeout/fallback/KeyError bugs, not new math — the winner is a formula plus another worker's crash fix
ranking ≫ magnitudes
LDS 0.64 vs R² 0.10: predicting which documents move survives a 4× scale jump; predicting how much barely does
fleet dynamics
90 minutes to 0.616, six hours of plateau, then one new mechanism worth +0.024 in the final 2.5 h — plateaus are not convergence, and the marginal value of fleet hours is wildly non-uniform

§9Wrap-up

Operational notes for the next run, learned the hard way: RunPod container disks do not survive a pod stop without a volume (the organizer's logs were rebuilt from the S3 mirror); REST-created pods can sit "RUNNING" forever without ever being scheduled — spawn via runpodctl, which fails loudly instead; and a scoring sandbox must preflight itself (one unreadable Python install briefly mass-failed a scoring wave before the fixed wave superseded it).

§10Post-hoc ablations — which inputs earn their keep

Added 2026-07-09, after wrap-up. The winner is a two-term formula over four candidate matrices, so the obvious follow-up is a single-ingredient ablation grid: delete each term, and substitute each term's source matrix, one change at a time, everything else byte-identical. Each variant was scored with the production shim (tp_score_submission.py, unmodified) against both archived snapshots — the public 948-run gemma-3-270m grid and the frozen 506-run, 4-family gemma-3-1b grid from §6, restored from the org-internal held-out archive. Harness anchors all reproduce: the verbatim winner scores 0.6588 public / 0.6414 held-out (matching §6 to every reported decimal), the template re-expression of it is identical on every family, and the fixed-W_PAIR variant lands exactly on #173's leaderboard score (0.6393).

Every substitute for the exact gradient Gram in the interaction term looks nearly free on the development grid and fails at the held-out scale — the ranking the two grids agree on is the one computed from G.

Horizontal bar chart of twelve ablation variants in five blocks (reference; term removed; pattern-term solve matrix; interaction-term source; refinements undone). Solid bars show held-out gemma-3-1b LDS, open grey circles show public gemma-3-270m LDS. The full formula scores 0.641. Removing the interaction term gives 0.617; the interaction alone collapses to 0.015. Swapping the pattern solve from G_pre to exact G falls to 0.360, to deflated K_cov or K_corr 0.109. Sourcing the interaction from G_pre gives 0.621; from K_cov 0.370 and K_corr 0.328 despite public scores above 0.60 — circles far to the right of their bars. Full-rank interaction 0.635; fixed W_PAIR 0.639. Dashed line marks the prior operator at 0.345.
One change at a time. Solid bars: held-out LDS on the frozen gemma-3-1b grid (the metric that decided the run); open circles: the same variant on the public gemma-3-270m grid. Grey dashed line: the prior best operator (0.345); teal dotted line: the winner (0.641). Where the circle sits far right of its bar — both kernel-sourced interaction rows — the public grid would have waved through a formula that fails at the unseen scale. PDF.

The pattern term is the skeleton; the interaction term is a corrective that cannot stand alone. Pattern-only scores 0.6172 held-out — already 1.79× the prior operator — while interaction-only collapses to 0.0148 (negative on SGD). The interaction's +0.024 is also unevenly earned: +0.059 on Muon, +0.044 on LoRA-Adam, +0.005 on SGD, and −0.011 on Adam — the one family where the winner's new mechanism slightly hurts.

The preconditioning is where the pattern term's power lives. Re-solving the same ridge in the exact Gram G drops held-out LDS from 0.641 to 0.360 — right back at the prior operator (0.345), which also solves in G's geometry. What the Adam metric buys is a usable solve geometry: it flattens the Gram's one-direction spectrum (λ₁/tr 0.918 → 0.158 at 1B) so the ridge can see past the universal mean-gradient direction. Solving in the deflated loss-kernel instead (the winner's own no-gram fallback recipe) manages only 0.109 — identically for Kcov and Kcorr — and bolting the G interaction term onto that kernel base rescues nothing (0.1089 → 0.1089): the corrective is worthless without the right skeleton. The fallback branch, which never fired in production (§4), is real but ~6× weaker than the gram path.

The interaction term is unsubstitutable — and the sequestered eval is what proves it. Sourcing it from Kcov costs almost nothing on the public grid (0.6269 vs 0.6588) and craters held-out to 0.3699 — a quarter below simply deleting the term. Kcorr is the same story (0.6043 public, 0.3275 held-out). Mechanism: the winner's blend weight is W₀·λ₁/tr A measured on whatever matrix A it's handed, and G's spectral concentration is the one that holds across the scale jump (0.838 at 270M → 0.918 at 1B, so wpair 0.300 → 0.329) while the kernels' top modes both fatten (0.36 → 0.55; 0.39 → 0.59) and mis-rank at 1B — a mid-weight wrong-signed term shreds the pattern term's fine ordering. The Gpre substitution completes #184's "scale-dominated" point: under the winner's self-calibrating rule the term simply mutes itself (Gpre's concentration is 0.158, so wpair ≈ 0.06 → 0.6213, within noise of no-interaction), whereas #182's fixed-weight version forced it at full strength and lost outright (0.6365). Either way the information is in G's top eigenmode, nowhere else.

One honest confound: the 1B kernel is under-estimated, and that caveat lands on exactly one row group. The held-out archive's own notes flag it: kernel v1 at 1B got 2 seeds × 2 chains × 80 SGLD draws (burn-in 60) — roughly a third of the public recipe's samples, ~128 degrees of freedom per seed against M = 512 — and the denser v2 re-estimation died at launch and never shipped (§5's "estimation-limited" tail). The damage is measurable: the kernel's off-diagonal agreement with G's structure (entrywise Spearman, Kcorr vs diag-normalized G) collapses from 0.31 at 270M to 0.00 at 1B, its semantic-cluster coherence halves (within-group corr 0.49 → 0.26), and part of its apparent concentration jump (0.36 → 0.55) is the rank-≈128 sample-covariance inflating its top eigenvalues. So the interaction-from-kernel craters above are a test against a noisy K as much as against K per se — a properly-sampled 1B kernel might do better, and only a re-run (kernel v2) can say. The pattern-side verdict, though, survives the caveat twice over: at 270M, where K got its full budget and a clean power-law fit (R² 0.96), the kernel pattern solve still reaches only 0.167–0.184 against the gram path's 0.649; and K's top eigenmode is ≈ the uniform everything-moves-together direction at both scales (|⟨v₁, 1⟩| = 0.96–0.99) — the one direction docFE already absorbs. A well-estimated kernel still doesn't carry the parameter-space geometry the solve needs.

Postscript, 2026-07-09: we re-ran the estimation, and the verdict survives de-confounding. Kernel v2 at 1B — the re-estimation that died at launch during the run — was re-run post-hoc at the originally-planned density (2 seeds × 4 chains × 140 draws, burn-in 120 → 560 dof/seed vs v1's ~128; lr 3e-7 from the same auto-calibration; chains sharded across 4×H100, ~39 min each; probe-set identity verified against the archived l0 at r = 0.99994). The estimate is now better than the public one: 2-seed reproducibility gate 0.824 vs the public kernel's 0.77. Every v1 spectral anomaly turns out to be estimation artifact — slope 1.06 → 0.736 (public: 0.743 — the kernel slope is scale-invariant after all, closing §5's open question), cluster coherence 0.26 → 0.44, top-mode share back to public-like (rank-50: 1 → 15). But rescoring the kernel ablations against v2 barely moves the conclusions: the kernel pattern solve rises 0.109 → 0.175 — exactly its public-grid ceiling, so that gap was estimation — while the kernel-sourced interaction stays net-harmful (Kcorr 0.328 → 0.474, Kcov 0.370 → 0.370, both far below the 0.617 of simply deleting the term), and the winner and pattern-only controls are unchanged to four decimals. Sharpest of all: with a well-estimated kernel, the entrywise K↔G agreement at 1B is −0.06 (vs +0.31/+0.42 at 270M) — the kernel-vs-Gram geometry divergence at scale is real, not noise. The loss kernel isn't a noisy copy of the gradient Gram; at scale it measures something genuinely different (the posterior-covariance metric rather than the raw-gradient one) — and what it measures is not what the training-prediction solve needs. Raw v2 artifacts (chains, traces, ensembles, ledger) live in the org-internal archive under kernel_v2/.

The two refinements are small but real. Un-truncating the interaction (full-rank G) gives back −0.006 (0.6353) — #151's rank-1 sharpening confirmed at the unseen scale. Freezing W_PAIR at 0.3 gives back −0.002 (0.6393): the spectrum-derived weight's entire held-out margin. Both refinements cost nothing locally and paid only at transfer — the run's central lesson, in miniature.

Full ablation table — held-out per optimizer family, plus the public grid12 variants × 5 held-out numbers × public
variantheld-outsgdadammuonlora_adampublic
full formula (winner #176)0.64140.57700.70490.65830.62550.6588
no interaction term0.61720.57220.71610.59920.58140.6486
no pattern term0.0148−0.07990.08910.02610.02380.0537
pattern solve: G_pre → G0.36000.33310.39580.33760.37350.3634
pattern solve: G_pre → defl. K_cov0.10900.11040.12150.10120.10300.1836
pattern solve: G_pre → defl. K_corr0.10890.12520.12000.09390.09630.1674
fallback branch only (no grams)0.10890.12540.12010.09280.09720.1666
interaction source: G → G_pre0.62130.57500.71450.60700.58870.6452
interaction source: G → K_cov0.36990.38550.46570.34010.28810.6269
interaction source: G → K_corr0.32750.31120.39810.34110.25960.6043
full-rank G interaction (no rank-1)0.63530.57030.69910.65280.61900.6545
fixed W_PAIR = 0.30.63930.57920.70690.65140.61990.6588

Prior-operator baseline on the same frozen grid: 0.3455. The "fallback branch only" row is the winner's own Kcorr-only code path, verbatim — including its unscaled return, so its R² is meaningless by construction (LDS is scale-invariant and unaffected). Variant sources, per-variant score JSONs, the measured spectral concentrations, and the kernel-geometry diagnostics live under experiments/training_prediction/ablations/ on main.

§11Why the fleet could never make K work — the missing transform

Two post-hoc questions about the loss kernel, one from outside and one from inside. From outside: across all 179 PRs, did any use of K ever actually help? We fetched all 149 scored predictors at their exact leaderboard SHAs and AST-scanned each for Kcov/Kcorr reads outside the never-fired fallback branch. The answer is stark: zero scored submissions ever used K as the live pattern-solve matrix, and among the eleven lineages that used it anywhere (CG-blends, elementwise modulation, kernel-density scaling), the best genuine delta over an otherwise-identical no-K base was +0.0021 — inside the plateau's own spread — while several uses were sharply negative (−0.016 to −0.032). Every synthesis that included K was beaten by the same formula with K deleted. The fleet probed the whole operator algebra — additive, multiplicative, fused, whitened, eigenvector-covariate, LEVEL-proxy — and hit a wall everywhere.

The wall is geometric: at 1B there is no function of G that reaches K — their eigenvalues match almost perfectly, and their eigenvectors don't match at all.

From inside: all three ctx matrices are Grams of the same 512 probe gradients under different parameter-space metrics — G = JJᵀ, Gpre = J·P·Jᵀ (Adam's diagonal), and by the delta method K ≈ J·Σ·Jᵀ with Σ the SGLD posterior covariance (≈ inverse curvature). Writing J = USVᵀ, a metric M descends to a doc-space transform of G exactly when W = VᵀMV commutes with S² — G carries U and S but zero bits about how the gradient span is oriented relative to M's eigenbasis. Measured: the matrices share their bulk spectral slope to two decimals at both scales (≈ k−0.74), so eigenvalues were never the obstruction. At 270M the commutation approximately holds — after projecting out the common mode, K ≈ c·G0.6 with R² 0.88, essentially the ceiling for any spectral map, and exactly the ridge-flattening the delta method predicts. At 1B it is gone, not attenuated: the best possible f(G) explains 0.29 of centered K versus 0.22 for a random basis. Two controls make this trustworthy: the known metric pair Gpre ← G fits as a spectral map with R² 0.99 at 1B (exponent ≈ ½, as an H−1/2-style preconditioner should), and K's seed-replicates fit each other at 0.96 — the method would have found K's transform if it existed. A last twist: the badly-estimated v1 kernel resembled G better (CKA 0.68) than the converged v2 (0.10) — an under-burned SGLD chain is still descending, and descent is gradient flow, so a bad kernel is secretly a noisy copy of G. Improving the estimation revealed the divergence rather than curing it. The information the fleet needed — W's off-diagonal orientation — lives in parameter space, and the predict(ctx) contract never exposes it.

Spectra of K and G, eigenvector overlap heatmaps, and transform-fit R² across scales
K and G share a spectrum but not (at 1B) an eigenbasis. Left: trace-normalized spectra — identical bulk decay, different heads (v1's rank-cliff visible as the dashed plunge). Middle: band-binned eigenvector overlap, cleanly band-diagonal at 270M, structureless at 1B. Right: Frobenius R² of the transform families — the Gpre control works at both scales; K's transform exists at 270M and collapses to the random-basis floor at 1B.

§12The regime where K wins — equilibrated fine-tuning

If K isn't a broken G, what is it the response kernel of? Linear-response theory gives a precise answer: the grid's 16-step deterministic quenches respond through the gradient Gram (substitute Δw into Δℓ and only G-blocks appear — the winning ridge formula is the discretized linear-response solution of gradient flow), while the says K = Cov(ℓᵢ, ℓⱼ) is the response kernel of the tilted tempered posterior: upweight doc j in the effective Hamiltonian, let the ensemble re-equilibrate, and d⟨ℓᵢ⟩/dε = −nβ·Kij. Two different learning processes, two different kernels. So we ran the other process: mixin fine-tunes (base corpus + ε-upweighted subset S, ε = 0.5) at gemma-3-1b, run past stationarity with tail-averaged probe readouts, scored with the run's own LDS protocol on the same 32 subsets. Five arms: full-parameter SGLD at the kernel's exact temperature and localizer (the clean FDT test), SGLD on LoRA adapters, and three "normal-looking" recipes — SGD, AdamW, and Muon, each with decay-to-init and injected noise at a practical learning rate. The design only became feasible with : posterior fluctuations are 0.55 nats/doc against a ~0.05-nat signal, but with every run in a group replaying the identical noise stream, 98.9% of the per-doc noise is shared and cancels in rank scoring.

Each kernel predicts its own process and fails the other's: Gpre 0.64 vs K 0.11 on quenches; K 0.71 vs G −0.25 on the equilibrated ensemble.

The double dissociation is clean and internally replicated. In the full-parameter arm — the exact sampler K was estimated with — the FDT form of K predicts the equilibrated response at LDS 0.713 (n=7 val runs, every run individually positive at 0.41–0.65 against its coupled base twin) while every gradient-family predictor is ≤ 0.21 and raw G is −0.25. The LoRA arm replicates at 0.43 in each of two independent noise groups (attenuated exactly as its γ-mismatch and subspace restriction predict). Within-run probe checkpoints show the rotation directly: K's LDS climbs from noise at step 16 to 0.48 at the tail while G-family stays flat. And a self-consistency check seals the mechanism: each arm's own tail-fluctuation covariance, leave-one-run-out, predicts the SGLD arms at 0.60/0.42 — FDT confirmed with no reference to v2-K at all.

But the theorem has a boundary, and practical fine-tuning lives outside it. The three realistic arms sort into a law. The gentle SGD arm (learns −0.07 nats, fluctuations 30× weaker than SGLD's) is predicted by G-family (fdt_Gpre 0.32) and not by K or even its own covariance — with noise that weak, the stationary state is the drift-vs-decay fixed point and its response is still gradient-geometric: a long quench in disguise. The AdamW and Muon arms are predicted by nothing in ctx — including their own measured covariances (−0.04, −0.11) — and the Muon arm closes the escape hatch, since it is thermally SGLD-like (warm, non-learning) yet still violates fluctuation–dissipation. What Adam and Muon share is preconditioned, non-gradient-flow updates with noise unmatched to their metric: non-equilibrium steady states, where response ≠ covariance. Their correct kernel would be the Gram in that optimizer's metric — a no ctx matrix provides.

Rotation curve and five-arm stationary-state comparison
Left: within the SGLD arm, K's predictive power grows with horizon while the gradient family stays at noise. Right: across all five stationary states plus the original quench anchor — the posterior covariance (orange) predicts exactly the noise-dominated Langevin arms, the gradient family (teal) predicts the quench and the gentle SGD arm, and the preconditioned arms are orphaned by every predictor including their own covariance (pale squares).

What this settles. The fleet's 179-PR wall against K (§11) wasn't K being a bad matrix — it was K being the response kernel of a learning process the task never ran. Run that process and K delivers its strongest number of the whole project. But the boundary matters just as much: "equilibrated" must mean thermally equilibrated at the kernel's own temperature (n/log n tempering — deliberately hot, loss-elevated, nothing a practitioner would call fine-tuning). Every recipe that actually learns stays drift-dominated, where the original Gpre winner — or nothing yet — rules. A companion piece stress-tests exactly that boundary on the learning arms: sweeping the winner's ridge strength across horizon shows the constant is precisely optimal at 16 steps, nearly irrelevant across eight orders of magnitude on the 1200-step runs, and — for AdamW — beaten by a solve-free first-order prediction at long horizon: the failure is the linearization, not the regularization. As far as we can tell from the literature (the BIF line validates SGLD kernels on retraining-LDS; Schioppa et al. argue influence formulas describe a few fine-tuning steps), the quench-vs-equilibrium contrast itself had not been run before. Predictions if this picture is right: a pSGLD-estimated kernel should pick up the AdamW arm, and hotter noisy fine-tuning should interpolate the SGD arm from G-predictable toward K-predictable.

Source · ArcadiaImpact/latent-learning — run artifacts archived on main under experiments/training_prediction/symreg/; task branch arch/training_prediction_symreg deleted after archival.
Prior result this beat · Loss-landscape grooves thread; full numbers in TP_RESULTS.md.
Write-up · experiments/training_prediction/symreg/blogpost.md · winner merged 2026-07-08.
Ablations (§10) · experiments/training_prediction/ablations/ on main · scored with the unmodified production shim, 2026-07-09.
Kernel v2 (§10 postscript) · dense 1B re-estimation, 4×H100 · raw chains + ensembles in the org-internal archive under kernel_v2/ · 2026-07-09.
K-audit + spectra (§11) · 149 predictors at leaderboard SHAs; transform search in experiments/training_prediction/ablations/spectral_transform.py · 2026-07-09.
Equilibrated FT (§12) · 149 runs, 5 arms, fleet of 15 community RTX 4090 singles · harness experiments/training_prediction/tp_equilibrated.py, runs + analysis in the org-internal archive under equilibrated/ · 2026-07-10/11.