Manuscript revision and pending experiment work, snapshot before restructuring

Clarity pass over the main text (36-item audit), Discussion rewrite and cut,
acknowledgements, Souly et al. as ref 62, lettered SI panels, model section
moved under Results; plus the untracked curriculum/society/compose/smol
configs, runners, figures, stats and tests that the SI already cites.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
This commit is contained in:
Giorgio Gilestro 2026-09-13 16:54:09 +01:00
parent e4804adabc
commit 84124de143
450 changed files with 52813 additions and 1202 deletions

View file

@ -0,0 +1,21 @@
# llm_moe_hard_seeds_smol — the headroom rule on a second base lineage (SmolLM2-1.7B-Instruct)
**Claim tested (manuscript revision 2026-09-12).** Union (routing among intact specialists) beats
fusion (weight averaging) wherever the average falls short of attainable performance. Replicates
`llm_moe_hard_seeds` (hard task variant, 400 training tasks, 80 test tasks per family, soup / TIES /
oracle router / learned router, 3 training seeds) on `HuggingFaceTB/SmolLM2-1.7B-Instruct`. Ran in
7 min on one L40S (`hpc/llm_smol.pbs`). Numbers from `figures/stats_llm_smol.py`.
### Result — replicates, 3/3 seeds, larger margin than on Qwen
| contrast (SmolLM2, hard) | overall | worst family |
|---|---|---|
| routing (learned = oracle) soup | **+0.162 ± 0.036** (3/3) | +0.221 ± 0.029 (3/3) |
| soup best specialist | 0.029 ± 0.017 (3/3 below) | +0.012 ± 0.014 |
| *(Qwen2.5-0.5B)* routing soup | +0.100 ± 0.090 (3/3) | +0.150 ± 0.075 (3/3) |
| *(Qwen)* soup best specialist | 0.025 ± 0.122 (1/3 above) | 0.000 ± 0.102 |
Absolute levels (SmolLM2): best specialist 0.194, soup 0.165, routing 0.328 overall. Two riders carry
over unchanged: the learned router equals the oracle (the families are lexically separable, so routing
is easy here), and on this base the soup falls **below** the best single specialist in every seed,
the dilution the Qwen 0.5B hard run showed in one seed of three. Falsifier (not triggered): routing ≤
soup in a majority of seeds.

View file

@ -0,0 +1,32 @@
{
"experiment": "llm_moe_hard_seeds_smol",
"master_seed": 1,
"git_commit": null,
"python": "3.11.7",
"libraries": {
"numpy": "2.4.6",
"scipy": "1.17.1",
"pandas": "3.0.3",
"pyarrow": "24.0.0",
"torch": "2.12.1",
"transformers": "5.16.1",
"peft": "0.20.0"
},
"rows": 126,
"results_sha256": "38eb9f8ca0b52d9d2c17a385f33612a0d14fb622066e524eb5aff8d85d1fe0f1",
"layer": "2",
"tier": "llm",
"base_model": "HuggingFaceTB/SmolLM2-1.7B-Instruct",
"hard": true,
"seeds": [
1,
2,
3
],
"operators": [
"soup",
"ties",
"moe_oracle",
"moe_learned"
]
}

View file

@ -0,0 +1,33 @@
experiment: llm_moe_hard_seeds_smol
seed: 1
n_replicates: 1
source_config:
experiment: llm_moe_hard_seeds_smol
kind: llm_moe
seed: 1
seeds:
- 1
- 2
- 3
n_replicates: 1
base_model: HuggingFaceTB/SmolLM2-1.7B-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
output:
dir: results/llm_moe_hard_seeds_smol
adapters_dir: models/llm_smol