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:
parent
e4804adabc
commit
84124de143
450 changed files with 52813 additions and 1202 deletions
38
results/llm_curriculum_v5_cull/README.md
Normal file
38
results/llm_curriculum_v5_cull/README.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# llm_curriculum_v5_cull — differential reproduction in the six-generation population
|
||||
|
||||
**Claim tested (manuscript revision 2026-09-12).** In the six-generation population recombination
|
||||
bought speed but not level: the declinable-merge arm led early and finished level with never merging.
|
||||
The population had no differential reproduction (lineages were never culled), and the Discussion
|
||||
predicted that with it a merged lineage's early lead would be inherited by more descendants and turn
|
||||
into a level advantage. This run adds truncation selection: after every generation's measurement the
|
||||
lowest-scoring lineage (all-families accuracy) is re-founded from the highest-scoring one, keeping
|
||||
its own curriculum slot (`cull: true`; `cull_step`/`inherit_slot` in `src/llm/curriculum.py`;
|
||||
ties leave the population alone). Arms: `isolated` + culling and declinable `society` + culling,
|
||||
read against the existing `isolated` and `veto` arms. Latin square, Qwen2.5-1.5B, 3 training seeds
|
||||
(`hpc/llm_cull.pbs`, ~35 min per seed on one L40S). Figure `curriculum_cull.png`; numbers from
|
||||
`figures/stats_llm_curriculum.py` and the per-generation tables printed in the revision log.
|
||||
|
||||
### Result — parity again; the prediction is not supported
|
||||
- **Final best-lineage accuracy (all six families), mean of 3 seeds:** never merge 0.796; declinable
|
||||
merge 0.792; never merge + culling **0.804**; declinable merge + culling **0.793**.
|
||||
- **Contrasts (per seed; mean ± 95% CI):** culled declinable − culled never-merge −0.011, −0.014,
|
||||
−0.008 (**−0.011 ± 0.003**, below in 3/3); culled declinable − declinable +0.001 ± 0.007;
|
||||
culled never-merge − never-merge +0.007 ± 0.030 (−0.022, +0.028, +0.017).
|
||||
- **The early lead survives, the level does not.** Best lineage at generation 1: declinable 0.680
|
||||
and culled declinable 0.679 against never-merge 0.601 and culled never-merge 0.638; by generation
|
||||
5 all four sit at 0.78–0.80. Population mean: culling lifts the *mean* early (generation 1: 0.577
|
||||
vs 0.477 for the never-merge arms) because the best genome is copied into the worst slot, but the
|
||||
final means converge too (0.775–0.786).
|
||||
- **Selection was active throughout:** exactly one cull per generation in every arm and seed (no
|
||||
ties); the culled slot rotated among all three lineages. Declines in the culled declinable arm
|
||||
rose with generation as before (0.33 → 1.00).
|
||||
- Retention of taught families at generation 6: 0.78–0.79 in all four arms.
|
||||
|
||||
**Reading.** Under a curriculum that delivers every skill to every lineage, the ceiling is set by
|
||||
what one adapter can carry, and both sex and selection can only move a lineage toward that ceiling
|
||||
faster. Selection spreads the best genome; recombination assembles it earlier; neither raises it.
|
||||
The Fisher–Muller advantage in this population is a speed advantage, now shown with and without
|
||||
differential reproduction. Falsifier for the null (not triggered): culled declinable above culled
|
||||
never-merge in a majority of seeds by more than the seed-to-seed spread (~0.02). What would change
|
||||
the prediction is a curriculum in which skills are *not* guaranteed to every lineage (a lineage that
|
||||
never learns a family can only obtain it by merging), which is a different experiment.
|
||||
BIN
results/llm_curriculum_v5_cull/curriculum_cull.pdf
Normal file
BIN
results/llm_curriculum_v5_cull/curriculum_cull.pdf
Normal file
Binary file not shown.
BIN
results/llm_curriculum_v5_cull/curriculum_cull.png
Normal file
BIN
results/llm_curriculum_v5_cull/curriculum_cull.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 136 KiB |
50
results/llm_curriculum_v5_cull/s1/manifest.json
Normal file
50
results/llm_curriculum_v5_cull/s1/manifest.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"experiment": "llm_curriculum_v5_cull",
|
||||
"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": 511,
|
||||
"results_sha256": "88e21029f057d0a40274b6253ea83f0ff178d3386cf85bcbdfda069b25d1c1c4",
|
||||
"layer": "2",
|
||||
"tier": "llm",
|
||||
"base_model": "Qwen/Qwen2.5-1.5B",
|
||||
"hard": false,
|
||||
"curriculum": {
|
||||
"families": [
|
||||
"mnli",
|
||||
"arc",
|
||||
"hellaswag",
|
||||
"squad",
|
||||
"boolq",
|
||||
"winogrande"
|
||||
],
|
||||
"lineages": 3,
|
||||
"generations": 6,
|
||||
"arms": [
|
||||
"isolated",
|
||||
"society"
|
||||
],
|
||||
"baselines": [],
|
||||
"n_new": 300,
|
||||
"n_replay": 150,
|
||||
"operator": "linear",
|
||||
"ancestor_depth": null,
|
||||
"lora": {
|
||||
"r": 16,
|
||||
"alpha": 32
|
||||
},
|
||||
"allow_veto": true,
|
||||
"merge_until": null,
|
||||
"orders": null,
|
||||
"cull": true
|
||||
}
|
||||
}
|
||||
BIN
results/llm_curriculum_v5_cull/s1/partial_isolated_s1.parquet
Normal file
BIN
results/llm_curriculum_v5_cull/s1/partial_isolated_s1.parquet
Normal file
Binary file not shown.
BIN
results/llm_curriculum_v5_cull/s1/partial_society_s1.parquet
Normal file
BIN
results/llm_curriculum_v5_cull/s1/partial_society_s1.parquet
Normal file
Binary file not shown.
47
results/llm_curriculum_v5_cull/s1/resolved_config.yaml
Normal file
47
results/llm_curriculum_v5_cull/s1/resolved_config.yaml
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
experiment: llm_curriculum_v5_cull
|
||||
seed: 1
|
||||
n_replicates: 1
|
||||
source_config:
|
||||
experiment: llm_curriculum_v5_cull
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
families:
|
||||
- mnli
|
||||
- arc
|
||||
- hellaswag
|
||||
- squad
|
||||
- boolq
|
||||
- winogrande
|
||||
lineages: 3
|
||||
generations: 6
|
||||
arms:
|
||||
- isolated
|
||||
- society
|
||||
baselines: []
|
||||
allow_veto: true
|
||||
n_new: 300
|
||||
n_replay: 150
|
||||
n_test: 60
|
||||
n_val: 20
|
||||
epochs: 3
|
||||
lr: 0.0001
|
||||
operator: linear
|
||||
merge_weights:
|
||||
- - 0.5
|
||||
- 0.5
|
||||
- - 0.3
|
||||
- 0.7
|
||||
- - 0.7
|
||||
- 0.3
|
||||
max_new_tokens: 48
|
||||
batch_size: 48
|
||||
train_batch_size: 4
|
||||
train_max_len: 512
|
||||
lora:
|
||||
r: 16
|
||||
alpha: 32
|
||||
output:
|
||||
dir: results/llm_curriculum_v5_cull/s1
|
||||
cull: true
|
||||
n_replicates: 1
|
||||
50
results/llm_curriculum_v5_cull/s2/manifest.json
Normal file
50
results/llm_curriculum_v5_cull/s2/manifest.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"experiment": "llm_curriculum_v5_cull",
|
||||
"master_seed": 2,
|
||||
"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": 511,
|
||||
"results_sha256": "104c6e6be137e2b9ac5969a611323b12773697576720502cca9bc950b33def3c",
|
||||
"layer": "2",
|
||||
"tier": "llm",
|
||||
"base_model": "Qwen/Qwen2.5-1.5B",
|
||||
"hard": false,
|
||||
"curriculum": {
|
||||
"families": [
|
||||
"mnli",
|
||||
"arc",
|
||||
"hellaswag",
|
||||
"squad",
|
||||
"boolq",
|
||||
"winogrande"
|
||||
],
|
||||
"lineages": 3,
|
||||
"generations": 6,
|
||||
"arms": [
|
||||
"isolated",
|
||||
"society"
|
||||
],
|
||||
"baselines": [],
|
||||
"n_new": 300,
|
||||
"n_replay": 150,
|
||||
"operator": "linear",
|
||||
"ancestor_depth": null,
|
||||
"lora": {
|
||||
"r": 16,
|
||||
"alpha": 32
|
||||
},
|
||||
"allow_veto": true,
|
||||
"merge_until": null,
|
||||
"orders": null,
|
||||
"cull": true
|
||||
}
|
||||
}
|
||||
BIN
results/llm_curriculum_v5_cull/s2/partial_isolated_s2.parquet
Normal file
BIN
results/llm_curriculum_v5_cull/s2/partial_isolated_s2.parquet
Normal file
Binary file not shown.
BIN
results/llm_curriculum_v5_cull/s2/partial_society_s2.parquet
Normal file
BIN
results/llm_curriculum_v5_cull/s2/partial_society_s2.parquet
Normal file
Binary file not shown.
47
results/llm_curriculum_v5_cull/s2/resolved_config.yaml
Normal file
47
results/llm_curriculum_v5_cull/s2/resolved_config.yaml
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
experiment: llm_curriculum_v5_cull
|
||||
seed: 2
|
||||
n_replicates: 1
|
||||
source_config:
|
||||
experiment: llm_curriculum_v5_cull
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 2
|
||||
families:
|
||||
- mnli
|
||||
- arc
|
||||
- hellaswag
|
||||
- squad
|
||||
- boolq
|
||||
- winogrande
|
||||
lineages: 3
|
||||
generations: 6
|
||||
arms:
|
||||
- isolated
|
||||
- society
|
||||
baselines: []
|
||||
allow_veto: true
|
||||
n_new: 300
|
||||
n_replay: 150
|
||||
n_test: 60
|
||||
n_val: 20
|
||||
epochs: 3
|
||||
lr: 0.0001
|
||||
operator: linear
|
||||
merge_weights:
|
||||
- - 0.5
|
||||
- 0.5
|
||||
- - 0.3
|
||||
- 0.7
|
||||
- - 0.7
|
||||
- 0.3
|
||||
max_new_tokens: 48
|
||||
batch_size: 48
|
||||
train_batch_size: 4
|
||||
train_max_len: 512
|
||||
lora:
|
||||
r: 16
|
||||
alpha: 32
|
||||
output:
|
||||
dir: results/llm_curriculum_v5_cull/s2
|
||||
cull: true
|
||||
n_replicates: 1
|
||||
50
results/llm_curriculum_v5_cull/s3/manifest.json
Normal file
50
results/llm_curriculum_v5_cull/s3/manifest.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"experiment": "llm_curriculum_v5_cull",
|
||||
"master_seed": 3,
|
||||
"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": 511,
|
||||
"results_sha256": "2669b74029d85d4197dca9229e3b1ab8769177f18e05fd08615f7bc2790b2945",
|
||||
"layer": "2",
|
||||
"tier": "llm",
|
||||
"base_model": "Qwen/Qwen2.5-1.5B",
|
||||
"hard": false,
|
||||
"curriculum": {
|
||||
"families": [
|
||||
"mnli",
|
||||
"arc",
|
||||
"hellaswag",
|
||||
"squad",
|
||||
"boolq",
|
||||
"winogrande"
|
||||
],
|
||||
"lineages": 3,
|
||||
"generations": 6,
|
||||
"arms": [
|
||||
"isolated",
|
||||
"society"
|
||||
],
|
||||
"baselines": [],
|
||||
"n_new": 300,
|
||||
"n_replay": 150,
|
||||
"operator": "linear",
|
||||
"ancestor_depth": null,
|
||||
"lora": {
|
||||
"r": 16,
|
||||
"alpha": 32
|
||||
},
|
||||
"allow_veto": true,
|
||||
"merge_until": null,
|
||||
"orders": null,
|
||||
"cull": true
|
||||
}
|
||||
}
|
||||
BIN
results/llm_curriculum_v5_cull/s3/partial_isolated_s3.parquet
Normal file
BIN
results/llm_curriculum_v5_cull/s3/partial_isolated_s3.parquet
Normal file
Binary file not shown.
BIN
results/llm_curriculum_v5_cull/s3/partial_society_s3.parquet
Normal file
BIN
results/llm_curriculum_v5_cull/s3/partial_society_s3.parquet
Normal file
Binary file not shown.
47
results/llm_curriculum_v5_cull/s3/resolved_config.yaml
Normal file
47
results/llm_curriculum_v5_cull/s3/resolved_config.yaml
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
experiment: llm_curriculum_v5_cull
|
||||
seed: 3
|
||||
n_replicates: 1
|
||||
source_config:
|
||||
experiment: llm_curriculum_v5_cull
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 3
|
||||
families:
|
||||
- mnli
|
||||
- arc
|
||||
- hellaswag
|
||||
- squad
|
||||
- boolq
|
||||
- winogrande
|
||||
lineages: 3
|
||||
generations: 6
|
||||
arms:
|
||||
- isolated
|
||||
- society
|
||||
baselines: []
|
||||
allow_veto: true
|
||||
n_new: 300
|
||||
n_replay: 150
|
||||
n_test: 60
|
||||
n_val: 20
|
||||
epochs: 3
|
||||
lr: 0.0001
|
||||
operator: linear
|
||||
merge_weights:
|
||||
- - 0.5
|
||||
- 0.5
|
||||
- - 0.3
|
||||
- 0.7
|
||||
- - 0.7
|
||||
- 0.3
|
||||
max_new_tokens: 48
|
||||
batch_size: 48
|
||||
train_batch_size: 4
|
||||
train_max_len: 512
|
||||
lora:
|
||||
r: 16
|
||||
alpha: 32
|
||||
output:
|
||||
dir: results/llm_curriculum_v5_cull/s3
|
||||
cull: true
|
||||
n_replicates: 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue