main: keep only what reproduces the manuscript; everything else lives on dev
Removed from main (all preserved on the dev branch): the arXiv build and
its sources, design documents (blueprint, results summary, review responses,
essay drafts), tasks/ and CLAUDE.md, the cover letter and reference tooling,
two unused manuscript figures, and every experiment that feeds no figure or
number in the paper: the collapse null, the sexual-vs-asexual lineage, the
NK speciation variant, the 0.5B single-seed LLM prototypes, the compose and
society experiments with their calibration and pilot runs, and their
configs, runners, tests, figure scripts and PBS jobs. Their result bundles
are moved to results/_archive/ (ignored) so the parquets stay on disk.
Also: plot_llm_speciation reads the s{seed}/ layout; the mating-breadth
plot writes under its bundle name; Makefile targets reduced to the kept
experiments; REPRODUCING.md and README point to dev for the rest.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
This commit is contained in:
parent
ab3dc10587
commit
6f8cef1ac5
292 changed files with 26 additions and 15590 deletions
|
|
@ -1,31 +0,0 @@
|
|||
# Generation-0 gate for the composition experiment (prereg v3 §4: C1 base, C3 specialists,
|
||||
# C4 replication). Trains the two founders and measures everything at t=0 without iterating.
|
||||
#
|
||||
# Base choice (C1, measured 2026-09-07): Qwen2.5-1.5B **base, not Instruct**. Zero-shot GSM-Hard
|
||||
# program-aided: Instruct-1.5B 0.500, Instruct-3B 0.417, base-3B 0.633 — all far too strong, since a
|
||||
# base that already has the skills makes the specialists' contribution vacuous. Base-1.5B scores
|
||||
# 0.067, within noise of the 0.059 Llama-2-7B starting point in LoRA Soups (COLING 2025), so the
|
||||
# published composition effect has room to appear.
|
||||
experiment: llm_compose_gate
|
||||
kind: llm_compose
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
generations: 0 # gate only: train founders, measure t=0, stop
|
||||
arms: [dry]
|
||||
n_hard: 150 # composed target (GSM8k-Hard, program-aided) — SE ~0.04
|
||||
n_gsm8k: 100 # math own-skill probe
|
||||
n_mbpp: 80 # code own-skill probe (execution-verified)
|
||||
n_probe: 40 # shared prompts for rho
|
||||
k_inherit: 300
|
||||
epochs: 3
|
||||
conf_gate: 0.85
|
||||
g: 0.10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
max_new_tokens: 320
|
||||
batch_size: 16
|
||||
score_batch_size: 4
|
||||
train_batch_size: 2 # 16 GB A4000; the fp32 logit upcast at vocab 152k is the constraint
|
||||
train_max_len: 448
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_compose_gate}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
# Generation-0 gate, second configuration (prereg v3 §4a): the composed target is MATH-500
|
||||
# (competition maths, level >= 3, numeric answers), and merge weights are *selected* on a disjoint
|
||||
# validation split rather than fixed at 0.5/0.5.
|
||||
#
|
||||
# Why: on GSM8k-Hard the code parent alone reaches 0.427, because once code removes the arithmetic
|
||||
# burden the base's own reasoning suffices — so maths is not scarce and E8's premise fails. MetaMathQA
|
||||
# is built from GSM8K *and* MATH, so MATH-500 tests reasoning the specialist has and the base lacks.
|
||||
# Founders are shared with the first gate (same experiment name), so this costs evaluation only.
|
||||
experiment: llm_compose_gate
|
||||
kind: llm_compose
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
generations: 0
|
||||
arms: [dry]
|
||||
target: math500
|
||||
n_hard: 120 # test split (level>=3 pool is 271; 70% test / 30% val, disjoint)
|
||||
n_hard_val: 50 # val split, screens the merge weights only
|
||||
merge_weights: [[0.5, 0.5], [0.3, 0.7], [0.2, 0.8]]
|
||||
n_gsm8k: 100
|
||||
n_mbpp: 80
|
||||
n_probe: 40
|
||||
k_inherit: 300
|
||||
epochs: 3
|
||||
conf_gate: 0.85
|
||||
g: 0.10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
max_new_tokens: 320
|
||||
batch_size: 16
|
||||
score_batch_size: 8
|
||||
train_batch_size: 2
|
||||
train_max_len: 448
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_compose_gate_math500}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
# The composition campaign, seed 1 (prereg v3, amended after the generation-0 sweep of 2026-09-07).
|
||||
#
|
||||
# Arms. The gen-0 sweep found that the merge *weighting* dominates the operator: the a-priori 0.5/0.5
|
||||
# blend fails under both operators (surplus -0.020 cat, -0.093 linear) while a selected weight passes
|
||||
# (+0.080 linear at 0.2/0.8, +0.027 cat at 0.3/0.7). Weights are therefore chosen each generation on a
|
||||
# disjoint validation split (E10, directed recombination) in every arm, and the operator is an
|
||||
# explicit per-arm setting:
|
||||
# dry — linear operator, no grounding [H2, H3, H5: does composition survive drift?]
|
||||
# grounded — linear operator, g = 0.10 [H4: does immigration arrest it?]
|
||||
# dry_cat — concatenation operator, no grounding [H6, revised: does the operator ordering hold
|
||||
# across generations, or only at gen 0?]
|
||||
experiment: llm_compose
|
||||
kind: llm_compose
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
generations: 6
|
||||
arms:
|
||||
- dry
|
||||
- grounded
|
||||
- dry_cat
|
||||
g: 0.1
|
||||
n_hard: 150
|
||||
n_gsm8k: 150
|
||||
n_mbpp: 100
|
||||
n_probe: 60
|
||||
k_inherit: 300
|
||||
epochs: 3
|
||||
conf_gate: 0.85
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
max_new_tokens: 320
|
||||
batch_size: 16
|
||||
score_batch_size: 4
|
||||
train_batch_size: 2
|
||||
train_max_len: 448
|
||||
resume: true
|
||||
lora:
|
||||
r: 16
|
||||
alpha: 32
|
||||
output:
|
||||
dir: results/llm_compose/s1
|
||||
arm_ops:
|
||||
dry: linear
|
||||
grounded: linear
|
||||
dry_cat: cat
|
||||
n_hard_val: 60
|
||||
merge_weights:
|
||||
- - 0.5
|
||||
- 0.5
|
||||
- - 0.3
|
||||
- 0.7
|
||||
- - 0.2
|
||||
- 0.8
|
||||
- - 0.1
|
||||
- 0.9
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
# G2 probe (prereg v4 §5): does forgetting occur AT ALL under the real curriculum length?
|
||||
# The 3-family gate showed none — but with only 3 families, ample adapter capacity and a generous
|
||||
# replay budget, none was expected. This runs the full nine-family curriculum on ONE lineage with
|
||||
# replay switched OFF, which is the harshest condition the design can offer. If early families still
|
||||
# do not decay, the families are too mutually compatible and too easy for their own good, and the
|
||||
# society has no forgetting to rescue — a design-level stop.
|
||||
experiment: llm_curriculum_g2
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
families: [strings, setops, numtheory, mixedtoken, digits, alphabet, prime, wordlen, roman]
|
||||
lineages: 1
|
||||
generations: 9
|
||||
arms: [isolated]
|
||||
baselines: []
|
||||
n_new: 300
|
||||
n_replay: 0 # replay OFF — the harshest forgetting condition
|
||||
n_test: 60
|
||||
n_val: 30
|
||||
epochs: 3
|
||||
lr: 1.0e-4
|
||||
max_new_tokens: 32
|
||||
batch_size: 32
|
||||
train_batch_size: 2
|
||||
train_max_len: 448
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_curriculum_g2}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
# Gate run for the curriculum society (prereg v4 §5). G0 is the decisive one: with a single lineage
|
||||
# and no recombination, does cumulative capability CLIMB across generations? If capability cannot
|
||||
# accumulate in the simplest arm, no outcome of the full design is interpretable — stop.
|
||||
# Also exercises G1 (inheritance transmits), G2 (forgetting occurs without full replay) and, with
|
||||
# lineages=3, G3 (recombination combines disjoint knowledge).
|
||||
experiment: llm_curriculum_gate
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
families: [strings, setops, numtheory] # 3 families, 3 generations — the smallest climb test
|
||||
lineages: 3
|
||||
generations: 3
|
||||
arms: [isolated, society]
|
||||
baselines: []
|
||||
n_new: 300
|
||||
n_replay: 120
|
||||
n_test: 60
|
||||
n_val: 30
|
||||
epochs: 3
|
||||
lr: 1.0e-4
|
||||
operator: linear
|
||||
merge_weights: [[0.5, 0.5], [0.3, 0.7], [0.7, 0.3]]
|
||||
max_new_tokens: 32
|
||||
batch_size: 32
|
||||
train_batch_size: 2
|
||||
train_max_len: 448
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_curriculum_gate}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
# Calibration for the real-dataset curriculum (prereg v4 §5 gates, re-run on the new families).
|
||||
# Stage A (this config): base accuracy on every candidate, and one specialist per candidate trained
|
||||
# from the base on its train split — the C1 band is base <= 0.40 and specialist >= 0.60.
|
||||
# Stage B (curriculum_v5_g2.yaml, after selection): one lineage, zero replay, all chosen families in
|
||||
# sequence — the forgetting probe; mean drop across families learned before the last must be >= 0.15,
|
||||
# and it must not be carried by a single family (the v4 failure: one pair at +0.65, the rest ~0).
|
||||
experiment: llm_curriculum_v5_calib
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
families: [gsm8k, mbpp, boolq, mnli, sst2, csqa, arc, winogrande, squad, nq_open, hellaswag]
|
||||
lineages: 11 # one lineage per candidate = each trains only its own family at gen 0
|
||||
generations: 1 # gen 0 only: founders; the recorded acc_* rows ARE the specialist table
|
||||
arms: [isolated]
|
||||
baselines: []
|
||||
n_new: 300
|
||||
n_replay: 0
|
||||
n_test: 60
|
||||
n_val: 20
|
||||
epochs: 3
|
||||
lr: 1.0e-4
|
||||
max_new_tokens: 48 # spans / short text need more room than a label
|
||||
batch_size: 24
|
||||
train_batch_size: 2
|
||||
train_max_len: 512
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_curriculum_v5_calib}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
# Stage A, second pass: the six candidates that missed the C1 band at 300 founder examples, retrained
|
||||
# at the budget every working specialist in this project has used (v2, v3: 1200 x 3 epochs).
|
||||
# Decides whether the curriculum has six families or nine.
|
||||
experiment: llm_curriculum_v5_calib_b
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
families: [gsm8k, mbpp, sst2, csqa, winogrande, nq_open]
|
||||
lineages: 6
|
||||
generations: 1
|
||||
arms: [isolated]
|
||||
baselines: []
|
||||
n_new: 1200
|
||||
n_replay: 0
|
||||
n_test: 60
|
||||
n_val: 20
|
||||
epochs: 3
|
||||
lr: 1.0e-4
|
||||
max_new_tokens: 48
|
||||
batch_size: 24
|
||||
train_batch_size: 2
|
||||
train_max_len: 512
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_curriculum_v5_calib_b}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
# then diverges maximally, then converges: complementarity 0.00, 0.67, 0.70, 0.58, 0.33, 0.00 by
|
||||
# generation. Same six families, same G, destroyers (boolq, winogrande) spread across lineages as
|
||||
# in the Latin square. Arms: the declinable merge (`society` + `allow_veto`) and its never-merge
|
||||
# reference under the same curriculum. Pre-registered readout: tasks/prereg-llm-society-v4.md §8g.
|
||||
# reference under the same curriculum. Pre-registered readout: tasks/prereg-llm-society-v4.md on the dev branch §8g.
|
||||
experiment: llm_curriculum_v5_decor
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
# Stage B (prereg v4 §5 G2, v5 families): does forgetting occur, and is it general rather than one pair?
|
||||
# One lineage, zero replay, all six selected families in sequence at the founder budget that passed C1.
|
||||
# Pass: mean drop across families learned before the last >= 0.15, with no single family carrying
|
||||
# more than 50% of the total drop (the v4 failure mode: one pair at +0.65, the rest ~0).
|
||||
experiment: llm_curriculum_v5_g2
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
seed: 1
|
||||
families: [mnli, arc, hellaswag, squad, boolq, winogrande]
|
||||
lineages: 1
|
||||
generations: 6
|
||||
arms: [isolated]
|
||||
baselines: []
|
||||
n_new: 300
|
||||
n_replay: 0
|
||||
n_test: 60
|
||||
n_val: 20
|
||||
epochs: 3
|
||||
lr: 1.0e-4
|
||||
max_new_tokens: 48
|
||||
batch_size: 24
|
||||
train_batch_size: 2
|
||||
train_max_len: 512
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_curriculum_v5_g2}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# The curriculum society campaign, seed 1 (prereg v4, v5 curriculum — tasks/prereg-llm-society-v4.md).
|
||||
# The curriculum society campaign, seed 1 (prereg v4, v5 curriculum — tasks/prereg-llm-society-v4.md on the dev branch).
|
||||
# Runs all four arms then the three matched-budget baselines. The PBS array (hpc/llm_curriculum.pbs)
|
||||
# derives one (seed, arm) config per element from this template for seeds 2-3.
|
||||
#
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# `society` arm except that recombination is switched off from generation 3 onward (`merge_until: 3`):
|
||||
# obligate merging at generations 0-2, none afterwards. This is the fixed "merge early, then stop"
|
||||
# schedule the veto arm must be compared against, because in the seed-1 veto run lineages declined
|
||||
# 1/3 of merges at generations 0-2 and 3/3 at 3-5. Pre-registered readout: tasks/prereg-llm-society-v4.md §8g.
|
||||
# 1/3 of merges at generations 0-2 and 3/3 at 3-5. Pre-registered readout: tasks/prereg-llm-society-v4.md on the dev branch §8g.
|
||||
experiment: llm_curriculum_v5_stop3
|
||||
kind: llm_curriculum
|
||||
base_model: Qwen/Qwen2.5-1.5B
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
experiment: llm_directed
|
||||
kind: llm_directed
|
||||
seed: 1
|
||||
n_replicates: 1
|
||||
|
||||
# Layer 2 / LLM — DIRECTED SEX (E10) in weight space: breed many recombinant offspring and keep the
|
||||
# fittest. llm_moe showed fusion can COMPOSE beyond the parents (7B) but the right blend is unknown and
|
||||
# base-dependent, while pure routing is capped at the best parent. Directed sex resolves both: sample a
|
||||
# population of weighted merges of the specialists, score each on a held-out VALIDATION split with the
|
||||
# verifier (grounding), and select the winner — reported on a fresh TEST split (no selection-on-test
|
||||
# leakage). Two objectives: best-overall and best-worst-family (raw capability vs the balanced
|
||||
# generalist). Prediction: directed selection beats the single a-priori soup and every parent, at
|
||||
# either scale. Falsifier: directed offspring ≤ uniform soup on test.
|
||||
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct # reuses the cached llm_merge specialists
|
||||
families: [lists, strings, arith]
|
||||
n_train: 700 # only if cached specialists are absent
|
||||
n_val: 80 # held-out split the verifier selects on
|
||||
n_test: 100 # fresh split winners are reported on
|
||||
n_candidates: 16 # offspring population size
|
||||
concentration: 0.5 # Dirichlet concentration (<1 = sparser, specialist-dominant blends)
|
||||
epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
|
||||
output: {dir: results/llm_directed}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
experiment: llm_merge
|
||||
kind: llm_merge
|
||||
seed: 1
|
||||
n_replicates: 1
|
||||
|
||||
# (Layer 2 / LLM prototype — blueprint C2/C4, the real-LLM image of E8): recombine specialist LLMs.
|
||||
# Train one LoRA specialist per DISJOINT task family on a small open-weight base, then compare the
|
||||
# base, each specialist, and their weight-space MERGES (soup = averaged deltas; ties = sign-reconciled
|
||||
# union) on a held-out mixed test set. Tasks are procedurally generated and exactly verified (the
|
||||
# "reality that says no"), and deliberately hard so specialists are decorrelated. Expect (per E8): the
|
||||
# recombined model beats any single specialist overall AND is competent across ALL families
|
||||
# (worst-family accuracy), which no single parent is. Falsifier: a single specialist matches the merge.
|
||||
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct # Apache-2.0; ~1 GB, fits 16 GB with room to spare
|
||||
families: [lists, strings, arith]
|
||||
n_train: 700
|
||||
n_test: 100
|
||||
epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
merges: [soup, ties]
|
||||
|
||||
output: {dir: results/llm_merge}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
experiment: llm_moe
|
||||
kind: llm_moe
|
||||
seed: 1
|
||||
n_replicates: 1
|
||||
|
||||
# Layer 2 / LLM — module-level, UNION-PRESERVING recombination (the real-weight image of E8's *max*).
|
||||
# Reuses the specialist adapters trained by configs/llm/merge.yaml (models/llm/spec_*) and contrasts
|
||||
# two families of recombination operator on the same held-out mixed test set:
|
||||
# FUSION (blend the deltas): soup = mean(Δ_k); ties = sign-reconciled union.
|
||||
# UNION (never average): moe_oracle / moe_learned = keep every specialist intact and ROUTE each
|
||||
# prompt to one (MoE-over-experts); max_merge = per-module winner-take-all.
|
||||
# Prediction (E8, "merge don't average"): union beats fusion exactly where fusion DILUTES — pronounced
|
||||
# at a weak base (0.5B), narrowing once a capable base lets fusion compose (7B). Falsifier: fusion
|
||||
# matches or beats the routing ceiling (moe_oracle) at 0.5B, i.e. averaging never dilutes.
|
||||
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct # reuses the same cached specialists as llm_merge
|
||||
families: [lists, strings, arith]
|
||||
n_train: 700 # only used if the cached specialists are absent
|
||||
n_test: 100
|
||||
n_route: 32 # labelled prompts per family for the learned router's centroids
|
||||
epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
operators: [soup, ties, moe_oracle, moe_learned, max_merge]
|
||||
|
||||
output: {dir: results/llm_moe}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
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}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
# Pilot: full vs no_grounding, one seed — the decision gate before the CX3 campaign.
|
||||
experiment: llm_society
|
||||
kind: llm_society
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
agents: 6
|
||||
generations: 8
|
||||
arms: [full, no_grounding]
|
||||
g: 0.5
|
||||
lam: 0.3
|
||||
n_test: 40
|
||||
n_val: 30
|
||||
n_conf: 90
|
||||
n_inherit: 600
|
||||
n_candidates: 6
|
||||
elitism: 1
|
||||
n_parents: 3
|
||||
epochs: 3
|
||||
spec_train: 600
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
# The society campaign: 4-arm ablation, one seed per job (founders trained inline, no cache races).
|
||||
# Seed 1 runs locally (A4000, queue insurance); seeds 2-4 on CX3 (hpc/llm_society.pbs, L40S).
|
||||
experiment: llm_society_campaign
|
||||
kind: llm_society
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
agents: 8
|
||||
generations: 10
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.5
|
||||
lam: 0.3
|
||||
n_test: 40
|
||||
n_val: 30
|
||||
n_conf: 90
|
||||
n_inherit: 600
|
||||
n_candidates: 6
|
||||
elitism: 1
|
||||
n_parents: 4
|
||||
epochs: 3
|
||||
spec_train: 600
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_campaign/s1}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
# The society campaign: 4-arm ablation, one seed per job (founders trained inline, no cache races).
|
||||
# Seed 1 runs locally (A4000, queue insurance); seeds 2-4 on CX3 (hpc/llm_society.pbs, L40S).
|
||||
experiment: llm_society_campaign
|
||||
kind: llm_society
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 2
|
||||
agents: 8
|
||||
generations: 10
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.5
|
||||
lam: 0.3
|
||||
n_test: 40
|
||||
n_val: 30
|
||||
n_conf: 90
|
||||
n_inherit: 600
|
||||
n_candidates: 6
|
||||
elitism: 1
|
||||
n_parents: 4
|
||||
epochs: 3
|
||||
spec_train: 600
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_campaign/s2}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
# The society campaign: 4-arm ablation, one seed per job (founders trained inline, no cache races).
|
||||
# Seed 1 runs locally (A4000, queue insurance); seeds 2-4 on CX3 (hpc/llm_society.pbs, L40S).
|
||||
experiment: llm_society_campaign
|
||||
kind: llm_society
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 3
|
||||
agents: 8
|
||||
generations: 10
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.5
|
||||
lam: 0.3
|
||||
n_test: 40
|
||||
n_val: 30
|
||||
n_conf: 90
|
||||
n_inherit: 600
|
||||
n_candidates: 6
|
||||
elitism: 1
|
||||
n_parents: 4
|
||||
epochs: 3
|
||||
spec_train: 600
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_campaign/s3}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
# The society campaign: 4-arm ablation, one seed per job (founders trained inline, no cache races).
|
||||
# Seed 1 runs locally (A4000, queue insurance); seeds 2-4 on CX3 (hpc/llm_society.pbs, L40S).
|
||||
experiment: llm_society_campaign
|
||||
kind: llm_society
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 4
|
||||
agents: 8
|
||||
generations: 10
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.5
|
||||
lam: 0.3
|
||||
n_test: 40
|
||||
n_val: 30
|
||||
n_conf: 90
|
||||
n_inherit: 600
|
||||
n_candidates: 6
|
||||
elitism: 1
|
||||
n_parents: 4
|
||||
epochs: 3
|
||||
spec_train: 600
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_campaign/s4}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# Smoke test for the LLM society loop — tiny everything; ~15 min on a 16 GB GPU.
|
||||
experiment: llm_society_smoke
|
||||
kind: llm_society
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
agents: 4
|
||||
generations: 2
|
||||
arms: [full]
|
||||
g: 0.5
|
||||
lam: 0.3
|
||||
n_test: 15 # per family
|
||||
n_val: 10
|
||||
n_conf: 30 # total
|
||||
n_inherit: 90 # total
|
||||
n_candidates: 4
|
||||
epochs: 2
|
||||
spec_train: 150
|
||||
spec_epochs: 2
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_smoke}
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
# Calibration stage A (prereg §4, gates C1a-c + C4): every candidate family's base / specialist
|
||||
# accuracy, specialist confidence AUC, pairwise functional conflict, gen-0 behavioural distance.
|
||||
# GG reviews the printed table and fixes the 12-family set in society_v2_calib_b.yaml + the campaign.
|
||||
# ~1 h on a 16 GB GPU (17 specialists at 600 x 3 epochs, cached and reused by stage B).
|
||||
experiment: llm_society_v2_calib_a
|
||||
kind: llm_society_calib
|
||||
stage: families
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families: [lists, strings, arith, roman, binary, sortletters, setops, numtheory, mixedtoken,
|
||||
caesar, vectors, progression, charfreq, digits, liststats, alphabet, prime]
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 600
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2_calib_a}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# Calibration stage A, second pass (prereg §4 amendments, 2026-09-07): the first pass left only six
|
||||
# families in band. Changes, each recorded in the prereg: founder budget 600 -> 1200 x 3 (uniform);
|
||||
# roman / binary / prime prompt spaces enlarged; three new learnable candidates (wordlen,
|
||||
# lettercount, sumeven); the specialist UPPER bound relaxed 0.90 -> 1.00 (the headroom argument it
|
||||
# encoded concerns fusion composing to a ceiling, not transmission/assembly). Families whose
|
||||
# specialist scored <= 0.20 in pass 1 (sortletters, caesar, progression) are not re-trained.
|
||||
experiment: llm_society_v2_calib_a2
|
||||
kind: llm_society_calib
|
||||
stage: families
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families: [lists, strings, arith, roman, binary, setops, numtheory, mixedtoken, vectors, charfreq,
|
||||
digits, liststats, alphabet, prime, wordlen, lettercount, sumeven]
|
||||
spec_hi: 1.0
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2_calib_a2}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
# Calibration stage B (prereg §4, gates C2 / C3 / C5) over the 12 families chosen from stage A.
|
||||
# Run three times with stage: transmission | cross | consensus (see Makefile `llm-society-calib`).
|
||||
# Families = stage-A pass-2 option 1 (L=9, gate 0.41; prereg §4a) — pending GG's go.
|
||||
experiment: llm_society_v2_calib_b
|
||||
kind: llm_society_calib
|
||||
stage: transmission
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families: [strings, setops, numtheory, mixedtoken, digits, alphabet, prime, wordlen, roman]
|
||||
# C2: examples-per-family k and epochs to sweep; probe_families are the three whose retention is
|
||||
# measured (spread across answer types: list / word / int).
|
||||
probe_families: [setops, alphabet, digits] # list / letter / integer answers
|
||||
ks: [25, 50, 100, 150]
|
||||
epochs_grid: [2, 3]
|
||||
# C3: the two-founder cross (union-distil vs best-of-6 linear-merge-distil)
|
||||
cross: [setops, alphabet]
|
||||
k_inherit: 100
|
||||
epochs: 3
|
||||
n_candidates: 6
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2_calib_b}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# C2b (prereg §4a amendment under review): confidence-gated inheritance. The pre-registered C2 failed
|
||||
# (retention ≤ 0.81 at k ≤ 150 despite competent supply): the child fits eight families of confident
|
||||
# garbage alongside the one competent family. Here the child learns only prompts its source is
|
||||
# confident on (verifier-free). Measures retention by gate τ, the Youden τ* separating own- from
|
||||
# off-family confidence, and the off-family harm of ungated inheritance.
|
||||
experiment: llm_society_v2_calib_b_transmission_conf
|
||||
kind: llm_society_calib
|
||||
stage: transmission_conf
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families: [strings, setops, numtheory, mixedtoken, digits, alphabet, prime, wordlen, roman]
|
||||
probe_families: [setops, alphabet, digits]
|
||||
k_pool: 300 # prompts per family answered by the source (2700 total); gate keeps a subset
|
||||
taus: [0.5, 0.7, 0.85]
|
||||
epochs: 3
|
||||
n_test: 100
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2_calib_b_transmission_conf}
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
experiment: llm_society_v2_calib_b_cross_gated
|
||||
kind: llm_society_calib
|
||||
stage: cross
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families:
|
||||
- strings
|
||||
- setops
|
||||
- numtheory
|
||||
- mixedtoken
|
||||
- digits
|
||||
- alphabet
|
||||
- prime
|
||||
- wordlen
|
||||
- roman
|
||||
probe_families:
|
||||
- setops
|
||||
- alphabet
|
||||
- digits
|
||||
ks:
|
||||
- 25
|
||||
- 50
|
||||
- 100
|
||||
- 150
|
||||
epochs_grid:
|
||||
- 2
|
||||
- 3
|
||||
cross:
|
||||
- setops
|
||||
- alphabet
|
||||
k_inherit: 300
|
||||
epochs: 3
|
||||
n_candidates: 6
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora:
|
||||
r: 16
|
||||
alpha: 32
|
||||
output:
|
||||
dir: results/llm_society_v2_calib_b_cross_gated
|
||||
conf_gate: 0.5
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
experiment: llm_society_v2_calib_c3b_e6
|
||||
kind: llm_society_calib
|
||||
stage: cross
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families:
|
||||
- strings
|
||||
- setops
|
||||
- numtheory
|
||||
- mixedtoken
|
||||
- digits
|
||||
- alphabet
|
||||
- prime
|
||||
- wordlen
|
||||
- roman
|
||||
probe_families:
|
||||
- setops
|
||||
- alphabet
|
||||
- digits
|
||||
ks:
|
||||
- 25
|
||||
- 50
|
||||
- 100
|
||||
- 150
|
||||
epochs_grid:
|
||||
- 2
|
||||
- 3
|
||||
cross:
|
||||
- setops
|
||||
- alphabet
|
||||
k_inherit: 300
|
||||
epochs: 6
|
||||
n_candidates: 6
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora:
|
||||
r: 16
|
||||
alpha: 32
|
||||
output:
|
||||
dir: results/llm_society_v2_calib_c3b_e6
|
||||
conf_gate: 0.5
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
experiment: llm_society_v2_calib_c3b_r64
|
||||
kind: llm_society_calib
|
||||
stage: cross
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families:
|
||||
- strings
|
||||
- setops
|
||||
- numtheory
|
||||
- mixedtoken
|
||||
- digits
|
||||
- alphabet
|
||||
- prime
|
||||
- wordlen
|
||||
- roman
|
||||
probe_families:
|
||||
- setops
|
||||
- alphabet
|
||||
- digits
|
||||
ks:
|
||||
- 25
|
||||
- 50
|
||||
- 100
|
||||
- 150
|
||||
epochs_grid:
|
||||
- 2
|
||||
- 3
|
||||
cross:
|
||||
- setops
|
||||
- alphabet
|
||||
k_inherit: 300
|
||||
epochs: 3
|
||||
n_candidates: 6
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora:
|
||||
r: 64
|
||||
alpha: 128
|
||||
output:
|
||||
dir: results/llm_society_v2_calib_c3b_r64
|
||||
conf_gate: 0.5
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
experiment: llm_society_v2_calib_c3b_r64e6
|
||||
kind: llm_society_calib
|
||||
stage: cross
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families:
|
||||
- strings
|
||||
- setops
|
||||
- numtheory
|
||||
- mixedtoken
|
||||
- digits
|
||||
- alphabet
|
||||
- prime
|
||||
- wordlen
|
||||
- roman
|
||||
probe_families:
|
||||
- setops
|
||||
- alphabet
|
||||
- digits
|
||||
ks:
|
||||
- 25
|
||||
- 50
|
||||
- 100
|
||||
- 150
|
||||
epochs_grid:
|
||||
- 2
|
||||
- 3
|
||||
cross:
|
||||
- setops
|
||||
- alphabet
|
||||
k_inherit: 300
|
||||
epochs: 6
|
||||
n_candidates: 6
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora:
|
||||
r: 64
|
||||
alpha: 128
|
||||
output:
|
||||
dir: results/llm_society_v2_calib_c3b_r64e6
|
||||
conf_gate: 0.5
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
experiment: llm_society_v2_calib_c3c_t85e3
|
||||
kind: llm_society_calib
|
||||
stage: cross
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families:
|
||||
- strings
|
||||
- setops
|
||||
- numtheory
|
||||
- mixedtoken
|
||||
- digits
|
||||
- alphabet
|
||||
- prime
|
||||
- wordlen
|
||||
- roman
|
||||
probe_families:
|
||||
- setops
|
||||
- alphabet
|
||||
- digits
|
||||
ks:
|
||||
- 25
|
||||
- 50
|
||||
- 100
|
||||
- 150
|
||||
epochs_grid:
|
||||
- 2
|
||||
- 3
|
||||
cross:
|
||||
- setops
|
||||
- alphabet
|
||||
k_inherit: 300
|
||||
epochs: 3
|
||||
n_candidates: 6
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora:
|
||||
r: 16
|
||||
alpha: 32
|
||||
output:
|
||||
dir: results/llm_society_v2_calib_c3c_t85e3
|
||||
conf_gate: 0.85
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
experiment: llm_society_v2_calib_c3c_t85e6
|
||||
kind: llm_society_calib
|
||||
stage: cross
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families:
|
||||
- strings
|
||||
- setops
|
||||
- numtheory
|
||||
- mixedtoken
|
||||
- digits
|
||||
- alphabet
|
||||
- prime
|
||||
- wordlen
|
||||
- roman
|
||||
probe_families:
|
||||
- setops
|
||||
- alphabet
|
||||
- digits
|
||||
ks:
|
||||
- 25
|
||||
- 50
|
||||
- 100
|
||||
- 150
|
||||
epochs_grid:
|
||||
- 2
|
||||
- 3
|
||||
cross:
|
||||
- setops
|
||||
- alphabet
|
||||
k_inherit: 300
|
||||
epochs: 6
|
||||
n_candidates: 6
|
||||
n_test: 100
|
||||
n_probe: 10
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
lora:
|
||||
r: 16
|
||||
alpha: 32
|
||||
output:
|
||||
dir: results/llm_society_v2_calib_c3c_t85e6
|
||||
conf_gate: 0.85
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
# v2 society campaign, seed 1 (prereg tasks/prereg-llm-society-v2.md §3). The PBS array
|
||||
# (hpc/llm_society_v2.pbs) derives one config per (seed, arm) from this template; running it directly
|
||||
# runs all four arms sequentially (the local-GPU hedge).
|
||||
#
|
||||
# CALIBRATION-DEPENDENT FIELDS — set after gates C1/C2 pass, before submission:
|
||||
# families : the 9 selected by stage A pass 2 (C1, gate 0.41) — SET
|
||||
# k_inherit / epochs / conf_gate : from stage B (C2 + C2b), 2026-09-07 — SET
|
||||
experiment: llm_society_v2
|
||||
kind: llm_society_v2
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families: [strings, setops, numtheory, mixedtoken, digits, alphabet, prime, wordlen, roman]
|
||||
agents: 9
|
||||
generations: 12
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.85
|
||||
lam: 0.3
|
||||
max_mate_use: 2
|
||||
n_test: 27 # per family -> 243 overall (SE 0.032)
|
||||
n_val: 13 # per family -> 117 (selection signal)
|
||||
n_conf: 13 # per family, fresh each generation
|
||||
k_inherit: 300 # per family, fresh each generation (C2b: k=300 is the main retention driver)
|
||||
epochs: 3 # child SFT epochs (C2b)
|
||||
conf_gate: 0.85 # confidence-gated inheritance, all arms (C2b mean retention 0.88; C3c: tight gate = 6-epoch retention at 3 epochs)
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
resume: true
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2/s1}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
# v2 society campaign, seed 2 (prereg tasks/prereg-llm-society-v2.md §3). The PBS array
|
||||
# (hpc/llm_society_v2.pbs) derives one config per (seed, arm) from this template; running it directly
|
||||
# runs all four arms sequentially (the local-GPU hedge).
|
||||
#
|
||||
# CALIBRATION-DEPENDENT FIELDS — set after gates C1/C2 pass, before submission:
|
||||
# families : the 9 selected by stage A pass 2 (C1, gate 0.41) — SET
|
||||
# k_inherit / epochs / conf_gate : from stage B (C2 + C2b), 2026-09-07 — SET
|
||||
experiment: llm_society_v2
|
||||
kind: llm_society_v2
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 2
|
||||
families: [strings, setops, numtheory, mixedtoken, digits, alphabet, prime, wordlen, roman]
|
||||
agents: 9
|
||||
generations: 12
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.85
|
||||
lam: 0.3
|
||||
max_mate_use: 2
|
||||
n_test: 27 # per family -> 243 overall (SE 0.032)
|
||||
n_val: 13 # per family -> 117 (selection signal)
|
||||
n_conf: 13 # per family, fresh each generation
|
||||
k_inherit: 300 # per family, fresh each generation (C2b: k=300 is the main retention driver)
|
||||
epochs: 3 # child SFT epochs (C2b)
|
||||
conf_gate: 0.85 # confidence-gated inheritance, all arms (C2b mean retention 0.88; C3c: tight gate = 6-epoch retention at 3 epochs)
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
resume: true
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2/s2}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
# v2 society campaign, seed 3 (prereg tasks/prereg-llm-society-v2.md §3). The PBS array
|
||||
# (hpc/llm_society_v2.pbs) derives one config per (seed, arm) from this template; running it directly
|
||||
# runs all four arms sequentially (the local-GPU hedge).
|
||||
#
|
||||
# CALIBRATION-DEPENDENT FIELDS — set after gates C1/C2 pass, before submission:
|
||||
# families : the 9 selected by stage A pass 2 (C1, gate 0.41) — SET
|
||||
# k_inherit / epochs / conf_gate : from stage B (C2 + C2b), 2026-09-07 — SET
|
||||
experiment: llm_society_v2
|
||||
kind: llm_society_v2
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 3
|
||||
families: [strings, setops, numtheory, mixedtoken, digits, alphabet, prime, wordlen, roman]
|
||||
agents: 9
|
||||
generations: 12
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.85
|
||||
lam: 0.3
|
||||
max_mate_use: 2
|
||||
n_test: 27 # per family -> 243 overall (SE 0.032)
|
||||
n_val: 13 # per family -> 117 (selection signal)
|
||||
n_conf: 13 # per family, fresh each generation
|
||||
k_inherit: 300 # per family, fresh each generation (C2b: k=300 is the main retention driver)
|
||||
epochs: 3 # child SFT epochs (C2b)
|
||||
conf_gate: 0.85 # confidence-gated inheritance, all arms (C2b mean retention 0.88; C3c: tight gate = 6-epoch retention at 3 epochs)
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
resume: true
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2/s3}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
# v2 society campaign, seed 4 (prereg tasks/prereg-llm-society-v2.md §3). The PBS array
|
||||
# (hpc/llm_society_v2.pbs) derives one config per (seed, arm) from this template; running it directly
|
||||
# runs all four arms sequentially (the local-GPU hedge).
|
||||
#
|
||||
# CALIBRATION-DEPENDENT FIELDS — set after gates C1/C2 pass, before submission:
|
||||
# families : the 9 selected by stage A pass 2 (C1, gate 0.41) — SET
|
||||
# k_inherit / epochs / conf_gate : from stage B (C2 + C2b), 2026-09-07 — SET
|
||||
experiment: llm_society_v2
|
||||
kind: llm_society_v2
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 4
|
||||
families: [strings, setops, numtheory, mixedtoken, digits, alphabet, prime, wordlen, roman]
|
||||
agents: 9
|
||||
generations: 12
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.85
|
||||
lam: 0.3
|
||||
max_mate_use: 2
|
||||
n_test: 27 # per family -> 243 overall (SE 0.032)
|
||||
n_val: 13 # per family -> 117 (selection signal)
|
||||
n_conf: 13 # per family, fresh each generation
|
||||
k_inherit: 300 # per family, fresh each generation (C2b: k=300 is the main retention driver)
|
||||
epochs: 3 # child SFT epochs (C2b)
|
||||
conf_gate: 0.85 # confidence-gated inheritance, all arms (C2b mean retention 0.88; C3c: tight gate = 6-epoch retention at 3 epochs)
|
||||
spec_train: 1200
|
||||
spec_epochs: 3
|
||||
resume: true
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2/s4}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
# Smoke test for the v2 society loop: tiny everything, all four arms, resume exercised by the
|
||||
# per-generation checkpoint. ~20 min on a 16 GB GPU. Exit 0 + figure renders = pass.
|
||||
experiment: llm_society_v2_smoke
|
||||
kind: llm_society_v2
|
||||
base_model: Qwen/Qwen2.5-0.5B-Instruct
|
||||
seed: 1
|
||||
families: [lists, roman, binary, setops]
|
||||
agents: 4
|
||||
generations: 2
|
||||
arms: [full, no_grounding, no_sex, no_diversity]
|
||||
g: 0.85
|
||||
lam: 0.3
|
||||
n_test: 8 # per family
|
||||
n_val: 5 # per family
|
||||
n_conf: 5 # per family, fresh each generation
|
||||
k_inherit: 20 # per family
|
||||
epochs: 2
|
||||
spec_train: 120
|
||||
spec_epochs: 2
|
||||
lora: {r: 16, alpha: 32}
|
||||
output: {dir: results/llm_society_v2_smoke}
|
||||
Loading…
Add table
Add a link
Reference in a new issue