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:
parent
56f642e7f9
commit
01d87e504f
15 changed files with 620 additions and 3 deletions
|
|
@ -188,6 +188,11 @@ def run_and_save(config_path: str | Path) -> Path:
|
|||
elif kind == "mnist_lineage":
|
||||
df, extra_manifest = run_mnist_experiment(cfg) # oracle provenance + confusion matrix
|
||||
grid = [{"label": label, "lineage_cfg": c} for label, c in _expand_mnist(cfg)]
|
||||
elif kind == "speciation_real":
|
||||
from .speciation_real import run_speciation_real # E13: real-weight speciation + Git Re-Basin
|
||||
df = run_speciation_real(cfg, int(cfg["seed"]))
|
||||
grid = None
|
||||
extra_manifest = {"layer": "1.5", "tier": "speciation_real"}
|
||||
else:
|
||||
raise ValueError(f"unknown neural experiment kind {kind!r}")
|
||||
save_artifacts(cfg, df, out_dir, extra_libs=_EXTRA_LIBS,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue