second review round: tempered claims, robust statistics, corrected technical statements

Analyses (figures/stats_llm_epistasis.py, committed + reproducible):
condition-clustered bootstrap CIs (functional measures exclude zero:
dis_raw [+0.04,+0.69], conf-weighted [+0.02,+0.68]; gradient alignment
[-0.59,-0.06]; geometry straddles zero), PAIRED predictor contrasts (not
individually significant — stated), leave-one-condition-out held-out
prediction (functional replicates, geometry ~0, performance baseline
unstable), three outcome references (ordering sensitive to reference —
reported, with the mechanism), between/within-axis decomposition
(within-conflict identification impossible by design; the compat axis
identifies), and seed-level paired reliability (routing/directed beat
soup 3/3 seeds incl. one catastrophic soup failure; CI-width fragility
claim withdrawn).

Renames and corrections: "decisive experiment" -> "controlled predictive
test"; "operational epistasis" -> "confidence-weighted functional
conflict (proposed proxy)"; "functional by construction" -> "controls a
major source of coordinate mismatch / conflict-associated" (module,
configs, READMEs, figures); SI proposition's "chord" defined precisely
(endpoint-loss interpolation, invariant) vs the path (not invariant) +
no-global-optimality caveat (removable = lower bound, residual = upper);
snowball count != performance cliff distinction added; claims table
gains four rows (grid finding / weighting NOT supported / functional-vs-
all-geometry not established / operator choice open); §1 ladder states
the prediction rung as a bounded small-model result.

paper/response-to-review-2.md: point-by-point, opening with the
bookkeeping correction (E13b/c were in the reviewed draft — revised
interpretation, not new results). READMEs rewritten around the four
analyses with the chronology (prospective/adaptive/post-hoc) disclosed.
151 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v
This commit is contained in:
Giorgio Gilestro 2026-09-06 17:55:46 +01:00
parent 1ae950cb7c
commit a40ace1821
17 changed files with 418 additions and 95 deletions

View file

@ -4,8 +4,8 @@ seed: 1
n_replicates: 1 n_replicates: 1
# LLM-tier model speciation (E13 in language-model weights; PNAS work order Phase 3). Two LoRA # LLM-tier model speciation (E13 in language-model weights; PNAS work order Phase 3). Two LoRA
# children from the same frozen base — so there is NO permutation/rescaling ambiguity by construction: # children from the same frozen base — which controls a major source of coordinate mismatch (no
# any merge failure is functional incompatibility, isolated architecturally. Two sweeps: # alignment step needed), allowing a cleaner test of conflict-associated merge failure. Two sweeps:
# conflict_fracs — the IMPOSED cliff: each child has a private disjoint family (A: strings, # conflict_fracs — the IMPOSED cliff: each child has a private disjoint family (A: strings,
# B: arith) plus a shared set of AMBIGUOUS sort prompts ("Sort the list [...]", no direction) # B: arith) plus a shared set of AMBIGUOUS sort prompts ("Sort the list [...]", no direction)
# answered ascending by A and descending by B (each convention harmless alone, contradictory # answered ascending by A and descending by B (each convention harmless alone, contradictory

View file

