MachineSex/results/llm_speciation/README.md
Giorgio Gilestro 5a23ddaf2a Phase 3: LLM-tier speciation + multi-seed firm-up of the recombination claims
llm_speciation (new kind; src/llm/speciation.py): E13 in LLM weights.
LoRA children share the frozen base's coordinates, so merge failure is
functional by construction. CONFLICT (ambiguous sort prompts learned
under opposite conventions — the BDM structure): function-specific
hybrid breakdown — merged coherence 0.02-0.08 falls below BOTH parents
(~0.2) on the conflicted function; and in the de-confounded `add` design
(private budget fixed, conflict added on top; 3 seeds after a
single-seed pilot showed one anomalous point) the merge's private-family
accuracy shows NO trend with conflict — the damage is surgical, not
global. DURATION (over-trained disjoint specialists, 1->12 epochs): the
merge improves (0.84->0.94) and stays above the best parent — the MLP
"no emergent isolation" null generalises; relevant to the
expert-training-duration report (2607.11997), with the epistasis
prediction left to the decisive experiment.

Multi-seed firm-up (seeds threaded into specialist caches; `seeds:` list
support in the runner; fixed test sets): all three recombination claims
hold with CIs — merges beat every specialist (5 seeds, ties
0.647±0.027 > best spec 0.592±0.009; worst-family 0.28 vs <=0.16); union
0.274±0.026 > fusion 0.174±0.102 on hard (3 seeds); directed 0.221±0.026
> soup. NEW finding: fusion is seed-FRAGILE where headroom exists
(CI ±0.10) while routing/directed selection are stable (±0.026) — the
union/selection operators win on reliability, not just mean.

Figures (llm_speciation 3-panel; llm_seeds 3-panel with 95% CI), READMEs,
+1 convention test (150 green), make llm-speciation / llm-seeds targets.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
2026-09-06 15:39:15 +01:00

47 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LLM-tier model speciation — conflict provokes isolation; duration alone does not
E13 carried into language-model weights (0.5B Qwen, LoRA children of one frozen base — which shares
its coordinate system with both children, so **there is no permutation/rescaling ambiguity by
construction: every merge failure here is functional**). Two knobs, pre-registered readings in the
configs; figure `llm_speciation.png` (3 panels; panel B from `results/llm_speciation_add/`).
**Design.** Child A: private family `strings`; child B: private family `arith`; shared **ambiguous
convention prompts** ("Sort the list […]" — no direction stated) answered *ascending* by A and
*descending* by B: each convention harmless alone, contradictory jointly (the BatesonDobzhansky
Muller structure). 50/50 soup merge; exact-match verifier; fixed test sets. **Coherence** of a model =
max(accuracy under asc grading, under desc grading) on the shared prompts — a coherent parent scores
under its own convention; a hybrid mixing conventions scores low under both (the `μ(S)/2` floor made
operational).
### Finding 1 — function-specific hybrid breakdown (the conflict knob; panel A)
Once the conventions are trained (`conflict_frac ≥ 0.25`), each parent performs under its own
convention (~0.200.25 — low absolute values: sorting long lists is hard for 0.5B) while the merge's
coherence sits at **0.020.08, below BOTH parents under either grading** — the hybrid loses precisely
the conflicted function. (At `frac = 0` no one has seen the ambiguous prompts; that point is a
no-conflict baseline, not part of the cliff.)
### Finding 2 — the damage does not spread (the de-confounded `add` design; panel B)
In the original ("replace") sweep, higher conflict fraction mechanically means *less private-family
training*, so the merge's private-family decline is confounded. The **`add` design**
(`llm_speciation_add`, 3 seeds) holds each child's private training fixed and adds conflict data on
top: the merge's private-family accuracy then shows **no trend with conflict** (0.740.88, tracking
parent A's 0.820.87 within seed noise at every level). Conflict damage is **localised to the
conflicted function**; it does not corrupt the disjoint skills — at this scale, hybrid breakdown is
surgical, not global. Honest rider: 0.5B soup merges carry large *intrinsic* seed variance even at
zero conflict (sd up to 0.28) — the same averaging-fragility seen in `llm_moe_hard_seeds`.
### Finding 3 — the duration null: over-specialisation does not erode mergeability (panel C)
Pure disjoint specialists over-trained from 1 to 12 epochs (no shared data at all): the merged model
*improves* (0.84 → 0.94 mean-private) and stays **above the best parent at every duration**. The MLP
tier's "no emergent isolation" null (`speciation_real_emergent`) **generalises to LLM weights** in
this regime — relevant to the report that averaging prefers under-trained experts (arXiv:2607.11997):
in our disjoint-family setting, no such over-training penalty appears; the theory's prediction is that
their effect should trace to *conflicting conventions on shared circuitry*, which the
`epistasis_predicts` experiment (work order) will test directly.
**Speciation across all three tiers now reads:** analytic (E12: cliff, epistasis-dependence,
snowball) → MLP (E13: functional residual survives the full symmetry group; no emergent isolation) →
LLM (this run: function-specific hybrid breakdown under conflict; no isolation from duration or
specialisation alone). Isolation must be provoked by functional conflict at every tier tested.
Falsifiers (not triggered): merge coherence matching the parents (no breakdown), or merged
private-family accuracy declining with conflict in the `add` design (global corruption).