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
8
Makefile
8
Makefile
|
|
@ -18,12 +18,14 @@ test: ## correctness tests + scientific-validation tests (the spine
|
|||
layer1: ## run experiments E1-E6 + the learning-kernel bridge (analytic)
|
||||
for e in E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E12_nk kernel_sharpen kernel_smooth; do uv run python -m knowledge.experiment configs/layer1/$$e.yaml; done
|
||||
|
||||
neural: ## run Layer 1.5 synthetic neural experiments (excludes the heavy MNIST tier)
|
||||
for c in configs/neural/*.yaml; do case "$$c" in *mnist*) ;; \
|
||||
neural: ## run Layer 1.5 synthetic neural experiments (excludes the MNIST/torchvision tiers)
|
||||
for c in configs/neural/*.yaml; do case "$$c" in *mnist*|*speciation_real*) ;; \
|
||||
*) uv run python -m neural.experiment "$$c" ;; esac; done
|
||||
|
||||
mnist: ## run the real-MNIST confirmation tier (needs env-mnist; downloads MNIST)
|
||||
mnist: ## run the torchvision tiers: MNIST collapse + E13 real-weight speciation (needs env-mnist)
|
||||
uv run python -m neural.experiment configs/neural/mnist_collapse.yaml
|
||||
uv run python -m neural.experiment configs/neural/speciation_real.yaml
|
||||
uv run python -m neural.experiment configs/neural/speciation_real_cliff.yaml
|
||||
|
||||
env-llm: ## add the LLM stack for the Layer-2 prototype (GPU; transformers/peft)
|
||||
uv sync --extra dev --extra neural --extra llm
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue