Records
Self-play smoke run: twenty iterations of the small preset
Registration db0047e7-dd11-4f65-8928-fcee3f1c0a6b (study ataraxos/smoke-run), run 2026-09-18 on AMD Ryzen AI Max (Strix Halo), 32 threads, 125 GB unified memory, Radeon 8060S via ROCm, Linux 6.18. Server commit 7a66da0, research commit a000925.
Commands:
cd research && .venv/bin/python -m armies_train train --preset smoke --iterations 20 --out runs/db0047e7-dd11-4f65-8928-fcee3f1c0a6b/smoke --seed 0
.venv/bin/python -m armies_train evaluate --run runs/db0047e7-dd11-4f65-8928-fcee3f1c0a6b/smoke --opponent random --games 40 --seed 0
.venv/bin/python -m armies_train evaluate --run runs/db0047e7-dd11-4f65-8928-fcee3f1c0a6b/smoke --opponent greedy --games 40 --seed 0
Training with the EMA weights saved at the end: 20 iterations, 256 environments, 50 moves per iteration (12,800 transitions per iteration), move network with embedding 128, 4 layers, 4 heads; damped update with the paper's coefficients; bf16 on the GPU; 43 s of training wall time at about 9,699 collection steps per second. Move entropy started at 2.701 nats, peaked at 3.232 and ended at 3.079; the lowest value 2.701 is above half the first value, so the collapse condition did not trigger. Clip rate stayed under 5% throughout.
| Opponent | Games | Wins | Draws | Losses | Effective | 95% Wilson | ms/move |
|---|---|---|---|---|---|---|---|
| random | 40 | 11 | 26 | 3 | 0.600 | 0.446 to 0.737 | not measured |
| greedy | 40 | 7 | 0 | 33 | 0.175 | 0.087 to 0.320 | not measured |
Endings were not exported by the evaluator; 26 of the 40 games against random ended without a Flag capture, which under the training rules means the 100-move battleless limit.
Provenance
Archived: runs/db0047e7-dd11-4f65-8928-fcee3f1c0a6b/smoke/history.jsonl (SHA-256 fba8acc53400f1b7e392325641dbf96f18819e1e8c191a3cff19f44a20c05e3b), runs/db0047e7-dd11-4f65-8928-fcee3f1c0a6b/smoke/config.json (53e3de702b090a64e49783efc3a2b7eb6e1944ac39bede23e398de4c0ee7930a), runs/db0047e7-dd11-4f65-8928-fcee3f1c0a6b/smoke/evaluation-random.json (738e04930a02343f635594dee51fb8dbad370b1cfd155ad5e0e06089ecf964f0), runs/db0047e7-dd11-4f65-8928-fcee3f1c0a6b/smoke/evaluation-greedy.json (ffb82e3b498228710393f9fc961793e2d61336c1a2fb5669bde68ab2dab54290), and the network weights move.safetensors and setup.safetensors (3.5 MB and 1.6 MB, kept out of git). Copies of the small files sit next to this record. Games planned 40 + 40, attempted 80, completed 80, interrupted 0.
Deviations from the registration: the evaluator alternates the network's seat by game parity and uses a fresh seed per game (seeds 0 to 39), so the 40 games are seat-balanced but not paired on identical setups as the registration's "40 paired games, seeds 0 to 19" reads; the network's own setups are sampled from its setup network rather than uniformly at random, because the evaluator loads the setup network when the run saved one; the opponent's setups are uniform. Neither changes the decision, which the interval against random fails on its own.