@ -1,8 +1,9 @@
"""The decisive-experiment figure — does pre-merge epistasis predict merge failure? """The controlled predictive test — does a pre-merge functional-conflict measure predict merge damage?
(A) The theory's predictor: operational epistasis (confidence-weighted bilateral disagreement, (A) The framework-motivated predictor: confidence-weighted functional conflict (bilateral confident
measured before merging) against the merge penalty (parent potential merged achieved, the disagreement, measured before merging a proposed proxy for merge-relevant interactions, not a
hybrid-load analogue). Conflict-axis pairs in red, duration-axis pairs in blue. measured epistasis) against the merge penalty (oracle parent potential merged achieved; ordering is
sensitive to the outcome reference see stats_llm_epistasis.py).
(B) The geometry predictor on the same outcome: weight divergence (LoRA-delta L2) the (B) The geometry predictor on the same outcome: weight divergence (LoRA-delta L2) the
matched-divergence contrast: the duration axis spans large weight divergence at ~zero penalty, while matched-divergence contrast: the duration axis spans large weight divergence at ~zero penalty, while
@ -27,7 +28,7 @@ from scipy.stats import spearmanr
sys.path.insert(0, str(Path(__file__).parent)) sys.path.insert(0, str(Path(__file__).parent))
from _figlib import load_bundle, savefig # noqa: E402 from _figlib import load_bundle, savefig # noqa: E402
PREDICTORS = [("epi_conf", "operational\nepistasis"), PREDICTORS = [("epi_conf", "conf-weighted\nfunctional conflict"),
("dis_raw", "raw\ndisagreement"), ("dis_raw", "raw\ndisagreement"),
("grad_cos", "gradient\nalignment"), ("grad_cos", "gradient\nalignment"),
("delta_cos", "delta\ncosine"), ("delta_cos", "delta\ncosine"),
@ -59,8 +60,8 @@ def main() -> None:
pass pass
fig, axes = plt.subplots(1, 3, figsize=(16.5, 4.9)) fig, axes = plt.subplots(1, 3, figsize=(16.5, 4.9))
_scatter(axes[0], df, "epi_conf", "operational epistasis (pre-merge)", _scatter(axes[0], df, "epi_conf", "confidence-weighted functional conflict (pre-merge)",
"(A) the theory's predictor") "(A) the framework-motivated predictor")
_scatter(axes[1], df, "delta_cos", "LoRA-delta cosine similarity (pre-merge)", _scatter(axes[1], df, "delta_cos", "LoRA-delta cosine similarity (pre-merge)",
"(B) the geometry predictor — does it detect\nincompatibility, or just task overlap?") "(B) the geometry predictor — does it detect\nincompatibility, or just task overlap?")
@ -77,8 +78,9 @@ def main() -> None:
ax.set(ylabel="|Spearman ρ| vs merge penalty", ylim=(0, 1), ax.set(ylabel="|Spearman ρ| vs merge penalty", ylim=(0, 1),
title="(C) predictor league table (pre-merge only)") title="(C) predictor league table (pre-merge only)")
fig.suptitle("Predicting merge failure BEFORE merging: functional conflict, not weight divergence " fig.suptitle("A controlled predictive test: across this task grid, pre-merge functional disagreement "
"(conflict, overlap-without-conflict, and divergence decorrelated by construction; 3 seeds)", y=1.03, fontsize=12) "predicted merge penalties; the selected weight-geometry baselines did not "
"(three axes decorrelated by construction; 13 conditions x 3 seeds)", y=1.03, fontsize=11.5)
fig.tight_layout() fig.tight_layout()
savefig(fig, "results/llm_epistasis", "llm_epistasis") savefig(fig, "results/llm_epistasis", "llm_epistasis")

View file

@ -14,8 +14,9 @@ tracks its parents (conflict damage localised to the conflicted function) or fal
model's private-family accuracy stays above the best parent at every duration. The MLP tier's model's private-family accuracy stays above the best parent at every duration. The MLP tier's
"no emergent isolation" null generalises to LLM weights in this regime. "no emergent isolation" null generalises to LLM weights in this regime.
Because LoRA deltas share the frozen base's coordinates, none of this involves alignment ambiguity: The shared frozen base controls a major source of coordinate mismatch (LoRA deltas share its
every failure shown is functional by construction. coordinates), allowing a cleaner test of conflict-associated merging failure though averaging can
still fail for non-conflict reasons (nonlinear interaction, scaling, capacity).
Usage: python figures/plot_llm_speciation.py Usage: python figures/plot_llm_speciation.py
""" """
@ -86,8 +87,8 @@ def main() -> None:
ax.legend(frameon=False, fontsize=8) ax.legend(frameon=False, fontsize=8)
fig.suptitle("LLM-tier model speciation: conflict provokes function-specific hybrid breakdown; " fig.suptitle("LLM-tier model speciation: conflict provokes function-specific hybrid breakdown; "
"no isolation emerges from duration alone (LoRA shares base coordinates — failures are " "no isolation emerges from duration alone (shared base controls coordinate mismatch — "
"functional by construction)", y=1.03, fontsize=11.5) "a cleaner test of conflict-associated failure)", y=1.03, fontsize=11.5)
fig.tight_layout() fig.tight_layout()
savefig(fig, "results/llm_speciation", "llm_speciation") savefig(fig, "results/llm_speciation", "llm_speciation")

View file

@ -0,0 +1,108 @@
"""Robust statistics for the controlled predictive test (source of the README numbers).
Implements the second external review's four requested analyses (2026-08-11), from committed
artifacts only:
1. condition-clustered bootstrap CIs for each predictor's Spearman rho, and PAIRED bootstrap
differences between predictors (a significant rho for one and not another is not a significant
difference the paired contrast is the honest comparison);
2. sample-structure disclosure (13 conditions x 3 seeds = 39 rows; parents are retrained per
condition x seed but share task-data seeds across conditions within a seed, so rows are not
independent hence clustering by condition);
3. between- vs within-axis decomposition (pooled correlations are partly axis discrimination);
4. the outcome under three references: oracle parent potential (pre-registered primary),
best parent, and mean parent reported because the predictor ordering is sensitive to it.
Plus leave-one-condition-out (LOCO) held-out prediction per predictor.
Usage: python figures/stats_llm_epistasis.py
"""
from __future__ import annotations
import numpy as np
import pandas as pd
from scipy.stats import spearmanr
PREDICTORS = ["epi_conf", "dis_raw", "grad_cos", "delta_cos", "delta_l2", "cross_perf"]
def load() -> pd.DataFrame:
a = pd.read_parquet("results/llm_epistasis/results.parquet")
b = pd.read_parquet("results/llm_epistasis_compat/results.parquet")
df = pd.concat([a, b], ignore_index=True)
df["cond"] = df["mode"] + "_" + df["x"].astype(str)
df["parent_a_overall"] = df[["pa_fam_a", "pa_fam_b", "pa_coh"]].mean(axis=1)
df["parent_b_overall"] = df[["pb_fam_a", "pb_fam_b", "pb_coh"]].mean(axis=1)
df["pen_oracle"] = df["merge_penalty"] # pre-registered primary
df["pen_best"] = df[["parent_a_overall", "parent_b_overall"]].max(axis=1) - df["merged_overall"]
df["pen_mean"] = df[["parent_a_overall", "parent_b_overall"]].mean(axis=1) - df["merged_overall"]
return df
def clustered_bootstrap(df: pd.DataFrame, outcome: str = "pen_oracle", B: int = 4000, seed: int = 0):
"""Percentile CIs for each predictor's rho, resampling CONDITIONS (13 clusters) with replacement."""
rng = np.random.default_rng(seed)
conds = df["cond"].unique()
groups = {c: df[df["cond"] == c] for c in conds}
boot = {p: np.empty(B) for p in PREDICTORS}
for i in range(B):
bs = pd.concat([groups[c] for c in rng.choice(conds, size=len(conds), replace=True)],
ignore_index=True)
for p in PREDICTORS:
boot[p][i] = spearmanr(bs[p], bs[outcome])[0]
return boot
def loco(df: pd.DataFrame, outcome: str = "pen_oracle"):
"""Leave-one-condition-out held-out prediction (linear fit per predictor)."""
out = {}
for p in PREDICTORS:
pr, ac = [], []
for c in df["cond"].unique():
tr, te = df[df["cond"] != c], df[df["cond"] == c]
coef = np.polyfit(tr[p], tr[outcome], 1)
pr += list(np.polyval(coef, te[p])); ac += list(te[outcome])
rho, pv = spearmanr(pr, ac)
out[p] = (rho, pv, float(np.sqrt(np.mean((np.array(pr) - np.array(ac)) ** 2))))
return out
def main() -> None:
df = load()
print(f"sample: {df['cond'].nunique()} conditions x {df['seed'].nunique()} seeds = {len(df)} rows")
print("\n== league table under three outcome references (Spearman rho) ==")
print(f"{'predictor':>11} {'oracle*':>8} {'best':>8} {'mean':>8} (*pre-registered primary)")
for p in PREDICTORS:
r = [spearmanr(df[p], df[o])[0] for o in ["pen_oracle", "pen_best", "pen_mean"]]
print(f"{p:>11} {r[0]:+8.3f} {r[1]:+8.3f} {r[2]:+8.3f}")
boot = clustered_bootstrap(df)
print("\n== condition-clustered bootstrap 95% CIs (primary outcome) ==")
for p in PREDICTORS:
v = boot[p][~np.isnan(boot[p])]
print(f"{p:>11}: {spearmanr(df[p], df['pen_oracle'])[0]:+.3f}"
f" [{np.percentile(v, 2.5):+.3f}, {np.percentile(v, 97.5):+.3f}]")
print("\n== paired bootstrap |rho| differences ==")
for a_, b_ in [("epi_conf", "dis_raw"), ("dis_raw", "delta_cos"),
("dis_raw", "grad_cos"), ("epi_conf", "delta_cos")]:
d = np.abs(boot[a_]) - np.abs(boot[b_]); d = d[~np.isnan(d)]
print(f"|rho({a_})| - |rho({b_})|: {np.mean(d):+.3f}"
f" [{np.percentile(d, 2.5):+.3f}, {np.percentile(d, 97.5):+.3f}]")
print("\n== leave-one-condition-out held-out prediction ==")
for p, (rho, pv, rmse) in loco(df).items():
print(f"{p:>11}: LOCO rho={rho:+.3f} (p={pv:.3g}) rmse={rmse:.3f}")
print("\n== between- vs within-axis ==")
print("mean penalty by axis:", df.groupby("mode")["pen_oracle"].mean().round(3).to_dict())
c_df = df[df["mode"] == "conflict"]
for p in PREDICTORS:
r, pv = spearmanr(c_df[p], c_df["pen_oracle"])
print(f"{p:>11} (conflict axis only, n={len(c_df)}): {r:+.3f} (p={pv:.2g})")
if __name__ == "__main__":
main()

View file

@ -0,0 +1,146 @@
# Response to the second review
*This response accompanies a further revision. Every number below is reproduced by a committed script
(`figures/stats_llm_epistasis.py`) from committed artifacts; the revised documents are
`results/llm_epistasis/README.md` (rewritten around your four analyses), the manuscript, and
`paper/si-notes.md`.*
---
## 0. A correction first (your §7)
You are right, and we apologise for the bookkeeping error: the draft you reviewed **already
contained** the full-symmetry alignment experiment, the conflict residual, and the
compatible-specialisation null. Our previous letter's "new since the review" conflated three things
that we now state separately: **new results** (the LLM-tier speciation runs, the multi-seed
replication, and the controlled predictive test with its control axis), **new controls and analyses**
(the compatible-overlap axis; the robust statistics in this letter), and **revised interpretation**
(everything about E13b/c, which was experimental content you had already seen and whose *presentation*
we changed). The experimental delta attributable to the review process is the first and second
categories only.
## 1. Your two-conclusion distinction — adopted as the evidential boundary
We accept the boundary exactly as you drew it:
- **Demonstrated:** a small-model, controlled predictive test in which pre-merge functional
disagreement predicted merge penalties where the selected weight-space measures did not.
- **Not demonstrated:** that an epistasis-specific predictor adds value beyond ordinary functional
disagreement, or that the prediction improves operator choice.
The experiment is now titled a **"controlled predictive test"** everywhere ("decisive experiment
delivered" is gone), and the manuscript's §1 ladder describes the prediction rung in your conditional
formulation, with its four boundary clauses stated in place: constructed grid, small scale, refinement
not superior, operator choice open. The measure itself is renamed **"confidence-weighted functional
conflict — a proposed proxy for merge-relevant interactions"**; we accept that bilateral confident
contradiction measures incompatible endpoint behaviour, not non-additive interaction in the strict
biological sense, and the paper no longer calls any measured quantity "epistasis." Your distinction —
*the framework motivated the measurement and controls* vs *their success validates the specifically
population-genetic mechanism* — is adopted verbatim; we claim the former.
## 2. The four analyses — run
**(1) Direct predictor comparison.** Condition-clustered bootstrap (13 clusters, B = 4000), 95% CIs
for each predictor's ρ against the pre-registered primary outcome:
| predictor | ρ | clustered 95% CI |
|---|---|---|
| raw functional disagreement | +0.460 | [+0.04, +0.69] |
| confidence-weighted functional conflict | +0.446 | [+0.02, +0.68] |
| gradient alignment | 0.347 | [0.59, 0.06] |
| delta L2 | +0.165 | [0.27, +0.58] |
| delta cosine | +0.030 | [0.46, +0.51] |
| cross-family accuracy | 0.005 | [0.29, +0.31] |
**Paired contrasts are not individually significant** (e.g. |ρ(dis_raw)| |ρ(delta_cos)| = +0.23,
CI [0.23, +0.59]). Held-out prediction (leave-one-condition-out linear fits): functional measures
replicate (dis_raw ρ = +0.396, p = 0.013; conf-weighted +0.352, p = 0.028); geometry ≈ 0; the
performance baseline is unstable out-of-sample (0.435). So the supported statement — now the
conclusion in the README, the figure title, and the manuscript — is yours: *across this controlled
grid, functional disagreement showed a detectable, held-out-robust association with merge penalty;
LoRA-delta cosine and L2 showed no statistically detectable association; gradient alignment carried
intermediate signal (its CI excludes zero), so this is not a clean functional-versus-all-geometric
divide; head-to-head predictor differences are not individually significant; only these baselines were
tested.* "Weight divergence does not predict merge failure" has been removed as over-broad.
**(2) Sample structure.** 39 rows = **13 conditions × 3 seeds**. Parents are retrained per
condition × seed, but children share task-data seeds across conditions within a seed (e.g. the
duration-3 parent and the conflict-0 parent are trained on essentially the same data), so rows are not
independent — hence clustering by condition in all uncertainty estimates, disclosed in the README.
**(3) Between- vs within-axis.** You were right that the pooled correlation is substantially axis
discrimination (mean penalty: conflict 0.061 vs compat 0.005 / duration 0.011). Within the conflict
axis (n = 15): functional measures +0.59/+0.62 — but delta-L2 is +0.71 there, because *within that
axis* conflict fraction, added-data volume, and delta growth are collinear: **within-axis
identification is impossible by design**, and we now say so; the identification comes from the control
axes, where the same volumes and L2 ranges occur at ~zero penalty. Scatterplots are coloured by axis
in the figure. Predicting penalties for a held-out *conflict mechanism* (not just held-out conditions
of the same mechanism) is listed as the next test — we agree it is the more valuable one.
**(4) Outcome references.** Reported under all three: oracle parent potential (pre-registered
primary), best parent, and mean parent. The ordering is **sensitive to the reference** — under the
best-parent reference, delta-L2 correlates comparably to the functional measures (+0.48 vs +0.34).
Our reading, stated in the README rather than hidden: that reference inherits parent-strength trends
that track training volume, which geometry also tracks, coupling predictor and outcome through the
reference rather than through merge damage. On structural coupling between the disagreement predictor
and the oracle-potential outcome: probe and test sets are disjoint by construction, but we agree
definitional coupling through parental complementarity cannot be fully excluded, which is one more
reason all three references are now on the table.
## 3. Hypothesis labels
Your table is adopted essentially as written — the manuscript's claims-at-a-glance table now carries:
pre-merge disagreement predicts penalty (*empirical within the controlled grid*, with the boundary
clauses in the limits column); confidence weighting improves rank prediction (***not supported***);
functional beats all geometry (*not established — selected baselines only*); operator choice (*open*);
cliff, snowball, emergent DMIs (*hypotheses*, unchanged). We also added your snowball distinction
where the snowball is discussed: super-linear growth in incompatibility *count* does not by itself
entail a sharp *performance* cliff — that needs the count→effect-size→performance link, which the
analytic model supplies under its assumptions and any neural test must establish separately.
## 4. The two technical statements — corrected
**"Endpoints and chord are invariant."** Accepted; the ambiguity was ours. The SI proposition now
defines "chord" precisely as the α-linear interpolation **of the endpoint loss values** — the barrier
baseline, a function of endpoints only, which *is* invariant — and states explicitly that the
**weight-space interpolation path is generally not invariant** (that being precisely why alignment can
lower a barrier). It also now carries your second point: exact recovery of a permuted-and-rescaled
copy validates a special case and does not establish global optimality of the alignment for
independently trained networks — so the "removable" share is a lower bound and the "residual" an upper
bound, stated wherever the decomposition is used.
**"Frozen base pins the coordinate system, so failure is functional by construction."** Accepted, and
your replacement wording adopted verbatim across the module, configs, READMEs, and figure: *the shared
frozen base controls a major source of coordinate mismatch, allowing a cleaner test of
conflict-associated merging failure* — with the boundary stated (failures of delta-averaging can still
reflect nonlinear interaction, scaling, or capacity). "Conflict-associated," not "functional by
construction," throughout.
## 5. Chronology and reliability
**Chronology (now a section of the README).** Prospective: hypotheses, predictors, primary outcome and
falsifiers were in the config before the first grid ran. Adaptive: the compatible-overlap control was
added *after* geometry appeared to win, with its own pre-stated readings, run on the same seeds; no
existing rows were re-run or altered. Post hoc: the clustered-bootstrap/LOCO/multi-reference analyses
were added at your request after all data was collected. We agree this is transparent adaptive
experimentation, not wholly prospective confirmation, and it is labelled as such.
**Reliability.** The CI-width claim is withdrawn. The seed-level statement now reads: routing beat the
soup **in every seed** (3/3 paired, both metrics), directed selection beat the soup 3/3, and one seed
exhibited a catastrophic soup failure (0.071 overall, 0.000 worst-family) to which routing was immune
(0.262/0.225); seed-level sds (0.090 vs 0.023) are reported as an observation, with the explicit note
that three seeds do not support a variance estimate.
## 6. On your bottom line
We accept your formulation as the paper's claim for this line of work — it now closes the relevant
results section nearly verbatim: *we separated overlap, divergence, and conflict experimentally; in
this controlled setting, functional disagreement predicted merging damage when simple weight-distance
measures did not; the proposed epistasis refinement and the emergent-speciation mechanism remain
unconfirmed.* And we take the redirection about what would count next: not 0.5B → 7B alone, but
**generalisation to unfamiliar conflict structures** (a held-out conflict mechanism, and real rather
than constructed task pairs) and **a demonstrably better budget-matched merging decision**. Those two
now head the open-problems list, above the scale replication.
We would welcome a third pass if you have the appetite — particularly on whether the README's
conditional conclusion and the chronology section read at the right strength.

View file

@ -12,10 +12,17 @@ condition, the cyclically-relabelled classes; `μ(S) ≈ conflict_frac` up to cl
networks, positive per-unit rescalings — the full unit symmetry group of a plain ReLU MLP) satisfies networks, positive per-unit rescalings — the full unit symmetry group of a plain ReLU MLP) satisfies
`T(B)(x) = B(x)` for all `x` by construction. `T(B)(x) = B(x)` for all `x` by construction.
**Proposition 1 (endpoint invariance).** For every function-preserving `T`, the endpoint functions — **Proposition 1 (endpoint invariance — with the term "chord" defined precisely).** Here "chord"
and hence the endpoint losses/errors and the linear chord between them — are identical for the pair means the α-linear interpolation **of the endpoint loss values**, `(1α)·L(A) + α·L(B)` — the
`(A, T(B))` and the pair `(A, B)`. Alignment can only re-coordinate the *interpolation path*, never baseline in the barrier definition, a function of the endpoints only — NOT the weight-space
the endpoints or the chord. *(Immediate from the definition of function-preserving.)* interpolation path. For every function-preserving `T`, the endpoint functions, hence the endpoint
losses and this chord, are identical for `(A, T(B))` and `(A, B)`. The **interpolation path itself is
generally NOT invariant** — losses along `(1α)·A + α·T(B)` change with `T`, which is precisely why
alignment can lower a barrier. *(Immediate from the definition of function-preserving.)* Scope
caveat: our aligner provably recovers a permuted-and-rescaled copy exactly — an important special
case — but this does not establish global optimality of the alignment over the symmetry group for
independently trained networks; the decomposition's "removable" share is therefore a lower bound, and
the "residual" an upper bound, on their true values.
**Proposition 2 (no merged model can serve both parents).** Let `h` be *any* single classifier (in **Proposition 2 (no merged model can serve both parents).** Let `h` be *any* single classifier (in
particular, any interpolated/merged model, under any alignment). On every `x ∈ S`, `f_A(x) ≠ f_B(x)`, particular, any interpolated/merged model, under any alignment). On every `x ∈ S`, `f_A(x) ≠ f_B(x)`,

