E13b/c: harden real-weight speciation — full symmetry group + emergent-divergence null
E13c (the symmetry defense): alignment now runs modulo the FULL function-preserving unit symmetry group of a ReLU MLP (per-unit positive rescaling via canonicalise_scale, composed with Re-Basin permutations; sanity gate recovers a permuted-and-rescaled copy exactly). Verdict: the full group removes the independent-init barrier (residual 0.001) and essentially none of the conflict barrier (0.502 -> 0.497) — the residual is functional, not a missed symmetry (answers arXiv:2606.23607). The cliff gains a hybrid-fitness readout: merged accuracy 0.97 -> 0.03 with conflict. Floor proposition drafted (paper/si-notes.md S1): endpoint invariance + max(eps_A, eps_B) >= mu(S)/2 for any merged model under any alignment group. E13b (emergent divergence): pre-registered second reading — with NO conflicting training signal (disjoint class specialists; rolled-input conventions), residual is 0.000 at every divergence to t_div=3200, and the merge RESCUES the forgetting specialists (parents 0.535/0.474 -> merged 0.955; a sustained Fisher-Muller rescue at zero barrier). Speciation in real weights requires functional conflict; it does not emerge from compatible specialisation on shared ancestry. LLM-scale over-specialisation (cf. 2607.11997) deferred to Phase-3 llm_speciation. 3-panel figure, READMEs, +2 tests (149 green), make mnist wired. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
This commit is contained in:
parent
72d5e9e736
commit
ea051a5f92
15 changed files with 435 additions and 77 deletions
|
|
@ -1,54 +1,85 @@
|
|||
# E13 — Real-weight model speciation (Git Re-Basin residual)
|
||||
# E13 — Real-weight model speciation (the alignment residual, now modulo the full symmetry group)
|
||||
|
||||
**Claim tested.** E12 predicts model *speciation* analytically: as two lineages diverge, recombination
|
||||
(merging) fails, via Bateson–Dobzhansky–Muller incompatibilities. E13 confirms it in **real trained
|
||||
weights**, and — decisively — separates the part of the incompatibility that is a mere **coordinate
|
||||
artefact** (removable by permuting hidden units; Git Re-Basin, Ainsworth et al. 2022) from the
|
||||
**residual** that permutation *cannot* remove, which is the true reproductive-isolation signal. This is
|
||||
the experiment that answers the mode-connectivity reviewer: if alignment removes the barrier, it was a
|
||||
coordinate artefact; the barrier that *survives* alignment is real speciation.
|
||||
weights**, separating the part of the merge barrier that is a mere **coordinate artefact** (removable
|
||||
by re-coordinating hidden units) from the **residual** that no alignment can remove — the true
|
||||
reproductive-isolation signal.
|
||||
|
||||
**Setup.** Small no-BatchNorm MLPs (784–512–512–10) on MNIST — the clean Re-Basin regime. Two children
|
||||
are forked from a shared base and trained independently; we weight-average them and measure the
|
||||
**linear-mode-connectivity error barrier** before (`naive`) and after (`aligned`) in-house, deterministic
|
||||
Git Re-Basin weight-matching (`neural/rebasin.py`, scipy `linear_sum_assignment`). Statistically
|
||||
reproducible (seeded torch; NumPy/scipy alignment is deterministic). 3 replicates.
|
||||
**E13c hardening (2026 PNAS campaign).** Recent work shows symmetry groups *richer than permutations*
|
||||
remove more of the barrier between independently trained transformers (arXiv:2606.23607;
|
||||
neuron-identifiability LMC). We therefore align modulo the **full function-preserving unit symmetry
|
||||
group of a plain ReLU MLP** — per-unit positive rescaling (scale canonicalisation, exact) *composed
|
||||
with* Git Re-Basin permutation matching (`neural/rebasin.py`; the sanity gate recovers a permuted
|
||||
**and rescaled** copy to exact weight identity). Both residuals are reported: `residual` (permutation
|
||||
only) and `residual_scale` (full group).
|
||||
|
||||
**Setup.** No-BatchNorm MLPs (784–512–512–10) on MNIST. Children forked/trained per condition;
|
||||
weight-average merge; linear-mode-connectivity error barrier before/after alignment; midpoint
|
||||
(merged-model) accuracy recorded alongside. 3 replicates (decomposition/cliff), 4 (emergent).
|
||||
Statistically reproducible (seeded); the alignment itself is deterministic NumPy/scipy.
|
||||
|
||||
### Results — the decomposition (mean over divergence, reps)
|
||||
| condition | naive barrier | removable (coordinate) | **residual (isolation)** |
|
||||
|---|---|---|---|
|
||||
| `shared` (same task, shared fork) | 0.00 | 0.00 | **0.00** |
|
||||
| `independent` (same task, different init) | 0.056 | 0.055 | **0.001** |
|
||||
| `conflict` (conflicting label maps) | 0.496 | 0.000 | **0.496** |
|
||||
| condition | naive barrier | residual (permutation) | **residual (full symmetry group)** | merged acc |
|
||||
|---|---|---|---|---|
|
||||
| `shared` (same task, shared fork) | 0.000 | 0.000 | **0.000** | 0.964 |
|
||||
| `independent` (same task, different init) | 0.044 | 0.001 | **0.001** | 0.960 (= parents) |
|
||||
| `conflict` (contradictory label maps) | 0.502 | 0.502 | **0.497** | **0.037 (inviable)** |
|
||||
|
||||
- **`independent`**: two nets trained *from different random inits* on the *same task* have a real naive
|
||||
barrier — which alignment **removes ~98%** of (residual 0.001). Same species, different basis: the
|
||||
incompatibility is a coordinate artefact. (This reproduces the canonical Git Re-Basin result and
|
||||
proves our alignment works.)
|
||||
- **`conflict`**: two nets that learned *conflicting* functions have a large barrier that alignment
|
||||
**removes none** of (residual 0.496). Different species: genuine reproductive isolation. Because
|
||||
alignment demonstrably works on `independent`, this residual cannot be dismissed as a failure to align.
|
||||
- The **residual after alignment** is therefore the clean discriminator: ~0 for compatible models (even
|
||||
independently trained), large only for functionally incompatible ones.
|
||||
- **`independent`**: the barrier is a coordinate artefact — permutations already remove ~98%, and the
|
||||
full symmetry group confirms (residual 0.001). The aligned merge performs **at parent level**
|
||||
(0.960): same species, different basis.
|
||||
- **`conflict`**: the full symmetry group removes essentially nothing (0.502 → 0.497). The residual is
|
||||
**functional**, not a missed symmetry — and the hybrid is functionally dead (accuracy 0.037).
|
||||
Because the same aligner erased the independent-init barrier, this cannot be a failure to align.
|
||||
- Formal floor (SI note S1, `paper/si-notes.md`): for label maps conflicting on mass `μ(S)`, *any*
|
||||
single merged model errs at rate ≥ `μ(S)/2` against at least one parent, under *any* alignment
|
||||
group and merge operator — hybrid disadvantage is information-theoretic, and endpoints/chord are
|
||||
invariant to all function-preserving transformations.
|
||||
|
||||
### Results — the isolation cliff (`speciation_real_cliff/`)
|
||||
Sweeping the fraction of classes on which child B learns a *conflicting* label map, the residual
|
||||
(after-alignment) barrier rises monotonically — the real-weight image of E12's cliff:
|
||||
Sweeping the fraction of conflicting classes (residual = full-symmetry alignment; `t_div=800`):
|
||||
|
||||
| conflict fraction | 0.0 | 0.2 | 0.4 | 0.6 | 0.8 | 1.0 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| residual barrier | 0.00 | 0.13 | 0.19 | 0.28 | 0.40 | 0.49 |
|
||||
| residual barrier | 0.000 | 0.122 | 0.187 | 0.278 | 0.406 | 0.506 |
|
||||
| **merged (hybrid) accuracy** | 0.968 | 0.764 | 0.586 | 0.396 | 0.199 | 0.034 |
|
||||
|
||||
residual = naive at every point (alignment removes nothing in the conflict condition), so the cliff is
|
||||
genuinely functional isolation, not a coordinate artefact.
|
||||
`residual_scale ≈ residual` at every point (±0.005): the cliff is functional isolation under the full
|
||||
symmetry group. Read as **hybrid fitness**, the merged model's accuracy falls 0.97 → 0.03 — the
|
||||
real-weight image of E12's *compatible → outbreeding depression → hybrid inviability* trajectory.
|
||||
|
||||
### Results — emergent divergence does NOT speciate (`speciation_real_emergent/`, E13b)
|
||||
The conflict condition *imposes* contradiction; a true BDM incompatibility is *emergent*. Two
|
||||
pre-registered conditions with **no conflicting training signal anywhere**: `disjoint` (child A trains
|
||||
only on classes 0–4, child B on 5–9) and `augment` (same labels, inputs rolled ±3 px), swept to
|
||||
`t_div = 3200` (children trained 6.4× longer than the shared base):
|
||||
|
||||
- **Residual barrier = 0.000 at every divergence, both conditions** (naive barrier is 0 too — the
|
||||
children never leave the shared basin).
|
||||
- The `disjoint` parents decay to 0.535/0.474 on the full task (each forgets the other's classes),
|
||||
while the **merged model holds ≈ 0.955 at every divergence** — a sustained ~40-point
|
||||
**Fisher–Muller rescue** of two catastrophically-forgetting specialists, at zero barrier.
|
||||
`augment` shows the same shape (parents 0.65/0.73, merge ≈ 0.90).
|
||||
|
||||
**Honest conclusion (the pre-registered second reading):** in this regime — shared ancestry, same
|
||||
architecture, compatible tasks, divergence up to 3200 steps — **model speciation does not emerge
|
||||
spontaneously; reproductive isolation requires functional conflict.** Trained networks are *more*
|
||||
merge-compatible than the biological analogy predicts, and the design rule sharpens: *merge freely
|
||||
across divergently-specialised lineages of shared ancestry — the danger is conflicting conventions,
|
||||
not specialisation per se.* Scope caveat: small MLPs, one fork depth; whether long-horizon
|
||||
over-specialisation at LLM scale erodes mergeability (as the expert-training-duration literature
|
||||
suggests, arXiv:2607.11997) is exactly the Phase-3 `llm_speciation` question.
|
||||
|
||||
### Positioning
|
||||
The incumbents each hold one piece: Git Re-Basin / Entezari (barriers are coordinate artefacts),
|
||||
Frankle (the fork-instability protocol), Pari et al. 2024 (specialisation diverges representations,
|
||||
route don't fuse), Zhou et al. 2026 (predict mergeability from divergence metrics). E13's contribution
|
||||
is the synthesis they lack: a controlled decomposition where alignment cleanly partitions the merge
|
||||
barrier into a **removable coordinate artefact** and a **residual reproductive-isolation** term that
|
||||
rises with task conflict — the real-weight confirmation of E12's speciation prediction, and the direct
|
||||
answer to "isn't this just a loss barrier / permutation artefact?" **Falsifier (not triggered):**
|
||||
alignment failing to remove the independent-init barrier (then residual is meaningless), or conflict
|
||||
showing no residual — instead alignment removed 98% of the former and 0% of the latter.
|
||||
Git Re-Basin / Entezari (barriers as coordinate artefacts), the richer-symmetry LMC results
|
||||
(2606.23607 and neuron-identifiability, 2026), Frankle (fork instability), Pari 2024 (route don't
|
||||
fuse), Zhou 2026 / 2601.22285 (predict mergeability from divergence/geometry), 2603.09463
|
||||
(merge-collapse capacity theory). E13's contribution is the synthesis they lack: a controlled
|
||||
decomposition where alignment — *modulo the full symmetry group* — cleanly partitions the merge
|
||||
barrier into a removable coordinate artefact and a **functional reproductive-isolation residual** that
|
||||
rises with task conflict, is absent under compatible specialisation, and carries an
|
||||
information-theoretic floor. **Falsifiers (none triggered):** alignment failing on `independent`
|
||||
(would invalidate the residual); conflict showing no residual; the richer symmetry group dissolving
|
||||
the conflict residual (it removed 0.005 of 0.502); emergent conditions showing residual attributable
|
||||
to alignment failure.
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"experiment": "speciation_real",
|
||||
"master_seed": 13,
|
||||
"git_commit": "56f642e7f9ae01fe01d863bdffe98b226b9dbb7b",
|
||||
"python": "3.14.5",
|
||||
"git_commit": "f5f68f52498402ba7cc6a5193e5e357be6357446",
|
||||
"python": "3.14.7",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
"scipy": "1.18.0",
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
"torchvision": "0.27.1"
|
||||
},
|
||||
"rows": 45,
|
||||
"results_sha256": "14b15c16ea8a43523fdc929641b8ad5741445435203d1511ecb698097da0a806",
|
||||
"results_sha256": "dc77ac51b8dc92549e39edbed8d1a68469ad40de288f28672d87d1739436247a",
|
||||
"layer": "1.5",
|
||||
"tier": "speciation_real"
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 234 KiB |
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"experiment": "speciation_real_cliff",
|
||||
"master_seed": 13,
|
||||
"git_commit": "56f642e7f9ae01fe01d863bdffe98b226b9dbb7b",
|
||||
"python": "3.14.5",
|
||||
"git_commit": "f5f68f52498402ba7cc6a5193e5e357be6357446",
|
||||
"python": "3.14.7",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
"scipy": "1.18.0",
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
"torchvision": "0.27.1"
|
||||
},
|
||||
"rows": 18,
|
||||
"results_sha256": "0252581d848376ad698f56d4e69edbcae40cf5a0f090203d6f723cfc5e25303c",
|
||||
"results_sha256": "889945655a6efaba9d97eed409f24968c9f77764101bdfa05acdf00c8f8668b7",
|
||||
"layer": "1.5",
|
||||
"tier": "speciation_real"
|
||||
}
|
||||
16
results/speciation_real_emergent/README.md
Normal file
16
results/speciation_real_emergent/README.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# E13b — Emergent divergence (no imposed conflict): does model speciation arise spontaneously?
|
||||
|
||||
Companion to `results/speciation_real/` (full legend and interpretation there; figure panel C of
|
||||
`speciation_real.png`). Pre-registered design: `shared` control, `disjoint` (complementary class
|
||||
specialists 0–4 vs 5–9), `augment` (same labels, inputs rolled ±3 px) — **no conflicting training
|
||||
signal anywhere** — swept over post-fork divergence `t_div ∈ [100, 3200]`, 4 replicates, with
|
||||
alignment modulo the full ReLU unit symmetry group (E13c).
|
||||
|
||||
**Outcome (the pre-registered second reading):** residual barrier **0.000 at every divergence in both
|
||||
emergent conditions**; the merged model **rescues** the two forgetting `disjoint` specialists
|
||||
(parents → 0.535/0.474; merge ≈ 0.955 throughout — a sustained Fisher–Muller rescue at zero barrier).
|
||||
**Speciation requires functional conflict; it does not emerge from compatible specialisation on shared
|
||||
ancestry in this regime.** An honest bound on the biological analogy, and a positive design result:
|
||||
merging complementary specialists of shared ancestry is safe — the danger is conflicting conventions,
|
||||
not specialisation. LLM-scale over-specialisation is the open tier (`llm_speciation`, PNAS work order
|
||||
Phase 3).
|
||||
18
results/speciation_real_emergent/manifest.json
Normal file
18
results/speciation_real_emergent/manifest.json
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"experiment": "speciation_real_emergent",
|
||||
"master_seed": 813,
|
||||
"git_commit": "f5f68f52498402ba7cc6a5193e5e357be6357446",
|
||||
"python": "3.14.7",
|
||||
"libraries": {
|
||||
"numpy": "2.5.0",
|
||||
"scipy": "1.18.0",
|
||||
"pandas": "3.0.3",
|
||||
"pyarrow": "24.0.0",
|
||||
"torch": "2.12.1",
|
||||
"torchvision": "0.27.1"
|
||||
},
|
||||
"rows": 72,
|
||||
"results_sha256": "95c626e0d1854690b0ad6ceaf696caa1cff005104a0814cc044c0b6b2604482b",
|
||||
"layer": "1.5",
|
||||
"tier": "speciation_real"
|
||||
}
|
||||
32
results/speciation_real_emergent/resolved_config.yaml
Normal file
32
results/speciation_real_emergent/resolved_config.yaml
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
experiment: speciation_real_emergent
|
||||
seed: 813
|
||||
n_replicates: 4
|
||||
source_config:
|
||||
experiment: speciation_real_emergent
|
||||
kind: speciation_real
|
||||
seed: 813
|
||||
n_replicates: 4
|
||||
speciation_real:
|
||||
sizes:
|
||||
- 784
|
||||
- 512
|
||||
- 512
|
||||
- 10
|
||||
conditions:
|
||||
- shared
|
||||
- disjoint
|
||||
- augment
|
||||
t_div:
|
||||
- 100
|
||||
- 200
|
||||
- 400
|
||||
- 800
|
||||
- 1600
|
||||
- 3200
|
||||
base_steps: 500
|
||||
lr: 0.05
|
||||
batch: 128
|
||||
n_eval: 2000
|
||||
data_root: data
|
||||
output:
|
||||
dir: results/speciation_real_emergent
|
||||
Loading…
Add table
Add a link
Reference in a new issue