Manuscript revision and pending experiment work, snapshot before restructuring
Clarity pass over the main text (36-item audit), Discussion rewrite and cut, acknowledgements, Souly et al. as ref 62, lettered SI panels, model section moved under Results; plus the untracked curriculum/society/compose/smol configs, runners, figures, stats and tests that the SI already cites. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
This commit is contained in:
parent
e4804adabc
commit
84124de143
450 changed files with 52813 additions and 1202 deletions
631
tasks/prereg-llm-society-v4.md
Normal file
631
tasks/prereg-llm-society-v4.md
Normal file
|
|
@ -0,0 +1,631 @@
|
|||
# Pre-registration — `llm_curriculum` v4: does a society accumulate more than its members?
|
||||
|
||||
**Status:** draft for GG review, 2026-09-08. Supersedes `prereg-llm-compose-v3.md` (run; H1 passed,
|
||||
H2–H5 null and uninterpretable). Nothing runs until §5's gates pass and GG signs off §8.
|
||||
|
||||
---
|
||||
|
||||
## 0. Why v4: v3 measured the wrong thing
|
||||
|
||||
v3 had a **fixed skill set**. Two founders were trained once and every later generation was a lossy
|
||||
copy, so the experiment's ceiling was its own generation 0 and no outcome could have shown capability
|
||||
climbing. It answered "do ancestral skills degrade?", a retention question. The paper's claim (C3) is
|
||||
that capability **climbs** — each specialty re-earned and exceeded. GG, 2026-09-08: *"are models
|
||||
learning NEW skills at EACH generation? or are we just seeing if the ancestral skills degrade?
|
||||
because that was not the problem being addressed… we need to ground this into continual learning."*
|
||||
|
||||
The specific technical fault: v3 trained **a fresh LoRA from the base each generation**, so knowledge
|
||||
survived only through the data channel. That is Weismannian — nothing acquired is inherited as
|
||||
structure. v4's children **start from their parent's adapter**, which is the actual Lamarckian
|
||||
channel and the precondition for accumulation.
|
||||
|
||||
**Pattern across v2 → v3 → v4, recorded so it stops recurring:** each design was checked against the
|
||||
*mechanism* (drift, immigration, recombination) and never against the *claim*. §5's gate G0 exists
|
||||
solely to check the claim is reachable before any compute is spent.
|
||||
|
||||
---
|
||||
|
||||
## 1. Design
|
||||
|
||||
**Curriculum.** Nine task families from v2's calibrated set (`llm_society_v2_calib_a2`: base ≤ 0.40,
|
||||
specialist ≥ 0.60, pairwise conflict < 0.41 — strings, setops, numtheory, mixedtoken, digits,
|
||||
alphabet, prime, wordlen, roman). Three lineages, nine generations. **Each lineage sees all nine
|
||||
families in a different order** (a cyclic Latin square), so at generation *t* every lineage has met
|
||||
*t* families but **different ones**. Complementarity is maximal early and decays to zero by
|
||||
generation 9 — a shape the analysis can test, not just a condition it assumes.
|
||||
|
||||
**One generation, per lineage:**
|
||||
1. **Acquire** — the environment presents the next family; train on `n_new` verified real examples.
|
||||
2. **Inherit** — training starts from the *parent's adapter*, not the base (Lamarckian transmission).
|
||||
3. **Maintain** — old families are kept alive by `n_replay` real examples (grounding = immigration),
|
||||
or by self-generated answers (dry), or not at all, depending on arm.
|
||||
4. **Recombine** — merge with the arm's partner (contemporary, ancestor, or nobody), weights chosen
|
||||
on a held-out validation split (directed recombination, carried over from v3).
|
||||
|
||||
**Two external-information channels, deliberately separated** — v3 conflated them. *Acquisition* is a
|
||||
capability the population never had (novel allele; moves the frontier). *Replay* is re-supply of a
|
||||
capability already present (immigration proper; fights loss, never advances). They fight different
|
||||
diseases and must be separate factors.
|
||||
|
||||
## 2. Arms
|
||||
|
||||
| arm | recombines with | old skills maintained by | isolates |
|
||||
|---|---|---|---|
|
||||
| `isolated` | nobody | real replay | asexual continual learning — the drift/forgetting baseline |
|
||||
| `society` | a decorrelated contemporary | real replay | the treatment |
|
||||
| `society_dry` | contemporary | self-generated only | replay's contribution (E2 immigration) |
|
||||
| `seed_bank` | **its own ancestor at t−3** | real replay | see below — this is not a throwaway control |
|
||||
|
||||
**The seed-bank arm is a substantive comparison, not a null.** My first reading was that an ancestor
|
||||
is your own lineage and therefore highly correlated (ρ→1), so E8 predicts it buys nothing. Working
|
||||
through the curriculum shows that is wrong: **your t−3 ancestor knows exactly the families you learned
|
||||
three generations ago and have since been forgetting.** It carries *temporal* complementarity where a
|
||||
contemporary carries *spatial* complementarity. So the arms pose a real question with predictions
|
||||
pulling opposite ways:
|
||||
|
||||
- E8 (decorrelation is the fuel): the contemporary is more decorrelated → larger union → `society` wins.
|
||||
- E12 (merge compatibility): the ancestor is same-lineage, so no Bateson–Dobzhansky–Muller
|
||||
incompatibilities have had time to accumulate → it merges *more safely* → `seed_bank` wins.
|
||||
|
||||
Which dominates is not obvious from the framework, and the answer is directly translational: *when a
|
||||
model forgets, is it better recovered from a peer who knows something else, or from your own earlier
|
||||
checkpoint?* Nobody has posed that as a population-genetic question.
|
||||
|
||||
**Dropped (GG, 2026-09-08):** a `no_acquisition` arm — v3 already is that experiment.
|
||||
|
||||
## 3. The mono-generational baselines, and why they are the falsifier
|
||||
|
||||
The difficulty GG named is pairing a multigenerational design against single-shot SoTA. Rather than
|
||||
work around it, it becomes the spine: **does structure across time beat the same compute spent all at
|
||||
once?** Three references, all at matched total training examples:
|
||||
|
||||
| baseline | what it is | role |
|
||||
|---|---|---|
|
||||
| `sequential` | one model, all nine families in sequence | the standard continual-learning baseline |
|
||||
| `single_shot_merge` | three specialists trained from base in parallel (three families each), merged **once** at the end | actual SoTA — LoRA Soups / TIES / model soup |
|
||||
| `joint` | one model trained on all nine jointly | the conventional ceiling |
|
||||
|
||||
**Budget accounting (must be equal, and is checked in the artifact).** A lineage trains
|
||||
9 generations × (`n_new` + `n_replay`) examples; three lineages give 27 × (`n_new` + `n_replay`).
|
||||
Each single-shot specialist gets 9 × (`n_new` + `n_replay`) so three of them match exactly;
|
||||
`sequential` and `joint` receive the same total. Compute per arm is recorded in the manifest.
|
||||
|
||||
**If `society` does not beat `single_shot_merge` at matched budget, iterating buys nothing and the
|
||||
multigenerational framing is decoration.** That is the claim worth staking, and the merging
|
||||
literature has never tested it because every paper in it merges once.
|
||||
|
||||
## 4. Hypotheses
|
||||
|
||||
Primary outcome: **cumulative capability** — accuracy of the population's best model on *all nine
|
||||
families*, at each generation. Secondary: per-family forgetting curves, union-exceedance at each
|
||||
merge, ρ between partners, and the complementarity decay predicted by the Latin-square design.
|
||||
|
||||
| | prediction (source) | threshold | falsified if |
|
||||
|---|---|---|---|
|
||||
| **H1** | Capability **climbs**: `society` at generation 9 exceeds its own generation 1 by ≥ 0.15 | ≥ 0.15 in ≥ 2 of 3 seeds | flat or declining → the design still cannot show accumulation (this is G0 restated as a result) |
|
||||
| **H2** | Fisher–Muller (E7): `society` > `isolated` on cumulative capability at generation 9 | ≥ +0.08, 3/3 seeds positive | recombination adds nothing over isolated continual learning |
|
||||
| **H3** | **The multigenerational claim**: `society` > `single_shot_merge` at matched budget | ≥ +0.05 | iterating buys nothing; the framing is decorative and the paper should say so |
|
||||
| **H4** | Immigration (E2): `society` > `society_dry` | ≥ +0.08 | self-generated replay suffices; grounding is not load-bearing here |
|
||||
| **H5** | Spatial vs temporal complementarity: `society` ≠ `seed_bank`, direction **not** pre-committed (§2 gives arguments both ways) | report with CI either way | — (this is a measurement, not a gated prediction) |
|
||||
| **H6** | Complementarity decays by construction, so the `society` − `isolated` gap is **largest at intermediate generations** and shrinks by generation 9 | peak gap at 3 ≤ t ≤ 6 | a monotone gap → the advantage is not coming from complementarity, and the mechanism story is wrong |
|
||||
|
||||
H6 is the design's internal check: the Latin square makes complementarity a *known* function of
|
||||
generation, so the framework predicts the shape of the advantage, not just its sign.
|
||||
|
||||
## 5. Gates — G0 is the one that would have caught v2 and v3
|
||||
|
||||
| gate | what | pass criterion |
|
||||
|---|---|---|
|
||||
| **G0 — can capability climb at all?** | One lineage, 3 generations, 3 families, `isolated` settings. Measure cumulative accuracy over families seen. | Generation 3 exceeds generation 1 by ≥ 0.10. **If capability cannot accumulate in the simplest arm, no outcome of the full design is interpretable — stop.** |
|
||||
| **G1 — does inheritance transmit?** | Adapter-continued training on family 2 starting from the family-1 adapter | family-2 accuracy ≥ 0.6 × a from-scratch specialist's |
|
||||
| **G2 — does forgetting occur?** | Same, measuring family-1 accuracy after learning family 2 without replay | family-1 accuracy drops ≥ 0.15 (if nothing is forgotten, replay and recombination have nothing to fix) |
|
||||
| **G3 — does recombination combine?** | Merge two lineages holding disjoint families at generation 3 | merged model ≥ 0.8 × each parent's accuracy on that parent's own families |
|
||||
| **G4 — budget parity** | Recorded example counts across all arms and baselines | equal to within 2% |
|
||||
|
||||
G1 and G2 must **both** pass: transmission without forgetting means nothing decays; forgetting
|
||||
without transmission means nothing accumulates. The experiment needs the tension.
|
||||
|
||||
## 6. Cost
|
||||
|
||||
Base: Qwen2.5-1.5B (base, not Instruct — v3's C1 measured that instruction-tuned checkpoints already
|
||||
hold these skills). Per generation-lineage: train (`n_new` + `n_replay` ≈ 400 examples × 3 epochs)
|
||||
plus evaluation on nine families × 60 items. ≈ 6 min. Society arms: 3 lineages × 9 generations ×
|
||||
4 arms ≈ 108 generation-lineages ≈ **11 GPU-h**; baselines ≈ 2 GPU-h; three seeds ≈ **40 GPU-h**
|
||||
total. Seed 1 local overnight, seeds 2–3 as a CX3 array — the same split that worked last night.
|
||||
|
||||
## 7. Engineering
|
||||
|
||||
Reused unchanged from v3: execution/verifier infrastructure, LoRA training, merge operators,
|
||||
directed weight selection on a disjoint validation split, checkpoint/resume, the figure and stats
|
||||
scaffolding. Reused from v2: the nine calibrated families and their difficulty/conflict measurements.
|
||||
|
||||
New: adapter-continued training (inherit the parent's weights rather than a fresh LoRA); the
|
||||
Latin-square curriculum scheduler; replay buffers per lineage; the ancestor registry for `seed_bank`;
|
||||
budget accounting in the manifest; the three mono-generational baselines.
|
||||
|
||||
## 8a. Gate record (2026-09-08) and the v5 curriculum
|
||||
|
||||
**G0 passes.** Three families, three lineages: `all_families` (mean over every family in the
|
||||
curriculum — the accumulation metric) climbs 0.739 → 0.950 (isolated) and 0.611 → 0.939 (society).
|
||||
The design can show accumulation, which v3 structurally could not. A labelling hazard caught on the
|
||||
first line: `retention_seen` (mean over families *taught*) starts near 1 and can only fall — watching
|
||||
it would have recreated v3's error. Both are recorded; the primary is `all_families`.
|
||||
|
||||
**G2 fails on the v2 families, twice.** Three-family gate with replay: nothing forgotten (every family
|
||||
only rises). Nine-family single-lineage probe with replay **off** (`results/llm_curriculum_g2`): mean
|
||||
drop across families learned before the last is only **+0.074**, and it is carried by one family —
|
||||
`mixedtoken` 0.80 → 0.15 (+0.65), oscillating violently throughout (0.18, 0.20, 0.27, 0.80, 0.60,
|
||||
0.37, 0.42, 0.20, 0.15) — while two families *improve* through positive transfer (numtheory −0.12,
|
||||
alphabet −0.13) and the rest are within ±0.08. Forgetting here is a single pairwise-interference event
|
||||
between confusable counting families (the cluster v2's conflict measure flagged at 0.44), not a general
|
||||
pressure a population could smooth.
|
||||
|
||||
**G3 is negative on the v2 families.** `society − isolated` = −0.128, −0.022, −0.011 across the three
|
||||
gate generations. Merging costs and cannot pay, because a partner can only contribute what the recipient
|
||||
lacks and nothing was lacking.
|
||||
|
||||
**The base reference quantifies the format confound.** Qwen2.5-1.5B base on all nine v2 families:
|
||||
**0.094** (strings 0.02, setops 0.02, alphabet 0.00, wordlen 0.00, prime 0.02, digits 0.07, roman 0.10,
|
||||
mixedtoken 0.12, numtheory 0.52). Training on **one** family lifts the nine-family mean to **0.417**.
|
||||
Most of the apparent accumulation is a one-off format acquisition shared by all nine families.
|
||||
|
||||
**One root, three faults.** The v2 families were built for a *specialisation* experiment and calibrated
|
||||
for low mutual conflict so merging would be safe. That makes them (i) format-homogeneous — one family
|
||||
teaches the convention for all; (ii) too compatible — no interference, hence no forgetting; (iii) too
|
||||
easy — the base is unformatted, not incapable. They are not a curriculum, and no arrangement of arms
|
||||
fixes that. The same lesson as v3's task pairing: the paradigmatic continual-learning benchmarks use
|
||||
naturally heterogeneous tasks *because* those interfere, differ in format, and exceed a small base.
|
||||
|
||||
**v5 curriculum (`src/llm/curriculum_data.py`, 2026-09-08).** Eleven candidates from public datasets,
|
||||
each with a disjoint train/test split and its own verifier — gsm8k (number), mbpp (code, executed),
|
||||
boolq (yes/no), mnli (3-way label), sst2 (sentiment word), csqa (A–E), arc (A–D), winogrande (1/2),
|
||||
squad (extractive span, normalised EM over aliases), nq_open (short text, aliases), hellaswag (A–D).
|
||||
All eleven self-verify 40/40 and reject garbage 0/40. Answer shapes span five forms (code, number,
|
||||
word, letter, phrase) against v2's one. **Selection rule, fixed before running:** the C1 band
|
||||
(base ≤ 0.40, specialist ≥ 0.60) from `curriculum_v5_calib` (one specialist per candidate, evaluated on
|
||||
every family — the full transfer matrix), then a single-lineage zero-replay probe over the chosen set
|
||||
with **mean forgetting ≥ 0.15 and not carried by a single family** (max single-family share of the
|
||||
total drop ≤ 50%). Nine survivors form the curriculum; if fewer than nine pass, L and G shrink to match
|
||||
and the Latin square is recomputed.
|
||||
|
||||
**v5 stage A (`results/llm_curriculum_v5_calib`, founders at 300 × 3, Qwen2.5-1.5B base).** Base on
|
||||
all eleven: **0.011** (mbpp 0.08, gsm8k 0.02, the rest 0.00) — a non-instruct base on real tasks, as
|
||||
expected; the C1 base floor is moot. Specialist × family matrix (own-family on the diagonal):
|
||||
|
||||
| specialist | own | mean off-family | character |
|
||||
|---|---|---|---|
|
||||
| mnli | **0.82** | 0.46 | permissive — lifts most others |
|
||||
| arc | **0.77** | 0.21 | |
|
||||
| hellaswag | **0.72** | 0.27 | |
|
||||
| squad | **0.68** | 0.34 | permissive |
|
||||
| boolq | **0.65** | 0.04 | **destructive** — zeroes others |
|
||||
| csqa | 0.55 | 0.36 | permissive |
|
||||
| sst2 | 0.38 | 0.23 | |
|
||||
| winogrande | 0.38 | **0.00** | **destructive** — 0.00 on all ten others |
|
||||
| mbpp | 0.18 | 0.08 | destructive |
|
||||
| nq_open | 0.18 | 0.36 | |
|
||||
| gsm8k | 0.10 | 0.42 | permissive (0.92 on sst2, 0.83 on arc; 0.10 on gsm8k itself) |
|
||||
|
||||
Five pass C1 at this budget. Mean off-family transfer 0.25 against own-family 0.49 — half, where v2's one
|
||||
family lifted all nine to near-own level. **Two kinds of specialist, which is what a curriculum needs:**
|
||||
*format-permissive* ones (mnli, csqa, squad, gsm8k) teach general instruction-following and lift other
|
||||
families — the residual format-transfer effect, now bounded and measurable; *format-destructive* ones
|
||||
(winogrande, boolq, mbpp) learn one narrow output form and erase the rest. The destructive group is the
|
||||
forgetting mechanism made visible: a lineage that meets winogrande loses what it held, and replay or a
|
||||
partner who did not just learn winogrande is what can restore it — E8 with something to act on.
|
||||
|
||||
The six failures were under-trained, not unlearnable: every specialist that has worked in this project
|
||||
(v2, v3) had 1200 examples; these had 300 (gsm8k reached 0.54–0.62 at 1200 in v3). Pass 2
|
||||
(`curriculum_v5_calib_b`, the six at 1200 × 3) decides six families or nine. **Budget consequence,
|
||||
pre-noted:** if 1200 is what a family needs, `n_new` in the campaign rises accordingly and §6's cost
|
||||
scales by ~4× on the training term.
|
||||
|
||||
**v5 stage A pass 2 (`results/llm_curriculum_v5_calib_b`, the six failures at 1200 × 3) — the
|
||||
"under-trained" hypothesis is refuted.** winogrande 0.38 → 0.57, sst2 0.38 → 0.52, mbpp 0.18 → 0.22,
|
||||
gsm8k 0.10 → **0.07**, nq_open 0.18 → **0.07**, csqa 0.55 → **0.18** (chance on 5-way; off-family
|
||||
transfer collapsed to 0.00). Three got worse with four times the data — a training instability of the
|
||||
fresh-adapter learning rate on these tasks, not a data shortage. gsm8k is a *data-source* issue: v3's
|
||||
0.54–0.62 came from MetaMathQA's augmented chain-of-thought, not raw GSM8K. None of the six clears 0.60.
|
||||
|
||||
**Selection (2026-09-08): six families.** mnli 0.82, arc 0.77, hellaswag 0.72, squad 0.68, boolq 0.65
|
||||
pass C1; **winogrande 0.57** is the sixth. **Amendment:** the C1 specialist floor is relaxed 0.60 → 0.55
|
||||
for one family so that F is divisible by L = 3 (the pre-registered shrink rule needs F ∈ {3, 6, 9}).
|
||||
winogrande is also the right sixth on the merits: it is the most format-destructive specialist in the
|
||||
matrix (0.00 on every other family), i.e. the strongest forgetting pressure available — the mechanism the
|
||||
design exists to test. Curriculum: **L = 3, F = 6, G = 6**; complementarity 1.0 at t = 2, 0 at t = 6.
|
||||
Founders at **300** examples (the budget that passed; 1200 destabilised). Campaign `n_new` = 300.
|
||||
|
||||
**Stage B running:** `curriculum_v5_g2` — one lineage, zero replay, the six in sequence. Pass criterion
|
||||
unchanged: mean drop ≥ 0.15 across families learned before the last, no single family > 50% of the total.
|
||||
|
||||
**v5 stage B — G2 on the six (`results/llm_curriculum_v5_g2`, one lineage, zero replay).** Order
|
||||
mnli → arc → hellaswag → squad → boolq → winogrande. Drops (learned → final): mnli +0.27, arc +0.03,
|
||||
hellaswag −0.05, squad **+0.57**, boolq +0.05. **Mean +0.173 — magnitude gate (≥ 0.15) PASSES.**
|
||||
All-families 0.575 → 0.725 (gen 3) → 0.625 (gen 5): acquisition then loss as the destructive families
|
||||
arrive — the tension the arms need. **Concentration criterion (≤ 50% in one family) MISSES at 62%**
|
||||
(squad). Recorded as a marginal miss, with the reasons it does not reproduce the v4 failure the
|
||||
criterion was written against: two families forgotten (not one pair), the destruction lands exactly
|
||||
where the transfer matrix predicted (winogrande's option format erases span and 3-way label; letter
|
||||
formats survive), and the probe tested one order where the campaign's Latin square gives each lineage
|
||||
a different one — so different families are forgotten in different lineages, which is the
|
||||
complementarity recombination acts on. **Recommendation: go**, pending GG.
|
||||
|
||||
## 8b. The v5 campaign result, and the two-kinds-of-variation measurement (2026-09-08)
|
||||
|
||||
**Campaign (3 seeds, 6 families, 3 lineages, 6 generations; `results/llm_curriculum_v5/`).** Best model
|
||||
per arm at the final generation, mean over seeds: `sequential` (one model, no population) 0.802 ·
|
||||
`isolated` (population, never merges) 0.796 · `joint` (multi-task ceiling) 0.748 · `seed_bank`
|
||||
(merges with its own ancestor at t−3) 0.663 · `single_shot_merge` 0.549 (0.125 / 0.758 / 0.764 — the
|
||||
huge variance is which families landed in which allopatric split) · `society_dry` 0.307 · `society`
|
||||
(merges with a contemporary) 0.269. Budget parity within 6%.
|
||||
|
||||
Every pre-registered hypothesis fails, consistently across all three seeds: society − isolated
|
||||
**−0.527 ± 0.092** (3/3 negative); society − single-shot −0.280 ± 0.363 (unresolved, huge variance);
|
||||
society − society_dry −0.038 ± 0.073 (replay policy irrelevant once the merge channel dominates).
|
||||
The one uncommitted contrast resolves decisively: **seed_bank − society = +0.394 ± 0.089, 3/3
|
||||
positive** — merging with your own past beats merging with a peer, so the compatibility argument
|
||||
beats the decorrelation argument.
|
||||
|
||||
**Mechanism, identified and isolated.** Two of the six families (boolq, winogrande) are answer-format
|
||||
destroyers — the calibration matrix measured them at 0.00–0.04 mean off-family. A lineage that learns
|
||||
one propagates it through the merge into partners that never trained on it; because merged offspring
|
||||
continue the lineage, the damage compounds (society lineage 0, gen 2→3: five families fall together
|
||||
while boolq alone rises). An ancestor cannot transmit a family the lineage never met, which is exactly
|
||||
why the seed-bank arm holds.
|
||||
|
||||
**Scope limits, stated plainly.** (i) Merging was **obligate** — no veto, no option to keep the parent
|
||||
unchanged. (ii) There is **no selection between lineages**: all three persist regardless of fitness,
|
||||
so the design has transmission, acquisition, gene flow and immigration but no differential
|
||||
reproduction. It is a gene-flow experiment, not a natural-selection one, and is therefore not a test
|
||||
of the composed-society claim. (iii) The operator was linear averaging, which the merging literature
|
||||
ranks below concatenation — but concatenation doubles adapter rank per merge, so iterated merging
|
||||
faces a capacity constraint single-shot merging never meets (16 → 1024 over six generations). That
|
||||
constraint is itself a finding about iteration.
|
||||
|
||||
**Two kinds of variation are opposite in sign (`/tmp/paralleldiv.py`, 2026-09-08).** Three adapters on
|
||||
the *same* family differing only in seed and data draw: accuracies 0.762 / 0.800 / **0.312** (one run
|
||||
simply failed — training instability); pairwise output disagreement 0.237 between the two good ones;
|
||||
weight cosine **+0.006** (near-orthogonal); either-right 0.887 vs both-right 0.675. **Merging the two
|
||||
good ones gives 0.887 — +0.087 over the better parent, landing exactly on the either-right ceiling.**
|
||||
Same base, same linear operator, same scale, same evaluation as the collapsing arms.
|
||||
|
||||
So the framework's single decorrelation parameter conflates two quantities that behave oppositely:
|
||||
- decorrelation in **what parents know** → risk (−0.53 measured);
|
||||
- decorrelation in **how parents encode the same knowledge** → benefit (+0.087, at the ceiling).
|
||||
|
||||
Equal weights are best for same-skill merging (0.887 at 0.5/0.5 vs 0.863 at 0.3/0.7), the reverse of
|
||||
skill composition where asymmetric weights won decisively (v3: 0.507 at 0.2/0.8 vs 0.333 at 0.5/0.5).
|
||||
The optimal merge weight is a signal of which regime the merge is in.
|
||||
|
||||
**Design consequence for v6 (GG, 2026-09-08 — selection is needed to generalise the hypothesis).**
|
||||
Three arms — never merge · complementary partners (different skills) · **parallel partners (same
|
||||
skills, different seed/data draw)** — with selection added in two places: a **veto** ("keep the parent
|
||||
unchanged" is always a candidate offspring) and **population selection** (score parents and offspring
|
||||
together, keep the best; the failed 0.312 run is exactly what it should discard). Roughly doubles
|
||||
evaluation cost per generation: ≈ 10 GPU-h per seed, ≈ 30 for three.
|
||||
|
||||
## 8c. Mechanism probes, 2026-09-08 — two of my explanations retracted
|
||||
|
||||
Four cheap probes run after the v5 campaign, chasing why cross-lineage merging collapsed. They
|
||||
retract two explanations I had given and leave a third standing.
|
||||
|
||||
**Probe 1 — same-skill variation (`/tmp/paralleldiv.py`).** Three adapters, one family (arc), same
|
||||
data distribution, differing only in seed and draw. Accuracies 0.762 / 0.800 / **0.312** (one run
|
||||
simply failed). Pairwise output disagreement 0.237; weight cosine **+0.006** (near-orthogonal);
|
||||
either-right 0.887 vs both-right 0.675. **Merging the two good ones: 0.887 — +0.087 over the better
|
||||
parent, exactly at the either-right ceiling.** Equal weights beat 0.3/0.7 (0.887 vs 0.863), the
|
||||
reverse of skill composition, where asymmetric weights won.
|
||||
|
||||
**Probe 2 — signal/noise and the inbred-lines cross (`/tmp/inbred.py`).** Across-seed decomposition:
|
||||
signal power 17.8 vs noise 34.9 for arc, 19.0 vs 37.1 for boolq — and correcting for the K=3 sample
|
||||
mean's own noise puts the true signal near 6.2, i.e. **~85% of a LoRA's weight change is
|
||||
run-specific and arbitrary.** That is why raw weight distance measures mostly noise and predicted
|
||||
nothing in Fig. 3C-D. Variance-weighted overlap surfaces ~4x more of the real overlap
|
||||
(0.0015 -> 0.0066) but different skills stay near-orthogonal even in signal directions.
|
||||
Denoising before crossing helps modestly and on both skills at once: raw mix 0.825 -> denoised mix
|
||||
**0.850** (+0.025), while the denoised singles are no better alone (arc 0.825 vs 0.838). The
|
||||
inbred-line signature: averaging within a line does not improve the line, it makes it cleaner to cross.
|
||||
|
||||
**RETRACTION 1 — "a destructive skill propagates through the merge and destroys partners" is wrong.**
|
||||
A single merge of clean single-skill adapters is excellent: arc alone 0.838 (boolq 0.000), boolq alone
|
||||
0.800 (arc 0.300), **merged 50/50 = arc 0.863 / boolq 0.787, mean 0.825 vs 0.550 for the best parent.**
|
||||
Merging is *protective* — it stops either adapter dominating the output format. Consistent with LoRA
|
||||
Soups rather than contradicting it.
|
||||
|
||||
**Probe 3 — iterated merging (`/tmp/decay.py`), five chained merges, three weight schemes.**
|
||||
arc retention: convex [0.5,0.5] **1.02** · selfish [0.8,0.4] **1.02** · additive [1.0,1.0] **0.52**
|
||||
(arc 0.867 -> 0.450, incoming skills 0.033). **RETRACTION 2 — geometric signal dilution is not the
|
||||
mechanism.** Convex merging loses nothing over five rounds even though the first adapter's coefficient
|
||||
falls to 1/32. The scheme that *preserves* signal coefficients is the only one that collapses, because
|
||||
the accumulated change grows without bound and leaves the region where the base still functions. The
|
||||
operative constraint on iterated merging is **bounding total drift from the base**, not preserving signal.
|
||||
|
||||
**Probe 4 — the scaling dose-response (`/tmp/scale.py`), prompted by GG asking the obvious control:
|
||||
does dividing the change vector by 30 retain the skill?** Base (no adapter) **0.000**; scale 1 0.838;
|
||||
1/2 0.875; 1/4 0.850; 1/8 0.863; **1/16 0.450; 1/32 0.000; 1/30 0.000.**
|
||||
|
||||
**This forces a reinterpretation of Probe 3.** At the coefficient arc actually held after five merges
|
||||
(1/32) the adapter alone delivers *nothing*. So the 0.883 measured in the chain was never arc's
|
||||
residual. What propagates through a merge is the **answer format**, supplied by whichever partner has
|
||||
enough weight to carry it: arc needs "a single letter", and it collapsed at round 4 (partner squad,
|
||||
free-text spans, arc 0.567) and recovered at round 5 (partner hellaswag, single letter A-D, arc 0.883).
|
||||
The chain measured *format compatibility with the dominant partner*, not skill retention.
|
||||
|
||||
**What survives, and what it implies.** (i) A sharp **effectiveness threshold at ~1/8**: an adapter
|
||||
works at full strength down to an eighth and collapses below it, so useful merge depth is ~3 rounds at
|
||||
convex weights, not 5. (ii) The additive collapse stands (it did not depend on the misreading).
|
||||
(iii) The curriculum result becomes coherent for the first time: the two families that destroyed
|
||||
everything, boolq and winogrande, are the ones with the most idiosyncratic output formats. If format
|
||||
is what propagates, a partner carrying a dominant format overwrites the ability to answer anything
|
||||
else. **That is a claim about output conventions, not weight geometry** — and it is consistent with
|
||||
Fig. 3C-D, where functional conflict predicted merge damage (rho 0.45) and weight geometry did not (0.03).
|
||||
|
||||
**Still untested, and now the leading candidate for the curriculum collapse:** continued training *on
|
||||
top of* merged weights. Probe 3 chained merges without ever training between them and lost nothing;
|
||||
the curriculum merges then trains, every generation. Test: repeat the chain with a fine-tune on the
|
||||
next family after each merge, and see whether that alone reproduces the collapse.
|
||||
|
||||
## 8d. Per-skill scaling thresholds, and the bespoke-weights negative (2026-09-08)
|
||||
|
||||
**Dose-response per skill (`/tmp/thresholds.py`), accuracy vs adapter scale, base = 0.000 on all six:**
|
||||
|
||||
| skill | 1 | 1/2 | 1/4 | 1/8 | 1/16 | 1/32 | own optimum |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| arc | 0.87 | 0.88 | 0.88 | **0.92** | 0.42 | 0.00 | 1/8 |
|
||||
| squad | 0.72 | 0.73 | **0.78** | 0.65 | 0.10 | 0.00 | 1/4 |
|
||||
| hellaswag | 0.75 | **0.82** | 0.80 | 0.63 | 0.07 | 0.00 | 1/2 |
|
||||
| boolq | 0.78 | 0.78 | 0.78 | **0.37** | 0.00 | 0.00 | 1–1/4 (flat) |
|
||||
| winogrande | 0.55 | 0.55 | 0.55 | 0.37 | 0.30 | 0.00 | 1–1/4 (flat) |
|
||||
| mnli | 0.40 | 0.40 | **0.68** | 0.48 | 0.48 | 0.18 | 1/4 |
|
||||
|
||||
Three facts. (i) **Thresholds are skill-specific** (GG predicted this): boolq dies at 1/8 where arc,
|
||||
squad and hellaswag are still at full strength, so merge depth in a population is set by the *weakest*
|
||||
skill. (ii) **Cliffs are sharp** — full effectiveness right up to the edge, then near-total loss in one
|
||||
halving; there is no graceful degradation to trade against. (iii) **Four of six skills are BETTER
|
||||
scaled down** — mnli 0.40 -> 0.68 at 1/4, hellaswag 0.75 -> 0.82 at 1/2, squad 0.72 -> 0.78 at 1/4,
|
||||
arc 0.87 -> 0.92 at 1/8. These adapters are over-trained at full strength; attenuation recovers
|
||||
accuracy with no retraining.
|
||||
|
||||
**Denoising does NOT move the threshold.** arc raw 0.87/0.88/0.88/0.92/0.42/0.00 vs denoised
|
||||
0.87/0.83/0.88/0.87/0.35/0.00; boolq raw 0.78/0.78/0.78/0.37/0.00 vs denoised 0.78/0.78/0.77/0.38/0.03.
|
||||
Identical cliffs. So the limit is **signal magnitude**, not signal-to-noise: averaging leaves signal at
|
||||
full strength and only removes noise, and therefore cannot buy merge depth. Denoising remains worth
|
||||
doing for cross-skill merge quality (+0.025, §8c) and for knowing what a line contains — not for depth.
|
||||
|
||||
**Bespoke per-skill merge weights — tested and NEGATIVE (`/tmp/bespoke.py`).** All six skills merged
|
||||
into one model:
|
||||
|
||||
| scheme | sum | mean |
|
||||
|---|---|---|
|
||||
| six separate adapters, full strength | — | 0.678 |
|
||||
| six separate, each at its own optimum | — | **0.755** |
|
||||
| **uniform convex (1/6)** | 1.00 | **0.708** |
|
||||
| uniform 0.25 | 1.50 | 0.686 |
|
||||
| bespoke: cliff (lowest viable per skill) | 1.12 | 0.689 |
|
||||
| bespoke: optimum (best-accuracy per skill) | 1.62 | 0.686 |
|
||||
| additive (1.0 each) | 6.00 | 0.156 |
|
||||
|
||||
All three non-uniform schemes cluster at 0.686–0.689, *below* plain equal weighting. **Why the
|
||||
inference failed:** solo dose-response curves do not transfer to the multi-way case. A skill's
|
||||
effective strength in a merge is set by its coefficient *relative to the other five* — six output
|
||||
formats compete for one model — so raising one skill's absolute weight starves the others. Clearest
|
||||
in squad: 0.65 at uniform 1/6, but 0.47–0.55 whenever given a larger absolute weight alongside others.
|
||||
The curves are sound; the inference from them to merge weights was not.
|
||||
|
||||
**The two results worth keeping.** (a) **One merged model beats six separate specialists on their own
|
||||
tasks** — 0.708 vs 0.678 — with mnli the clearest case (0.40 alone, 0.67 merged, because merging
|
||||
dilutes it to near its optimum and undoes the over-training). The merge is doing compression plus
|
||||
incidental regularisation, which is a more honest description than "combining capabilities".
|
||||
(b) **The largest free win needs no merging at all**: attenuating each specialist to its own optimum
|
||||
takes the separate-models baseline from 0.678 to **0.755**, the best number in the table — one scalar
|
||||
per adapter, no retraining. Merging then costs ~5 points and saves five models: a real engineering
|
||||
trade, honestly stated.
|
||||
|
||||
## 8e. The last candidate eliminated — merge-then-train is the best procedure tested (2026-09-08)
|
||||
|
||||
**Test (`/tmp/trainmerge.py`).** Two chains, identical partners and order. Control: merge only.
|
||||
Test: merge, then continue-training on the partner's family (300) plus replay across everything seen
|
||||
(150 split) — i.e. the v5 sequence. The control reproduced the earlier chain **exactly at all five
|
||||
rounds**, so the comparison is clean.
|
||||
|
||||
| round | partner | merge-only arc | merge+train arc | merge-only partner | merge+train partner |
|
||||
|---|---|---|---|---|---|
|
||||
| 1 | boolq | 0.883 | **0.933** | 0.733 | **0.850** |
|
||||
| 2 | winogrande | 0.900 | **0.933** | 0.550 | **0.717** |
|
||||
| 3 | mnli | 0.850 | **0.917** | 0.467 | **0.867** |
|
||||
| 4 | squad | 0.567 | **0.883** | 0.733 | **0.767** |
|
||||
| 5 | hellaswag | 0.883 | 0.833 | 0.800 | **0.850** |
|
||||
|
||||
**Training on merged weights is not the mechanism — it is a substantial improvement.** Better on the
|
||||
tracked skill in four of five rounds, better on the incoming skill in all five, and it absorbs the
|
||||
round-4 format shock that dropped the control to 0.567. Merge-then-train holds the old skill near its
|
||||
ceiling *and* acquires the new one far better than merging alone (mnli 0.867 vs 0.467).
|
||||
|
||||
**All three proposed mechanisms for the v5 collapse are now refuted**, each by direct test:
|
||||
a destructive skill propagating through merges (§8c — a single merge is protective); geometric signal
|
||||
dilution (§8c — five convex merges lose nothing); training on merged weights (here — it helps).
|
||||
The one structural difference left is that these chains merge *clean single-skill* adapters, whereas
|
||||
v5 merged accumulating lineages carrying up to six skills each in rank 16 — i.e. capacity. **Recorded
|
||||
as unexplained rather than attributed:** three mechanisms have been proposed and refuted, and a fourth
|
||||
guess would not have earned its place.
|
||||
|
||||
**Consequence for the plan (§8b/§8c).** The veto arm was scheduled to make the v5 negative
|
||||
interpretable. With three mechanisms refuted and merge-then-train shown sound in isolation, the v5
|
||||
result is not reportable whatever a veto arm shows — recommendation is to stop, not to run it.
|
||||
|
||||
## 8f. The veto arm (GG overruled my recommendation to skip it — correctly) 2026-09-08
|
||||
|
||||
**Change:** identical to v5's `society` arm except that "keep the parent unchanged" is scored on the
|
||||
same validation split as the merge candidates, and wins if no weighting beats it. One bit of
|
||||
selection. Everything else — operator, weight grid, curriculum, replay, seeds — unchanged.
|
||||
|
||||
**Seed 1 result: a single veto converts total collapse into a healthy trajectory.**
|
||||
|
||||
| generation | 0 | 1 | 2 | 3 | 4 | 5 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| veto (declinable) | **0.719** | **0.756** | 0.744 | **0.781** | 0.781 | 0.783 |
|
||||
| society (obligate) | 0.689 | 0.719 | 0.700 | 0.597 | 0.439 | **0.211** |
|
||||
| isolated (never merges) | 0.625 | 0.700 | **0.728** | 0.753 | **0.789** | **0.814** |
|
||||
|
||||
**The veto decisions are structured, and this is the substantive finding.** Merges declined, per
|
||||
generation (of 3): 1, 1, 1, **3, 3, 3** — 67% overall, and from generation 3 onward *every* lineage
|
||||
declines *every* merge, unanimously. Median validation gain when accepted: +0.042. That timing
|
||||
tracks complementarity, which is 1.00 through generation 1, 0.80 at 2, then 0.67 and falling: the
|
||||
population discovers on its own that recombination has stopped paying and stops — H6's predicted
|
||||
*shape* of the advantage, reached from the opposite direction.
|
||||
|
||||
**GG's caveat, and it is the right reading (2026-09-08):** once merges are always declined the arm is
|
||||
*literally* the isolated arm, so the comparison at the end is between "merged early, then stopped" and
|
||||
"never merged". Early merging gives a large lead (+0.094 at generation 0) but **isolated overtakes at
|
||||
generation 4 and finishes higher (0.814 vs 0.783)** — the early merges leave a residual cost that
|
||||
never-merging avoids. So the claim is not "the veto fixes recombination". It is: *recombination pays
|
||||
only while partners differ, a population can detect when that stops, and even then it ends slightly
|
||||
behind never having merged.*
|
||||
|
||||
**Consequence for reportability.** This makes the v5 negative interpretable and no longer vulnerable
|
||||
to "you forced merging, of course it broke": obligate recombination collapses (0.211), one bit of
|
||||
selection rescues it (0.783), and never recombining is still marginally best (0.814). Risk, remedy,
|
||||
and honest limit — the language-model rung beside Fig. 5A.
|
||||
|
||||
**My error, recorded:** I recommended skipping this experiment on the grounds that v5 was unreportable
|
||||
whatever it showed. That judged the experiment by whether it would rescue a conclusion I had already
|
||||
written off, rather than by what it would measure. The per-generation veto rate is information neither
|
||||
other arm could produce, and it is the most interesting thing in the arm.
|
||||
|
||||
**Replication:** seeds 2-3 submitted to CX3 as array `4007703` (`hpc/llm_veto.pbs`), pairing against
|
||||
the existing v5 isolated/society/seed_bank runs for those seeds.
|
||||
|
||||
**Control worth considering if the seeds hold:** a *forced* stop at generation 3, to separate "the
|
||||
veto's timing is smart" from "any early merging then stopping does this". The veto's stopping point
|
||||
coincides with complementarity falling below 0.8, which is principled rather than arbitrary — but that
|
||||
is an observation, not a test.
|
||||
|
||||
## 8g. The vocabulary substrate: contamination screen and the prior-art problem (2026-09-09)
|
||||
|
||||
GG's proposal: replace task families with *content* — teach 100 words of a language the model does
|
||||
not speak, one word-set per modifier, so thousands of words yield hundreds of modifiers and the
|
||||
generation count rises tenfold. Retention is trivially measurable ("what does X mean in English?").
|
||||
|
||||
**Contamination screen — the first measurement was invalid.** Generating an answer and string-matching
|
||||
it gave Italian 0.092, French 0.050, Basque 0.050, Welsh 0.017, Zulu 0.008, pseudo-words 0.000. French
|
||||
tying Basque is impossible if the quantity measured were knowledge, so the probe was measuring whether
|
||||
a *base* model obeys "answer with one English word" — the same instruction-following floor that gives
|
||||
0.011 on the task families. Re-run as an 8-way forced choice over candidate translations scored by
|
||||
likelihood (domain-conditional PMI, chance 0.125), which needs no instruction-following:
|
||||
|
||||
| language | generated | forced choice | verdict |
|
||||
|---|---|---|---|
|
||||
| French | 0.050 | 0.950 | fully known |
|
||||
| Italian | 0.092 | 0.908 | fully known |
|
||||
| Welsh | 0.017 | 0.508 | half known |
|
||||
| Basque | 0.050 | 0.483 | half known |
|
||||
| **Zulu** | 0.008 | **0.142** | at chance — genuinely unknown |
|
||||
| pseudo-words | 0.000 | 0.158 | floor (cycling 20 nouns inflates this slightly) |
|
||||
|
||||
Only Zulu is clean among natural languages; pseudo-words are clean by construction and unlimited in
|
||||
supply. Probe: `/tmp/contam2.py`.
|
||||
|
||||
**Prior art makes the experiment-as-framed a reproduction.** WikiBigEdit (arXiv:2503.05683) runs
|
||||
506K factual QA pairs across 8 sequential timesteps. Locate-then-edit methods (ROME, MEMIT) collapse
|
||||
within the first few hundred updates, but their **LoRA + merging** baseline — a fresh adapter per
|
||||
timestep, interpolated into the accumulated adapter at weight 0.25 — is stable across the whole
|
||||
benchmark and beats every dedicated editing method past ~100K updates. That is our isolated-plus-
|
||||
attenuated-merge arm, run three orders of magnitude further, and it does not collapse. Separately,
|
||||
arXiv:2506.14126 finds that over-training experts harms merging via late-stage memorisation, which is
|
||||
the published version of our §8d observation that attenuating four of six adapters was free gain —
|
||||
cite it, do not claim it.
|
||||
|
||||
**Consequence for the diagnosis.** If a single lineage accumulates 500K disjoint facts by
|
||||
fresh-adapter-plus-interpolation without collapsing, capacity is not what stopped v5 at generation
|
||||
3-4 with six families. The difference between the two settings is that WikiBigEdit's content is
|
||||
homogeneous QA in one output format, whereas v5's families conflict at the output (label vs span vs
|
||||
number vs code). The remaining candidate is interference between competing output formats.
|
||||
|
||||
In the population-genetic frame the two are distinct: a new word-set is a **new locus**, and adding
|
||||
loci is cheap; two families demanding different output formats for the same input shape are
|
||||
**competing alleles at one locus**, and that is what collapses. A pure vocabulary curriculum is all
|
||||
loci and no allelic competition, so it would run to a hundred generations and confirm only that
|
||||
capacity is ample — removing precisely the variable that produced the phenomenon.
|
||||
|
||||
**The collision sweep I proposed here is also occupied — do not run it either.** *In Praise of
|
||||
Stubbornness* (arXiv:2502.04390) sweeps exactly this: non-contradictory updates integrate safely, while
|
||||
contradictory ones destroy up to 80% of unrelated knowledge with as few as 10-100 facts, consistently
|
||||
across model scales, and the authors conclude explicitly that the cause is conflict rather than
|
||||
capacity. *Interference and Retention in Continual Learning* (arXiv:2607.09202) supplies the theory:
|
||||
disjoint task supports make forgetting structurally eliminable, conflicting overlap imposes an
|
||||
unavoidable distortion floor. Both the measurement and its formalisation exist.
|
||||
|
||||
**What this buys us anyway: the v5 collapse now has a cause.** Three of our own explanations were
|
||||
retracted (§8c, §8d) and capacity was the standing suspect. Between 2502.04390 and 2607.09202 the
|
||||
mechanism is settled and it is allelic conflict, not locus exhaustion — the six families conflict at
|
||||
the output, and contradictory updates corrupt disproportionately and non-locally. WikiBigEdit is the
|
||||
mirror control: homogeneous single-format content accumulates to 506K facts without collapsing. The
|
||||
collapse we could not explain is a known, characterised, independently replicated phenomenon.
|
||||
|
||||
**The gap that survives.** Every merging paper in the landscape still merges *once* — GENOME (the ACL
|
||||
2026 population-evolution paper) evolves a population toward a single target task, with no collapse,
|
||||
forgetting or grounding analysis. The iterated reproduction loop is still unoccupied, we have run it,
|
||||
and v5's negative answer (obligate recombination collapses by generation 3-4; veto-gated recombination
|
||||
merely matches isolation) is now interpretable rather than mysterious. No further LLM compute is
|
||||
required to state it.
|
||||
|
||||
## 8. Decisions for GG
|
||||
|
||||
1. **Three lineages × nine generations × nine families** (complementarity maximal at t=3, zero at
|
||||
t=9), or fewer families and more generations per family?
|
||||
2. **Replay budget** — fixed `n_replay` split across all families seen so far (so per-family replay
|
||||
thins as the curriculum grows, which is realistic and makes forgetting a live pressure), or fixed
|
||||
per-family (constant protection, more compute)?
|
||||
3. Whether `single_shot_merge` gets the directed weight selection the society arms use, or plain
|
||||
uniform soup as published. I would give it the *same* selection, so the comparison isolates
|
||||
iteration rather than handing the society a free operator advantage.
|
||||
|
||||
## 8h. Two controls for the declinable merge, pre-registered before running (2026-09-11)
|
||||
|
||||
Both were identified in the 2026-09-11 manuscript review as the weakest hedges in the six-generation
|
||||
population section. Code: `merge_until` and `orders` config keys in `src/llm/curriculum.py`;
|
||||
configs `curriculum_v5_stop3.yaml`, `curriculum_v5_decor.yaml`; stats `figures/stats_llm_curriculum.py`.
|
||||
|
||||
**Control 1 — forced stop at generation 3 (`llm_curriculum_v5_stop3`).** The v5 `society` arm with
|
||||
recombination switched off from generation 3 (`merge_until: 3`, `allow_veto: false`). Rationale: in
|
||||
the seed-1 veto run lineages declined 1/3 of merges at generations 0–2 and 3/3 at 3–5, so this is the
|
||||
matched fixed schedule. Readout: best-lineage all-family accuracy at generation 5, paired per seed
|
||||
(3 seeds) against veto, isolated and society.
|
||||
- stop3 ≈ veto (within ±0.03 in every seed): the veto's outcome is explained by *when* it stopped;
|
||||
the paper keeps "the population found the schedule by itself" and drops any claim that per-decision
|
||||
evaluation adds value beyond timing.
|
||||
- stop3 < veto in every seed: the early declines avoided specific harmful merges; the modifier reading
|
||||
strengthens.
|
||||
- stop3 ≈ society (collapsed): three obligate merges already carry the format destroyers; stopping is
|
||||
not enough, screening is required.
|
||||
|
||||
**Control 2 — decorrelated curriculum (`llm_curriculum_v5_decor`).** Same six families, G = 6, but
|
||||
every lineage starts with mnli, then diverges maximally, then converges, so partner complementarity by
|
||||
generation is 0.00, 0.67, 0.70, 0.58, 0.33, 0.00 (Latin square: 1.00, 1.00, 0.80, 0.67, 0.33, 0.00).
|
||||
Arms: `isolated` and `society` with `allow_veto: true`. Primary readout, pooled over both curricula
|
||||
(2 × 6 generations × 3 seeds = 36 points of mean `veto_used`): partial Spearman correlation of the
|
||||
fraction declined with complementarity, controlling for generation (rank-regress both on generation,
|
||||
correlate residuals), seed-clustered bootstrap CI.
|
||||
- Modifier hypothesis: partial ρ(declined, complementarity | generation) < 0 with CI excluding 0.
|
||||
- Adapter-age hypothesis: that partial ρ ≈ 0 while partial ρ(declined, generation | complementarity) > 0.
|
||||
- Known ambiguity, stated in advance: at generation 0 of the new curriculum all lineages hold the
|
||||
*same* family from different training draws, and §8b measured that such same-skill merges gain
|
||||
+0.087 (encoding decorrelation). A low decline rate at generation 0 therefore does not test
|
||||
complementarity; the primary test is the pooled partial correlation, not that point.
|
||||
- Secondary, descriptive: whether the new curriculum's veto arm finishes level with its own isolated
|
||||
arm, as in the Latin square (0.792 vs 0.796).
|
||||
|
||||
Seed 1 of each control runs locally (batch 24 / train batch 2, as the v5 seed-1 runs); seeds 2–3 on
|
||||
CX3 (`hpc/llm_curriculum_controls.pbs`, batch 48 / train batch 4, as the v5 seeds 2–3 runs).
|
||||
|
||||
### §8h outcome (2026-09-11, 3 seeds each; `figures/stats_llm_curriculum.py`)
|
||||
|
||||
- **Control 1, forced stop:** stop3 0.793 vs veto 0.792 vs isolated 0.796 (per-seed veto − stop3:
|
||||
−0.008, −0.006, +0.011). First branch: the veto's outcome is explained by *when* it stopped.
|
||||
- **Control 2, decorrelated curriculum:** partial ρ(declined, complementarity | generation) = −0.067,
|
||||
CI (−0.211, +0.088); partial ρ(declined, generation | complementarity) = +0.31. Adapter-age branch:
|
||||
declines track generation, not complementarity. The Latin-square ρ = −0.57 was carried by
|
||||
generation. Decor veto 0.790 = decor isolated 0.790.
|
||||
- Manuscript consequence: the recombination-modifier / reduction-principle reading of Fig. 4B is
|
||||
withdrawn; the declinable merge remains the mechanism that avoided the obligate-merge collapse at no
|
||||
cost against never merging, and the forced-stop control shows a fixed schedule does the same.
|
||||
Loading…
Add table
Add a link
Reference in a new issue