View file

@ -164,10 +164,15 @@ different things are easily conflated: **interpretation** (an existing result is
in these terms — e.g., merged offspring beating their parents as FisherMuller), **explanation** (the in these terms — e.g., merged offspring beating their parents as FisherMuller), **explanation** (the
transferred mechanism accounts for observations existing accounts leave open — e.g., which merge transferred mechanism accounts for observations existing accounts leave open — e.g., which merge
failures are coordinate artefacts and which are functional), and **prediction** (the framework failures are coordinate artefacts and which are functional), and **prediction** (the framework
forecasts an unmeasured outcome and improves a design decision — e.g., an epistasis measure taken forecasts an unmeasured outcome and improves a design decision). This paper is strongest on the
*before* merging that beats geometry-based predictors of merge success). This paper is strongest on first, makes concrete progress on the second, and reports a first, bounded step on the third: a
the first, makes concrete progress on the second, and states the third as its open, decisive test — **controlled predictive test** at small scale in which pre-merge *functional-disagreement* measures —
proposed here with pre-registered falsifiers, not claimed as done. The organising shift we argue for chosen by the framework — showed a detectable, held-out-robust association with merge damage on a
constructed task grid, while the selected weight-geometry baselines did not. We are precise about
that result's boundary where it is reported: it is a small-model demonstration on a constructed grid;
the proposed epistasis-specific refinement did not outperform plain disagreement; predictor
differences are not individually significant head-to-head; and whether the prediction improves a
budget-matched operator choice remains open. The organising shift we argue for
is prior to any single mechanism: **treat multigenerational model populations as systems whose is prior to any single mechanism: **treat multigenerational model populations as systems whose
inheritance, diversity, and compatibility must be managed — not merely as collections of models to inheritance, diversity, and compatibility must be managed — not merely as collections of models to
optimise.** optimise.**
@ -470,9 +475,15 @@ cannot satisfy two contradictory answer conventions — is information-theoretic
genetics; what the genetic frame adds is *structure around it*: which divergences generate such genetics; what the genetic frame adds is *structure around it*: which divergences generate such
conflicts, the prediction that epistasis rather than distance sets the cliff's position, and the conflicts, the prediction that epistasis rather than distance sets the cliff's position, and the
snowball's super-linear onset — the latter two verified so far only in the analytic model, and snowball's super-linear onset — the latter two verified so far only in the analytic model, and
therefore carried as **hypotheses at the neural tier, not results**. Second, our alignment removes the therefore carried as **hypotheses at the neural tier, not results**. (On the snowball, one more
symmetries we enumerate for this architecture class; richer transformation families for other distinction: super-linear growth in the *number* of incompatibilities does not by itself entail a
architectures could reapportion removable vs residual, though not below the conflict floor. Third, sharp *performance* cliff — that needs the link from incompatibility count through effect sizes to
measured performance, which the analytic model supplies under its assumptions and any neural test
must establish separately.) Second, our alignment removes the symmetries we enumerate for this
architecture class, and exactly recovering a permuted-and-rescaled copy validates a special case
rather than proving global optimality for independently trained networks — so the removable share is
a lower bound and the residual an upper bound; richer transformation families for other architectures
could reapportion the split, though not below the conflict floor. Third,
"unmergeable" here means by aligned linear interpolation of weights — a barrier to that operator does "unmergeable" here means by aligned linear interpolation of weights — a barrier to that operator does
not preclude every conceivable recombination method (routing, for one, sidesteps it by not blending). not preclude every conceivable recombination method (routing, for one, sidesteps it by not blending).
Emergent DobzhanskyMuller incompatibilities in real weights remain the flagship *hypothesis* of this Emergent DobzhanskyMuller incompatibilities in real weights remain the flagship *hypothesis* of this
@ -770,7 +781,10 @@ falsifier, not yet established):
| Outbreeding depression on rugged landscapes; operator design rule | Exact-model result; hypothesis at LLM scale | NK epistasis stands in for skill entanglement | E9E10; directed selection rescues | Not yet mapped onto a real task-entanglement measure | | Outbreeding depression on rugged landscapes; operator design rule | Exact-model result; hypothesis at LLM scale | NK epistasis stands in for skill entanglement | E9E10; directed selection rescues | Not yet mapped onto a real task-entanglement measure |
| Optimal mate-pool breadth shrinks with ruggedness | Exact-model result; hypothesis for merging populations | Ring population, local selection | E14 | Phenomenon known to island-model evolutionary computation; our contribution is the mapping and the diversity/mean decomposition | | Optimal mate-pool breadth shrinks with ruggedness | Exact-model result; hypothesis for merging populations | Ring population, local selection | E14 | Phenomenon known to island-model evolutionary computation; our contribution is the mapping and the diversity/mean decomposition |
| Merge failure decomposes into coordinate artefact + functional residual | Empirical (MLP tier; LLM tier in progress) | Alignment enumerates the architecture's unit symmetries | Full-symmetry residual ≈ 0 (compatible) vs ≈ naive (conflict); cliff in hybrid fitness | Scoped to aligned linear interpolation; conflict floor is information-theoretic, not genetic | | Merge failure decomposes into coordinate artefact + functional residual | Empirical (MLP tier; LLM tier in progress) | Alignment enumerates the architecture's unit symmetries | Full-symmetry residual ≈ 0 (compatible) vs ≈ naive (conflict); cliff in hybrid fitness | Scoped to aligned linear interpolation; conflict floor is information-theoretic, not genetic |
| Epistasis (not divergence) sets the cliff; snowball onset | Exact-model result; **hypothesis** at the neural tier | BDM incompatibility structure | E12 | The decisive pre-merge prediction test is proposed, not run | | Epistasis (not divergence) sets the cliff; snowball onset | Exact-model result; **hypothesis** at the neural tier | BDM incompatibility structure | E12 | Snowball count ≠ performance cliff without the effect-size link; neural test outstanding |
| Pre-merge functional disagreement predicts merge penalty | Empirical, within a controlled grid (0.5B, 13 conditions × 3 seeds) | Constructed conflict/overlap/duration axes; oracle-potential outcome (pre-registered; ordering sensitive to reference) | Clustered CIs exclude 0; held-out LOCO ρ≈0.4; selected geometry baselines ≈ 0 | Head-to-head predictor differences not individually significant; only selected baselines; generalisation to real task pairs open |
| Confidence weighting improves rank prediction over raw disagreement | **Not supported** (pre-registered internal prediction) | — | Paired Δ\|ρ\| ≈ 0.02, CI [0.13, +0.06] | Weighting does double the conflict-vs-compat level contrast |
| The predictor improves budget-matched operator choice | **Open** | — | Soup-vs-route gap readout noise-dominated at 0.5B | The practical payoff; untested |
| Emergent speciation without conflict | **Not observed** (pre-registered) | Shared ancestry, compatible tasks, tested divergences | E13b: residual 0.000; merge rescues specialists | Bounds the hypothesis; longer horizons/distribution shift/capacity pressure untested | | Emergent speciation without conflict | **Not observed** (pre-registered) | Shared ancestry, compatible tasks, tested divergences | E13b: residual 0.000; merge rescues specialists | Bounds the hypothesis; longer horizons/distribution shift/capacity pressure untested |
| Grounding + sex + diversity jointly necessary | Exact-model result; hypothesis at LLM scale | Conformity stands in for self-consumption | E11 four-arm ablation, each arm failing distinctly | The full grounded LLM society is unbuilt | | Grounding + sex + diversity jointly necessary | Exact-model result; hypothesis at LLM scale | Conformity stands in for self-consumption | E11 four-arm ablation, each arm failing distinctly | The full grounded LLM society is unbuilt |

