Concepts
Test-time search by update equivalence
Search under this much hidden information had been considered so hard that DeepNash did without it. Ataraxos makes it simple by treating search as one more damped self-play update, computed for the current position only: the same objective as training, the same two reverse KL penalties, but with values estimated from a thousand rollouts instead of one trajectory. The paper calls this update equivalence.
The procedure
- Sample about
configurations of the opponent's hidden pieces from the belief network. - Run 1,000 rollouts of depth 40, at least one for every pair of legal move and sampled configuration. The first move is forced; the remaining 39 are played by the move network for both sides.
- For each legal move, average the move network's value predictions at
the positions the rollouts reach:
. - Play a move sampled from
with
The update can be far more aggressive than a training step for two reasons: it is tabular, so it cannot disturb the policy at any other position, and its advantage estimate is far more accurate than a single trajectory's.
What the coefficients do
The paper's Table 17 is the clearest evidence about the method. With the
values used in the series (40 ply, 1,000 rollouts) the search adds about
120 Elo over the raw network, at 1.26 seconds per move on one H100, faster
than human play. Shallower or fewer rollouts give less. Setting the
network KL coefficient
Elo of test-time search settings against a fixed reference
| Row | Value | Low | High | n |
|---|---|---|---|---|
| network alone (no search) (0.004 s/move) | 2095 | 2091 | 2100 | 0 |
| 40 ply, 1000 rollouts (series setting) (1.26 s/move) | 2218 | 2177 | 2266 | 0 |
| 10 ply, 1000 rollouts (0.46 s/move) | 2189 | 2165 | 2215 | 0 |
| 40 ply, 200 rollouts (0.5 s/move) | 2189 | 2164 | 2216 | 0 |
| 10 ply, 200 rollouts (0.26 s/move) | 2169 | 2153 | 2186 | 0 |
| 40 ply, 1000 rollouts, no magnet KL (1.26 s/move) | 2174 | 2138 | 2215 | 0 |
| 40 ply, 1000 rollouts, network KL 0.05 (1.26 s/move) | 2160 | 2124 | 2201 | 0 |
| 40 ply, 1000 rollouts, no network KL (1.26 s/move) | 1733 | 1701 | 1761 | 0 |
Why the values are opponent-independent
The rollouts are played by the move network for both sides from positions
drawn from a belief trained on the same network's self-play, and the leaf
values are that network's outcome predictions. So
Limits
The improvement is bounded because the search mimics a single update
step; more compute past the thousand rollouts does not keep paying. The
authors point at knowledge-limited subgame solving as the way to a search
that can use arbitrary compute. In this program the search step is
implemented in the training package against the Python game class, with
the counting prior standing in for the belief network until one is
trained; the rollout player in the Rust search crate is the same shape
with random rollouts and no networks, which is where the ladder measures
the value of the belief and move networks separately.