Replicating the lookup-table leaf on fresh seeds, playing it one ply deeper, and asking it how full the board is
Yesterday's lookup-table leaf replicated on 512 seeds nothing had read: 487,066 against 326,717 for the fair leaf in the same depth-3 search. A six-times-wider evaluator trained until its validation margin stopped rising passed the same gate and came out 5,196 behind the first tables, an inconclusive scale reading, while playing much better without any search. As a playground demonstration, the first tables also played the public global game's round, gauntlet-01, and scored 554,510 points in 160 moves. In the evening the same frozen tables played as the leaf of the depth-4 search on a fourth fresh block: 516,155 against 465,675 for the depth-3 leaf on 512 games, a fourth ply worth 50,479 points, the same as the fair leaf's fourth ply on the same games. The tables and the screens' per-game rows are now in the public research archive. Late in the day a fourth experiment gave every table five copies keyed to how full the board is, warm-started from the frozen tables, and tried two no-training edits of the never-updated entries on a fifth fresh block: the fill candidate was 21,039 ahead of the frozen tables at depth 3, inside the floor, and 22,631 behind at depth 4; zeroing the never-updated entries was worth 29,442 at depth 3 with a lower bound above zero and gave it back at depth 4.
Two questions from yesterday
Yesterday's screen put the lookup tables 170,139 points ahead of the fair
leaf inside the same depth-3 search on 256 held-out games
(RS-20260905T215332Z-95d18a5a). Two things it could not say: whether the
margin survives a block of seeds that nothing has read, and whether the
evaluator was still improving when its four-billion-move budget ran out.
The twenty validation margins of that run bounced between 116,000 and
270,000 on 64 games without settling, which is what a noisy read of a
still-rising curve looks like, and also what a noisy read of a plateau looks
like. The owner asked for a fresh-block replication with a longer and wider
training run that stops when the margins plateau.
The design
Experiment EX-20260906-ntuple-scale-replication-wide-plateau-f627f07a, run
RUN-20260906T013222Z-ba0ee34f, branch claude/n-tuple-scale-replication.
Three never-read seed blocks: a training block at 0xa5500000, a 256-game
validation block at 0xa52f2280, and a 512-game screen block at
0xa52f2380, all disjoint from everything the first experiment touched.
The evaluator is yesterday's selected layout (full rows, full columns, 2-by-3 and 3-by-2 windows, every family split by the rise clock) plus two new families that see more of the board at once: the 24 placements of a 2-by-4 window and the 24 placements of a 4-by-2 window, a hundred million patterns each. That is 5.8 billion table entries against yesterday's one billion, and 122 numbers summed per board against 74. The eight-cell windows are not split by the rise clock; five copies of them would not fit in memory.
There is no move budget. Every five hundred million training moves the tables are dropped into the depth-3 search and played on the 256 validation games against the fair leaf. From the eighth validation point on, the run stops as soon as the mean margin of the last four points is not above the mean of the four points before them. The candidate is the point with the largest margin. It then plays the 512 held-out games as the depth-3 leaf beside five other arms on the identical seeds: the same tables played directly, yesterday's frozen tables as the same leaf and played directly, the fair leaf in the same search, and the fair leaf at depth 4. The protocol fixes three readings: the candidate gate (the wide tables against the fair leaf, the same criteria as yesterday), the replication (yesterday's tables against the fair leaf on these fresh seeds, the same criteria) and a scale verdict (the wide tables against yesterday's tables: supported, refuted or inconclusive by the bootstrap bounds).
Five point eight billion entries need 64-bit indices and lazily zeroed accumulators
1.27 million moves per second on 32 threads, 42.7 GB resident after 40 million movesThe wide layout has more entries than a 32-bit index can address, so the feature indices are now 64-bit. The two coherence accumulator arrays are allocated zeroed rather than filled, so their pages become resident only when an entry is first updated. The smoke run on the already-open probe block measured 1.27 million training moves per second, about two thirds of yesterday's rate, with 42.7 GB resident after 40 million moves; the accumulators keep filling in as training touches more entries, up to the 69.6 GB the three arrays would occupy if every page were touched.
A terminal state has no rise phase, and the gate found out
one gate panic, fixed before any leased seed was readThe first invocation of the CHECK gates crashed. The information-boundary gate values every sampled state, including terminal ones, and a state whose rise ended the game carries zero moves until the next rise. The feature function turned that into a rise phase of minus one, and with 64-bit indices the entry landed outside the table. The phase is now clamped. Nothing recorded is affected: the fair search returns its terminal utility before it would ever value a terminal board, and training and the direct policy guard the same way. In yesterday's run the same gate, with 32-bit indices, read a wrong but in-range entry of the column tables for those terminal states, the same wrong entry under every perturbation, so its pass was sound. The second invocation passed all 19 gates.
The main run
The run started at 01:44 UTC from commit 16e7c99 and trained at about 1.18
million moves per second.
The plateau rule fired at 4.5 billion moves
nine validation points; last four +165,666, previous four +173,783All nine validation points had the wide tables ahead of the fair leaf inside
the same depth-3 search on the 256 fresh validation games, from +154,572 at
half a billion moves to +187,500 at two billion. After that the margin
wandered between 142,514 and 186,631 and the rule stopped the run at the
ninth point, 74 minutes in. The candidate is the fourth point, two billion
moves, SHA-256 824b0a39.... About 231 million of the 5.8 billion entries
had been touched by then.
The screen
512 never-read public-development games at 0xa52f2380, six arms on
identical seeds, opened once after both candidates' hashes were on disk.
Result record RS-20260906T040113Z-6ba93171, run valid, outcome pass,
screen tier.
| arm | mean score | moves | paired vs fair-d3s7 | bootstrap lower bound |
|---|---|---|---|---|
| first run's tables as the depth-3 leaf | 487,066 | 140.83 | +160,349 | +129,753 |
| wide tables as the depth-3 leaf | 481,869 | 139.39 | +155,153 | +126,819 |
| fair leaf, depth 4 (reference) | 397,154 | 114.55 | +70,437 | +46,917 |
| wide tables played directly, one ply | 328,039 | 97.27 | +1,323 | -17,545 |
| fair leaf, depth 3 (comparator) | 326,717 | 95.87 | ||
| first run's tables played directly, one ply | 294,323 | 87.91 | -32,394 | -51,190 |
Yesterday's result replicates on fresh seeds
+160,349 paired on 512 games, lower bound +129,753, 330-0-182The first run's frozen tables, unchanged and hash-verified, averaged 487,066 as the depth-3 leaf against 326,717 for the fair leaf in the same search on the 512 fresh games: paired +160,349, bootstrap 95% lower bound +129,753, both halves positive (+133,349 and +187,349), lower quartile 232,825 against 192,040. Every replication criterion passes. Yesterday's screen on a different block read +170,139; the two blocks agree within their bounds.
The wide tables pass the same gate
+155,153 paired, lower bound +126,819, 333-0-179The wide candidate averaged 481,869 on the same 512 games, +155,153 against the fair leaf with a lower bound of +126,819, both halves positive, lower quartile 241,610, no illegal or incomplete decision in any arm. Against the fair leaf at depth 4 (397,154 on these games) it is +84,716 with a lower bound of +54,794; the first tables are +89,912 against the same arm.
Six times the entries did not beat the first tables
-5,196 paired, bounds -40,535 to +29,158, 267-1-244: inconclusiveThe wide candidate against the first run's tables, both as the depth-3 leaf on the same seeds, is 5,196 behind, with a bootstrap interval from minus 40,535 to plus 29,158 and a detection floor of 34,803. The preregistered scale verdict is inconclusive: a difference of more than about 35,000 in either direction would have shown, and none did. What this rules out is a large gain from the 2-by-4 and 4-by-2 windows and from training past two billion moves under this recipe; a gain smaller than the floor is not ruled out.
The wide tables play much better without any search
one-ply 328,039 against 294,323 for the first tables; level with the fair leaf's depth-3 searchPlayed directly, one move ahead with the seven reveal samples and no search, the wide tables averaged 328,039, +1,323 against the fair leaf's depth-3 search with bounds either side of zero. The first run's tables played the same way lost to that search by 32,394. So the extra windows learned a better policy and the search extracted nothing more from it: the search over the wide tables is worth +153,830 on these games, against +203,137 for the first tables on yesterday's block. The leaf the depth-3 search needs and the policy one-ply play needs are not the same object, and this recipe improved the second.
The frozen tables on the global game
The first run's frozen tables were also played through gauntlet-01, the
scripted round behind the public global game, as a playground demonstration.
A scripted round fixes every disc and every hidden value in advance, consumes
no seed lease, and is never tier evidence: one fixed future says nothing about
a mean score, and the two screens above are the evidence. To play it, the
crate gained a one-shot query binary (query_move) that loads the tables and
answers a single public position, and the playground registry gained the
policy ntuple-scale-d3s7 on top of it, so the game is archived in the same
record shape as every other engine game and could be imported into the
competition ledger the way the depth-6 game was on 1 September. The game was
played twice, once through the external bridge and once through the registry,
and both runs produced the same trajectory checksum.
The tables inside the depth-3 search on gauntlet-01
554,510 points in 160 moves, one scripted roundOn gauntlet-01 the tables as the leaf of the depth-3 search with seven chance
strata scored 554,510 in 160 moves, game over rather than censored, no
illegal decision, 346 discs cleared and 200 covered discs revealed
(runs/BENCH-20260906T063447Z-ntuple-scale-d3s7--gauntlet-01/, trajectory
checksum 920e8da07e447939). Through the same bridge on the same round
(external-arms/ in that directory), the fair leaf inside the same depth-3
search scored 211,474 in 65 moves, the fair leaf at depth 4 scored 393,277 in
112 moves, and the tables played one ply with no search scored 452,130 in 125
moves. The recorded depth-6 fair search game on this round, imported on 1
September, scored 428,292 in 120 moves. The record was then imported into
the production and dev competition ledgers under global#2026-08-v1 with
submission id
613234a674237617997a96c7faa232bd6b002f125fbd4343f65cf1959555c8a9, source
revision bfae0a6 declared rather than observed, and both items were read
back and matched the dry-run preview. It enters the public leaderboard above
the top human entry and the depth-6 game. All of this is one scripted future.
The same tables one ply deeper
The owner asked what the fourth ply is worth to this leaf. Nothing was
trained. The first run's frozen tables, hash-verified, played as the leaf of
the reference depth-4 search (seven chance strata, the standing fair-d4s7
configuration) and as the depth-3 leaf on 512 games from a fourth block
nothing had read, beside the fair leaf in both searches on the same games.
Experiment
EX-20260906-ntuple-scale-depth4-frozen-tables-54aed6a3, run
RUN-20260906T081306Z-e62d9837, branch claude/n-tuple-continuation-4-ply,
lease 0xa52f2580. The crate gained the depth-4 arm, a depth-4 determinism
gate that runs on the frozen tables, and a screen-only stage driver; all 20
CHECK gates passed before the block opened. The gate reads the tables' own
depth step. Two readings were fixed beside it: whether the tables still beat
the fair leaf at depth 4, and whether the fourth ply is worth more, less or
the same on the tables as on the fair leaf, from the per-game difference of
the two depth steps.
| arm | mean score | moves | logical work per game |
|---|---|---|---|
| first run's tables as the depth-4 leaf | 516,155 | 148.75 | 7.96e8 |
| first run's tables as the depth-3 leaf | 465,675 | 134.82 | 2.22e7 |
| fair leaf, depth 4 | 382,567 | 110.45 | 5.59e8 |
| fair leaf, depth 3 | 332,968 | 97.72 | 1.56e7 |
The fourth ply is worth 50,479 points to the tables
+50,479 paired on 512 games, lower bound +14,707, 284-0-228The tables at depth 4 averaged 516,155 points and 148.75 moves against
465,675 and 134.82 for the same tables at depth 3 on the same games: paired
+50,479, bootstrap 95% lower bound +14,707, Student-t lower bound +14,086,
both halves positive (+67,335 and +33,623), lower quartile 233,182 against
212,969. Every criterion of the preregistered gate passes
(RS-20260906T171746Z-1623f833, run valid, outcome pass, screen tier). The
fourth ply costs about 36 times the depth-3 search's logical work per game,
152 wall seconds per game against 4 on the 32-thread workstation.
The learned leaf pays for depth the way the hand-written one does
fair leaf's fourth ply +49,599; difference of the two steps +881, bounds -40,932 to +42,867On the same 512 games the fair leaf gained 49,599 from its fourth ply (382,567 against 332,968, lower bound 25,751). The per-game difference between the tables' depth step and the fair leaf's is 881 points with bootstrap bounds from minus 40,932 to plus 42,867 and a detection floor of 42,550, 250 wins to 262: the preregistered verdict is inconclusive. What this rules out is a large difference either way; the theory's first leg (the tables gain from depth) is supported, its second leg (at least as much as the fair leaf) is neither refuted nor measurable at this cohort size.
The margin over the fair leaf survives the fourth ply
+133,588 at depth 4, lower bound +102,051; +132,707 at depth 3 on the same blockAt depth 4 the tables beat the fair leaf in the same search by 133,588 paired (lower bound 102,051, 314 wins to 198); at depth 3 on this block the margin was 132,707 (lower bound 102,193), a third disjoint block on which the tables' depth-3 margin lands where the first two screens put it. The tables at depth 4 also beat the fair leaf at depth 3 by 183,187. The first tables at depth 4 are now the candidate to carry forward.
The depth-4 policy on gauntlet-01
549,050 points in 160 moves, one scripted roundAs a playground demonstration the same tables at depth 4 played the public
global game's round through the new registry policy ntuple-scale-d4s7
(runs/BENCH-20260906T172752Z-ntuple-scale-d4s7--gauntlet-01/, trajectory
checksum 5119ef1a32121f78, 195 seconds): 549,050 in 160 moves, 5,460 below
the depth-3 policy's 554,510 in the same 160 moves on the same fixed future.
The record was imported into the production and dev competition ledgers
under global#2026-08-v1 with source revision ea385e8, so the two depths
sit side by side on the public board. One scripted future says nothing about
a mean; the 512-game screen above is the evidence.
The tables and the screens in the public archive
The owner asked that the n-tuple data reach the research archive so agents
on other machines can reproduce the screens and continue training. The
publisher gained a directory mode with exclude globs, a manifest of
references, and a dry run. What is published, each under its run id with the
digest in the reference: the first run's frozen tables (zstd, 378 MB, the
decompressed file's SHA-256 recorded beside it), the wide tables (zstd, 910
MB), and the three screens' per-game rows and analyses, with dataset records
DS-20260906-ntuple-scale-frozen-tables-ff977178 and
DS-20260906-ntuple-scale-wide-frozen-tables-c5eb52a6 naming the file format,
the leases the tables have read, and the download and verification steps.
The result record cites the depth-4 screen's per-game rows by their archive
reference, so a checkout without runs/ can still verify it. The first run's
end-of-training checkpoint with its coherence accumulators (1.5 GB
compressed) and every validation line-up, pilot arm, progress log, gate log
and compare report of the three runs followed once the owner allowed the
directory publisher; each run's published.jsonl lists every object with
its digest, and the run records cite the references.
What the record supports next
owner: claude-fable-5-1 (Claude Code)The first tables at depth 4 have one passing screen and the same tables at depth 3 have three; the wide tables are retained, hashed and published but add nothing the screens can see. Next: a STANDARD-tier evaluation of the unchanged depth-4 candidate on fresh development seeds; a study of a leaf tuned for the search's use rather than one-ply play, for instance training on the boards the search evaluates or removing the optimistic starting value from the nine tenths of the entries that training never touched; and the published tables as the teacher or warm start of a search-guided self-play loop. The approach page carries all three runs' figures and the full tables.
Tables that know how full the board is
The owner's next question was whether the leaf should change its mind as
the board fills: play for throughput while there is room, play for survival
when there is not. The frozen tables cannot, for a reason that is visible in
their own training record. A seed-free pass over the first run's saved
accumulators (main/touched-by-fill.txt of this run) counts, for every
row and column table and every rise phase, how many patterns of each fill
were ever updated.
The frozen leaf is least trained on the fullest boards
0.98% of legal seven-high column patterns and 1.06% of five-or-more-disc top-row patterns ever updatedLegal column patterns of height 0 to 7 were touched 100%, 89%, 78%, 68%,
50%, 26%, 6.6% and 0.98% of the time; row patterns with seven discs 13.5%;
top-row patterns with five or more discs 1.06%. The touched entries of full
lines average 0.24 to 0.27 rise units, which is the optimistic starting
value of 20/74. In the frozen candidate file 901,259,321 of the billion
entries still hold that starting value bit for bit (main/edits.json). A
depth-3 search from a crowded board reads many of them, each worth a fresh
board's share, so the leaf is most optimistic where the decision is about
staying alive. And a sum of 74 lookups cannot give one pattern two values
depending on the board around it.
Experiment
EX-20260906-ntuple-fill-conditioned-continuation-a9e5cbd3, run
RUN-20260906T201104Z-a96ea6c8, branch claude/n-tuple-fill-conditioned,
tests two repairs against the frozen tables on one fresh 512-game block
(0xa52f2880). The first trains nothing: every never-updated entry of the
frozen file is replaced, by zero (an unfamiliar board is priced below a
familiar one) or by the mean of the touched entries of the same table, rise
phase and pattern occupancy (an unfamiliar board is priced like a typical
familiar board of its shape). The second gives every table five copies
keyed to a global fill measure, occupied cells (0 to 13, 14 to 20, 21 to 27,
28 to 34, 35 to 49) or the tallest column (up to 3, 4, 5, 6, 7), copies the
frozen tables into every one of them so the conditioned leaf starts
bit-identical to the frozen one, and continues temporal-difference training
from there with fresh step sizes on a training block nothing had read
(0xa5800000), validated every two hundred million moves on a fresh
256-game block (0xa52f2780) with a window-of-three plateau rule from the
sixth point. A third arm continues the frozen tables the same way without
copies, so the screen can tell continued training from conditioning. The
crate gained the two fill layouts, the promotion, a warm-start option for
the trainer, and two gates: the fill bucket against an accessor reference
on every sampled state and its mirror, and promotion preserving every value
bit for bit while separating the buckets under one update. All gates passed
for both layouts before any lease opened.
The edits took 25 seconds: the zeroed file changed 901,259,321 entries and the class-mean file 877,344,474, and neither moved a touched entry. Seven occupancy classes had no touched entry to average and kept the starting value.
The three arms and the screen
Each arm warm-started from the frozen tables and ran until its plateau rule fired or its budget ran out, validated every two hundred million moves on the 256 fresh games.
Continued training with fresh step sizes did not fall apart, and the buckets learned nothing the validation could see
best margins: control +210,990, occupied-cells buckets +203,193, tallest-column buckets +179,760The control arm, the frozen tables reloaded with fresh accumulators, stopped by the plateau rule at 1.2 billion moves after six points; its best point, +210,990 over the fair leaf at 600 million moves, is above every point the fill arms reached. The occupied-cells arm stopped at 1.6 billion moves after eight points with its best at 1.4 billion (+203,193); the tallest-column arm ran to the two-billion cap with its best at 1.6 billion (+179,760). By the fixed rule the occupied-cells arm is the candidate, and the pilot-tier training-signal check reads not passed: neither fill arm's best validation margin exceeded the control arm's. All three arms trained at about two million moves per second; the five-billion-entry tables were no slower than the one-billion-entry control.
The screen opened the 512-game block at 21:25 UTC with eleven arms on identical seeds, after the CHECK gates had passed again on each of the four new table files.
| arm | mean score | moves | paired vs frozen tables | bootstrap lower bound | upper bound |
|---|---|---|---|---|---|
| zeroed edit as the depth-3 leaf | 514,897 | 148.50 | +29,442 | +5,813 | +54,179 |
| fill candidate (occupied-cells buckets) as the depth-3 leaf | 506,494 | 146.33 | +21,039 | -16,864 | +59,230 |
| control continuation as the depth-3 leaf | 491,401 | 141.92 | +5,946 | -29,891 | +41,989 |
| class-mean edit as the depth-3 leaf | 486,386 | 140.64 | +931 | -530 | +2,954 |
| frozen tables as the depth-3 leaf (comparator) | 485,455 | 140.38 |
The fill candidate did not measurably beat the frozen tables
+21,039 paired on 512 games, bounds -16,864 to +59,230, 271-0-241The occupied-cells candidate as the depth-3 leaf averaged 506,494 against 485,455 for the frozen tables on the same games: paired +21,039 with a bootstrap 95% lower bound of minus 16,864, an upper bound of plus 59,230 and a detection floor of 37,956; halves +6,466 and +35,613, lower quartile 229,450 against 230,374. The preregistered gate fails, and the reading is a non-measurement: a gain or loss larger than about 38,000 would have shown, and neither did. Against the control continuation the candidate is +15,093 (bounds minus 22,431 to plus 52,817), and the control against the frozen tables is +5,946 (bounds minus 29,891 to plus 41,989): both inconclusive. Continued training and five fill buckets together moved the depth-3 leaf by less than this screen can see.
Zeroing the never-updated entries helped, and it changed only 194 of the 512 games
+29,442 paired, lower bound +5,813, 102 wins, 318 ties, 92 lossesThe zeroed edit, the frozen tables with every never-updated entry set to zero and nothing trained, averaged 514,897 as the depth-3 leaf: paired +29,442 over the frozen tables with a bootstrap lower bound of +5,813, an upper bound of +54,179 and a floor of 24,154, halves +12,168 and +46,716. The verdict fixed for this reading is supported. In 318 of the 512 games the two leaves chose the same column at every move and the games are identical; the edit only matters when the search reads a never-updated entry at a decision that is close, and across the 194 games where it did the mean gain was about 77,700 points. The lower quartile is 229,884 against 230,374, 490 points lower, so under the gate's four criteria this reading would fail on the lower quartile alone; the verdict reads the bounds. The class-mean edit, which replaces the same entries with the mean of the touched entries of the same shape, is a near no-op: 506 identical games and +931 paired.
| arm | mean score | moves | paired vs the frozen tables at the same depth | bootstrap lower bound | upper bound |
|---|---|---|---|---|---|
| frozen tables as the depth-4 leaf | 521,956 | 150.20 | |||
| zeroed edit as the depth-4 leaf | 511,364 | 147.36 | -10,592 | -32,045 | +11,133 |
| fill candidate as the depth-4 leaf | 499,324 | 144.08 | -22,631 | -57,779 | +12,806 |
| fill candidate played directly, one ply | 298,199 | 88.90 | +4,809 | -13,189 | +22,386 |
| frozen tables played directly, one ply | 293,390 | 87.53 | |||
| fair leaf, depth 3 | 329,895 | 96.85 |
One ply deeper, both repairs gave their gains back
fill candidate -22,631 at depth 4 (bounds -57,779 to +12,806); zeroed edit -10,592 (bounds -32,045 to +11,133)As the depth-4 leaf the fill candidate averaged 499,324 against 521,956 for the frozen tables on the same games, 22,631 behind with bootstrap bounds from minus 57,779 to plus 12,806, and 7,170 below its own depth-3 score. The zeroed edit at depth 4 averaged 511,364, 10,592 behind the frozen tables (bounds minus 32,045 to plus 11,133; 320 of the 512 games identical) and 3,534 below its own depth-3 score. Both preregistered depth-4 verdicts are inconclusive, and the sign is the same for both repairs and for both depth steps, while the frozen tables' own fourth ply on these games was worth 36,500 (bounds minus 249 to plus 72,651). The deeper search reads far more boards that training never visited, and a pessimistic price for them served it worse than the fresh-board value did. The frozen tables at depth 4 stay the candidate to carry forward. The frozen tables' depth-3 margin over the fair leaf on this fourth fresh block was 155,561 (lower bound 123,422), and the fill candidate played directly was 4,809 ahead of the frozen tables played directly, with a lower quartile of 190,084 against 157,932.
What the record supports next
owner: claude-fable-5-1 (Claude Code)The theory is assessed mixed: the frozen leaf does price unfamiliar boards at a fresh board's value, and removing that price helped at depth 3, but neither the removal nor the fill buckets survived the fourth ply, and the buckets could not be told from continued training at depth 3. Two things follow. A leaf tuned for the search's own use, trained on the boards the depth-3 or depth-4 search evaluates rather than the ones one-ply play visits, is now the better-supported half of the replication's open question. And a depth-aware edit, pricing a never-updated entry between zero and the fresh-board value, or scaling it by how many such entries the board reads, would test the one mechanism that did move the depth-3 leaf without training. Seven buckets, or buckets keyed to the rise clock and fill together, remain untested; nothing here rules them out, and nothing here recommends them before the search-distribution question is answered. The approach page carries the run's figures, the eleven-arm table and the verdicts.
A log entry is a narrative written by the contributors listed above. Run validity, scientific outcome and evidence tier live with the experiment and result records the entry refers to.