View file

@ -1,52 +1,86 @@
# The decisive experiment — predicting merge failure BEFORE merging # A controlled predictive test — pre-merge functional conflict and merge penalty
The external review's bar (2026-08-11): population-genetic quantities must *predict*, not *(Renamed from "the decisive experiment" after the second external review: this is a **small-model
re-describe — forecast merge success **pre-merge** and beat existing predictors. Design: 39 parent controlled predictive test**, not the decisive experiment delivered. The operator-choice component is
pairs (0.5B LoRA children of one frozen base, 3 seeds) on **three axes decorrelated by unfinished, the epistasis-specific refinement did not outperform plain disagreement, and
construction** — `conflict` (contradictory conventions on shared ambiguous prompts, private budgets generalisation beyond this constructed task grid is open.)*
fixed), `compat` (the control: **same shared prompts, same convention** — task overlap *without*
conflict; added after the first grid exposed a confound, see below), and `duration` (weight **Question.** Can merge failure be predicted **before merging**, and by what kind of measure? Design:
divergence with zero conflict, 1→12 epochs). Primary outcome (pre-registered): 39 rows = **13 conditions × 3 seeds** (0.5B LoRA children of one frozen base; parents are retrained
**merge penalty** = parent potential merged achieved (the hybrid-load analogue). Figure: per condition × seed but share task-data seeds across conditions within a seed, so rows are *not*
independent — all uncertainty below is condition-clustered). Three axes decorrelated by construction:
`conflict` (contradictory conventions on shared ambiguous prompts, private budgets fixed), `compat`
(same shared prompts, same convention — overlap and volume without conflict), `duration` (weight
divergence with zero conflict). Primary outcome (pre-registered): **merge penalty vs oracle parent
potential** (per-component best of the parents); also reported vs best-parent and mean-parent
references. All robust statistics reproduce via `figures/stats_llm_epistasis.py`; figure:
`llm_epistasis.png`. `llm_epistasis.png`.
### The league table (Spearman ρ vs merge penalty, full three-axis pool, n = 39) ### The predictors (measured pre-merge)
| pre-merge predictor | ρ | p | reading | - **Confidence-weighted functional conflict** (`epi_conf`) — *a proposed proxy for merge-relevant
interactions* (previously "operational epistasis"; renamed because bilateral confident
contradiction measures incompatible endpoint behaviour, not non-additive interaction effects in the
strict biological sense).
- **Raw functional disagreement** (`dis_raw`) — the unweighted rate.
- **Gradient alignment** at the shared base (the ML-literature predictor, cf. 2601.22285);
**LoRA-delta cosine / L2** (weight geometry, exact in r-space); **cross-family accuracy**
(performance baseline).
### The supported conclusion (stated conditionally)
> **Across this controlled task grid, pre-merge functional disagreement predicted merge penalties,
> whereas LoRA-delta cosine and L2 showed no statistically detectable association.** Gradient
> alignment carried intermediate signal, so the result is not a clean functional-versus-all-geometric
> divide, and only these selected baselines were tested.
| predictor | ρ (primary) | clustered 95% CI | held-out (LOCO) ρ |
|---|---|---|---| |---|---|---|---|
| raw functional disagreement (`dis_raw`) | **+0.460** | 0.003 | predicts | | raw functional disagreement | +0.460 | [+0.04, +0.69] | +0.396 (p=0.013) |
| operational epistasis (`epi_conf`, confidence-weighted) | **+0.446** | 0.004 | predicts | | confidence-weighted functional conflict | +0.446 | [+0.02, +0.68] | +0.352 (p=0.028) |
| gradient alignment at the base (cf. 2601.22285) | 0.347 | 0.03 | weakly informative | | gradient alignment | 0.347 | [0.59, 0.06] | +0.10 (n.s.) |
| LoRA-delta L2 distance (geometry) | +0.165 | 0.32 | uninformative | | delta L2 (geometry) | +0.165 | [0.27, +0.58] | 0.09 (n.s.) |
| LoRA-delta cosine (geometry) | +0.030 | 0.86 | uninformative | | delta cosine (geometry) | +0.030 | [0.46, +0.51] | 0.14 (n.s.) |
| cross-family accuracy (performance) | 0.005 | 0.98 | uninformative | | cross-family accuracy | 0.005 | [0.29, +0.31] | 0.435 (unstable out-of-sample) |
**Headline: functional conflict, measured before merging, predicts merge failure; weight geometry **Paired comparisons are not individually significant** at this sample size (e.g.
does not.** The duration axis spans the same weight-divergence range as the conflict axis |ρ(dis_raw)| |ρ(delta_cos)| = +0.23, CI [0.23, +0.59]): the honest statement is that the
(L2 ≈ 2.44.0) at ~zero penalty, and the compat axis adds the same *data volumes* and overlap at functional measures are *individually detectably informative* (CIs exclude zero; held-out
~zero penalty — so both geometric predictors collapse once overlap and volume are controlled. replication) while the geometry measures are *not distinguishable from zero* — not that functional
significantly beats geometry head-to-head.
### The control that did the work (`llm_epistasis_compat/`) ### What the decomposition shows (and its limits)
In the first grid (conflict + duration only), `delta_cos` scored ρ = +0.60 — apparently the best - **Between vs within.** Much of the pooled correlation is axis discrimination (mean penalty:
predictor. That was an **artifact**: every shared-data pair in that pool was a conflicted pair, so conflict 0.061 vs compat 0.005 / duration 0.011). Within the conflict axis (n=15) the functional
geometry could win as a mere task-overlap/volume detector. The `compat` axis (overlap without measures still track (+0.59/+0.62) — but so does delta-L2 (+0.71), because *within that axis*
conflict) exposes it: penalty ≈ 0.005 there, and the geometry correlations collapse (+0.60 → +0.03). conflict fraction, added-data volume, and delta growth are collinear: **within-axis identification
The functional measures behave correctly on the control — parents trained on the same convention is impossible by design; the identification comes from the control axes**, where the same volumes
*agree* on the shared prompts (epi_conf: 0.46 conflict vs 0.23 compat, a 2× contrast; raw and L2 ranges occur with ~zero penalty.
disagreement 0.72 vs 0.47, only 1.5× — the confidence weighting removes complementation noise from - **Outcome-reference sensitivity.** Under the *best-parent* reference the ordering changes
the *level*, giving the cleaner axis separation). (delta-L2 +0.48 vs functional +0.34): that reference inherits parent-strength trends that track
training volume — which geometry also tracks — coupling predictor and outcome through the
reference rather than through merge damage. We keep the pre-registered oracle-potential primary,
and report the sensitivity rather than hide it.
- **The compat control did the decisive work** — and it *first broke our own experiment*: in the
initial two-axis grid the best predictor was delta-cosine (ρ=+0.60), an overlap/volume artifact
that the control exposed (collapse to +0.03).
### Honest riders (pre-registered falsifier status) ### Chronology (adaptive, not wholly prospective)
1. The internal prediction that confidence weighting would beat raw disagreement **as a rank 1. Hypotheses, predictors, primary outcome, and falsifiers written into `configs/llm/epistasis.yaml`
predictor is not confirmed**: `epi_conf` and `dis_raw` are statistically indistinguishable at **before** the first grid ran (conflict + duration axes).
n = 39 (the weighting does improve the conflict-vs-compat *contrast* in levels). The paper reports 2. The first grid's geometry result prompted the `compat` control axis
the functional-vs-geometric verdict, not a win for the refinement. (`configs/llm/epistasis_compat.yaml`, pre-registered readings in its comments) — an **amendment
2. Correlations are moderate (|ρ| ≈ 0.45), bounded by 0.5B merge-outcome noise (soup merges carry after seeing data**, run on the same seeds; no conflict/duration rows were re-run or altered.
large intrinsic seed variance — see `llm_moe_hard_seeds`); read as signs and ordering, not 3. The clustered-bootstrap / LOCO / multi-reference analyses were added at the second review's
magnitudes. 7B replication is the natural firm-up. request, after all data was collected.
3. Gradient alignment carries real signal (it differentiates conflicting conventions at the base) but
less than the functional measures in this design.
**Bottom line for the paper:** the framework's claim — *epistasis (functional conflict), not ### Pre-registered internal prediction: NOT confirmed
divergence, sets merge compatibility* — survives its designed falsification test at this tier: the Confidence weighting was predicted to beat raw disagreement as a rank predictor. It does not (paired
operational conflict measures predict, the divergence measures do not, and the case was made honest Δ|ρ| = 0.02, CI [0.13, +0.06]). The weighting does double the conflict-vs-compat *level* contrast
by a control that first *broke our own experiment's* favourite-looking geometric predictor. (2.0× vs 1.5×), but the present evidence favours **functional disagreement generally, not the
DMI-specific refinement**. Accordingly: the population-genetic framework motivated the measurement
and the controls; their success does **not** validate the specifically population-genetic mechanism.
### Open (unchanged by this experiment)
Budget-matched operator choice (the soup-vs-route gap readout is noise-dominated at 0.5B);
generalisation to unfamiliar conflict structures and real task pairs; 7B replication; whether any
measured quantity deserves the name *epistasis* (non-additive interaction of combinations) rather
than *conflict*.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Before After
Before After

