From 39f6c9f4df211f94d4ad3b88c246e1656311d330 Mon Sep 17 00:00:00 2001 From: Giorgio Gilestro Date: Sun, 5 Jul 2026 19:13:26 +0100 Subject: [PATCH] hard benchmark: the 7B "fusion wins / no headroom" results were saturation artefacts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The easy task families saturated 7B (strings & arith at 1.00), so the earlier 7B nulls — moe: fusion 0.87 > union 0.84; directed ~= soup — could not separate "refinements don't help at scale" from "tasks too easy at 7B". Adds a hard task variant (hard: true in tasks.py: multi-step lists, Caesar ciphers / letter transforms, multi-step & larger arithmetic; same family labels and answer formats, threaded through make_tasks/train_specialist/runners; hard specialists cache separately as spec_*_hard) and re-runs both experiments at 7B on Imperial CX3 (one L40S, 24 min, unsaturated: arith ~0.48, strings 0.67, lists 0.34). Both nulls flip back to the 0.5B ordering: - Union beats fusion again: routing 0.500 > fusion 0.40 (soup 0.392 / ties 0.400), the same 10-pt margin as 0.5B. Fusion dilutes the fragile strings specialist so hard (0.665 -> soup 0.300) that soup even trails the best single specialist (0.425); routing keeps it intact (0.670). - Directed selection beats soup again: 0.492 > 0.392 (+10 pts), recovering most of routing's benefit from one deployable merged model (lifts strings to 0.630). Correction to the earlier interpretation: the llm_moe_hpc "regime flip" and the llm_directed_hpc "no headroom" null were driven by TASK SATURATION, not base capability. The operative variable is headroom — "merge, don't average" (union > fusion) and "directed sex" (selection > single blend) hold whenever there is room to lose to dilution: a weak base (0.5B) OR hard tasks at a strong base (7B-hard). Fusion only wins in the degenerate corner where easy tasks let a strong base compose to the 1.00 ceiling. Vindicates E8's max > mean in real 7B weights once saturation is controlled. Default (easy) task behaviour is unchanged (hard defaults False). +1 hard-task test (131 green). Excludes the 0.5B smoke bundle (a pipeline gate, not a deliverable). Results in results/llm_{moe,directed}_hard_hpc/ (parquet gitignored). Co-Authored-By: Claude Opus 4.8 --- CLAUDE.md | 2 + configs/llm/directed_hard_hpc.yaml | 23 ++ configs/llm/moe_hard.yaml | 21 ++ configs/llm/moe_hard_hpc.yaml | 24 ++ hpc/llm_hard.pbs | 26 +++ results/llm_directed_hard_hpc/README.md | 42 ++++ .../llm_directed_hard_hpc/llm_directed.pdf | Bin 0 -> 23269 bytes .../llm_directed_hard_hpc/llm_directed.png | Bin 0 -> 136263 bytes results/llm_directed_hard_hpc/manifest.json | 26 +++ .../resolved_config.yaml | 25 +++ results/llm_moe_hard_hpc/README.md | 45 ++++ results/llm_moe_hard_hpc/llm_moe.pdf | Bin 0 -> 22617 bytes results/llm_moe_hard_hpc/llm_moe.png | Bin 0 -> 129068 bytes results/llm_moe_hard_hpc/manifest.json | 28 +++ results/llm_moe_hard_hpc/resolved_config.yaml | 29 +++ src/llm/experiment.py | 26 ++- src/llm/specialise.py | 7 +- src/llm/tasks.py | 212 +++++++++++++----- tasks/todo.md | 13 ++ tests/test_llm.py | 15 ++ 20 files changed, 495 insertions(+), 69 deletions(-) create mode 100644 configs/llm/directed_hard_hpc.yaml create mode 100644 configs/llm/moe_hard.yaml create mode 100644 configs/llm/moe_hard_hpc.yaml create mode 100644 hpc/llm_hard.pbs create mode 100644 results/llm_directed_hard_hpc/README.md create mode 100644 results/llm_directed_hard_hpc/llm_directed.pdf create mode 100644 results/llm_directed_hard_hpc/llm_directed.png create mode 100644 results/llm_directed_hard_hpc/manifest.json create mode 100644 results/llm_directed_hard_hpc/resolved_config.yaml create mode 100644 results/llm_moe_hard_hpc/README.md create mode 100644 results/llm_moe_hard_hpc/llm_moe.pdf create mode 100644 results/llm_moe_hard_hpc/llm_moe.png create mode 100644 results/llm_moe_hard_hpc/manifest.json create mode 100644 results/llm_moe_hard_hpc/resolved_config.yaml diff --git a/CLAUDE.md b/CLAUDE.md index b950df4..f60976b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -97,6 +97,8 @@ E4's whole purpose is to isolate the effect of teacher **decorrelation ρ**, so **Finding (2026-07-05, `llm_directed` — directed sex in weights; refinements pay off only when the default blend is suboptimal).** E10 in real LLM weights (`src/llm/directed.py`, `kind: llm_directed`): breed a *population* of recombinant offspring (specialists merged at Dirichlet-sampled weights), score each against the verifier on a held-out **validation** split, keep the fittest — reported on a fresh **test** split (no selection-on-test leakage). Two breeding objectives (best-overall, best-worst-family). **The value scales with how far the uniform soup is from optimal, giving a clean regime split:** **0.5B** — soup dilutes, so directed selection beats it (`directed_overall` 0.69 > soup 0.64; `directed_balanced` worst-family 0.37 > soup 0.26), though single-objective selection trades off the other axis (breeding for overall tanks the rare `lists` to 0.17) and a *global* blend still trails per-input **routing** (0.74). **7B** — soup already *composes* to the ceiling on these near-saturated families (strings & arith at 1.00), so directed selection finds nothing better: **directed 0.868 ≈ soup 0.873** (marginally below, a val/test overfit gap). **Honest limitation:** the 7B families are near-saturated (2/3 at 1.00), which structurally caps the headroom — this run can't separate "directed sex doesn't help at scale" from "these tasks are too easy at 7B"; a *harder, unsaturated* benchmark is the fair next test. **Through-line across all four LLM runs:** "merge, don't average" and its refinements (routing, directed selection) are **weak-base / suboptimal-default** phenomena — they pay off at 0.5B (soup far from optimal) and are inert at 7B (soup near-optimal on saturated tasks). `configs/llm/{directed,directed_hpc}.yaml`, `plot_llm_directed.py`, `results/llm_directed{,_hpc}/`, `hpc/llm_directed.pbs`, +3 tests (130 green). +**Finding (2026-07-05, HARD benchmark `llm_moe_hard_hpc` + `llm_directed_hard_hpc` — the 7B "fusion wins / no headroom" results were SATURATION artefacts; the law is HEADROOM, not base-size).** The easy families saturated 7B (strings & arith at 1.00), so the 7B nulls (moe: fusion 0.87 > union 0.84; directed ≈ soup) couldn't separate "refinements don't help at scale" from "tasks too easy." Built a **hard task variant** (`hard: true` in `tasks.py`: multi-step lists, Caesar ciphers / letter transforms, multi-step & larger arithmetic — same family labels & answer formats, threaded through `make_tasks`/`train_specialist`/runners; hard specialists cache separately as `spec_*_hard`) and re-ran both at 7B on Imperial CX3 (one L40S, 24 min, unsaturated: arith ≈0.48, strings 0.67, lists 0.34). **Both nulls flip back to the 0.5B ordering:** (1) **union beats fusion again — routing 0.500 > fusion 0.40** (soup 0.392/ties 0.400), the *same* 10-pt margin as 0.5B; fusion dilutes the fragile strings-specialist so hard (0.665 → soup 0.300) that soup even **trails the best single specialist** (0.425), while routing keeps it (0.670). (2) **directed selection beats soup again — 0.492 > 0.392** (+10 pts), recovering most of routing's benefit from one deployable merged model (lifts strings back to 0.630). **Correction to the earlier interpretation:** the `llm_moe_hpc` "regime flip" (fusion wins at 7B) and `llm_directed_hpc` "no headroom" were both driven by **task saturation, not base capability**. The operative variable is **headroom**: "merge, don't average" (union > fusion) and "directed sex" (selection > single blend) hold whenever there's room to lose to dilution — weak base (0.5B) *or* hard tasks at a strong base (7B-hard); fusion only wins in the degenerate corner where easy tasks let a strong base compose to the 1.00 ceiling. This vindicates E8's `max > mean` in real 7B weights once saturation is controlled. `configs/llm/{moe_hard,moe_hard_hpc,directed_hard_hpc}.yaml`, `hpc/llm_hard.pbs`, `results/llm_{moe,directed}_hard_hpc/`, +1 hard-task test (131 green). + ## Build order (blueprint §7) — respect the gate 1. Scaffold: repo layout (§5), container, pytest skeleton, config system, seeding utils. `make test` green. diff --git a/configs/llm/directed_hard_hpc.yaml b/configs/llm/directed_hard_hpc.yaml new file mode 100644 index 0000000..b384886 --- /dev/null +++ b/configs/llm/directed_hard_hpc.yaml @@ -0,0 +1,23 @@ +experiment: llm_directed_hard_hpc +kind: llm_directed +seed: 1 +n_replicates: 1 + +# Directed sex on the HARD benchmark (L40S). On the easy families the 7B soup already composed to the +# ceiling, so offspring selection had no headroom (directed ≈ soup). This run uses the harder task +# variant (hard: true), where the uniform soup should be well below saturation — the regime in which +# breeding + selection can actually improve on the default blend. Reuses the spec_*_hard specialists +# trained by moe_hard_hpc if present. The fair test the easy 7B null could not provide. + +base_model: Qwen/Qwen2.5-7B-Instruct +hard: true +families: [lists, strings, arith] +n_train: 800 +n_val: 100 +n_test: 200 +n_candidates: 24 +concentration: 0.5 +epochs: 3 +lora: {r: 16, alpha: 32} + +output: {dir: results/llm_directed_hard_hpc} diff --git a/configs/llm/moe_hard.yaml b/configs/llm/moe_hard.yaml new file mode 100644 index 0000000..a2991cf --- /dev/null +++ b/configs/llm/moe_hard.yaml @@ -0,0 +1,21 @@ +experiment: llm_moe_hard +kind: llm_moe +seed: 1 +n_replicates: 1 + +# Local 0.5B SMOKE for the hard benchmark: confirms the harder task variant (hard: true) runs +# end-to-end — trains fresh hard specialists (cached as spec_*_hard), the verifier still scores them, +# routing/fusion operators execute. 0.5B will score low on these harder tasks (that is expected; the +# calibrated comparison is the 7B moe_hard_hpc run). Kept small for speed. + +base_model: Qwen/Qwen2.5-0.5B-Instruct +hard: true +families: [lists, strings, arith] +n_train: 400 +n_test: 80 +n_route: 32 +epochs: 3 +lora: {r: 16, alpha: 32} +operators: [soup, ties, moe_oracle, moe_learned, max_merge] + +output: {dir: results/llm_moe_hard} diff --git a/configs/llm/moe_hard_hpc.yaml b/configs/llm/moe_hard_hpc.yaml new file mode 100644 index 0000000..b2b9f23 --- /dev/null +++ b/configs/llm/moe_hard_hpc.yaml @@ -0,0 +1,24 @@ +experiment: llm_moe_hard_hpc +kind: llm_moe +seed: 1 +n_replicates: 1 + +# The HARD-benchmark firm-up (L40S). The easy families saturated 7B at 1.00 (strings/arith), so the +# 7B moe/directed nulls could not distinguish "refinements don't help at scale" from "tasks too easy". +# This run uses the HARDER task variant (hard: true) — longer lists + multi-step ops, Caesar ciphers / +# letter transforms, multi-step & larger arithmetic — so 7B is NOT saturated and routing vs fusion has +# real headroom to separate. Trains fresh HARD specialists (cached as spec_*_hard). Same operators as +# moe_hpc; the question: does the 0.5B ordering (union > fusion) reappear at 7B once fusion can no +# longer trivially compose to the ceiling? + +base_model: Qwen/Qwen2.5-7B-Instruct +hard: true +families: [lists, strings, arith] +n_train: 800 +n_test: 200 +n_route: 48 +epochs: 3 +lora: {r: 16, alpha: 32} +operators: [soup, ties, moe_oracle, moe_learned, max_merge] + +output: {dir: results/llm_moe_hard_hpc} diff --git a/hpc/llm_hard.pbs b/hpc/llm_hard.pbs new file mode 100644 index 0000000..b57ae6a --- /dev/null +++ b/hpc/llm_hard.pbs @@ -0,0 +1,26 @@ +#!/bin/bash +# The HARD-benchmark firm-up on an L40S (46 GB): runs moe_hard_hpc then directed_hard_hpc in one job. +# moe trains the hard specialists (cached spec_*_hard); directed reuses them — so training happens once +# and both experiments share it. Harder tasks (multi-step lists, Caesar ciphers, multi-step arith) keep +# 7B off saturation, giving routing/fusion/selection real headroom to separate — the fair test the easy +# 7B runs could not provide. Same env as the other LLM jobs (see hpc/README.md). +# submit: qsub hpc/llm_hard.pbs status: qstat -u $USER +#PBS -l select=1:ncpus=8:mem=64gb:ngpus=1:gpu_type=L40S +#PBS -l walltime=01:00:00 +#PBS -N lam_llm_hard + +cd "$PBS_O_WORKDIR" +export HF_HOME="$EPHEMERAL/hf_cache" +export TOKENIZERS_PARALLELISM=false +export UV_CACHE_DIR="$EPHEMERAL/uvcache" + +source .venv/bin/activate +nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader + +python -m llm.experiment configs/llm/moe_hard_hpc.yaml # trains spec_*_hard + fusion/union +python -m llm.experiment configs/llm/directed_hard_hpc.yaml # reuses spec_*_hard + offspring select + +# results/{llm_moe_hard_hpc,llm_directed_hard_hpc}/ written in-place (parquet gitignored). Sync back: +# rsync -avz hpc:'…/results/llm_moe_hard_hpc/' results/llm_moe_hard_hpc/ +# rsync -avz hpc:'…/results/llm_directed_hard_hpc/' results/llm_directed_hard_hpc/ +echo "done: $(date)" diff --git a/results/llm_directed_hard_hpc/README.md b/results/llm_directed_hard_hpc/README.md new file mode 100644 index 0000000..386885a --- /dev/null +++ b/results/llm_directed_hard_hpc/README.md @@ -0,0 +1,42 @@ +# llm_directed_hard_hpc — directed sex on HARD (unsaturated) tasks at 7B: offspring selection helps again + +**Claim tested.** `llm_directed_hpc` found directed selection ≈ soup at 7B (0.868 ≈ 0.873) and flagged +the honest caveat that the easy families were *saturated* (no headroom for selection to exploit). This +run re-runs directed sex on the **hard task variant**, where the uniform soup is far from the ceiling — +the regime in which breeding + selection can actually improve on the default blend. One **L40S (46 GB)** +GPU, Imperial CX3; reuses the `spec_*_hard` specialists trained by `llm_moe_hard_hpc`. + +**Setup.** Base **Qwen2.5-7B-Instruct**, `hard: true`, **24 offspring** (Dirichlet-weighted merges), +100-task/family validation split (selection), 200-task/family test split (report). Seed 1. + +### Results (test accuracy — unsaturated) +| model | lists | strings | arith | overall | worst-family | +|---|---|---|---|---|---| +| best specialist (strings) | 0.155 | 0.665 | 0.455 | 0.425 | 0.155 | +| merge_soup (uniform, candidate 0) | 0.390 | 0.300 | 0.485 | 0.392 | 0.300 | +| **directed_overall** | 0.380 | 0.630 | 0.465 | **0.492** | **0.380** | +| **directed_balanced** | 0.380 | 0.630 | 0.465 | **0.492** | **0.380** | + +### The finding: the 7B "no headroom" null was also saturation +- **Directed selection beats the uniform soup by +10 points (0.492 > 0.392).** On hard tasks there *is* + a better blend than uniform averaging, and breeding 24 offspring + selecting on the verifier finds it + — recovering most of the routing-level performance (0.492 vs routing 0.500) from a single deployable + merged model. The `llm_directed_hpc` null (directed ≈ soup at 7B) was a saturation artefact, exactly + as that run's honest caveat predicted. +- **Selection repairs fusion's dilution.** The winning offspring lifts strings from soup's diluted + 0.300 back to **0.630** (near the 0.665 specialist) while keeping lists' composition gain (0.380) — + i.e. it finds a blend that composes where composition helps and avoids diluting the fragile skill. + Both breeding objectives converged to the same winner (overall = balanced), which also improves + worst-family (0.380 > soup 0.300). +- **Directed ≈ routing here.** A *single* searched-and-selected merged model (0.492) matches the + per-input router (0.500) on hard tasks — offspring selection buys most of routing's benefit without + needing a router at inference. + +### Takeaway +On unsaturated tasks, directed sex (breed offspring + select on the verifier) beats the single a-priori +soup at 7B, resolving the earlier null: it was task saturation, not scale, that made selection inert. +Together with `llm_moe_hard_hpc` this completes the correction — **both** "merge, don't average" (union +> fusion) and "directed sex" (selection > single blend) are **headroom** phenomena that hold at 7B once +the tasks are hard enough to leave room, not weak-base-only effects. **Falsifier (not triggered):** +directed offspring ≤ uniform soup — instead they beat it by 10 points. Provenance in `manifest.json` +(`hard: true`, L40S, torch 2.12.1 / transformers 5.13.0 / peft 0.19.1). diff --git a/results/llm_directed_hard_hpc/llm_directed.pdf b/results/llm_directed_hard_hpc/llm_directed.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c9316c4deb39afd70579a19554401314d2fd1764 GIT binary patch literal 23269 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 T!yyE4w+J*L3yY+Z6yg5?Q?TfD literal 0 HcmV?d00001 diff --git a/results/llm_directed_hard_hpc/llm_directed.png b/results/llm_directed_hard_hpc/llm_directed.png new file mode 100644 index 0000000000000000000000000000000000000000..f2c555fb47d2e7c5a7dee5c6ae320237352072ec GIT binary patch literal 136263 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�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 literal 0 HcmV?d00001 diff --git a/results/llm_directed_hard_hpc/manifest.json b/results/llm_directed_hard_hpc/manifest.json new file mode 100644 index 0000000..2fb7b65 --- /dev/null +++ b/results/llm_directed_hard_hpc/manifest.json @@ -0,0 +1,26 @@ +{ + "experiment": "llm_directed_hard_hpc", + "master_seed": 1, + "git_commit": null, + "python": "3.11.13", + "libraries": { + "numpy": "2.4.6", + "scipy": "1.17.1", + "pandas": "3.0.3", + "pyarrow": "24.0.0", + "torch": "2.12.1", + "transformers": "5.13.0", + "peft": "0.19.1" + }, + "rows": 35, + "results_sha256": "a5e45785a8701c5e1cdcfc64bc1482dffe4e68f8c6978e9d07dc8f04d40fbab6", + "layer": "2", + "tier": "llm", + "base_model": "Qwen/Qwen2.5-7B-Instruct", + "hard": true, + "directed": { + "n_candidates": 24, + "concentration": 0.5, + "n_val": 100 + } +} \ No newline at end of file diff --git a/results/llm_directed_hard_hpc/resolved_config.yaml b/results/llm_directed_hard_hpc/resolved_config.yaml new file mode 100644 index 0000000..4949ae0 --- /dev/null +++ b/results/llm_directed_hard_hpc/resolved_config.yaml @@ -0,0 +1,25 @@ +experiment: llm_directed_hard_hpc +seed: 1 +n_replicates: 1 +source_config: + experiment: llm_directed_hard_hpc + kind: llm_directed + seed: 1 + n_replicates: 1 + base_model: Qwen/Qwen2.5-7B-Instruct + hard: true + families: + - lists + - strings + - arith + n_train: 800 + n_val: 100 + n_test: 200 + n_candidates: 24 + concentration: 0.5 + epochs: 3 + lora: + r: 16 + alpha: 32 + output: + dir: results/llm_directed_hard_hpc diff --git a/results/llm_moe_hard_hpc/README.md b/results/llm_moe_hard_hpc/README.md new file mode 100644 index 0000000..15c4e3d --- /dev/null +++ b/results/llm_moe_hard_hpc/README.md @@ -0,0 +1,45 @@ +# llm_moe_hard_hpc — union vs fusion on HARD (unsaturated) tasks at 7B: the flip was a saturation artefact + +**Claim tested.** `llm_moe_hpc` found fusion beating union at 7B (soup 0.87 > routing 0.84) and read it +as "a capable base lets averaging compose." But the easy families were *saturated* (strings & arith at +1.00), so that flip could have been an artefact of no headroom rather than base capability. This run +re-runs the union-vs-fusion contrast on the **hard task variant** (multi-step lists, Caesar ciphers / +letter transforms, multi-step & larger arithmetic), where 7B is **not** saturated. One **L40S (46 GB)** +GPU, Imperial CX3. + +**Setup.** Base **Qwen2.5-7B-Instruct**, `hard: true`, fresh hard specialists (cached `spec_*_hard`), +200 test tasks/family, seed 1. Same five operators as `llm_moe_hpc`. + +### Results (accuracy — nothing saturated; arith ≈ 0.48, strings 0.67, lists 0.34) +| operator | lists | strings | arith | overall | worst-family | router | +|---|---|---|---|---|---|---| +| best specialist (strings) | 0.155 | 0.665 | 0.455 | 0.425 | 0.155 | — | +| fuse: soup | 0.390 | 0.300 | 0.485 | 0.392 | 0.300 | — | +| fuse: ties | 0.385 | 0.330 | 0.485 | 0.400 | 0.330 | — | +| **route: oracle** | 0.335 | **0.670** | 0.495 | **0.500** | 0.335 | 1.00 | +| **route: learned** | 0.335 | 0.670 | 0.495 | **0.500** | 0.335 | 1.00 | +| max-merge | 0.215 | 0.195 | 0.480 | 0.297 | 0.195 | — | + +### The finding: the 7B "fusion wins" flip was saturation, not capability +- **Union beats fusion again — decisively.** Routing **0.500 > fusion 0.40 (soup 0.392 / ties 0.400)**, + a 10-point margin, the *same* ordering as 0.5B. The easy-task flip (fusion > union at 7B) does **not** + survive once the tasks are hard enough to leave headroom. +- **Fusion dilutes so badly it loses to the best single specialist.** On hard tasks the strings skill + (Caesar ciphers etc.) is fragile: the strings-specialist scores **0.665**, but soup washes it out to + **0.300** — so soup (0.392 overall) even trails the best *single* specialist (0.425). Routing keeps + the specialist intact (strings 0.670) and wins. Dilution is severe exactly when the specialist's + contribution is hard-won. +- **So "merge, don't average" is a HEADROOM law, not a base-size law.** Union > fusion whenever there + is room to lose to dilution — a weak base (0.5B) *or* hard tasks at a strong base (7B-hard). Fusion + only wins in the degenerate corner where the tasks are so easy the strong base composes to the 1.00 + ceiling (7B-easy). This corrects the `llm_moe_hpc` interpretation: base capability was a confound; + the operative variable is task headroom. +- **Riders unchanged.** Learned router still perfect (1.00, lexical families); `max_merge` still the + weakest union (0.297, not input-adaptive). + +### Takeaway +On genuinely hard, unsaturated tasks, the union operator (routing) beats fusion at 7B by the same +margin it does at 0.5B — E8's `max > mean` in real weights, robust across scale once you control for +saturation. The `llm_moe_hpc` flip is re-read as a saturation artefact. **Falsifier (not triggered):** +fusion matching/beating routing on hard tasks — instead fusion diluted below even the best specialist. +Provenance in `manifest.json` (`hard: true`, L40S, torch 2.12.1 / transformers 5.13.0 / peft 0.19.1). diff --git a/results/llm_moe_hard_hpc/llm_moe.pdf b/results/llm_moe_hard_hpc/llm_moe.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9a93933cc7da7b229c764bdf517f1442d2c617bc GIT binary patch literal 22617 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 literal 0 HcmV?d00001 diff --git a/results/llm_moe_hard_hpc/llm_moe.png b/results/llm_moe_hard_hpc/llm_moe.png new file mode 100644 index 0000000000000000000000000000000000000000..3684fdf1104dfe2e838cad9c5c8b6974f942fb83 GIT binary patch literal 129068 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 PT?@7&##*OZ&G!F4(T%J= literal 0 HcmV?d00001 diff --git a/results/llm_moe_hard_hpc/manifest.json b/results/llm_moe_hard_hpc/manifest.json new file mode 100644 index 0000000..eee66cf --- /dev/null +++ b/results/llm_moe_hard_hpc/manifest.json @@ -0,0 +1,28 @@ +{ + "experiment": "llm_moe_hard_hpc", + "master_seed": 1, + "git_commit": null, + "python": "3.11.13", + "libraries": { + "numpy": "2.4.6", + "scipy": "1.17.1", + "pandas": "3.0.3", + "pyarrow": "24.0.0", + "torch": "2.12.1", + "transformers": "5.13.0", + "peft": "0.19.1" + }, + "rows": 47, + "results_sha256": "a4e7c37e7cd900b56aa24ffc827e38e9a9d5cbb44dcff8d83cf010e992ed5c8a", + "layer": "2", + "tier": "llm", + "base_model": "Qwen/Qwen2.5-7B-Instruct", + "hard": true, + "operators": [ + "soup", + "ties", + "moe_oracle", + "moe_learned", + "max_merge" + ] +} \ No newline at end of file diff --git a/results/llm_moe_hard_hpc/resolved_config.yaml b/results/llm_moe_hard_hpc/resolved_config.yaml new file mode 100644 index 0000000..839a86d --- /dev/null +++ b/results/llm_moe_hard_hpc/resolved_config.yaml @@ -0,0 +1,29 @@ +experiment: llm_moe_hard_hpc +seed: 1 +n_replicates: 1 +source_config: + experiment: llm_moe_hard_hpc + kind: llm_moe + seed: 1 + n_replicates: 1 + base_model: Qwen/Qwen2.5-7B-Instruct + hard: true + families: + - lists + - strings + - arith + n_train: 800 + n_test: 200 + n_route: 48 + epochs: 3 + lora: + r: 16 + alpha: 32 + operators: + - soup + - ties + - moe_oracle + - moe_learned + - max_merge + output: + dir: results/llm_moe_hard_hpc diff --git a/src/llm/experiment.py b/src/llm/experiment.py index 6b73c92..20ccf06 100644 --- a/src/llm/experiment.py +++ b/src/llm/experiment.py @@ -51,9 +51,11 @@ def run_merge_experiment(cfg: dict) -> pd.DataFrame: lora = cfg.get("lora", {}) merges = cfg.get("merges", ["soup", "ties"]) seed = int(cfg["seed"]) + hard = bool(cfg.get("hard", False)) + suffix = "_hard" if hard else "" # hard specialists cache separately adapters_root = Path(cfg.get("adapters_dir", "models/llm")) - test = sum([make_tasks(f, n_test, seed=1000 + i) for i, f in enumerate(fams)], []) + test = sum([make_tasks(f, n_test, seed=1000 + i, hard=hard) for i, f in enumerate(fams)], []) rows: list[dict] = [] # base @@ -64,8 +66,8 @@ def run_merge_experiment(cfg: dict) -> pd.DataFrame: # one specialist per family dirs = [] for i, f in enumerate(fams): - d = str(adapters_root / f"spec_{f}") - train_specialist(base, f, d, n_train=n_train, epochs=epochs, seed=seed + i, + d = str(adapters_root / f"spec_{f}{suffix}") + train_specialist(base, f, d, n_train=n_train, epochs=epochs, seed=seed + i, hard=hard, r=int(lora.get("r", 16)), alpha=int(lora.get("alpha", 32))) dirs.append(d) m, tok = load_model(base, adapter_dir=d) @@ -96,12 +98,14 @@ def _load_or_train_specialists(cfg: dict, base: str, fams: list[str], name: str, epochs = int(cfg.get("epochs", 3)) lora = cfg.get("lora", {}) seed = int(cfg["seed"]) + hard = bool(cfg.get("hard", False)) + suffix = "_hard" if hard else "" # hard specialists cache separately adapters_root = Path(cfg.get("adapters_dir", "models/llm")) dirs: list[str] = [] for i, f in enumerate(fams): - d = str(adapters_root / f"spec_{f}") + d = str(adapters_root / f"spec_{f}{suffix}") if not (Path(d) / "adapter_config.json").exists(): # reuse across llm_merge / llm_moe runs - train_specialist(base, f, d, n_train=n_train, epochs=epochs, seed=seed + i, + train_specialist(base, f, d, n_train=n_train, epochs=epochs, seed=seed + i, hard=hard, r=int(lora.get("r", 16)), alpha=int(lora.get("alpha", 32))) dirs.append(d) m, tok = load_model(base, adapter_dir=d) @@ -113,7 +117,8 @@ def _load_or_train_specialists(cfg: dict, base: str, fams: list[str], name: str, def test_of(cfg: dict, fams: list[str]) -> list: """The held-out mixed test set (one seed offset per family), shared by both LLM runners.""" n_test = int(cfg.get("n_test", 100)) - return sum([make_tasks(f, n_test, seed=1000 + i) for i, f in enumerate(fams)], []) + hard = bool(cfg.get("hard", False)) + return sum([make_tasks(f, n_test, seed=1000 + i, hard=hard) for i, f in enumerate(fams)], []) def run_moe_experiment(cfg: dict) -> pd.DataFrame: @@ -160,7 +165,8 @@ def run_moe_experiment(cfg: dict) -> pd.DataFrame: if "moe_oracle" in ops: routes["moe_oracle"] = true_idx if "moe_learned" in ops: - route_train = sum([make_tasks(f, n_route, seed=2000 + i) for i, f in enumerate(fams)], []) + route_train = sum([make_tasks(f, n_route, seed=2000 + i, hard=bool(cfg.get("hard", False))) + for i, f in enumerate(fams)], []) tr_emb = embed_prompts(model, tok, [t.prompt for t in route_train]) te_emb = embed_prompts(model, tok, prompts) tr_fam = np.array([t.family for t in route_train]) @@ -207,7 +213,8 @@ def run_directed_experiment(cfg: dict) -> pd.DataFrame: rows: list[dict] = [] test = test_of(cfg, fams) - val = sum([make_tasks(f, n_val, seed=3000 + i) for i, f in enumerate(fams)], []) + val = sum([make_tasks(f, n_val, seed=3000 + i, hard=bool(cfg.get("hard", False))) + for i, f in enumerate(fams)], []) # base + specialists (parents), scored on test m, tok = load_model(base) @@ -265,7 +272,8 @@ def run_and_save(config_path: str | Path) -> Path: if kind not in _RUNNERS: raise ValueError(f"unknown LLM experiment kind {kind!r} (expected one of {list(_RUNNERS)})") df = _RUNNERS[kind](cfg) - extra = {"layer": "2", "tier": "llm", "base_model": cfg["base_model"]} + extra = {"layer": "2", "tier": "llm", "base_model": cfg["base_model"], + "hard": bool(cfg.get("hard", False))} if kind == "llm_moe": extra["operators"] = list(cfg.get("operators", [])) if kind == "llm_directed": diff --git a/src/llm/specialise.py b/src/llm/specialise.py index 89625fa..13a26c8 100644 --- a/src/llm/specialise.py +++ b/src/llm/specialise.py @@ -29,9 +29,12 @@ def _encode(tok, task, device): def train_specialist(base_name: str, family: str, out_dir: str, *, n_train: int = 600, epochs: int = 3, lr: float = 2e-4, batch_size: int = 8, r: int = 16, - alpha: int = 32, seed: int = 0, device: str = "cuda") -> str: + alpha: int = 32, seed: int = 0, device: str = "cuda", hard: bool = False) -> str: """Fine-tune a LoRA specialist on ``family`` and save the adapter to ``out_dir``. + Args: + hard (bool): train on the harder task variant (must match the eval difficulty). + Returns the adapter directory path. """ import torch @@ -49,7 +52,7 @@ def train_specialist(base_name: str, family: str, out_dir: str, *, n_train: int model = get_peft_model(model, lora) model.train() - tasks = make_tasks(family, n_train, seed=seed) + tasks = make_tasks(family, n_train, seed=seed, hard=hard) encoded = [_encode(tok, t, device) for t in tasks] opt = torch.optim.AdamW([p for p in model.parameters() if p.requires_grad], lr=lr) rng = np.random.default_rng(seed) diff --git a/src/llm/tasks.py b/src/llm/tasks.py index 2294ac6..d450340 100644 --- a/src/llm/tasks.py +++ b/src/llm/tasks.py @@ -10,6 +10,11 @@ decorrelated from the others (the precondition for recombination to have anythin Each task is a natural-language instruction + input with a single canonical answer; the verifier normalises the model's output and checks exact equality. This is the LLM analogue of the synthetic sandbox's exact oracle — correctness is the "reality that can say no" (grounding / fitness). + +A ``hard=True`` variant of each family (longer inputs + multi-step / cipher operations) exists so a +*capable* base (7B) is **not saturated** at 1.00 — the regime where recombination refinements +(routing, offspring selection) have headroom to matter. Same family labels and answer formats (int +list / integer / lowercase word), so the verifier and the whole experiment machinery are unchanged. """ from __future__ import annotations @@ -37,82 +42,173 @@ def _fmt_list(xs) -> str: return "[" + ", ".join(str(int(x)) for x in xs) + "]" -def _list_task(rng) -> Task: - n = int(rng.integers(6, 9)) # longer lists (harder) - xs = rng.integers(0, 20, size=n).tolist() - op = rng.choice(["sort ascending", "sort descending", "reverse", - "second largest value", "sum of the two largest values", - "sorted then reversed", "unique values preserving order"]) - if op == "sort ascending": - ans = _fmt_list(sorted(xs)) - elif op == "sort descending": - ans = _fmt_list(sorted(xs, reverse=True)) - elif op == "reverse": - ans = _fmt_list(list(reversed(xs))) - elif op == "second largest value": - ans = str(sorted(xs, reverse=True)[1]) - elif op == "sum of the two largest values": - ans = str(sum(sorted(xs, reverse=True)[:2])) - elif op == "sorted then reversed": - ans = _fmt_list(sorted(xs, reverse=True)) - else: - seen, out = set(), [] +def _list_task(rng, hard: bool = False) -> Task: + if not hard: + n = int(rng.integers(6, 9)) # longer lists (harder) + xs = rng.integers(0, 20, size=n).tolist() + op = rng.choice(["sort ascending", "sort descending", "reverse", + "second largest value", "sum of the two largest values", + "sorted then reversed", "unique values preserving order"]) + if op == "sort ascending": + ans = _fmt_list(sorted(xs)) + elif op == "sort descending": + ans = _fmt_list(sorted(xs, reverse=True)) + elif op == "reverse": + ans = _fmt_list(list(reversed(xs))) + elif op == "second largest value": + ans = str(sorted(xs, reverse=True)[1]) + elif op == "sum of the two largest values": + ans = str(sum(sorted(xs, reverse=True)[:2])) + elif op == "sorted then reversed": + ans = _fmt_list(sorted(xs, reverse=True)) + else: + seen, out = set(), [] + for x in xs: + if x not in seen: + seen.add(x); out.append(x) + ans = _fmt_list(out) + want = "the resulting list" if ans.startswith("[") else "the single number" + return Task("lists", f"Given the list {_fmt_list(xs)}, compute its {op}. " + f"Output only {want} and nothing else.", ans) + # hard: longer lists + MULTI-STEP operations (a capable base is not saturated here) + n = int(rng.integers(10, 15)) + xs = rng.integers(0, 30, size=n).tolist() + op = rng.choice(["sort ascending then the element at index 2 (0-based)", + "sum of the elements at even indices (0-based)", + "the third smallest value", + "the prefix sums (running totals) as a list", + "sort descending then the sum of the first three values", + "the product of the two smallest values", + "the values strictly greater than 15, preserving order"]) + if op.startswith("sort ascending then the element"): + ans = str(sorted(xs)[2]) + elif op.startswith("sum of the elements at even"): + ans = str(sum(xs[::2])) + elif op == "the third smallest value": + ans = str(sorted(xs)[2]) + elif op.startswith("the prefix sums"): + acc, out = 0, [] for x in xs: - if x not in seen: - seen.add(x); out.append(x) + acc += x; out.append(acc) ans = _fmt_list(out) + elif op.startswith("sort descending then the sum"): + ans = str(sum(sorted(xs, reverse=True)[:3])) + elif op.startswith("the product of the two smallest"): + s = sorted(xs); ans = str(s[0] * s[1]) + else: + ans = _fmt_list([x for x in xs if x > 15]) want = "the resulting list" if ans.startswith("[") else "the single number" - return Task("lists", f"Given the list {_fmt_list(xs)}, compute its {op}. " + return Task("lists", f"Given the list {_fmt_list(xs)}, compute {op}. " f"Output only {want} and nothing else.", ans) -def _string_task(rng) -> Task: - w = str(rng.choice(_WORDS)) - op = rng.choice(["reverse", "uppercase", "count of the letter 'a'", "count of vowels", - "remove all vowels", "first three characters", "last three characters"]) - if op == "reverse": - ans = w[::-1] - elif op == "uppercase": - ans = w.upper() - elif op == "count of the letter 'a'": - ans = str(w.count("a")) - elif op == "count of vowels": - ans = str(sum(c in "aeiou" for c in w)) - elif op == "remove all vowels": - ans = "".join(c for c in w if c not in "aeiou") - elif op == "first three characters": - ans = w[:3] +def _caesar(w: str, k: int) -> str: + return "".join(chr((ord(c) - 97 + k) % 26 + 97) for c in w) + + +def _string_task(rng, hard: bool = False) -> Task: + if not hard: + w = str(rng.choice(_WORDS)) + op = rng.choice(["reverse", "uppercase", "count of the letter 'a'", "count of vowels", + "remove all vowels", "first three characters", "last three characters"]) + if op == "reverse": + ans = w[::-1] + elif op == "uppercase": + ans = w.upper() + elif op == "count of the letter 'a'": + ans = str(w.count("a")) + elif op == "count of vowels": + ans = str(sum(c in "aeiou" for c in w)) + elif op == "remove all vowels": + ans = "".join(c for c in w if c not in "aeiou") + elif op == "first three characters": + ans = w[:3] + else: + ans = w[-3:] + return Task("strings", f"Given the word \"{w}\", compute its {op}. " + f"Output only the answer and nothing else.", ans) + # hard: longer words (two concatenated) + cipher / multi-step transforms + w = str(rng.choice(_WORDS)) + str(rng.choice(_WORDS)) + op = rng.choice(["caesar", "sortletters", "devowel", "mostfreq", "distinct", "revdevowel"]) + if op == "caesar": + ans = _caesar(w, 3) + instr = "shift each letter forward by 3 in the alphabet, wrapping z to a (a Caesar cipher)" + elif op == "sortletters": + ans = "".join(sorted(w)); instr = "its letters sorted in alphabetical order" + elif op == "devowel": + ans = "".join("x" if c in "aeiou" else c for c in w) + instr = "the word with every vowel replaced by the letter x" + elif op == "mostfreq": + ans = min(set(w), key=lambda c: (-w.count(c), c)) + instr = "the letter that occurs most often (on a tie, the one earliest in the alphabet)" + elif op == "distinct": + ans = str(len(set(w))); instr = "the number of distinct letters" else: - ans = w[-3:] - return Task("strings", f"Given the word \"{w}\", compute its {op}. " + ans = "".join(c for c in w[::-1] if c not in "aeiou") + instr = "the word reversed and then with all vowels removed" + return Task("strings", f"Given the word \"{w}\", compute {instr}. " f"Output only the answer and nothing else.", ans) -def _arith_task(rng) -> Task: - kind = rng.choice(["mul", "sub", "mul2", "seq"]) # multiplication-heavy (harder) - if kind == "mul": - a, b = rng.integers(11, 40, size=2).tolist(); ans = str(a * b) - q = f"What is {a} * {b}?" - elif kind == "sub": - a, b = sorted(rng.integers(100, 1000, size=2).tolist(), reverse=True); ans = str(a - b) - q = f"What is {a} - {b}?" - elif kind == "mul2": - a = int(rng.integers(11, 100)); b = int(rng.integers(3, 10)); ans = str(a * b) - q = f"What is {a} * {b}?" +def _arith_task(rng, hard: bool = False) -> Task: + if not hard: + kind = rng.choice(["mul", "sub", "mul2", "seq"]) # multiplication-heavy (harder) + if kind == "mul": + a, b = rng.integers(11, 40, size=2).tolist(); ans = str(a * b) + q = f"What is {a} * {b}?" + elif kind == "sub": + a, b = sorted(rng.integers(100, 1000, size=2).tolist(), reverse=True); ans = str(a - b) + q = f"What is {a} - {b}?" + elif kind == "mul2": + a = int(rng.integers(11, 100)); b = int(rng.integers(3, 10)); ans = str(a * b) + q = f"What is {a} * {b}?" + else: + start = int(rng.integers(2, 12)); step = int(rng.integers(3, 12)) + seq = [start + i * step for i in range(4)]; ans = str(seq[-1] + step) + q = f"What comes next in the sequence {', '.join(map(str, seq))}?" + return Task("arith", q + " Output only the number and nothing else.", ans) + # hard: multi-step / larger operands (a capable base is not saturated here) + kind = rng.choice(["madd", "mod", "diffsq", "bigmul", "rangesum", "gcd"]) + if kind == "madd": + a, b = rng.integers(11, 40, size=2).tolist(); c = int(rng.integers(10, 100)) + ans = str(a * b + c); q = f"What is {a} * {b} + {c}?" + elif kind == "mod": + a = int(rng.integers(100, 1000)); b = int(rng.integers(3, 20)) + ans = str(a % b); q = f"What is {a} mod {b} (the remainder of {a} divided by {b})?" + elif kind == "diffsq": + a, b = sorted(rng.integers(10, 30, size=2).tolist(), reverse=True) + ans = str(a * a - b * b); q = f"What is {a}^2 - {b}^2?" + elif kind == "bigmul": + a = int(rng.integers(100, 1000)); b = int(rng.integers(2, 10)) + ans = str(a * b); q = f"What is {a} * {b}?" + elif kind == "rangesum": + a = int(rng.integers(1, 20)); b = int(rng.integers(25, 55)) + ans = str(sum(range(a, b + 1))) + q = f"What is the sum of all integers from {a} to {b} inclusive?" else: - start = int(rng.integers(2, 12)); step = int(rng.integers(3, 12)) - seq = [start + i * step for i in range(4)]; ans = str(seq[-1] + step) - q = f"What comes next in the sequence {', '.join(map(str, seq))}?" + import math + a, b = rng.integers(6, 60, size=2).tolist() + ans = str(math.gcd(a, b)); q = f"What is the greatest common divisor of {a} and {b}?" return Task("arith", q + " Output only the number and nothing else.", ans) _GEN = {"lists": _list_task, "strings": _string_task, "arith": _arith_task} -def make_tasks(family: str, n: int, seed: int) -> list[Task]: - """Generate ``n`` unique-ish tasks for a family (deterministic in ``seed``).""" +def make_tasks(family: str, n: int, seed: int, hard: bool = False) -> list[Task]: + """Generate ``n`` unique-ish tasks for a family (deterministic in ``seed``). + + Args: + family (str): one of :data:`FAMILIES`. + n (int): number of tasks. + seed (int): RNG seed (deterministic output). + hard (bool): use the harder multi-step / cipher variant (same family label + answer format). + + Returns: + list[Task]: the generated tasks. + """ rng = np.random.default_rng(seed) - return [_GEN[family](rng) for _ in range(n)] + return [_GEN[family](rng, hard) for _ in range(n)] def _normalise(s: str) -> str: diff --git a/tasks/todo.md b/tasks/todo.md index 0cfef1d..2963b0e 100644 --- a/tasks/todo.md +++ b/tasks/todo.md @@ -380,3 +380,16 @@ C3 vertical claim deferred.* 0.5B, nil at 7B. Honest limit: 7B families near-saturated; a harder benchmark is the fair next test. - `configs/llm/{directed,directed_hpc}.yaml`, `figures/plot_llm_directed.py`, READMEs, `hpc/llm_directed.pbs`, Makefile `llm` target, +3 tests (130 green). `results/llm_directed{,_hpc}/`. + +**2026-07-05 — HARD benchmark: the 7B "fusion wins / no headroom" nulls were SATURATION artefacts.** ✅ +- Easy families saturated 7B (strings/arith 1.00), confounding the moe/directed 7B nulls. Built a hard + task variant (`hard: true`: multi-step lists, Caesar ciphers, multi-step/larger arith) threaded through + make_tasks/train_specialist/runners; hard specialists cache as `spec_*_hard`. Ran both at 7B on CX3 + (one L40S, 24 min, unsaturated). +- **Both nulls flip back to the 0.5B ordering:** union/routing 0.500 > fusion 0.40 (soup dilutes the + strings specialist 0.665→0.300, below even the best single specialist 0.425); directed selection 0.492 + > soup 0.392 (+10 pts). **The operative variable is HEADROOM, not base-size** — "merge, don't average" + and "directed sex" hold whenever there's room to lose to dilution (weak base OR hard tasks); fusion only + wins where easy tasks let a strong base compose to ceiling. Vindicates E8 max>mean at 7B. +- `configs/llm/{moe_hard,moe_hard_hpc,directed_hard_hpc}.yaml`, `hpc/llm_hard.pbs`, hard READMEs+figures, + +1 test (131 green). `results/llm_{moe,directed}_hard_hpc/`. diff --git a/tests/test_llm.py b/tests/test_llm.py index 77b1dd3..acf5c75 100644 --- a/tests/test_llm.py +++ b/tests/test_llm.py @@ -25,6 +25,21 @@ def test_make_tasks_wellformed_and_deterministic(): assert [t.answer for t in a] == [t.answer for t in b] # deterministic in the seed +def test_hard_tasks_wellformed_verifiable_and_distinct(): + # The hard variant must stay well-formed, self-verifying (canonical answer passes its own verifier), + # and genuinely different from the easy variant (harder content, same family labels + answer format). + for fam in FAMILIES: + hard = make_tasks(fam, 30, seed=7, hard=True) + assert len(hard) == 30 and all(t.family == fam for t in hard) + assert all(t.prompt and t.answer for t in hard) + assert all(verify(t.answer, t) for t in hard) # canonical answers verify + easy = make_tasks(fam, 30, seed=7, hard=False) + assert [t.prompt for t in hard] != [t.prompt for t in easy] # hard != easy + # a Caesar-cipher answer is a real transform of the input (not the identity) + caesars = [t for t in make_tasks("strings", 60, seed=2, hard=True) if "Caesar" in t.prompt] + assert caesars and any(t.answer not in t.prompt for t in caesars) + + def test_verifier_accepts_correct_including_verbose(): tasks = make_tasks("lists", 40, seed=1) + make_tasks("arith", 40, seed=2) assert all(verify(t.answer, t) for t in tasks) # the canonical answer verifies