Releases: Videodr0me/leela-chess-experimental
LC0 MCTS Experimental v3.1
Added in v3.1:
- Two-Fold-Draw Scoring, score two-folds as draws to make search more efficient, prefer two-folds over terminal draw if parent v > 0 otherwise take terminal draw. This is enabled if certainty prop is enabled.
Pros: visits are not wasted beyond the two-fold, earlier draw by perpetual detection, avoids teasing the opponent with additonal repetitions.
Cons: Leela does not go through repetition cylces where oppenent can make mistakes. If two-fold is reached current implementation starts search afresh. Tree-reuse in this case is nullified (even though it is more effetive for the other moves).
Overall a slight elo gain.
- If certain win is found, don't tease opponent prefer terminal win over certain win
- Bugfix: under rare circumstances and if all moves are certain-losses still return a best and ponder move.
- New dynamic policy compression, scaling compression in relation to score (explanation of parameters will follow soon)
LC0 MCTS Experimental
V3 - MCTS Experimental
This version is now feature complete for the time being and can be used for CLOPing optimal values. By default all new features are turned off, except for certainty-propagation and auto-extending. The latter two features can safely be left on, they yield about 10 Elo (depending a little on time controls) and do not need to be "tuned" in the sense that they can only be turned off and on. The other features will yield more elo but are sensitive to parameterization and need serious tuning. Some tuning-tipps will be given after listing the paramters:
New Parameters:
--policy-compression-decay (default = 1.0 = previous behavor, range 0.0 .. 2.0, no effect if policy compression is disabled)
Controls the decay of --policy-compression. Higher values (>1) reduce the effect of policy compression faster with increasing depth, while lower values (<1) reduce the effect more slowly.
--variance-scaling
Adds empirical variance as half-normal limited noise to upper bound (range -2.0 .. 2.0, default 0.0 = off). Higher values will use more of the empirical variance and have a larger effect, while small values (near 0.0) will have a lesser effect. Usually this should be positive.
--policy-softmax-temp = 1.0 (disabled = 1.0, range 0.001 - 10.0)
Softmax temperature parameter added from main branch with identical behavior.
Other parameter default settings:
--certainty-prop = 1 (enabled)
--auto-extend = 1 (enabled
--tree-balance = -1.0 (disabled, note the minus sign)
--tree-scale-left = 1.0 (neutral = 1.0, has no effect if tree balance is disabled)
--tree-scale-right = 1.0 (neutral = 1.0, has no effect if tree balance is disabled)
--policy-compression = 0.0 (disabled)
--easy-early-visits = 0.0 (disabled)
--optimal-select = 0 (should be left at 0)
--cpuct = 1.2
--fpu-reduction = 0.0
Tuning Tipps
Certainty propagation and auto extending should be left on at all times (they complement each other well). Optimal select should always be set to 0. Cpuct, fpu-reductions, policy-softmax-temperature can be tuned normally. Some notes about the other parameters:
- Tree-Balancing
--tree-balance
Speculative range 0.7 .. 5.0
Sensible range 0.9 .. 3.0
Positive Elo tested with values 1.07, 1.5 and 2.0
--tree-scale-left
Speculative range 0.001 .. 3.0
Sensible range 1.3 .. 2.5
Positive Elo tested with values 1.5 and 2.0
--tree-scale-right
Speculative range 0.01 .. 2
Sensible range 0.01 .. 0.4
Positve Elo tested with values 0.1, 0.2 and 0.3
- Policy Compression
--policy-compression
Speculative range 0.0 .. 0.2
Sensible range 0.0 .. 0.08
Positive Elo tests with 0.06, 0.07 and 0.01
--policy-compression-decay
Speculative range 0.5 .. 3.0
Sensible range 0.9 .. 1.5
No tests yet. The above results for policy compression correspond to --policy-decay set to 1.0
- Easy Early Visits
--easy-early-visits
Largely untested. Should be left off for first tuning efforts = 0.0.
Unfortunately this behaves discontinuous when set to value > 0.0.
Recommendation, tune all other parameters first leaving this off = 0.0, and only
then maybe do another run with this enabled in the range 0.001 .. 1.0.
- Variance Scaling
--variance-scaling
Speculative range 0.0 .. 0.2
Sensible range 0.0 .. 0.05
Postive Elo tests with value 0.01
Please use at least 2000 visits per move, better 10000 per move and more than 10000 games. This version needs an unzipped NN weight file and cuda 9.0 and corresponding cudnn dlls.
Leela MCTS Experimental v2.1
Improvements in certainty propagation, easy early visits and tree balancing. See main page.
Tree Balancing is currently disabled by default as the parameter set changed and needs new sensible defaults. For example, the old parameters of --tree-balance=1.5 --tree-balance-scale=1.5 translate to:
--tree-balance=1.5
--tree-scale-left=1.5
--tree-scale-right=0.01
Sensible values for --tree-balance are between 0.8 and 3.0, --tree-scale-left between 1 and 3.0, --tree-scale-right between 0 and 1.1.
For easy early visits sensible parameters are between 0.0 (off) and 1.0 (full).
All parameters need tuning - all help welcome.
Leela MCTS Experimental v2
New Version v2
Includes enhanced certainty propagation, tree balancing, policy compression, easy early visits. Features enabled by defaults are:
--certainty-prop=1 (default, gains elo)
--auto-extend=1 (default, gains elo)
--tree-balance=1.5 (default. gains elo, but untuned)
--tee-balance-scaled=1.5 (default, gains elo, but untuned)
Features disabled by default are:
--policy-compression=0.0 (values of 0.01 - 0.5 are sensible to enable)
--enable-early-visits=0 (value of 1 enables)
In order to disable all search enhancements use:
--tree-balance=-1.0 (note the minus sign)
--tree-balance-scale=1.0
--certainty-prop=0
--auto-extend=0
This version still expects an unzipped weight file of the NN and 9.0 cuda and cudnn dlls.
leela-experimental 1
This is still an old version without some of the newer mods (enhanced certainty prop). New executable soon.
This is an executable that contains all described search methods. It is based on a slightly older lc0 and needs the cuda 9.0 and corresponding cudnn dlls. NN weights need to be unzipped.
Defaults of this version
backpropagate-gamma=0.75, uncertainty-prop=1, auto-extend=1
optimal-select=0 (disabled)
Standard leela behavior can be restored by the following settings:
backpropagate-gamma=1.0 (disabled), uncertainty-prop=0 (disabed), auto-extend=0 (disabed)
optimal-select=0 (disabled)
All options can also be set through uci options.
code seems robust, played thousands of self-play games without any problems - but remember this is experimental so anything can happen.