View file

@ -18,18 +18,22 @@ the single-seed run — decisive at 7B) and the **worst-family signature is unam
vs ≤0.16 for any parent — only recombined models are competent everywhere. vs ≤0.16 for any parent — only recombined models are competent everywhere.
### (B) Union vs fusion, hard benchmark, 3 seeds (`llm_moe_hard_seeds/`) ### (B) Union vs fusion, hard benchmark, 3 seeds (`llm_moe_hard_seeds/`)
Routing (union) 0.274 ± 0.026 overall / 0.238 ± 0.024 worst-family; fusion soup 0.174 ± 0.102 / 0.088 Routing (union) beats fusion **in every seed** (3/3 paired, both metrics; e.g. overall per seed:
± 0.093; ties similar; best specialist 0.199 ± 0.026. Union beats fusion on both metrics — **and a new routing 0.258/0.300/0.262 vs soup 0.212/0.238/0.071). The paired per-seed values also show *why*:
finding: fusion is seed-FRAGILE on hard tasks (CI ±0.10) while routing is seed-stable (±0.026).** seed 3's soup failed catastrophically (0.071 overall, 0.000 worst-family) while routing was unaffected
Averaging's outcome depends on which specialist minima the seeds happened to find; selection-based (0.262/0.225). Seed-level sd: soup 0.090 vs routing 0.023 — suggestive of a genuine variance
recombination is reliable. (Learned router still = oracle: lexically distinct families, known rider.) difference, but with 3 seeds this is an observation, not an estimate; the robust statement is the
3/3 paired ordering plus the observed catastrophic-failure mode that routing is structurally immune
to. (Learned router still = oracle: lexically distinct families, known rider.)
### (C) Directed offspring selection, hard, 3 seeds (`llm_directed_hard_seeds/`) ### (C) Directed offspring selection, hard, 3 seeds (`llm_directed_hard_seeds/`)
directed_overall 0.221 ± 0.026 (> soup 0.174 ± 0.102 and > best specialist); directed_balanced directed_overall beats the a-priori soup **in every seed** (3/3 paired; 0.225/0.242/0.196 vs
worst-family 0.158 ± 0.036 (> soup 0.088 ± 0.093). Directed selection both beats and **stabilises** 0.212/0.238/0.071 — including rescuing soup's catastrophic seed); directed_balanced worst-family
the a-priori soup; per-input routing (B) remains above any single global blend, as before. 0.158 vs soup 0.088. Directed selection both beats and stabilises the blend (same 3-seed caveat as
panel B); per-input routing remains above any single global blend, as before.
**Read together:** all three recombination claims hold under seed replication, and the operator **Read together:** all three recombination claims hold under seed replication with consistent paired
ordering (route > directed-select > soup, on headroom tasks) is not only a mean effect but a ordering (route > directed-select > soup in every seed on headroom tasks), and the per-seed values
*variance* effect — the union/selection operators are the reliable ones. Base: Qwen2.5-0.5B-Instruct; surface a failure mode — occasional catastrophic soup merges — that the union/selection operators
avoided in every observed case. Variance *estimates* await more seeds. Base: Qwen2.5-0.5B-Instruct;
statistical (per-seed) reproducibility per blueprint §4. statistical (per-seed) reproducibility per blueprint §4.

View file

@ -1,7 +1,7 @@
# Multi-seed union-vs-fusion, hard benchmark (0.5B, 3 seeds) # Multi-seed union-vs-fusion, hard benchmark (0.5B, 3 seeds)
Part of the multi-seed firm-up; full legend, table, and the fusion-fragility finding in Part of the multi-seed firm-up; full legend and per-seed table in `results/llm_merge_seeds/README.md`
`results/llm_merge_seeds/README.md` (panel B of its `llm_seeds.png`). Headline: union/routing (panel B of its `llm_seeds.png`). Headline: routing beats fusion in every seed (3/3 paired, both
0.274 ± 0.026 > fusion 0.174 ± 0.102 overall (worst-family 0.238 vs 0.088), and fusion's ±0.10 CI vs metrics), and one seed exhibited a catastrophic soup failure (0.071 overall / 0.000 worst-family) that
routing's ±0.026 is itself the finding — averaging is seed-fragile where headroom exists; routing is routing was immune to (0.262/0.225). With 3 seeds the variance contrast (sd 0.090 vs 0.023) is an
reliable. observation, not an estimate.

View file

@ -1,8 +1,10 @@
# LLM-tier model speciation — conflict provokes isolation; duration alone does not # 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 E13 carried into language-model weights (0.5B Qwen, LoRA children of one frozen base — the shared
its coordinate system with both children, so **there is no permutation/rescaling ambiguity by base **controls a major source of coordinate mismatch**, allowing a cleaner test of
construction: every merge failure here is functional**). Two knobs, pre-registered readings in the conflict-associated merge failure; averaging can still fail for non-conflict reasons — nonlinear
interaction, scaling, capacity — so failures here are *conflict-associated*, not automatically
functional). Two knobs, pre-registered readings in the
configs; figure `llm_speciation.png` (3 panels; panel B from `results/llm_speciation_add/`). 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 **Design.** Child A: private family `strings`; child B: private family `arith`; shared **ambiguous

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Before After
Before After

