From 287d2326cc6c9ccad6079a748010fea8975e1d74 Mon Sep 17 00:00:00 2001 From: Giorgio Gilestro Date: Sun, 6 Sep 2026 17:19:46 +0100 Subject: [PATCH] epistasis_predicts: functional conflict, not weight geometry, predicts merge failure pre-merge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The decisive experiment from the external review. 39 LoRA parent pairs (0.5B, 3 seeds) on three axes decorrelated by construction: conflict (contradictory conventions on shared prompts, private budgets fixed), compat (same prompts, SAME convention — overlap without conflict), and duration (weight divergence, zero conflict). Six pre-merge predictors; primary outcome = merge penalty (parent potential − merged achieved). League table (Spearman vs penalty, n=39): functional measures predict (dis_raw +0.460, epi_conf +0.446, p<0.005); geometry collapses (delta_cos +0.03, delta_l2 +0.17 n.s.); gradient alignment weak (−0.35); performance ~0. The first grid's apparent geometry win (+0.60) was an overlap/volume artifact — the compat control axis (added for exactly this) exposed and killed it: same overlap and data volume, zero penalty. Honest riders in the README: confidence weighting does not beat raw disagreement as a rank predictor (pre-registered internal prediction not confirmed; it does double the conflict/compat level contrast), and |rho|~0.45 is bounded by 0.5B merge-outcome noise (7B is the firm-up). Also: micro-batched gradient accumulation (OOM fix on the shared 16GB GPU), exact r-space LoRA-delta geometry (brute-force-verified test, 151 green), systemd-run runbook lesson (tmux dies with the SSH session scope on this box). Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01BkRLcc18rwT2Lysu6PbG7v --- configs/llm/epistasis.yaml | 43 +++ configs/llm/epistasis_compat.yaml | 29 ++ figures/plot_llm_epistasis.py | 87 ++++++ results/llm_epistasis/README.md | 52 ++++ results/llm_epistasis/llm_epistasis.pdf | Bin 0 -> 27295 bytes results/llm_epistasis/llm_epistasis.png | Bin 0 -> 181524 bytes results/llm_epistasis/manifest.json | 26 ++ results/llm_epistasis/resolved_config.yaml | 36 +++ results/llm_epistasis_compat/README.md | 8 + results/llm_epistasis_compat/manifest.json | 26 ++ .../llm_epistasis_compat/resolved_config.yaml | 30 +++ src/llm/epistasis.py | 251 ++++++++++++++++++ src/llm/experiment.py | 8 +- tasks/lessons.md | 6 + tasks/workorder-pnas-submission.md | 11 +- tests/test_llm.py | 12 + 16 files changed, 622 insertions(+), 3 deletions(-) create mode 100644 configs/llm/epistasis.yaml create mode 100644 configs/llm/epistasis_compat.yaml create mode 100644 figures/plot_llm_epistasis.py create mode 100644 results/llm_epistasis/README.md create mode 100644 results/llm_epistasis/llm_epistasis.pdf create mode 100644 results/llm_epistasis/llm_epistasis.png create mode 100644 results/llm_epistasis/manifest.json create mode 100644 results/llm_epistasis/resolved_config.yaml create mode 100644 results/llm_epistasis_compat/README.md create mode 100644 results/llm_epistasis_compat/manifest.json create mode 100644 results/llm_epistasis_compat/resolved_config.yaml create mode 100644 src/llm/epistasis.py diff --git a/configs/llm/epistasis.yaml b/configs/llm/epistasis.yaml new file mode 100644 index 0000000..4bb17a3 --- /dev/null +++ b/configs/llm/epistasis.yaml @@ -0,0 +1,43 @@ +experiment: llm_epistasis +kind: llm_epistasis +seed: 1 +seeds: [1, 2, 3] +n_replicates: 1 + +# THE DECISIVE EXPERIMENT (external review, 2026-08-11; PNAS work order Phase 3): do +# population-genetic quantities PREDICT merge success BEFORE merging, beyond existing predictors? +# +# Grid: functional conflict (conflict_fracs, add-design: private budget fixed, contradictory +# convention data added) and weight divergence (durations, zero conflict) are DECORRELATED BY +# CONSTRUCTION. Pre-merge predictors, none touching a merged model: +# epi_conf - operational epistasis: confidence-weighted bilateral disagreement on a broad probe +# mix (ambiguous + both private families, drawn blind to where conflict lives). OURS. +# dis_raw - raw disagreement rate (the internal ablation: our theory PREDICTS this mispredicts, +# because it counts harmless complementation - one parent ignorant - as conflict). +# grad_cos - gradient alignment at the shared base (the ML-literature predictor, cf. 2601.22285). +# delta_cos / delta_l2 - LoRA-delta weight geometry (computed exactly in r-space). +# cross_perf - performance-based predictor (cross-family accuracy). +# Outcome (PRIMARY, pre-registered): merge_penalty = parent_potential - merged_overall (the +# hybrid-load analogue: what the merge loses relative to what its parents could jointly deliver); +# secondary: merged_overall, and the soup-vs-route gap (route_private - merged_private). +# +# PRE-REGISTERED READINGS. Success for the framework: |Spearman rho(epi_conf, merge_penalty)| high, +# AND geometry/gradient predictors fail at matched divergence (their apparent correlation, if any, +# collapses within the conflict axis where divergence is near-constant), AND epi_conf > dis_raw +# (the confidence-weighting prediction). FALSIFIER: gradient/geometry/raw-disagreement match or beat +# epi_conf -> the "epistasis, not divergence, sets the cliff" claim stays analytic-only and the paper +# says so. Either outcome is reportable; do not tune toward one. + +base_model: Qwen/Qwen2.5-0.5B-Instruct +family_a: strings +family_b: arith +n_train: 400 +n_test: 80 +epochs: 3 +n_probe_each: 30 +grad_k: 32 +lora: {r: 16, alpha: 32} +conflict_fracs: [0.0, 0.25, 0.5, 0.75, 1.0] +durations: [1, 3, 6, 12] + +output: {dir: results/llm_epistasis} diff --git a/configs/llm/epistasis_compat.yaml b/configs/llm/epistasis_compat.yaml new file mode 100644 index 0000000..f0b4d22 --- /dev/null +++ b/configs/llm/epistasis_compat.yaml @@ -0,0 +1,29 @@ +experiment: llm_epistasis_compat +kind: llm_epistasis +seed: 1 +seeds: [1, 2, 3] +n_replicates: 1 + +# The missing CONTROL axis for the decisive experiment (identified from the first grid's results, +# 2026-08-11): in the original grid every shared-data pair was a CONFLICTED pair, so the delta-cosine +# geometry predictor could succeed as a mere task-OVERLAP detector (overlap coincided with conflict by +# construction). This sweep adds overlap WITHOUT conflict: both children train on the SAME ambiguous +# prompts with the SAME convention (asc/asc), private budgets fixed, at the same fractions as the +# conflict sweep. Pre-registered readings: if delta_cos stays high here while merge_penalty stays ~0, +# geometry was detecting overlap, not incompatibility, and its apparent predictive power collapses +# once compat pairs enter the pool; functional measures (epi_conf / dis_raw) should correctly stay LOW +# here (the parents AGREE on the shared prompts). If geometry still predicts across all three axes, the +# falsifier stands as stated in configs/llm/epistasis.yaml. + +base_model: Qwen/Qwen2.5-0.5B-Instruct +family_a: strings +family_b: arith +n_train: 400 +n_test: 80 +epochs: 3 +n_probe_each: 30 +grad_k: 32 +lora: {r: 16, alpha: 32} +compat_fracs: [0.25, 0.5, 0.75, 1.0] + +output: {dir: results/llm_epistasis_compat} diff --git a/figures/plot_llm_epistasis.py b/figures/plot_llm_epistasis.py new file mode 100644 index 0000000..f67fc99 --- /dev/null +++ b/figures/plot_llm_epistasis.py @@ -0,0 +1,87 @@ +"""The decisive-experiment figure — does pre-merge epistasis predict merge failure? + +(A) The theory's predictor: operational epistasis (confidence-weighted bilateral disagreement, +measured before merging) against the merge penalty (parent potential − merged achieved, the +hybrid-load analogue). Conflict-axis pairs in red, duration-axis pairs in blue. + +(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 +the conflict axis generates penalty at modest divergence. Distance is not what breaks merging. + +(C) The league table: |Spearman rho| against the merge penalty for every pre-merge predictor, +including the internal ablation (raw disagreement, which the theory predicts must mislead because it +counts harmless complementation as conflict). + +Usage: python figures/plot_llm_epistasis.py +""" + +from __future__ import annotations + +import sys +from pathlib import Path + +import matplotlib.pyplot as plt +import numpy as np +from scipy.stats import spearmanr + +sys.path.insert(0, str(Path(__file__).parent)) +from _figlib import load_bundle, savefig # noqa: E402 + +PREDICTORS = [("epi_conf", "operational\nepistasis"), + ("dis_raw", "raw\ndisagreement"), + ("grad_cos", "gradient\nalignment"), + ("delta_cos", "delta\ncosine"), + ("delta_l2", "delta\nL2"), + ("cross_perf", "cross-family\naccuracy")] +OUTCOME = "merge_penalty" + + +def _scatter(ax, df, xcol, xlabel, title): + for mode, color, marker in (("conflict", "#d62728", "o"), ("duration", "#2c7fb8", "s"), + ("compat", "#41ab5d", "^")): + sub = df[df["mode"] == mode] + ax.scatter(sub[xcol], sub[OUTCOME], c=color, marker=marker, s=42, alpha=0.75, + label=f"{mode} axis") + rho, p = spearmanr(df[xcol], df[OUTCOME]) + ax.set(xlabel=xlabel, ylabel="merge penalty (parent potential − merged)", + title=f"{title}\nSpearman ρ = {rho:.2f} (p = {p:.1g}, n = {len(df)})") + ax.axhline(0, color="#999", lw=0.6) + ax.legend(frameon=False, fontsize=8) + + +def main() -> None: + import pandas as pd + df, _ = load_bundle("results/llm_epistasis") + try: # the overlap-without-conflict control axis + compat, _ = load_bundle("results/llm_epistasis_compat") + df = pd.concat([df, compat], ignore_index=True) + except Exception: + pass + + fig, axes = plt.subplots(1, 3, figsize=(16.5, 4.9)) + _scatter(axes[0], df, "epi_conf", "operational epistasis (pre-merge)", + "(A) the theory's predictor") + _scatter(axes[1], df, "delta_cos", "LoRA-delta cosine similarity (pre-merge)", + "(B) the geometry predictor — does it detect\nincompatibility, or just task overlap?") + + ax = axes[2] + rhos, labels = [], [] + for col, label in PREDICTORS: + rho, _ = spearmanr(df[col], df[OUTCOME]) + rhos.append(abs(rho)); labels.append(label) + colors = ["#d62728" if c == "epi_conf" else ("#fc9272" if c == "dis_raw" else "#9ecae1") + for c, _ in PREDICTORS] + x = np.arange(len(rhos)) + ax.bar(x, rhos, 0.62, color=colors) + ax.set_xticks(x); ax.set_xticklabels(labels, fontsize=7) + ax.set(ylabel="|Spearman ρ| vs merge penalty", ylim=(0, 1), + title="(C) predictor league table (pre-merge only)") + + fig.suptitle("Predicting merge failure BEFORE merging: functional conflict, not weight divergence " + "(conflict, overlap-without-conflict, and divergence decorrelated by construction; 3 seeds)", y=1.03, fontsize=12) + fig.tight_layout() + savefig(fig, "results/llm_epistasis", "llm_epistasis") + + +if __name__ == "__main__": + main() diff --git a/results/llm_epistasis/README.md b/results/llm_epistasis/README.md new file mode 100644 index 0000000..09b21fd --- /dev/null +++ b/results/llm_epistasis/README.md @@ -0,0 +1,52 @@ +# The decisive experiment — predicting merge failure BEFORE merging + +The external review's bar (2026-08-11): population-genetic quantities must *predict*, not +re-describe — forecast merge success **pre-merge** and beat existing predictors. Design: 39 parent +pairs (0.5B LoRA children of one frozen base, 3 seeds) on **three axes decorrelated by +construction** — `conflict` (contradictory conventions on shared ambiguous prompts, private budgets +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 +divergence with zero conflict, 1→12 epochs). Primary outcome (pre-registered): +**merge penalty** = parent potential − merged achieved (the hybrid-load analogue). Figure: +`llm_epistasis.png`. + +### The league table (Spearman ρ vs merge penalty, full three-axis pool, n = 39) +| pre-merge predictor | ρ | p | reading | +|---|---|---|---| +| raw functional disagreement (`dis_raw`) | **+0.460** | 0.003 | predicts | +| operational epistasis (`epi_conf`, confidence-weighted) | **+0.446** | 0.004 | predicts | +| gradient alignment at the base (cf. 2601.22285) | −0.347 | 0.03 | weakly informative | +| LoRA-delta L2 distance (geometry) | +0.165 | 0.32 | uninformative | +| LoRA-delta cosine (geometry) | +0.030 | 0.86 | uninformative | +| cross-family accuracy (performance) | −0.005 | 0.98 | uninformative | + +**Headline: functional conflict, measured before merging, predicts merge failure; weight geometry +does not.** The duration axis spans the same weight-divergence range as the conflict axis +(L2 ≈ 2.4–4.0) at ~zero penalty, and the compat axis adds the same *data volumes* and overlap at +~zero penalty — so both geometric predictors collapse once overlap and volume are controlled. + +### The control that did the work (`llm_epistasis_compat/`) +In the first grid (conflict + duration only), `delta_cos` scored ρ = +0.60 — apparently the best +predictor. That was an **artifact**: every shared-data pair in that pool was a conflicted pair, so +geometry could win as a mere task-overlap/volume detector. The `compat` axis (overlap without +conflict) exposes it: penalty ≈ 0.005 there, and the geometry correlations collapse (+0.60 → +0.03). +The functional measures behave correctly on the control — parents trained on the same convention +*agree* on the shared prompts (epi_conf: 0.46 conflict vs 0.23 compat, a 2× contrast; raw +disagreement 0.72 vs 0.47, only 1.5× — the confidence weighting removes complementation noise from +the *level*, giving the cleaner axis separation). + +### Honest riders (pre-registered falsifier status) +1. The internal prediction that confidence weighting would beat raw disagreement **as a rank + predictor is not confirmed**: `epi_conf` and `dis_raw` are statistically indistinguishable at + n = 39 (the weighting does improve the conflict-vs-compat *contrast* in levels). The paper reports + the functional-vs-geometric verdict, not a win for the refinement. +2. Correlations are moderate (|ρ| ≈ 0.45), bounded by 0.5B merge-outcome noise (soup merges carry + large intrinsic seed variance — see `llm_moe_hard_seeds`); read as signs and ordering, not + magnitudes. 7B replication is the natural firm-up. +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 +divergence, sets merge compatibility* — survives its designed falsification test at this tier: the +operational conflict measures predict, the divergence measures do not, and the case was made honest +by a control that first *broke our own experiment's* favourite-looking geometric predictor. diff --git a/results/llm_epistasis/llm_epistasis.pdf b/results/llm_epistasis/llm_epistasis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c2bc509ca02ff50b9470df89a5165d06dd61b76c GIT binary patch literal 27295 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 literal 0 HcmV?d00001 diff --git a/results/llm_epistasis/llm_epistasis.png b/results/llm_epistasis/llm_epistasis.png new file mode 100644 index 0000000000000000000000000000000000000000..a03b387520d1a6b860f37a466f3b7105e09df093 GIT binary patch literal 181524 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 literal 0 HcmV?d00001 diff --git a/results/llm_epistasis/manifest.json b/results/llm_epistasis/manifest.json new file mode 100644 index 0000000..578b468 --- /dev/null +++ b/results/llm_epistasis/manifest.json @@ -0,0 +1,26 @@ +{ + "experiment": "llm_epistasis", + "master_seed": 1, + "git_commit": "5a23ddaf2a906a14d9aeb2797cf8fef821a519f4", + "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", + "transformers": "5.13.0", + "peft": "0.19.1" + }, + "rows": 27, + "results_sha256": "2895adb3347c4550fa1bc052a32e86aa17f4891f1163a80ea118618a911e4bd5", + "layer": "2", + "tier": "llm", + "base_model": "Qwen/Qwen2.5-0.5B-Instruct", + "hard": false, + "seeds": [ + 1, + 2, + 3 + ] +} \ No newline at end of file diff --git a/results/llm_epistasis/resolved_config.yaml b/results/llm_epistasis/resolved_config.yaml new file mode 100644 index 0000000..94226af --- /dev/null +++ b/results/llm_epistasis/resolved_config.yaml @@ -0,0 +1,36 @@ +experiment: llm_epistasis +seed: 1 +n_replicates: 1 +source_config: + experiment: llm_epistasis + kind: llm_epistasis + seed: 1 + seeds: + - 1 + - 2 + - 3 + n_replicates: 1 + base_model: Qwen/Qwen2.5-0.5B-Instruct + family_a: strings + family_b: arith + n_train: 400 + n_test: 80 + epochs: 3 + n_probe_each: 30 + grad_k: 32 + lora: + r: 16 + alpha: 32 + conflict_fracs: + - 0.0 + - 0.25 + - 0.5 + - 0.75 + - 1.0 + durations: + - 1 + - 3 + - 6 + - 12 + output: + dir: results/llm_epistasis diff --git a/results/llm_epistasis_compat/README.md b/results/llm_epistasis_compat/README.md new file mode 100644 index 0000000..de977c1 --- /dev/null +++ b/results/llm_epistasis_compat/README.md @@ -0,0 +1,8 @@ +# The overlap-without-conflict control axis + +Companion to `results/llm_epistasis/` (full analysis and league table there). Both children train on +the SAME ambiguous prompts with the SAME convention (asc/asc) — task overlap and added-data volume +identical to the conflict axis, with zero conflict. Result: merge penalty ≈ 0.005, geometry +predictors' apparent power collapses (delta_cos ρ +0.60 → +0.03 once these pairs enter the pool), +functional measures correctly stay low. The control that separated "detects incompatibility" from +"detects overlap". diff --git a/results/llm_epistasis_compat/manifest.json b/results/llm_epistasis_compat/manifest.json new file mode 100644 index 0000000..75bdc48 --- /dev/null +++ b/results/llm_epistasis_compat/manifest.json @@ -0,0 +1,26 @@ +{ + "experiment": "llm_epistasis_compat", + "master_seed": 1, + "git_commit": "5a23ddaf2a906a14d9aeb2797cf8fef821a519f4", + "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", + "transformers": "5.13.0", + "peft": "0.19.1" + }, + "rows": 12, + "results_sha256": "e2091aebfdfdeaa1d44c3ca8b9a60d2dfd13bfe546d811f19ce8eb1ccfc14e7b", + "layer": "2", + "tier": "llm", + "base_model": "Qwen/Qwen2.5-0.5B-Instruct", + "hard": false, + "seeds": [ + 1, + 2, + 3 + ] +} \ No newline at end of file diff --git a/results/llm_epistasis_compat/resolved_config.yaml b/results/llm_epistasis_compat/resolved_config.yaml new file mode 100644 index 0000000..7e16c4f --- /dev/null +++ b/results/llm_epistasis_compat/resolved_config.yaml @@ -0,0 +1,30 @@ +experiment: llm_epistasis_compat +seed: 1 +n_replicates: 1 +source_config: + experiment: llm_epistasis_compat + kind: llm_epistasis + seed: 1 + seeds: + - 1 + - 2 + - 3 + n_replicates: 1 + base_model: Qwen/Qwen2.5-0.5B-Instruct + family_a: strings + family_b: arith + n_train: 400 + n_test: 80 + epochs: 3 + n_probe_each: 30 + grad_k: 32 + lora: + r: 16 + alpha: 32 + compat_fracs: + - 0.25 + - 0.5 + - 0.75 + - 1.0 + output: + dir: results/llm_epistasis_compat diff --git a/src/llm/epistasis.py b/src/llm/epistasis.py new file mode 100644 index 0000000..d48d2f2 --- /dev/null +++ b/src/llm/epistasis.py @@ -0,0 +1,251 @@ +"""The decisive experiment: does an operational EPISTASIS measure predict merge success PRE-merge? + +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 +parent pairs in which functional conflict and weight divergence are **decorrelated by construction** +(the conflict knob adds contradictory-convention data at fixed private budget; the duration knob grows +divergence with zero conflict), computes a battery of **pre-merge predictors**, then merges and +measures the outcome. + +The theory-derived predictor — and its built-in ablation. A raw functional-disagreement rate between +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 Dobzhansky–Muller analogue is +**bilateral confident contradiction**: both parents confidently produce different answers to the same +input. So the operational epistasis measure is confidence-weighted disagreement, + + epi_conf = E_probe[ conf_A · conf_B · 1(ans_A != ans_B) ], conf = exp(mean token logprob), + +and the theory makes an internal, falsifiable prediction: ``epi_conf`` should predict merge failure +where raw disagreement (``dis_raw``) mispredicts. Baseline predictors from the ML literature: +**gradient alignment** at the shared base (cf. arXiv:2601.22285), **LoRA-delta geometry** (cosine and +L2 distance, computed exactly in r×r space), and a **performance-based** predictor (cross-family +accuracy). Primary outcome (pre-registered): ``merge_penalty`` = parent-potential − merged-achieved, +the hybrid-load analogue. Pre-registered falsifier: if gradient/geometry predictors match or beat +``epi_conf``, the paper's "epistasis, not divergence, sets the cliff" claim stays analytic-only. +""" + +from __future__ import annotations + +from pathlib import Path + +import numpy as np +import pandas as pd + +from .evaluate import generate, load_model +from .merge import load_specialists, make_merge +from .specialise import _encode, train_lora_on_tasks +from .speciation import make_convention_tasks +from .tasks import _normalise, make_tasks, verify + + +# ---------------------------------------------------------------- pre-merge predictors + +def generate_with_confidence(model, tok, prompts, max_new_tokens=24, batch_size=32, device="cuda"): + """Greedy batched generation returning (answers, confidences). + + Confidence = exp(mean logprob of the generated tokens up to the first EOS) — a per-answer + self-certainty in [0, 1], measurable without any ground truth. + """ + import torch + + outs, confs = [], [] + for i in range(0, len(prompts), batch_size): + chunk = prompts[i:i + batch_size] + msgs = [[{"role": "user", "content": p}] for p in chunk] + enc = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt", + return_dict=True, padding=True).to(device) + with torch.no_grad(): + gen = model.generate(**enc, max_new_tokens=max_new_tokens, do_sample=False, + pad_token_id=tok.pad_token_id, output_scores=True, + return_dict_in_generate=True) + L = enc["input_ids"].shape[1] + seq = gen.sequences + for j in range(len(chunk)): + toks = seq[j, L:] + lps = [] + for t, tid in enumerate(toks): + if int(tid) in (tok.eos_token_id, tok.pad_token_id): + break + logp = torch.log_softmax(gen.scores[t][j].float(), dim=-1)[int(tid)] + lps.append(float(logp)) + outs.append(tok.decode(toks, skip_special_tokens=True).strip()) + confs.append(float(np.exp(np.mean(lps))) if lps else 0.0) + return outs, np.array(confs) + + +def lora_delta_inner(A1, B1, A2, B2) -> float: + """Frobenius inner product computed in r×r space (never materialises the deltas).""" + import torch + return float(torch.trace((B1.T @ B2) @ (A2 @ A1.T))) + + +def delta_geometry(dir_a: str, dir_b: str) -> dict: + """Cosine similarity and L2 distance between two LoRA adapters' weight deltas (CPU, exact).""" + import torch + from safetensors.torch import load_file + + def pairs(d): + sd = load_file(str(Path(d) / "adapter_model.safetensors")) + mods = {} + for k, v in sd.items(): + if "lora_A" in k: + mods.setdefault(k.replace("lora_A", "@"), {})["A"] = v.float() + elif "lora_B" in k: + mods.setdefault(k.replace("lora_B", "@"), {})["B"] = v.float() + return mods + + ma, mb = pairs(dir_a), pairs(dir_b) + keys = sorted(set(ma) & set(mb)) + i12 = sum(lora_delta_inner(ma[k]["A"], ma[k]["B"], mb[k]["A"], mb[k]["B"]) for k in keys) + i11 = sum(lora_delta_inner(ma[k]["A"], ma[k]["B"], ma[k]["A"], ma[k]["B"]) for k in keys) + i22 = sum(lora_delta_inner(mb[k]["A"], mb[k]["B"], mb[k]["A"], mb[k]["B"]) for k in keys) + n1, n2 = np.sqrt(max(i11, 1e-12)), np.sqrt(max(i22, 1e-12)) + return {"delta_cos": i12 / (n1 * n2), "delta_l2": float(np.sqrt(max(i11 + i22 - 2 * i12, 0.0)))} + + +def gradient_alignment(base_name: str, tasks_a: list, tasks_b: list, k: int = 32, + device: str = "cuda", seed: int = 0) -> float: + """Cosine between the two tasks' SFT gradients at the SHARED BASE (no adapters) — the + gradient-alignment predictor of the ML literature, computed on ``k`` examples per side.""" + import torch + from transformers import AutoModelForCausalLM, AutoTokenizer + + torch.cuda.empty_cache() # release the eval models' cache first + tok = AutoTokenizer.from_pretrained(base_name) + if tok.pad_token_id is None: + tok.pad_token = tok.eos_token + model = AutoModelForCausalLM.from_pretrained(base_name, dtype=torch.bfloat16).to(device) + targets = [p for n, p in model.named_parameters() + if any(t in n for t in ("q_proj", "k_proj", "v_proj", "o_proj", + "gate_proj", "up_proj", "down_proj"))] + rng = np.random.default_rng(seed) + + def grad_vec(tasks, micro=4): + # Micro-batched gradient accumulation: identical total gradient (losses weighted to a mean + # over the k examples), 1/8 the activation memory of one big backward — OOM-safe on a shared + # 16 GB GPU. + model.zero_grad(set_to_none=True) + sel = [tasks[i] for i in rng.choice(len(tasks), size=min(k, len(tasks)), replace=False)] + for s in range(0, len(sel), micro): + enc = [_encode(tok, t, device) for t in sel[s:s + micro]] + L = max(len(ids) for ids, _ in enc) + ii = torch.full((len(enc), L), tok.pad_token_id, dtype=torch.long) + ll = torch.full((len(enc), L), -100, dtype=torch.long) + am = torch.zeros((len(enc), L), dtype=torch.long) + for b, (ids, lab) in enumerate(enc): + ii[b, :len(ids)] = torch.tensor(ids); ll[b, :len(lab)] = torch.tensor(lab) + am[b, :len(ids)] = 1 + out = model(input_ids=ii.to(device), attention_mask=am.to(device), labels=ll.to(device)) + (out.loss * (len(enc) / len(sel))).backward() + return torch.cat([p.grad.detach().float().flatten().cpu() for p in targets]) + + ga, gb = grad_vec(tasks_a), grad_vec(tasks_b) + cos = float((ga @ gb) / (ga.norm() * gb.norm() + 1e-12)) + del model + torch.cuda.empty_cache() + return cos + + +# ---------------------------------------------------------------- the experiment + +def run_epistasis_experiment(cfg: dict) -> pd.DataFrame: + """Grid of parent pairs (conflict × duration axes) → pre-merge predictors + merged outcomes.""" + import torch + + name = cfg["experiment"] + base = cfg["base_model"] + fam_a, fam_b = cfg.get("family_a", "strings"), cfg.get("family_b", "arith") + n_train, n_test = int(cfg.get("n_train", 400)), int(cfg.get("n_test", 80)) + epochs = int(cfg.get("epochs", 3)) + n_probe = int(cfg.get("n_probe_each", 30)) + grad_k = int(cfg.get("grad_k", 32)) + lora = cfg.get("lora", {}) + r, alpha = int(lora.get("r", 16)), int(lora.get("alpha", 32)) + seed = int(cfg["seed"]) + root = Path(cfg.get("adapters_dir", "models/llm")) / "epistasis" + + # Fixed evaluation + probe sets (identical across the grid and across seeds). + test_a = make_tasks(fam_a, n_test, seed=1000) + test_b = make_tasks(fam_b, n_test, seed=1001) + amb_asc = make_convention_tasks(n_test, seed=5000, convention="asc") + amb_desc = make_convention_tasks(n_test, seed=5000, convention="desc") + # Probes: a broad mix drawn WITHOUT knowledge of where the conflict lives (ambiguous + both + # private families), so the disagreement measures are not handed the answer. + probe_prompts = ([t.prompt for t in make_convention_tasks(n_probe, seed=7000, convention="asc")] + + [t.prompt for t in make_tasks(fam_a, n_probe, seed=7001)] + + [t.prompt for t in make_tasks(fam_b, n_probe, seed=7002)]) + + def acc(model, tok, tasks): + outs = generate(model, tok, [t.prompt for t in tasks]) + return float(np.mean([verify(o, t) for o, t in zip(outs, tasks)])) + + grid = ([("conflict", float(f)) for f in cfg.get("conflict_fracs", [])] + + [("compat", float(f)) for f in cfg.get("compat_fracs", [])] + + [("duration", int(d)) for d in cfg.get("durations", [])]) + + rows: list[dict] = [] + for mode, x in grid: + if mode in ("conflict", "compat"): # add-design: private budget fixed + # "compat" is the control that separates functional from geometric predictors: the SAME + # shared ambiguous prompts, but BOTH children learn the SAME convention — task overlap + # (which inflates delta similarity) without any conflict. A geometry predictor that is + # really an overlap detector mispredicts here; a functional-conflict measure does not. + conv_b = "desc" if mode == "conflict" else "asc" + n_conv = int(round(x * n_train)) + tasks_a = (make_tasks(fam_a, n_train, seed=seed) + + make_convention_tasks(n_conv, seed=seed + 50, convention="asc")) + tasks_b = (make_tasks(fam_b, n_train, seed=seed + 1) + + make_convention_tasks(n_conv, seed=seed + 50, convention=conv_b)) + ep = epochs + else: # duration: pure private, epochs swept + tasks_a = make_tasks(fam_a, n_train, seed=seed) + tasks_b = make_tasks(fam_b, n_train, seed=seed + 1) + ep = int(x) + da = train_lora_on_tasks(base, tasks_a, str(root / "a"), epochs=ep, r=r, alpha=alpha, + seed=seed) + db = train_lora_on_tasks(base, tasks_b, str(root / "b"), epochs=ep, r=r, alpha=alpha, + seed=seed) + + # --- pre-merge: per-parent probe answers/confidences + parent outcomes ------------------ + par = {} + for d, label in ((da, "a"), (db, "b")): + m, tok = load_model(base, adapter_dir=d) + ans, conf = generate_with_confidence(m, tok, probe_prompts) + par[label] = { + "ans": [_normalise(o) for o in ans], "conf": conf, + "fam_a": acc(m, tok, test_a), "fam_b": acc(m, tok, test_b), + "coh": max(acc(m, tok, amb_asc), acc(m, tok, amb_desc)), + } + del m; torch.cuda.empty_cache() + neq = np.array([a != b for a, b in zip(par["a"]["ans"], par["b"]["ans"])], dtype=float) + dis_raw = float(neq.mean()) + epi_conf = float(np.mean(par["a"]["conf"] * par["b"]["conf"] * neq)) + geo = delta_geometry(da, db) + grad_cos = gradient_alignment(base, tasks_a, tasks_b, k=grad_k, seed=seed) + cross_perf = float(np.mean([par["a"]["fam_b"], par["b"]["fam_a"]])) + + # --- merge and measure ------------------------------------------------------------------- + model, tok = load_specialists(base, [da, db]) + make_merge(model, 2, "soup", "soup") + mo = {"fam_a": acc(model, tok, test_a), "fam_b": acc(model, tok, test_b), + "coh": max(acc(model, tok, amb_asc), acc(model, tok, amb_desc))} + del model; torch.cuda.empty_cache() + + potential = float(np.mean([par["a"]["fam_a"], par["b"]["fam_b"], + max(par["a"]["coh"], par["b"]["coh"])])) + achieved = float(np.mean([mo["fam_a"], mo["fam_b"], mo["coh"]])) + rows.append({ + "experiment": name, "mode": mode, "x": float(x), + "epi_conf": epi_conf, "dis_raw": dis_raw, "grad_cos": grad_cos, + "delta_cos": geo["delta_cos"], "delta_l2": geo["delta_l2"], "cross_perf": cross_perf, + "merge_fam_a": mo["fam_a"], "merge_fam_b": mo["fam_b"], "merge_coh": mo["coh"], + "merged_private": float(np.mean([mo["fam_a"], mo["fam_b"]])), + "merged_overall": achieved, + "parent_potential": potential, + "merge_penalty": potential - achieved, + "route_private": float(np.mean([par["a"]["fam_a"], par["b"]["fam_b"]])), + "pa_fam_a": par["a"]["fam_a"], "pa_fam_b": par["a"]["fam_b"], + "pb_fam_a": par["b"]["fam_a"], "pb_fam_b": par["b"]["fam_b"], + "pa_coh": par["a"]["coh"], "pb_coh": par["b"]["coh"], + }) + return pd.DataFrame(rows) diff --git a/src/llm/experiment.py b/src/llm/experiment.py index 4cdb8b6..23f97db 100644 --- a/src/llm/experiment.py +++ b/src/llm/experiment.py @@ -263,8 +263,14 @@ def run_speciation_dispatch(cfg: dict) -> pd.DataFrame: return run_speciation_experiment(cfg) +def run_epistasis_dispatch(cfg: dict) -> pd.DataFrame: + from .epistasis import run_epistasis_experiment # local import: torch-heavy + return run_epistasis_experiment(cfg) + + _RUNNERS = {"llm_merge": run_merge_experiment, "llm_moe": run_moe_experiment, - "llm_directed": run_directed_experiment, "llm_speciation": run_speciation_dispatch} + "llm_directed": run_directed_experiment, "llm_speciation": run_speciation_dispatch, + "llm_epistasis": run_epistasis_dispatch} def run_and_save(config_path: str | Path) -> Path: diff --git a/tasks/lessons.md b/tasks/lessons.md index 0379f28..c9eb709 100644 --- a/tasks/lessons.md +++ b/tasks/lessons.md @@ -13,3 +13,9 @@ is about (output-mean vs weight-average vs max-with-oracle vs routing are differ different budgets); (4) don't write "nobody has / none imports" — invite no priority disputes; say "to our knowledge" and state the positive contribution; (5) negative results (E13b) are strengths — lead with them; (6) "control theory" needs states/controls/dynamics/rule or it's a "framework". + +**2026-08-11 — tmux does NOT survive SSH disconnects on this machine.** The tmux server starts inside +the SSH session's systemd scope and gets reaped on logout (lost ~20 min of the epistasis grid; GG: +"SSH disconnected"). Reliable pattern here: `systemd-run --user --collect --unit= +--working-directory="$PWD" bash -c ''` — lands in user@.service (kept alive by the desktop +session), survives disconnects; check with `systemctl --user is-active `, logs via redirect. diff --git a/tasks/workorder-pnas-submission.md b/tasks/workorder-pnas-submission.md index eba8f3c..1c1cf98 100644 --- a/tasks/workorder-pnas-submission.md +++ b/tasks/workorder-pnas-submission.md @@ -111,8 +111,15 @@ re-run md2tex + tectonic at that point) - 0.5B: seeds 1–5 × {merge, moe, directed} × {easy, hard}. 7B on CX3: seeds 1–3 × hard {merge, moe, directed} (8–25 min walltimes → trivial). Aggregate figures with 95% CI; update READMEs; the headroom law now carries error bars. -- [ ] **`epistasis_predicts` — the DECISIVE experiment (from the external review, 2026-08-11; highest - priority after llm_speciation lands).** The review's exact bar: population-genetic quantities must +- [x] **`epistasis_predicts` — the DECISIVE experiment — DONE (2026-08-11, 0.5B, 39 pairs, 3 seeds).** + *Verdict: functional conflict measured pre-merge PREDICTS merge failure (dis_raw rho=+0.46, + epi_conf +0.45, both p<0.005); weight geometry does NOT (delta_cos +0.03, delta_l2 +0.17 n.s.); + gradient alignment weakly informative (-0.35). The first grid's apparent geometry win (+0.60) was an + overlap artifact, exposed and killed by the added `compat` control axis (same overlap+volume, no + conflict, zero penalty). Honest rider: confidence weighting did NOT beat raw disagreement as a rank + predictor (internal prediction not confirmed; it does give a 2x vs 1.5x conflict/compat contrast in + levels). |rho|~0.45 bounded by 0.5B merge noise — 7B replication is the firm-up. + results/llm_epistasis{,_compat}/ + figure.* The review's exact bar: population-genetic quantities must *predict* (not re-describe) — forecast merge success **before merging**, and beat existing predictors. Design, reusing the llm_speciation machinery: 1. Parents with independently controlled interaction structure: sweep `conflict_frac` (ground-truth diff --git a/tests/test_llm.py b/tests/test_llm.py index e6dce39..be380d9 100644 --- a/tests/test_llm.py +++ b/tests/test_llm.py @@ -126,3 +126,15 @@ def test_convention_tasks_conflict_only_between_conventions(): # deterministic: prompts and answers are a pure function of (seed, convention) again = make_convention_tasks(20, seed=5, convention="asc") assert [t.answer for t in again] == [t.answer for t in asc] + + +def test_lora_delta_inner_matches_brute_force(): + # The r-space Frobenius inner product must equal the materialised computation. + import torch + from llm.epistasis import lora_delta_inner + + g = torch.Generator().manual_seed(0) + A1, B1 = torch.randn(4, 20, generator=g), torch.randn(12, 4, generator=g) + A2, B2 = torch.randn(4, 20, generator=g), torch.randn(12, 4, generator=g) + brute = float(((B1 @ A1) * (B2 @ A2)).sum()) + assert abs(lora_delta_inner(A1, B1, A2, B2) - brute) < 1e-3