Hi all,
I'm happy to announce a new release of Zevra. This turned out to be a solid one - the engine now plays significantly stronger.
Download & source: https://github.com/sovaz1997/Zevra2/releases/tag/v2.7 (prebuilt Windows/Linux binaries in Releases)
The "train NNUE from scratch" policy is preserved. The previous engine was trained on self-play games completely from scratch, without using HCE or games from other engines for training. This version was trained on games from 2.6 and onward, continuing the reinforcement loop on its own games.
In the end the NNUE was trained on ~1.5 billion positions.
Improvements
- Fixed the training-data generation. A very large fraction of the games came out garbage. We still surpassed the HCE in the previous release, but its full potential wasn't realized back then.
- Several search improvements, and SPSA allowed much more precise tuning of the search. This alone was worth roughly 100-150 Elo.
- The NNUE is now Chess768 + king buckets. Currently 8 buckets (this turned out to be optimal), inner layer 256. A width of 512 gives more Elo with our amount of data, but does not pay off under real time control because of the slowdown.
- Training was done with Bullet: https://github.com/jw1912/bullet — this gave a much better training speed than my own implementation.
Tests against old version
Code: Select all
Results of Zevra-2.7 vs Zevra-2.6 (60+0.6, NULL, 128MB, UHO_4060_v3.epd):
Elo: 414.63 +/- 74.50, nElo: 640.49 +/- 48.64
LOS: 100.00 %, DrawRatio: 9.18 %, PairsRatio: inf
Games: 196, Wins: 170, Losses: 7, Draws: 19, Points: 179.5 (91.58 %)
Ptnml(0-2): [0, 0, 9, 15, 74], WL/DD Ratio: 3.50