Qwen Compiler Multi-Seed Reattribution
The one idea you need
The model writes a fixed 24-step recipe of typed number operations, and a built-in calculator runs it — grading not just the final answer but every intermediate value. Re-running the same training from three different random starting points reveals whether it learns reliably.
The question
Can a small model be trained to reliably write correct 24-step number programs, and does the training schedule you pick actually decide whether it succeeds?
What we found
No. The best schedule averaged 43% correct on plainly worded problems, yet the identical training swung from total failure to 81% just by changing the random starting number — so no schedule earns credit for the wins. Both growing programs from short to long and jumping straight to full length collapsed unpredictably. The seed, not the recipe, decided the outcome.
Why it matters
Before crediting a training trick for a small-model gain, re-run it across several random starting points. One lucky start can look like a breakthrough while the identical recipe flatlines on the next, faking a real effect.
On this page
Results at a glance 7
How to read
Grouped bars along four kinds of test question (plain wording, unfamiliar wording, matched question pairs, unfamiliar pairs); each recipe is a colored bar; height is the share of 24-step programs run correctly. Taller is better.
Takeaway → The grow-from-short recipe is tallest on most groups, yet even its best plain-wording bar sits below half, while training everything at once barely clears the floor.
Data table
| evaluation split | expand-copy | max-24 curriculum | max-24 no curriculum |
|---|---|---|---|
| standard | 43.2% | 14.1% | 0.5% |
| held-out wording | 34.4% | 38.5% | 16.1% |
| paired | 60.4% | 40.1% | 24.5% |
| paired held-out | 40.6% | 22.9% | 9.9% |
Numbers from report table (reports/qwen_compiler_multiseed_reattribution_report.md); also reports/aggregate_final_l24_accuracy.csv
Technical framing
Length-24 program execution accuracy by training arm (mean of 3 seeds) — Copied structural expansion has the best mean on most splits; same-budget no-curriculum training nearly fails on standard wording.
How to read
Bars grouped by random starting point (three of them), each recipe a colored bar; height is share of plainly worded 24-step programs run correctly. Taller is better; equal heights within one color would mean a dependable recipe.
Takeaway → The best recipe goes from zero at one starting point to 81% at another, so a single run tells you almost nothing about the recipe.
Data table
| random seed | expand-copy | max-24 curriculum | max-24 no curriculum |
|---|---|---|---|
| seed 123 | 0% | 23.4% | 0% |
| seed 456 | 48.4% | 1.6% | 0% |
| seed 789 | 81.2% | 17.2% | 1.6% |
Numbers from report table (reports/qwen_compiler_multiseed_reattribution_report.md); also reports/per_seed_final_l24_accuracy.csv
Technical framing
Standard length-24 accuracy per seed: means hide huge seed variance — The best arm ranges from total failure to 81% across seeds, so no single-seed run supports a stable attribution claim.
How to read
For each recipe, two bars: how often the opening run of steps is correct versus how often the entire 24-step program is correct. Height is accuracy; higher is better.
Takeaway → Every recipe gets a long opening run of steps right far more often than the full program, so the failure is finishing consistently, not knowing individual steps.
Data table
| training arm | state-prefix recovery | exact execution |
|---|---|---|
| expand-copy | 87.3% | 43.2% |
| max-24 curriculum | 81.4% | 14.1% |
| max-24 no curriculum | 70% | 0.5% |
Numbers from report table (reports/qwen_compiler_multiseed_reattribution_report.md)
Technical framing
Partial execution is not the bottleneck: state-prefix recovery vs exact execution (standard L24, mean of 3 seeds) — Every arm recovers long state prefixes far more often than exact programs; the failure is late-step global consistency, not local operators.
How to read
Each run (recipe and starting point) has two bars: accuracy on 16-step programs versus 24-step programs. Height is share run correctly; higher is better.
Takeaway → Almost every run nails the 16-step programs but crashes on the 24-step ones, so the trouble is tied to that extra length, not a general inability.
Data table
| Run (arm / seed) | Length 16 | Length 24 |
|---|---|---|
| expand s123 | 100% | 0% |
| expand s456 | 100% | 48.4% |
| expand s789 | 100% | 81.2% |
| curric s123 | 100% | 23.4% |
| curric s456 | 90.6% | 1.6% |
| curric s789 | 100% | 17.2% |
| no-curr s123 | 48.4% | 0% |
| no-curr s456 | 100% | 0% |
| no-curr s789 | 96.9% | 1.6% |
Technical framing
Capability cliff between length 16 and length 24 — Nearly every run solves length-16 programs, then falls off a cliff at length 24 -- the failure is length-specific, not general.
How to read
Lines track, step by step during training, how often the model's intermediate work is right; one line per random starting point. Rising toward the top means training is going well.
Takeaway → All lines climb to near-perfect and look interchangeable, yet their final test scores differ hugely, so a smooth training curve gives no warning of a bad outcome.
Data table
| Training step | Seed 123 | Seed 456 | Seed 789 |
|---|---|---|---|
| 1 | 0% | 0% | 3.1% |
| 50 | 0% | 4.9% | 0% |
| 100 | 32.4% | 0% | 88.9% |
| 150 | 100% | 85.4% | 84.8% |
| 200 | 100% | 100% | 100% |
| 250 | 100% | 100% | 100% |
| 300 | 100% | 93.2% | 100% |
| 301 | 100% | 76.1% | 81.8% |
| 350 | 100% | 100% | 100% |
| 400 | 100% | 100% | 100% |
| 450 | 100% | 100% | 100% |
| 451 | 89.6% | 96.1% | 96.4% |
| 500 | 96.7% | 98.6% | 100% |
| 550 | 100% | 100% | 100% |
| 600 | 100% | 100% | 100% |
| 650 | 100% | 93.5% | 100% |
| 700 | 100% | 100% | 100% |
| 750 | 100% | 85.2% | 100% |
Technical framing
Training looks identical across seeds even when eval collapses — All three curriculum seeds train to near-perfect state accuracy, yet seed 456 scores 1.6% at eval -- the collapse is invisible in training.
How to read
Each run has two bars: accuracy on the plain question wording versus on reworded versions of the same programs. Height is share run correctly; higher is better.
Takeaway → Most runs handle reworded questions far better than plain ones — some near 100% reworded while plain wording is near zero — revealing sensitivity to phrasing.
Data table
| Run (arm / seed) | Standard templates | Paraphrase templates |
|---|---|---|
| expand s123 | 0% | 78.1% |
| expand s456 | 48.4% | 73.4% |
| expand s789 | 81.2% | 98.4% |
| curric s123 | 23.4% | 92.2% |
| curric s456 | 1.6% | 1.6% |
| curric s789 | 17.2% | 98.4% |
| no-curr s123 | 0% | 46.9% |
| no-curr s456 | 0% | 100% |
| no-curr s789 | 1.6% | 0% |
Technical framing
Standard wording is the hardest split: paraphrase templates score far higher — Most runs execute paraphrased length-24 programs far better than standard wording -- some hit 92-100% paraphrase with near-zero standard.
How to read
For each run, two bars: how often a single question is answered correctly versus how often both rewordings of the same program are answered. Height is the rate; higher is better.
Takeaway → The both-versions bar sits well below the single-question bar in nearly every run, so success on a program usually doesn't survive a change of wording.
Data table
| Run (arm / seed) | Single-item accuracy (paired split) | Both paraphrases correct |
|---|---|---|
| expand s123 | 32.8% | 0% |
| expand s456 | 54.7% | 21.9% |
| expand s789 | 93.8% | 90.6% |
| curric s123 | 59.4% | 25% |
| curric s456 | 0% | 0% |
| curric s789 | 60.9% | 21.9% |
| no-curr s123 | 23.4% | 3.1% |
| no-curr s456 | 50% | 3.1% |
| no-curr s789 | 0% | 0% |
Technical framing
Answering both paraphrases of the same program is much rarer than answering one — Pair-level consistency collapses relative to per-item accuracy in every run except the strongest seed (expand_copy 789).
In the author’s words from the Report · “Key Findings”
standard_L24: best mean is expand_copy at 43.2% with 40.9 percentage points seed standard deviation. paired_L24: best mean is expand_copy at 60.4% with 30.9 percentage points seed standard deviation. heldout_L24: best mean is max24_curriculum at 38.5% with 47.9 percentage points seed standard deviation. State-prefix recovery is high even when exact execution fails: standard_L24 ranges from 70.0% mean prefix recovery for max24_no_curriculum to 87.3% for expand_copy. Same-budget no-curriculum training is the weakest standard-L24 arm at 0.5% mean accuracy.
Overview
This standalone experiment tests whether a one-shot executable latent compiler reliably learns length-24 modular programs across random seeds.
The result-bearing arms are:
max24_curriculum: a max-24 compiler trained from the start with staged train lengths.expand_copy: an 8 -> 16 -> 24 expanding compiler where new slots copy the last learned slot.max24_no_curriculum: a max-24 compiler trained on the full length range immediately.
All result-bearing runs use the same seed set across arms. The main report aggregates final length-24 executable accuracy with mean, standard deviation, min, and max across seeds.
Large checkpoints are stored outside this directory:
/workspace/large_artifacts/qwen_compiler_multiseed_reattribution/checkpoints
Primary reports:
reports/qwen_compiler_multiseed_reattribution_report.mdreports/qwen_compiler_multiseed_reattribution_report.html
Report
Rendered from reports/qwen_compiler_multiseed_reattribution_report.md
Question
Does a one-shot executable latent compiler reliably learn length-24 modular programs across random seeds, and which training factor best explains the result: staged length curriculum, copied structural expansion, or same-budget no-curriculum training?
Method
- Each arm uses Qwen/Qwen3-4B with QLoRA and a direct executable compiler head.
- The compiler predicts one initial value and a sequence of typed operation and argument slots.
- A differentiable modular executor supervises final answers and intermediate state traces.
- The same seed set is used for each arm, so the main readout is mean and spread across matched random seeds.
- Evaluation includes standard templates, held-out wording templates, seen-family paired consistency, and held-out paired consistency.
Arms
max24_curriculum: max-24 compiler from the start, with staged train lengths.expand_copy: compiler capacity expands in stages and newly introduced slots copy the last learned slot.max24_no_curriculum: max-24 compiler from the start, trained on the full length range immediately.
Runs
| run | arm | seed | elapsed_sec | stage_max_steps | stage_steps | train_examples | eval_examples | gpu |
|---|---|---|---|---|---|---|---|---|
| main_expand_copy_seed123 | expand_copy | 123 | 1912 | 8,16,24 | 300,150,300 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| main_expand_copy_seed456 | expand_copy | 456 | 1914 | 8,16,24 | 300,150,300 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| main_expand_copy_seed789 | expand_copy | 789 | 1908 | 8,16,24 | 300,150,300 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| main_max24_curriculum_seed123 | max24_curriculum | 123 | 2722 | 24,24,24 | 300,150,300 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| main_max24_curriculum_seed456 | max24_curriculum | 456 | 2721 | 24,24,24 | 300,150,300 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| main_max24_curriculum_seed789 | max24_curriculum | 789 | 2717 | 24,24,24 | 300,150,300 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| main_max24_no_curriculum_seed123 | max24_no_curriculum | 123 | 2691 | 24 | 750 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| main_max24_no_curriculum_seed456 | max24_no_curriculum | 456 | 2693 | 24 | 750 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| main_max24_no_curriculum_seed789 | max24_no_curriculum | 789 | 2695 | 24 | 750 | 512 | 64 | NVIDIA RTX 6000 Ada Generation |
| pilot_expand_copy_seed123 | expand_copy | 123 | 30.61 | 8,16,24 | 4,2,4 | 32 | 8 | NVIDIA RTX 6000 Ada Generation |
| pilot_expand_copy_seed456 | expand_copy | 456 | 30.93 | 8,16,24 | 4,2,4 | 32 | 8 | NVIDIA RTX 6000 Ada Generation |
| pilot_max24_curriculum_seed123 | max24_curriculum | 123 | 52.45 | 24,24,24 | 4,2,4 | 32 | 8 | NVIDIA RTX 6000 Ada Generation |
| pilot_max24_curriculum_seed456 | max24_curriculum | 456 | 53.34 | 24,24,24 | 4,2,4 | 32 | 8 | NVIDIA RTX 6000 Ada Generation |
| pilot_max24_no_curriculum_seed123 | max24_no_curriculum | 123 | 23.18 | 24 | 10 | 32 | 8 | NVIDIA RTX 6000 Ada Generation |
| pilot_max24_no_curriculum_seed456 | max24_no_curriculum | 456 | 23.11 | 24 | 10 | 32 | 8 | NVIDIA RTX 6000 Ada Generation |
| smoke_max24_curriculum_seed123 | max24_curriculum | 123 | 24.01 | 24,24,24 | 1,1,1 | 12 | 4 | NVIDIA RTX 6000 Ada Generation |
Results
Final length-24 executable accuracy, mean +/- standard deviation across seeds:
Key Findings
standard_L24: best mean isexpand_copyat 43.2% with 40.9 percentage points seed standard deviation.paired_L24: best mean isexpand_copyat 60.4% with 30.9 percentage points seed standard deviation.heldout_L24: best mean ismax24_curriculumat 38.5% with 47.9 percentage points seed standard deviation.- State-prefix recovery is high even when exact execution fails:
standard_L24ranges from 70.0% mean prefix recovery formax24_no_curriculumto 87.3% forexpand_copy. - Same-budget no-curriculum training is the weakest standard-L24 arm at 0.5% mean accuracy.
| arm | standard_L24 | heldout_L24 | paired_L24 | paired_heldout_L24 |
|---|---|---|---|---|
| expand_copy | 43.2% +/- 40.9 (0.0-81.2, n=3) | 34.4% +/- 36.9 (7.8-76.6, n=3) | 60.4% +/- 30.9 (32.8-93.8, n=3) | 40.6% +/- 35.8 (9.4-79.7, n=3) |
| max24_curriculum | 14.1% +/- 11.3 (1.6-23.4, n=3) | 38.5% +/- 47.9 (0.0-92.2, n=3) | 40.1% +/- 34.7 (0.0-60.9, n=3) | 22.9% +/- 23.5 (0.0-46.9, n=3) |
| max24_no_curriculum | 0.5% +/- 0.9 (0.0-1.6, n=3) | 16.1% +/- 19.3 (0.0-37.5, n=3) | 24.5% +/- 25.0 (0.0-50.0, n=3) | 9.9% +/- 13.3 (0.0-25.0, n=3) |
Per-seed final length-24 executable accuracy:
| arm | seed | run | standard_L24 | heldout_L24 | paired_L24 | paired_heldout_L24 |
|---|---|---|---|---|---|---|
| expand_copy | 123 | main_expand_copy_seed123 | 0.0% | 18.8% | 32.8% | 9.4% |
| expand_copy | 456 | main_expand_copy_seed456 | 48.4% | 7.8% | 54.7% | 32.8% |
| expand_copy | 789 | main_expand_copy_seed789 | 81.2% | 76.6% | 93.8% | 79.7% |
| max24_curriculum | 123 | main_max24_curriculum_seed123 | 23.4% | 23.4% | 59.4% | 21.9% |
| max24_curriculum | 456 | main_max24_curriculum_seed456 | 1.6% | 0.0% | 0.0% | 0.0% |
| max24_curriculum | 789 | main_max24_curriculum_seed789 | 17.2% | 92.2% | 60.9% | 46.9% |
| max24_no_curriculum | 123 | main_max24_no_curriculum_seed123 | 0.0% | 10.9% | 23.4% | 4.7% |
| max24_no_curriculum | 456 | main_max24_no_curriculum_seed456 | 0.0% | 37.5% | 50.0% | 25.0% |
| max24_no_curriculum | 789 | main_max24_no_curriculum_seed789 | 1.6% | 0.0% | 0.0% | 0.0% |
Exact program recovery, aggregated across seeds:
| arm | standard_L24 | heldout_L24 | paired_L24 | paired_heldout_L24 |
|---|---|---|---|---|
| expand_copy | 42.2% +/- 40.7 (0.0-81.2, n=3) | 32.3% +/- 38.4 (7.8-76.6, n=3) | 59.9% +/- 31.6 (31.2-93.8, n=3) | 39.1% +/- 37.3 (6.2-79.7, n=3) |
| max24_curriculum | 10.4% +/- 9.2 (0.0-17.2, n=3) | 38.0% +/- 48.2 (0.0-92.2, n=3) | 38.5% +/- 33.4 (0.0-59.4, n=3) | 22.4% +/- 22.7 (0.0-45.3, n=3) |
| max24_no_curriculum | 0.0% +/- 0.0 (0.0-0.0, n=3) | 16.1% +/- 19.3 (0.0-37.5, n=3) | 23.4% +/- 25.1 (0.0-50.0, n=3) | 9.9% +/- 13.3 (0.0-25.0, n=3) |
State-prefix recovery, aggregated across seeds:
| arm | standard_L24 | heldout_L24 | paired_L24 | paired_heldout_L24 |
|---|---|---|---|---|
| expand_copy | 87.3% +/- 13.4 (71.7-95.1, n=3) | 70.5% +/- 24.9 (43.7-92.8, n=3) | 92.2% +/- 6.6 (84.6-96.6, n=3) | 78.4% +/- 21.0 (54.9-95.6, n=3) |
| max24_curriculum | 81.4% +/- 8.5 (71.8-87.9, n=3) | 82.7% +/- 13.9 (74.6-98.7, n=3) | 86.8% +/- 11.1 (74.1-93.7, n=3) | 81.6% +/- 8.5 (73.0-89.9, n=3) |
| max24_no_curriculum | 70.0% +/- 8.5 (62.2-79.0, n=3) | 72.0% +/- 6.6 (66.1-79.2, n=3) | 78.0% +/- 9.8 (71.4-89.2, n=3) | 72.2% +/- 9.6 (66.0-83.3, n=3) |
Final split rows:
| arm | seed | run | split | n | executor_accuracy | program_exact | state_prefix_fraction | executor_pair_both_correct | compiler_pair_state_consistency |
|---|---|---|---|---|---|---|---|---|---|
| expand_copy | 123 | main_expand_copy_seed123 | standard_L24 | 64 | 0.0% | 0.0% | 71.7% | ||
| expand_copy | 123 | main_expand_copy_seed123 | paraphrase_L24 | 64 | 78.1% | 71.9% | 97.3% | ||
| expand_copy | 123 | main_expand_copy_seed123 | heldout_L24 | 64 | 18.8% | 12.5% | 43.7% | ||
| expand_copy | 123 | main_expand_copy_seed123 | paired_L24 | 64 | 32.8% | 31.2% | 84.6% | 0.0% | 0.0% |
| expand_copy | 123 | main_expand_copy_seed123 | paired_heldout_L24 | 64 | 9.4% | 6.2% | 54.9% | 0.0% | 0.0% |
| expand_copy | 456 | main_expand_copy_seed456 | standard_L24 | 64 | 48.4% | 45.3% | 95.1% | ||
| expand_copy | 456 | main_expand_copy_seed456 | paraphrase_L24 | 64 | 73.4% | 71.9% | 96.8% | ||
| expand_copy | 456 | main_expand_copy_seed456 | heldout_L24 | 64 | 7.8% | 7.8% | 74.9% | ||
| expand_copy | 456 | main_expand_copy_seed456 | paired_L24 | 64 | 54.7% | 54.7% | 95.3% | 21.9% | 21.9% |
| expand_copy | 456 | main_expand_copy_seed456 | paired_heldout_L24 | 64 | 32.8% | 31.2% | 84.5% | 3.1% | 3.1% |
| expand_copy | 789 | main_expand_copy_seed789 | standard_L24 | 64 | 81.2% | 81.2% | 94.9% | ||
| expand_copy | 789 | main_expand_copy_seed789 | paraphrase_L24 | 64 | 98.4% | 98.4% | 98.4% | ||
| expand_copy | 789 | main_expand_copy_seed789 | heldout_L24 | 64 | 76.6% | 76.6% | 92.8% | ||
| expand_copy | 789 | main_expand_copy_seed789 | paired_L24 | 64 | 93.8% | 93.8% | 96.6% | 90.6% | 93.8% |
| expand_copy | 789 | main_expand_copy_seed789 | paired_heldout_L24 | 64 | 79.7% | 79.7% | 95.6% | 59.4% | 59.4% |
| max24_curriculum | 123 | main_max24_curriculum_seed123 | standard_L24 | 64 | 23.4% | 17.2% | 87.9% | ||
| max24_curriculum | 123 | main_max24_curriculum_seed123 | paraphrase_L24 | 64 | 92.2% | 90.6% | 99.3% | ||
| max24_curriculum | 123 | main_max24_curriculum_seed123 | heldout_L24 | 64 | 23.4% | 21.9% | 74.7% | ||
| max24_curriculum | 123 | main_max24_curriculum_seed123 | paired_L24 | 64 | 59.4% | 56.2% | 93.7% | 25.0% | 18.8% |
| max24_curriculum | 123 | main_max24_curriculum_seed123 | paired_heldout_L24 | 64 | 21.9% | 21.9% | 81.8% | 3.1% | 3.1% |
| max24_curriculum | 456 | main_max24_curriculum_seed456 | standard_L24 | 64 | 1.6% | 0.0% | 71.8% | ||
| max24_curriculum | 456 | main_max24_curriculum_seed456 | paraphrase_L24 | 64 | 1.6% | 0.0% | 73.0% | ||
| max24_curriculum | 456 | main_max24_curriculum_seed456 | heldout_L24 | 64 | 0.0% | 0.0% | 74.6% | ||
| max24_curriculum | 456 | main_max24_curriculum_seed456 | paired_L24 | 64 | 0.0% | 0.0% | 74.1% | 0.0% | 0.0% |
| max24_curriculum | 456 | main_max24_curriculum_seed456 | paired_heldout_L24 | 64 | 0.0% | 0.0% | 73.0% | 0.0% | 0.0% |
| max24_curriculum | 789 | main_max24_curriculum_seed789 | standard_L24 | 64 | 17.2% | 14.1% | 84.6% | ||
| max24_curriculum | 789 | main_max24_curriculum_seed789 | paraphrase_L24 | 64 | 98.4% | 98.4% | 99.9% | ||
| max24_curriculum | 789 | main_max24_curriculum_seed789 | heldout_L24 | 64 | 92.2% | 92.2% | 98.7% | ||
| max24_curriculum | 789 | main_max24_curriculum_seed789 | paired_L24 | 64 | 60.9% | 59.4% | 92.8% | 21.9% | 18.8% |
| max24_curriculum | 789 | main_max24_curriculum_seed789 | paired_heldout_L24 | 64 | 46.9% | 45.3% | 89.9% | 21.9% | 21.9% |
| max24_no_curriculum | 123 | main_max24_no_curriculum_seed123 | standard_L24 | 64 | 0.0% | 0.0% | 62.2% | ||
| max24_no_curriculum | 123 | main_max24_no_curriculum_seed123 | paraphrase_L24 | 64 | 46.9% | 46.9% | 78.8% | ||
| max24_no_curriculum | 123 | main_max24_no_curriculum_seed123 | heldout_L24 | 64 | 10.9% | 10.9% | 66.1% | ||
| max24_no_curriculum | 123 | main_max24_no_curriculum_seed123 | paired_L24 | 64 | 23.4% | 20.3% | 71.4% | 3.1% | 0.0% |
| max24_no_curriculum | 123 | main_max24_no_curriculum_seed123 | paired_heldout_L24 | 64 | 4.7% | 4.7% | 67.2% | 0.0% | 0.0% |
| max24_no_curriculum | 456 | main_max24_no_curriculum_seed456 | standard_L24 | 64 | 0.0% | 0.0% | 79.0% | ||
| max24_no_curriculum | 456 | main_max24_no_curriculum_seed456 | paraphrase_L24 | 64 | 100.0% | 100.0% | 100.0% | ||
| max24_no_curriculum | 456 | main_max24_no_curriculum_seed456 | heldout_L24 | 64 | 37.5% | 37.5% | 79.2% | ||
| max24_no_curriculum | 456 | main_max24_no_curriculum_seed456 | paired_L24 | 64 | 50.0% | 50.0% | 89.2% | 3.1% | 3.1% |
| max24_no_curriculum | 456 | main_max24_no_curriculum_seed456 | paired_heldout_L24 | 64 | 25.0% | 25.0% | 83.3% | 0.0% | 0.0% |
| max24_no_curriculum | 789 | main_max24_no_curriculum_seed789 | standard_L24 | 64 | 1.6% | 0.0% | 68.8% | ||
| max24_no_curriculum | 789 | main_max24_no_curriculum_seed789 | paraphrase_L24 | 64 | 0.0% | 0.0% | 77.5% | ||
| max24_no_curriculum | 789 | main_max24_no_curriculum_seed789 | heldout_L24 | 64 | 0.0% | 0.0% | 70.8% | ||
| max24_no_curriculum | 789 | main_max24_no_curriculum_seed789 | paired_L24 | 64 | 0.0% | 0.0% | 73.3% | 0.0% | 0.0% |
| max24_no_curriculum | 789 | main_max24_no_curriculum_seed789 | paired_heldout_L24 | 64 | 0.0% | 0.0% | 66.0% | 0.0% | 0.0% |
Figures






Interpretation
On the standard length-24 split, the strongest mean arm is expand_copy at 43.2% with 40.9 percentage points of seed standard deviation. The decisive criterion is whether the arm ranking remains stable across seeds and whether any arm's seed spread is large enough to make a single-seed conclusion unreliable. The observed spread is large enough that no single seed supports a stable attribution claim. Copied expansion has the best mean in this seed set, but it ranges from complete standard-L24 failure to strong performance. Full-width curriculum is also unstable, and no-curriculum training is especially weak on standard-L24 despite sometimes doing well on other wording splits. A second conclusion is that partial execution is not the bottleneck: every arm recovers long state prefixes far more often than it recovers exact length-24 programs. The remaining failure is late-step/global program consistency, not the absence of local operator knowledge.
Artifacts
- Run outputs:
experiments/qwen_compiler_multiseed_reattribution/runs/ - Reports and figures:
experiments/qwen_compiler_multiseed_reattribution/reports/ - Large checkpoints:
large_artifacts/qwen_compiler_multiseed_reattribution/checkpoints/
Experiment log 4
Show the running log (4 entries, 2026-06-24)
2026-06-24
- Created a fresh standalone multi-seed reattribution experiment directory.
- Core question: does the executable latent compiler's length-24 performance remain stable across random seeds, and which controlled arm has the best mean behavior?
Result-bearing arms:
max24_curriculumexpand_copymax24_no_curriculum
- Matched seed set planned for main:
123,456,789. - Large checkpoints are configured under
/workspace/large_artifacts/qwen_compiler_multiseed_reattribution/checkpoints. Planned process:
- Smoke: one tiny run to validate the forked trainer, seed columns, report generation, and artifact paths.
- Pilot: reduced two-seed, three-arm grid to validate aggregation and charts before the long run.
- Main: three arms times three seeds, then final Markdown and HTML reports with variance charts.
Smoke
- Command:
python src/run_multiseed_suite.py --phase smoke --seeds 123,456,789 --arms max24_curriculum,expand_copy,max24_no_curriculum - Completed run:
smoke_max24_curriculum_seed123 - Outcome: passed.
Verified:
- The forked trainer loads Qwen/Qwen3-4B, attaches QLoRA, trains through staged max-24 curriculum, and writes run CSV/JSON outputs.
seedis present in run metadata.- The analysis script writes both Markdown and HTML reports.
- Large artifact path is configured separately; smoke used
--save_checkpoints 0, so no large files were produced.
Pilot
- First pilot attempt caught a runner bug before any result-bearing run: the reduced pilot override supplied three stage-step counts to the one-stage
max24_no_curriculumarm. - Fix: preserve each arm's stage structure in the runner; one-stage arms now receive a single reduced pilot budget.
- Corrected pilot command:
python src/run_multiseed_suite.py --phase pilot --seeds 123,456,789 --arms max24_curriculum,expand_copy,max24_no_curriculum Completed runs:
pilot_max24_curriculum_seed123pilot_expand_copy_seed123pilot_max24_no_curriculum_seed123pilot_max24_curriculum_seed456pilot_expand_copy_seed456pilot_max24_no_curriculum_seed456
- Outcome: passed after the runner fix.
Verified:
- The analyzer aggregates by arm and seed.
- Diagnostic Markdown/HTML reports are generated.
- Figures are generated: mean accuracy with seed spread, per-seed heatmap, standard accuracy by seed, length curve, training loss, and training state accuracy.
- Interpretation: pilot rows are diagnostic only and are not result-bearing.
Main
- Planned command:
python src/run_multiseed_suite.py --phase main --seeds 123,456,789 --arms max24_curriculum,expand_copy,max24_no_curriculum - Main configuration: Qwen/Qwen3-4B QLoRA, 512-wide compiler, LoRA rank 8, batch 8, 512 train examples, 64 examples per single-template split, 32 paired examples per paired split.
- Completed command:
python src/run_multiseed_suite.py --phase main --seeds 123,456,789 --arms max24_curriculum,expand_copy,max24_no_curriculum Completed runs:
main_max24_curriculum_seed123main_expand_copy_seed123main_max24_no_curriculum_seed123main_max24_curriculum_seed456main_expand_copy_seed456main_max24_no_curriculum_seed456main_max24_curriculum_seed789main_expand_copy_seed789main_max24_no_curriculum_seed789
- Outcome: all nine result-bearing runs completed and the analysis step passed.
Final standard-L24 executable accuracy, mean +/- seed std:
expand_copy: 43.2% +/- 40.9, range 0.0% to 81.2%.max24_curriculum: 14.1% +/- 11.3, range 1.6% to 23.4%.max24_no_curriculum: 0.5% +/- 0.9, range 0.0% to 1.6%.
Final paired-L24 executable accuracy, mean +/- seed std:
expand_copy: 60.4% +/- 30.9.max24_curriculum: 40.1% +/- 34.7.max24_no_curriculum: 24.5% +/- 25.0.
Key interpretation:
- Copied expansion has the best mean in this seed set, but the seed spread is very large.
- No-curriculum training is weak on standard L24 even when some wording splits score much higher.
- High state-prefix recovery does not reliably translate into exact length-24 program recovery.
- Single-seed results are not sufficient for attribution in this harness.
Reports:
reports/qwen_compiler_multiseed_reattribution_report.mdreports/qwen_compiler_multiseed_reattribution_report.htmlreports/checkpoint_manifest_all.csv
Figures 6
Data files 24
Result tables and metrics copied from the experiment folder — preview inline or open the raw file.
reports/aggregate_metrics.csv91 kBruns/main_expand_copy_seed123/metrics.csv5.7 kBruns/main_expand_copy_seed123/results.json37 kBruns/main_expand_copy_seed456/metrics.csv5.8 kBruns/main_expand_copy_seed456/results.json37 kBruns/main_expand_copy_seed789/metrics.csv5.8 kBruns/main_expand_copy_seed789/results.json37 kBruns/main_max24_curriculum_seed123/metrics.csv9.4 kBruns/main_max24_curriculum_seed123/results.json49 kBruns/main_max24_curriculum_seed456/metrics.csv9.6 kBruns/main_max24_curriculum_seed456/results.json49 kBruns/main_max24_curriculum_seed789/metrics.csv9.3 kBruns/main_max24_curriculum_seed789/results.json49 kBruns/main_max24_no_curriculum_seed123/metrics.csv3.6 kBruns/main_max24_no_curriculum_seed123/results.json24 kBruns/main_max24_no_curriculum_seed456/metrics.csv3.3 kBruns/main_max24_no_curriculum_seed456/results.json23 kBruns/main_max24_no_curriculum_seed789/metrics.csv3.5 kBruns/main_max24_no_curriculum_seed789/results.json24 kBruns/pilot_expand_copy_seed123/metrics.csv5.3 kBruns/pilot_expand_copy_seed123/results.json28 kBruns/pilot_expand_copy_seed456/metrics.csv5.3 kBruns/pilot_expand_copy_seed456/results.json28 kBruns/pilot_max24_curriculum_seed123/metrics.csv8.4 kB
9 more result files not shown here — browse the full folder on GitHub.
Reproduce
This entry is source code or analysis only — there is no separate run to reproduce.