Continued whole-game evolution of the depth-5-distilled NNUE leaf from the first run's generation-60 population, with annealed mutation and a preregistered plateau stop (up to 1,000 generations)
Successor experiment to EX-20260902-nnue-evolution-d3-v2-49c18bc2 (result RS-20260903T025751Z-6577b33e: the 60-generation candidate lost its held-out screen to the frozen fair leaf by -106,964 paired points while beating its own unevolved warm start by +35,375, and the paired margin over the fair control was still rising at generation 60: OLS slope over the 60 generations +676 points per generation, one-sided 95% lower bound +200).
On this page
- Created
- Updated
No explanation has been written for this record yet.
Technical recordThe registered protocol
- Hypothesis
- Successor experiment to EX-20260902-nnue-evolution-d3-v2-49c18bc2 (result RS-20260903T025751Z-6577b33e: the 60-generation candidate lost its held-out screen to the frozen fair leaf by -106,964 paired points while beating its own unevolved warm start by +35,375, and the paired margin over the fair control was still rising at generation 60: OLS slope over the 60 generations +676 points per generation, one-sided 95% lower bound +200). Question: with a much longer budget and an annealed mutation size, does whole-game evolution with common random numbers keep improving the depth-3 NNUE leaf, where does the improvement plateau, and does the plateau candidate beat the frozen fair leaf on never-read games? Candidate: the identical deployed configuration (stock fair expectimax, depth 3, seven chance strata, terminal utility -1,000,000, policy seed 0xd7075eed, completion-guaranteeing work bound, 64k-entry table, NNUE leaf 8,902-feature sparse class, 135 active, EmbeddingBag(8902,64)->ReLU->32->ReLU->1, x17,000 points). Starting population: the 32 vectors of runs/RUN-20260902T035644Z-c1fd8987/nnue-evolution/evolve/population-060.bin, the population the first run's generation-59 selection produced and never evaluated (SHA-256 3da5021531898f08254d35cad5486fbbc12092770216bcdaea988d3724422cb8); generation 0 of this run plays it exactly as saved (no re-noising). GA per generation, unchanged from the first run except where stated: population 32; every candidate plays the same fresh block of 32 training seeds, generation g playing [0xa52e2000 + 32 g, +32); fitness = mean final score of the 32 complete games (2,000-move cap); 4 elites cloned; the other 28 slots filled by tournaments of 3 whose winner is copied and mutated per tensor with Gaussian noise; evolution seed 0x0e701e59 (fresh, so no mutation realisation of the first run repeats). Annealed mutation (new): sigma_rel(g) = max(0.01, 0.05 x exp(-g / 400)), i.e. equal to the first run's constant 0.05 at g = 0, 0.030 at g = 200, 0.018 at g = 400, and the 0.01 floor from g = 644 onward (per-tensor sigma = sigma_rel x tensor std, floor 1e-4, as before). Three paired controls play every block and are never selected: the frozen fair leaf (control-fair-d3s7), the first run's supervised warm start (artifacts/results/EX-20260902-nnue-evolution-d3-v2-49c18bc2/RUN-20260902T035644Z-c1fd8987/pretrain/init.bin, SHA-256 7d6fa5563de6716a4a895fb224bbe7f81c568391b6b737f85acc110872c075e0; control-init-d3s7) and the first run's frozen screened candidate (artifacts/results/EX-20260902-nnue-evolution-d3-v2-49c18bc2/RUN-20260902T035644Z-c1fd8987/evolve/candidate-weights.bin, SHA-256 edd0d2efd181de43f35d62c4df784cb2c789db3ae296be93a1c6c59082034a9f; control-baseline-d3s7), the last being the direct paired measure of improvement over where this run started. Preregistered plateau stop (new; the owner's request was to keep evolving as long as the last 50-100 generations show noticeable improvement): the tracked statistic is the paired margin m_g = population mean fitness minus the fair control on generation g's block. After every 50th completed generation from the 100th onward, ordinary least squares regresses m over generation index across the last 100 generations; the run stops when the slope's one-sided 95% lower bound (slope - 1.645 x standard error, residual-based, n-2 degrees of freedom) is not greater than zero, i.e. when 100 generations show no detectable improvement. Every check is appended to plateau.jsonl and a stop writes the PLATEAU marker. Sensitivity, from the first run's artifacts: the residual scatter of m_g about its trend was 38,813 points, at which a 100-generation window detects slopes of about 221 points per generation (22,100 per 100 generations); the first run's own slope of 676 would not have stopped it. Other stops: 1,000 generations; a 259,200 s (72 h) evolve wall budget; a STOP file. Final candidate: the top 8 of the last completed generation each replay the 128 fresh training seeds immediately after the last fitness block played (so an early stop still re-selects on fresh seeds inside the lease); the highest mean is frozen as candidate-weights.bin and its SHA-256 recorded before the screen lease opens. Held-out screen, once: 64 never-read public-development seeds 0xa52ea000-0xa52ea03f, five arms on identical seeds: candidate, baseline-run1 (the first run's frozen candidate), init-d3s7 (the first run's warm start), fair-d3s7 (the primary comparator, identical search) and fair-d4s7 (the program's standing reference, diagnostic only). Primary contrast candidate minus fair-d3s7 as in the first run's gate; preregistered secondary contrast candidate minus baseline-run1, the out-of-sample measure of what the continuation added. Operational: 32 threads (the first run's SMT preflight), every stage through scripts/pipeline.sh (env: EXPERIMENT_ID, LEASE_START 0xa52e2000, SCREEN_START 0xa52ea000, GENERATIONS 1000, EVOLVE_SEED 0x0e701e59, RESUME_POP, BASELINE, INIT, SIGMA_TAU 400, SIGMA_FLOOR 0.01, PLATEAU_WINDOW 100, PLATEAU_EVERY 50, PLATEAU_MIN 100, EVOLVE_WALL 259200) with per-stage rusage; the evolve binary's checkpoint contract (population-{g+1}.bin before gen-{g}.json) makes the run resumable after a kill without replaying a block. The first run's chain faults are addressed: the driver is not edited while a stage runs.
- Arms
Arm Name Entry point Manifest Candidate d3s7-evolved-nnue-leaf-continued approaches/lifetime-objective/nnue-evolution/src/bin/evolve.rs– Comparator fair-d3s7 approaches/fair-expectimax/rust-engine/src/leaf.rsresearch/benchmarks/baselines-v1.json- Classification
- algorithmic
- Information boundary
- public-policy
- Benchmark tier
- SCREEN
- Lifecycle
- completed
- Theories tested
- Primary metric
- paired mean whole-game score delta, continued candidate minus frozen fair leaf, both at the identical d3s7 configuration, 64 held-out games
- Secondary metrics
- paired mean score delta, continued candidate minus the first run's frozen candidate (baseline-run1), same 64 games: what the continuation added out of sample
- paired mean moves delta; numbered clears per move and cover reveals per move; lower quartile, median, maximum; W-T-L; first-half and second-half deltas, for every arm pair
- training curve: per-generation population mean, top-4 mean, best, and the three paired controls; the plateau statistic m_g and every plateau check (slope, standard error, lower bound); the generation at which the run stopped and why
- ten-generation block averages of population mean minus each control, continuing the first run's table
- reference arm fair-d4s7 vs fair-d3s7, diagnostic only
- Statistical unit
- whole-game
- Uncertainty method
- one-sided 95% percentile bootstrap over whole games, 20,000 resamples, RNG seed 0xb0071eaf (the unchanged compare.py), plus a one-sided 95% Student-t lower bound; detection floor 1.645*sd/sqrt(n) reported; plateau rule as stated in the hypothesis
- Data role
- public-development
- Seed leases
SL-20260903T033000Z-a52e2000SL-20260903T033000Z-a52ea000
- Whole-origin split
- yes
- Reuse disclosure
- The starting population, the warm-start control and the baseline control are products of EX-20260902-nnue-evolution-d3-v2-49c18bc2's training data (lease SL-20260825T063000Z-a52e0300), already read; no seed of that lease is read again. CHECK gates for the rebuilt binaries and a 3-generation smoke test of the new flags (population 32, 2 games, 60-move cap) read only the already-opened development probe block 0xa5277000-0xa5277107. Fitness blocks and the re-selection open training-lease seeds 0xa52e2000-0xa52ea000 (1,000 blocks of 32 = 32,000 seeds plus 128 re-selection seeds; the 640 seeds above 32,128 stay unopened); the screen opens 0xa52ea000-0xa52ea03f exactly once, after the candidate is frozen. Neither range contains any 8-hex-digit constant present in docs/, approaches/, src/, research/, artifacts/ or web/content/ (checked 2026-09-03), and both are disjoint from every existing lease.
- Pass criteria
- All 11 CHECK gates passed on the rebuilt binaries before the first leased seed was read (gates.log in the run directory).
- Every generation artifact and the screen artifact have illegalDecisions 0, incompleteDecisions 0, and censored games reported as censored.
- Held-out screen, 64 paired games on 0xa52ea000-0xa52ea03f, candidate vs fair-d3s7: bootstrap 95% lower bound of the paired score delta > 0 AND Student-t 95% lower bound > 0.
- Held-out screen: paired mean score delta > 0 in both halves (seeds 0-31 and 32-63).
- Held-out screen: candidate lower-quartile score >= fair-d3s7 lower-quartile score.
- The screened candidate is the exact frozen winner of the elite re-selection (candidate-weights.bin, SHA-256 recorded before the screen lease opens); no other vector is screened.
- Reported alongside the gate, not part of it: candidate vs baseline-run1 bootstrap 95% lower bound > 0 establishes that the continuation improved the leaf out of sample; the generation of the stop and the plateau statistics establish where the training curve levelled.
- On pass
- Freeze candidate-weights.bin with its SHA-256; register a fresh-block replication by a different runner and a fresh-development STANDARD evaluation as successors; do not open protected or final seeds.
- On fail
- Record a valid run with scientific outcome fail for this configuration (this model class, this population and games-per-candidate budget, this annealing schedule, deployment depth 3), reporting separately whether the continuation beat the first run's candidate and at what generation the curve plateaued; do not adopt the vector; open no further cohort for it.
- Gate fixed before controlled data
- yes
- Resources
Wall seconds 275000 CPU threads 32 Max host bytes 17179869184 Max GPU bytes – GPU devices – - Stop conditions
- Stop on any rules, information-boundary, legality, determinism, or parity failure.
- Evolution stops at the preregistered plateau rule (one-sided 95% lower bound of the OLS slope of the paired margin over the fair control across the last 100 generations <= 0, checked after every 50th completed generation from the 100th), at 1,000 generations, at 259,200 s of evolve wall time, or when a STOP file appears; the candidate is then the elite re-selection over the last completed generation's population on the 128 seeds following the last fitness block.
- A generation or screen artifact with any illegal or incomplete decision voids the run (invalid), not the candidate.
- The screen is evaluated exactly once; no re-run on the same or a different held-out block without a new experiment record.
- The run may be killed and resumed at a generation boundary (checkpoint contract); a resume replays no seed and is recorded in the run record.
- Expected artifacts
runs/<run-id>/nnue-evolution/gates.log (CHECK, rebuilt binaries)runs/<run-id>/nnue-evolution/evolve/{config.json (with resumePopulationSha256 and baselineSha256),progress.jsonl (per generation: best, mean, controlFair, controlInit, controlBaseline, sigmaRel, fitness[]),plateau.jsonl,PLATEAU (if the rule stopped the run),gen-*.json,population-*.bin,final-fitness.json,candidate-weights.bin,candidate-weights.sha256,selection.json}runs/<run-id>/nnue-evolution/screen/heldout.json (five arms) + compare-{candidate-vs-fair-d3s7,candidate-vs-baseline-run1,baseline-run1-vs-fair-d3s7,init-vs-fair-d3s7,candidate-vs-init,fair-d4s7-vs-fair-d3s7}.jsonruns/<run-id>/nnue-evolution/{pipeline.log,rusage.jsonl,evolve.log,select.log,screen.log,analysis.json,analysis.md}artifacts emitted by evolve and screen carry this experiment id in their config field
- Amendments
Timestamp Before controlled data Reason 2026-09-03T16:33:21Z no lifecycle advanced preregistered -> completed after run RUN-20260903T032832Z-a76a6cf7 and result RS-20260903T163321Z-733076b5 were written; protocol content otherwise unchanged. The preregistration hash 9a094a0a9e39eac372bfa7366ffadec440e4e68b207299d613a10c9cad99466a is retained in the run and lease records.
Technical recordResults recorded against this protocol
Valid run of the frozen protocol EX-20260903-nnue-evolution-continuation-d3-f8ce9181 (successor to RS-20260903T025751Z-6577b33e), every stage completed, every artifact with zero illegal and zero incomplete decisions. Stage C resumed from the first run's checkpointed generation-60 population (SHA-256 3da5021531898f08254d35cad5486fbbc12092770216bcdaea988d3724422cb8) with the first run's frozen candidate (SHA-256 edd0d2efd181de43f35d62c4df784cb2c789db3ae296be93a1c6c59082034a9f) as a third paired control and an annealed mutation size (sigma_rel from 0.05, time constant 400 generations, floor 0.01; it reached 0.0345 at the last generation). The preregistered plateau rule stopped the run after generation 149: the first check after generation 99 found the paired margin over the fair control rising at +238.6 points per generation (standard error 127.1, one-sided 95% lower bound +29.6) and continued; the second, after generation 149, found +37.3 per generation (standard error 119.3, lower bound -158.9), no detectable improvement over generations 50-149, and stopped. Fifty-generation averages of the population mean: 204,748, 228,706, 237,946; paired margin over the first run's candidate +8,982, +36,076, +45,613; over the fair control -116,503, -99,833, -88,948. The best candidate beat the fair control on 9 of 150 blocks (generations 59, 66, 73, 97, 100, 109, 115, 125, 137); the population mean beat it on none, so the theory's training-signal falsifier fails again (mean above fair in 0 of the last 10, margin -98,026). Elite re-selection on 128 fresh games (0xa52e32c0) froze candidate-12 at 264,466 (finalists 228,212 to 264,466). Stage D, 64 never-read games (0xa52ea000, opened once at 2026-09-03T16:21:00Z after the candidate's SHA-256 was recorded), five arms: the continued candidate averaged 251,667 against the frozen fair leaf's 320,108 at the identical depth-3 configuration, paired -68,441 (bootstrap 95% bounds -112,090 to -26,694, Student-t lower bound -112,274, floor 43,193), W-T-L 25-0-39, halves -112,383 / -24,500, lower quartile 171,440 against 189,414: every screen criterion fails, scientific outcome fail for this configuration. The preregistered secondary contrast answers the continuation's own question: the continued candidate beat the first run's frozen candidate on the same seeds by +36,278 (bootstrap lower bound +9,085, Student-t lower bound +8,543, floor 27,330, W-T-L 41-0-23, halves -7,140 / +79,697), so 150 further generations improved the leaf out of sample, by about a third of the remaining distance. The first run's candidate reproduced its earlier result on fresh seeds: -104,719 against the fair leaf here (lower bound -143,479) against -106,964 on the first screen. Over the warm start the continued candidate is +107,994 (lower bound +82,769, W-T-L 54-0-10). The reference arm gave fair depth 4 over fair depth 3 +71,799 (lower bound +25,857). Read: whole-game evolution keeps improving the leaf until roughly generation 100 of the continuation and then levels off about 70,000 paired points short of the frozen fair leaf on held-out games; the claim is not supported at this budget, and the plateau is the new fact. Whether the levelling is a property of the leaf class or of the annealed step size cannot be separated in this design.
- ✓All 11 CHECK gates passed on the rebuilt binaries before the first leased seed was read — observed: ALL GATES PASSED (gates.log), 13/13 unit tests, smoke test of every new flag on the already-open probe block
- ✓Every generation artifact and the screen artifact: illegalDecisions 0, incompleteDecisions 0, censored games reported — observed: 150 generation artifacts: 0 illegal, 0 incomplete, 0 censored; screen: 0 illegal, 0 incomplete, 0 censored in all five arms
- ✕Held-out screen, candidate vs fair-d3s7: bootstrap 95% lower bound of the paired score delta > 0 AND Student-t 95% lower bound > 0 — observed: delta -68,441; bootstrap LB -112,090, UB -26,694; t LB -112,274; paired sd 210,055; floor 43,193; W-T-L 25-0-39
- ✕Held-out screen: paired mean score delta > 0 in both halves — observed: first half -112,383, second half -24,500
- ✕Held-out screen: candidate lower-quartile score >= fair-d3s7 lower-quartile score — observed: candidate Q25 171,440 vs fair-d3s7 Q25 189,414 (delta -17,974)
- ✓The screened candidate is the exact frozen winner of the elite re-selection; SHA-256 recorded before the screen lease opened — observed: candidate-12 of generation 149, mean 264,466 over 128 fresh games at 0xa52e32c0; sha256 759084fab97599818d01a5da6d18b9cc77172249f09a68d5104361bca385e09b; lease opened 2026-09-03T16:21:00Z by the screen stage
- ✓Reported alongside the gate: candidate vs baseline-run1 bootstrap 95% lower bound > 0 (the continuation improved the leaf out of sample) — observed: delta +36,278; bootstrap LB +9,085, UB +63,768; t LB +8,543; floor 27,330; W-T-L 41-0-23; halves -7,140 / +79,697 (the first half alone is negative)
- –Reported alongside the gate: the generation of the stop and the plateau statistics — observed: stopped by the plateau rule after generation 149 (150 completed): check after generation 99 slope +238.6/gen, se 127.1, LB +29.6 (continue); after generation 149 slope +37.3/gen, se 119.3, LB -158.9 (stop); window means -99,833 then -88,948
- ✕Theory falsifier (training signal): population mean fitness > paired fair-d3s7 control in the majority of the final 10 generations — observed: mean above fair in 0/10, best in 0/10; mean margin -98,026; best candidate above fair on 9 of 150 blocks
Technical recordRecorded metrics
- seedsStartHex
- 0xa52ea000
- games
- 64
- moveCap
- 2,000
- role
- public-development, never read before this screen (lease SL-20260903T033000Z-a52ea000, opened once)
- candidate
- games
- 64
- mean
- 251667.3906
- median
- 224340.5000
- q25
- 171439.7500
- max
- 571,367
- movesMean
- 75.3594
- clearsPerMove
- 1.8868
- revealsPerMove
- 1.0404
- censored
- 0
- illegal
- 0
- incomplete
- 0
- wallSeconds
- 576.4845
- baseline-run1
- games
- 64
- mean
- 215389.0156
- median
- 185101.5000
- q25
- 138371.7500
- max
- 505,061
- movesMean
- 65.3281
- clearsPerMove
- 1.7898
- revealsPerMove
- 0.9589
- censored
- 0
- illegal
- 0
- incomplete
- 0
- wallSeconds
- 502.0007
- init-d3s7
- games
- 64
- mean
- 143673.7031
- median
- 123,543
- q25
- 106999.5000
- max
- 341,054
- movesMean
- 45.3125
- clearsPerMove
- 1.5124
- revealsPerMove
- 0.7314
- censored
- 0
- illegal
- 0
- incomplete
- 0
- wallSeconds
- 331.6452
- fair-d3s7
- games
- 64
- mean
- 320108.4844
- median
- 276826.5000
- q25
- 189,414
- max
- 940,703
- movesMean
- 94.1719
- clearsPerMove
- 1.9935
- revealsPerMove
- 1.1120
- censored
- 0
- illegal
- 0
- incomplete
- 0
- wallSeconds
- 272.6142
- fair-d4s7
- games
- 64
- mean
- 391907.1719
- median
- 351,132
- q25
- 215822.7500
- max
- 962,024
- movesMean
- 113.2813
- clearsPerMove
- 2.0526
- revealsPerMove
- 1.1506
- censored
- 0
- illegal
- 0
- incomplete
- 0
- wallSeconds
- 11087.7038
- candidate-vs-fair-d3s7
- meanDelta
- -68441.0938
- bootstrapLower95
- -112089.9094
- bootstrapUpper95
- -26693.8359
- studentTLower95
- -112274.3615
- pairedSd
- 210054.9151
- detectionFloor
- 43192.5419
- wtl
- 25
- 0
- 39
- halves
- -112382.5625
- -24499.6250
- q25Delta
- -17974.2500
- movesDelta
- -18.8125
- init-vs-fair-d3s7
- meanDelta
- -176434.7813
- bootstrapLower95
- -213633.3297
- bootstrapUpper95
- -140506.4984
- studentTLower95
- -214034.1823
- pairedSd
- 180181.3872
- detectionFloor
- 37049.7977
- wtl
- 8
- 0
- 56
- halves
- -178178.6250
- -174690.9375
- q25Delta
- -82414.5000
- movesDelta
- -48.8594
- candidate-vs-init
- meanDelta
- 107993.6875
- bootstrapLower95
- 82769.3031
- bootstrapUpper95
- 133701.0930
- studentTLower95
- 82118.8189
- pairedSd
- 123995.8508
- detectionFloor
- 25496.6468
- wtl
- 54
- 0
- 10
- halves
- 65796.0625
- 150191.3125
- q25Delta
- 64440.2500
- movesDelta
- 30.0469
- fair-d4s7-vs-fair-d3s7
- meanDelta
- 71798.6875
- bootstrapLower95
- 25857.3078
- bootstrapUpper95
- 119451.2141
- studentTLower95
- 23285.7939
- pairedSd
- 232480.3118
- detectionFloor
- 47803.7641
- wtl
- 39
- 0
- 25
- halves
- 31746.1563
- 111851.2188
- q25Delta
- 26408.7500
- movesDelta
- 19.1094
- candidate-vs-baseline-run1
- meanDelta
- 36278.3750
- bootstrapLower95
- 9085.1570
- bootstrapUpper95
- 63768.1234
- studentTLower95
- 8543.2666
- pairedSd
- 132910.3700
- detectionFloor
- 27329.6948
- wtl
- 41
- 0
- 23
- halves
- -7139.9375
- 79696.6875
- q25Delta
- 33,068
- movesDelta
- 10.0313
- baseline-run1-vs-fair-d3s7
- meanDelta
- -104719.4688
- bootstrapLower95
- -143478.7719
- bootstrapUpper95
- -67444.3852
- studentTLower95
- -143894.5037
- pairedSd
- 187732.0370
- detectionFloor
- 38602.4001
- wtl
- 20
- 0
- 44
- halves
- -105242.6250
- -104196.3125
- q25Delta
- -51042.2500
- movesDelta
- -28.8438
- generationsCompleted
- 150
- stoppedOnPlateau
- true
- plateauChecks
- generation
- 99
- window
- 100
- slopePerGeneration
- 238.6249
- standardError
- 127.0788
- lowerBound95
- 29.5988
- windowMeanFirstHalf
- -116503.0471
- windowMeanSecondHalf
- -99833.0190
- stop
- false
- generation
- 149
- window
- 100
- slopePerGeneration
- 37.3143
- standardError
- 119.2761
- lowerBound95
- -158.8775
- windowMeanFirstHalf
- -99833.0190
- windowMeanSecondHalf
- -88948.3871
- stop
- true
- fiftyGenerationBlockAverages
- generations
- 0-49
- populationMean
- 204747.8623
- best
- 242098.4525
- meanMinusFair
- -116503.0471
- bestMinusFair
- -79152.4569
- meanMinusBaseline
- 8982.3529
- bestMinusBaseline
- 46332.9431
- sigmaAtEnd
- 0.0442
- generations
- 50-99
- populationMean
- 228705.8372
- best
- 275125.1206
- meanMinusFair
- -99833.0190
- bestMinusFair
- -53413.7356
- meanMinusBaseline
- 36076.1941
- bestMinusBaseline
- 82495.4775
- sigmaAtEnd
- 0.0390
- generations
- 100-149
- populationMean
- 237945.8410
- best
- 285994.4269
- meanMinusFair
- -88948.3871
- bestMinusFair
- -40899.8012
- meanMinusBaseline
- 45613.4210
- bestMinusBaseline
- 93662.0069
- sigmaAtEnd
- 0.0345
- tenGenerationBlocks
- generations
- 0-9
- populationMean
- 198114.0884
- top4Mean
- 221970.0750
- best
- 229839.3250
- meanMinusFair
- -123398.6366
- bestMinusFair
- -91673.4000
- meanMinusInit
- 49351.0696
- meanMinusBaseline
- -3548.5304
- generations
- 10-19
- populationMean
- 202549.9282
- top4Mean
- 231257.9602
- best
- 242869.1125
- meanMinusFair
- -138529.6343
- bestMinusFair
- -98210.4500
- meanMinusInit
- 52363.4938
- meanMinusBaseline
- 16067.6188
- generations
- 20-29
- populationMean
- 203141.2692
- top4Mean
- 228807.5289
- best
- 237100.1719
- meanMinusFair
- -92208.5808
- bestMinusFair
- -58249.6781
- meanMinusInit
- 49689.4161
- meanMinusBaseline
- 5352.8380
- generations
- 30-39
- populationMean
- 206259.3706
- top4Mean
- 236366.9516
- best
- 244948.4188
- meanMinusFair
- -118918.7013
- bestMinusFair
- -80229.6531
- meanMinusInit
- 52443.9112
- meanMinusBaseline
- 12523.5987
- generations
- 40-49
- populationMean
- 213674.6552
- top4Mean
- 243235.7219
- best
- 255735.2344
- meanMinusFair
- -109459.6823
- bestMinusFair
- -67399.1031
- meanMinusInit
- 58796.8646
- meanMinusBaseline
- 14516.2396
- generations
- 50-59
- populationMean
- 225622.1756
- top4Mean
- 258711.7734
- best
- 269100.2500
- meanMinusFair
- -86547.8275
- bestMinusFair
- -43069.7531
- meanMinusInit
- 73783.6818
- meanMinusBaseline
- 24289.6631
- generations
- 60-69
- populationMean
- 219346.4406
- top4Mean
- 252135.9828
- best
- 263647.7344
- meanMinusFair
- -106459.8656
- bestMinusFair
- -62158.5719
- meanMinusInit
- 73687.9219
- meanMinusBaseline
- 33851.7719
- generations
- 70-79
- populationMean
- 231187.5366
- top4Mean
- 265508.5672
- best
- 274636.9562
- meanMinusFair
- -85917.9884
- bestMinusFair
- -42468.5687
- meanMinusInit
- 80509.0147
- meanMinusBaseline
- 31926.8991
- generations
- 80-89
- populationMean
- 233843.3086
- top4Mean
- 268375.5172
- best
- 281134.5187
- meanMinusFair
- -101265.8602
- bestMinusFair
- -53974.6500
- meanMinusInit
- 79471.4273
- meanMinusBaseline
- 45444.1617
- generations
- 90-99
- populationMean
- 233529.7248
- top4Mean
- 272108.8586
- best
- 287106.1437
- meanMinusFair
- -118973.5533
- bestMinusFair
- -65397.1344
- meanMinusInit
- 77933.4779
- meanMinusBaseline
- 44868.4748
- generations
- 100-109
- populationMean
- 240531.0065
- top4Mean
- 275976.7289
- best
- 288242.7156
- meanMinusFair
- -78512.1810
- bestMinusFair
- -30800.4719
- meanMinusInit
- 88217.0190
- meanMinusBaseline
- 45300.6128
- generations
- 110-119
- populationMean
- 237897.3521
- top4Mean
- 273658.6984
- best
- 286345.5625
- meanMinusFair
- -83419.3511
- bestMinusFair
- -34971.1406
- meanMinusInit
- 82886.6739
- meanMinusBaseline
- 45329.8771
- generations
- 120-129
- populationMean
- 238849.4075
- top4Mean
- 274787.2523
- best
- 288351.2813
- meanMinusFair
- -93764.6144
- bestMinusFair
- -44262.7406
- meanMinusInit
- 83077.8513
- meanMinusBaseline
- 44751.7106
- generations
- 130-139
- populationMean
- 240464.9854
- top4Mean
- 275556.8977
- best
- 286090.1531
- meanMinusFair
- -91019.8646
- bestMinusFair
- -45394.6969
- meanMinusInit
- 91141.3886
- meanMinusBaseline
- 54606.0511
- generations
- 140-149
- populationMean
- 231986.4536
- top4Mean
- 267803.5086
- best
- 280942.4219
- meanMinusFair
- -98025.9245
- bestMinusFair
- -49069.9563
- meanMinusInit
- 76973.6505
- meanMinusBaseline
- 38078.8536
- bestAboveFairGenerations
- 59
- 66
- 73
- 97
- 100
- 109
- 115
- 125
- 137
- trainingSignalCheck
- rule
- population mean fitness > paired fair-d3s7 control in the majority of the final 10 completed generations (theory falsifier 2)
- window
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- generationsMeanAboveFair
- 0
- generationsTop4AboveFair
- 0
- generationsBestAboveFair
- 0
- generationsInitAboveFair
- 0
- meanMarginLast10
- -98025.9245
- top4MarginLast10
- -62208.8695
- passed
- false
- artifactIntegrity
- generationArtifacts
- 150
- illegalDecisions
- 0
- incompleteDecisions
- 0
- censoredGames
- 0
- config
- experiment
- EX-20260903-nnue-evolution-continuation-d3-f8ce9181
- population
- 32
- games
- 32
- generations
- 1,000
- elites
- 4
- tournament
- 3
- sigmaRel
- 0.0500
- sigmaDecayTau
- 400
- sigmaFloor
- 0.0100
- seed
- 0x0e701e59
- leaseStart
- 0xa52e2000
- moveCap
- 2,000
- wallSeconds
- 259,200
- resumePopulation
- /home/keshav/Developer/drop7-bench/runs/RUN-20260902T035644Z-c1fd8987/nnue-evolution/evolve/population-060.bin
- resumePopulationSha256
- 3da5021531898f08254d35cad5486fbbc12092770216bcdaea988d3724422cb8
- baseline
- /home/keshav/Developer/drop7-bench/artifacts/results/EX-20260902-nnue-evolution-d3-v2-49c18bc2/RUN-20260902T035644Z-c1fd8987/evolve/candidate-weights.bin
- baselineSha256
- edd0d2efd181de43f35d62c4df784cb2c789db3ae296be93a1c6c59082034a9f
- plateauWindow
- 100
- plateauCheckEvery
- 50
- plateauMinGenerations
- 100
- finalGeneration
- 149
- finalists
- 25
- 6
- 5
- 29
- 0
- 16
- 12
- 9
- blockStart
- 0xa52e32c0
- selectGames
- 128
- winner
- candidate-12
- winnerMean
- 264466.4688
- label
- evolve
- command
- /home/keshav/Developer/drop7-bench/approaches/lifetime-objective/nnue-evolution/target/release/evolve
- --init
- /home/keshav/Developer/drop7-bench/artifacts/results/EX-20260902-nnue-evolution-d3-v2-49c18bc2/RUN-20260902T035644Z-c1fd8987/pretrain/init.bin
- --lease-start
- 0xa52e2000
- --out
- /home/keshav/Developer/drop7-bench/runs/RUN-20260903T032832Z-a76a6cf7/nnue-evolution/evolve
- --population
- 32
- --games
- 32
- --generations
- 1000
- --elites
- 4
- --tournament
- 3
- --sigma-rel
- 0.05
- --seed
- 0x0e701e59
- --threads
- 32
- --wall-seconds
- 259200
- --move-cap
- 2000
- --experiment-id
- EX-20260903-nnue-evolution-continuation-d3-f8ce9181
- --resume-population
- /home/keshav/Developer/drop7-bench/runs/RUN-20260902T035644Z-c1fd8987/nnue-evolution/evolve/population-060.bin
- --baseline
- /home/keshav/Developer/drop7-bench/artifacts/results/EX-20260902-nnue-evolution-d3-v2-49c18bc2/RUN-20260902T035644Z-c1fd8987/evolve/candidate-weights.bin
- --sigma-decay-tau
- 400
- --sigma-floor
- 0.01
- --plateau-window
- 100
- --plateau-check-every
- 50
- --plateau-min-generations
- 100
- startedAt
- 2026-09-03T03:34:50Z
- endedAt
- 2026-09-03T16:15:39Z
- wallSeconds
- 45649.2030
- userSeconds
- 1431451.9050
- systemSeconds
- 580.6870
- peakRssBytes
- 479,240,192
- exitCode
- 0
- label
- select
- command
- /home/keshav/Developer/drop7-bench/approaches/lifetime-objective/nnue-evolution/target/release/evolve
- --select
- --lease-start
- 0xa52e2000
- --out
- /home/keshav/Developer/drop7-bench/runs/RUN-20260903T032832Z-a76a6cf7/nnue-evolution/evolve
- --generations
- 1000
- --games
- 32
- --select-games
- 128
- --threads
- 32
- --move-cap
- 2000
- startedAt
- 2026-09-03T16:15:39Z
- endedAt
- 2026-09-03T16:21:00Z
- wallSeconds
- 320.7660
- userSeconds
- 9947.1370
- systemSeconds
- 7.3760
- peakRssBytes
- 251,973,632
- exitCode
- 0
- label
- screen
- command
- /home/keshav/Developer/drop7-bench/approaches/lifetime-objective/nnue-evolution/target/release/screen
- --candidate
- /home/keshav/Developer/drop7-bench/runs/RUN-20260903T032832Z-a76a6cf7/nnue-evolution/evolve/candidate-weights.bin
- --init
- /home/keshav/Developer/drop7-bench/artifacts/results/EX-20260902-nnue-evolution-d3-v2-49c18bc2/RUN-20260902T035644Z-c1fd8987/pretrain/init.bin
- --seeds-start
- 0xa52ea000
- --games
- 64
- --threads
- 32
- --move-cap
- 2000
- --out
- /home/keshav/Developer/drop7-bench/runs/RUN-20260903T032832Z-a76a6cf7/nnue-evolution/screen/heldout.json
- --experiment-id
- EX-20260903-nnue-evolution-continuation-d3-f8ce9181
- --arm
- baseline-run1=/home/keshav/Developer/drop7-bench/artifacts/results/EX-20260902-nnue-evolution-d3-v2-49c18bc2/RUN-20260902T035644Z-c1fd8987/evolve/candidate-weights.bin
- startedAt
- 2026-09-03T16:21:00Z
- endedAt
- 2026-09-03T16:30:44Z
- wallSeconds
- 584.0530
- userSeconds
- 12716.1680
- systemSeconds
- 7.1320
- peakRssBytes
- 1,793,974,272
- exitCode
- 0
- resultId
- RS-20260903T025751Z-6577b33e
- runId
- RUN-20260902T035644Z-c1fd8987
- screenCandidateVsFair
- -106,964
- Single 64-game held-out screen: paired detection floors of about 43,000 points for the primary contrast and 27,000 for the continuation contrast; the primary result sits far outside its floor, the continuation contrast just outside its own, and its first-half estimate is negative, so 'improved out of sample' is established at the whole-block level only.
- The plateau rule and the annealed mutation size are confounded: the step size had fallen from 0.050 to 0.034 when the rule fired, so the design cannot say whether the leaf class ran out of improvement or the search did. A constant-sigma continuation from the same population would separate them.
- The plateau rule tests a fitted slope over 100 generations with a one-sided 95% lower bound; at the observed scatter it can miss real improvements below about 220 points per generation. The observed point estimate over generations 50-149 was +37 per generation.
- The per-game artifact holds five arms x 64 games (320 rows); each contrast pairs two arms by seed.
- The starting population, the warm-start control and the baseline control are products of the first run's training data; nothing in this run re-read that lease.
- The owner's commit e2b0d19 (wall-budget pinning and progress recovery on resume) landed on the branch mid-run; the run never resumed, the driver shells held the original script by an unlinked inode, and every stage ran the binaries built from commit e4fd018 as the run record states.
- The fair-d4s7 arm is diagnostic only. The first run's candidate reproduced its earlier screen result on these fresh seeds (-104,719 against -106,964), which is the closest thing to a replication the program has for that number.
Agent contextHow to extend this record
To add a reader-facing explanation, write web/content/research/EX-20260903-nnue-evolution-continuation-d3-f8ce9181.mdx; it renders above this record on the next request. The registered protocol itself is in the technical record above.
Record file: research/experiments/EX-20260903-nnue-evolution-continuation-d3-f8ce9181.json, validated against research/schemas/experiment-v1.schema.json. Protocol hash: 28dc3ac0042c0755426d7fc00692a19c127c297580f15e8aab92e83406395ba2.
Registered by Claude Code / claude-fable-5-1 (claude-code-evolution-experiment).