-
Notifications
You must be signed in to change notification settings - Fork 530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pr700 pr750 #788
Pr700 pr750 #788
Conversation
efficient propagation of certainty, two-fold draw scoring, mate display and more. =1 suitable for training =2 for play Currently negabound search depth is one. Improves play in positions with many certain positions (nrear endgame TBs, mates). Sees repetitions faster and scores positions more accurately.
…ersion. Increasing threads (e.g. 4 or 6) will get to masters speed now. Further speed fixes (move generator) possible....
…with lto, this yields a speed up by 30-50% in backend=random. In order to fully use CP please use 4 threads+. Changed default temporarily to 4 threads with this commit, to collect more scaling data.
…ds instant play of certain winning moves and avoidance of loosing moves regardless of visits. CP=3 now adds advanced pruning.
- exposed depth parameter (0 is no-look-ahead) - only two modes CP=1 for training and CP=2 for play Todo: - change option from int to choiceoption - use info.mate to communicate mate scores
- Certainty Propagation is a bool option now, just on or off (default = off). - Cleanup code and comments - Threads default = 2, but if certainty propagation is turned on please use 4 threads.
…r certain losses over terminal losses.
fix off by one mate count
…filtered tb scores if drawn (compatible with new option kSyzygyFastPlayId), comment cleanup.
… updated all syzygy comments. TODO: evalposition parameters
…(struct of gameresult and trigger) as return value.
Now that pr750 is updated and merged into master, this pr will be removed soon. |
…' into VidDrome-basic-certainty-propagation
Another interesting position to test with CP is the mentioned promotion bug of some of the T40 nets in Discord channel. Example fen position: Playing this position with default leela results in a pawn capture promotion and stalemate position DRAW like this:
Which of course is not the best move. Black will capture that queen on E8 for a DRAW. However, playing with CP and root-move-widening the same net already sees the right move after only 250 nodes:
The fpu-adjustments ensures that the search is not only based on the policy of the net, but explores other nodes more extensively |
Now that pr750 is in master, the follow-up is here: |
Note: not for merge.
This is a merge of pr700 certainty propagation and pr750 which ensures all root moves are always tried.
Just a test pull request to see if this would 'always' find mate in one moves.
The interest on this was because of an example CP game posted on lichess here:
https://lichess.org/i0Cxcq3y
As an example, after blacks move Kh6, white has a mate in #1 move available.
However, leela does not play it, it plays e7-e8 promotion to Queen.
The idea of this PR that includes certainty propagation (#700) and early-root-widening (#750) is to investigate if that version would find and play the mate in #1.
Testing can be done by taking the FEN position from li-chess and feeding that into lc0.
ensure to start lco with these options set to ON:
lc0 --early-root-widening=true --certainty-propagation --verbose-move-stats
or alternatively start up with mini-batchsize set to only 1:
lc0.exe --certainty-propagation=true --early-root-widening=true --verbose-move-stats -t 1 --minibatch-size=1 --weights=YOURTESTNET
and do the following commands within lc0
to let leela think.
You should take the appveyor build in one of the links below to try this out