View file

@ -1,4 +1,4 @@
"""The decisive experiment: does an operational EPISTASIS measure predict merge success PRE-merge? """A controlled predictive test: does a pre-merge FUNCTIONAL-CONFLICT measure predict merge damage?
The external review's bar (2026-08-11): population-genetic quantities must *predict*, not re-describe — The external review's bar (2026-08-11): population-genetic quantities must *predict*, not re-describe —
forecast merge success **before merging**, and beat existing predictors. This module builds a grid of forecast merge success **before merging**, and beat existing predictors. This module builds a grid of
@ -11,7 +11,9 @@ The theory-derived predictor — and its built-in ablation. A raw functional-dis
two parents is, by our own theory, the WRONG measure: disjoint specialists disagree hugely (one knows, two parents is, by our own theory, the WRONG measure: disjoint specialists disagree hugely (one knows,
one is ignorant) yet merge perfectly harmless *complementation*. The DobzhanskyMuller analogue is one is ignorant) yet merge perfectly harmless *complementation*. The DobzhanskyMuller analogue is
**bilateral confident contradiction**: both parents confidently produce different answers to the same **bilateral confident contradiction**: both parents confidently produce different answers to the same
input. So the operational epistasis measure is confidence-weighted disagreement, input. So the framework-motivated measure is **confidence-weighted functional conflict** a proposed proxy
for merge-relevant interactions (bilateral confident contradiction measures incompatible endpoint
behaviour, not non-additive interaction effects in the strict biological sense):
epi_conf = E_probe[ conf_A · conf_B · 1(ans_A != ans_B) ], conf = exp(mean token logprob), epi_conf = E_probe[ conf_A · conf_B · 1(ans_A != ans_B) ], conf = exp(mean token logprob),

View file

@ -1,8 +1,11 @@
"""LLM-tier model speciation (E13 in language-model weights) — the conflict cliff + the duration null. """LLM-tier model speciation (E13 in language-model weights) — the conflict cliff + the duration null.
The real-LLM image of E13, with a structural bonus: LoRA deltas live in the frozen base's coordinate The real-LLM image of E13, with a structural advantage: LoRA deltas live in the frozen base's
system, so there is **no permutation/rescaling ambiguity by construction** any merge failure here is coordinate system, which controls a major source of coordinate mismatch (no alignment step needed) and
*functional* incompatibility, the residual isolated architecturally (no alignment step needed). so allows a cleaner test of conflict-associated merge failure. Note the honest boundary: a failure of
delta-averaging can still reflect nonlinear interaction, scaling, or capacity shared coordinates
remove the permutation explanation, they do not make every failure evidence of incompatible functional
requirements.
Two knobs, mirroring the MLP experiment: Two knobs, mirroring the MLP experiment: