E13: real-weight model speciation — the Git Re-Basin residual confirms E12

The real-weight image of E12, and the answer to the mode-connectivity reviewer.
Small no-BN MLPs on MNIST, forked from a shared base and trained independently,
are weight-averaged; we measure the linear-mode-connectivity barrier before and
after in-house deterministic Git Re-Basin permutation alignment (neural/rebasin.py,
scipy linear_sum_assignment), decomposing it into removable (coordinate artefact)
and residual (reproductive isolation). kind: speciation_real.

Result (3 reps):
- shared (same task, shared fork): no barrier — trivially mergeable.
- independent (same task, different init): naive 0.056, alignment removes 98%
  (residual 0.001) — the incompatibility is a coordinate artefact.
- conflict (conflicting label maps): naive 0.496, alignment removes 0% (residual
  0.496) — genuine reproductive isolation. Because alignment demonstrably works on
  the independent case, the conflict residual is real, not a failure to align.
- Isolation cliff (speciation_real_cliff): residual rises 0.00->0.13->0.19->0.28->
  0.40->0.49 with the fraction of conflicting classes — the real-weight mirror of
  E12's cliff; residual==naive throughout (functional, not coordinate).

rebasin.py sanity-gated (recovers a known permutation exactly). plot_speciation_real.py
(2-panel), +4 pure-NumPy tests (142 green), README with honest positioning vs
Git Re-Basin / Entezari / Frankle / Pari 2024 / Zhou 2026. Wired into make mnist
(needs torchvision).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Giorgio Gilestro 2026-07-09 00:19:04 +01:00
parent 56f642e7f9
commit 01d87e504f
15 changed files with 620 additions and 3 deletions

View file

@ -0,0 +1,54 @@
# E13 — Real-weight model speciation (Git Re-Basin residual)
**Claim tested.** E12 predicts model *speciation* analytically: as two lineages diverge, recombination
(merging) fails, via BatesonDobzhanskyMuller 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.
**Setup.** Small no-BatchNorm MLPs (78451251210) 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.
### 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** |
- **`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.
### 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:
| 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 = naive at every point (alignment removes nothing in the conflict condition), so the cliff is
genuinely functional isolation, not a coordinate artefact.
### 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.

View file

@ -0,0 +1,18 @@
{
"experiment": "speciation_real",
"master_seed": 13,
"git_commit": "56f642e7f9ae01fe01d863bdffe98b226b9dbb7b",
"python": "3.14.5",
"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": 45,
"results_sha256": "14b15c16ea8a43523fdc929641b8ad5741445435203d1511ecb698097da0a806",
"layer": "1.5",
"tier": "speciation_real"
}

View file

@ -0,0 +1,31 @@
experiment: speciation_real
seed: 13
n_replicates: 3
source_config:
experiment: speciation_real
kind: speciation_real
seed: 13
n_replicates: 3
speciation_real:
sizes:
- 784
- 512
- 512
- 10
conditions:
- shared
- independent
- conflict
t_div:
- 100
- 200
- 400
- 800
- 1600
base_steps: 500
lr: 0.05
batch: 128
n_eval: 2000
data_root: data
output:
dir: results/speciation_real

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB