Author - Oleg Smirnov
what's new?
I am presenting a new release featuring a fix for the NNUE pipeline, SPSA tuning, a better network, and some search improvements!
The NN was trained on approximately 1.5 billion self-play positions.
Evaluation / data
Fix the datagen label corruption (getMovesCount) and retrain NNUE on clean self-play; this alone gained ~+170 over v2.6.
Reinforcement data loop g0->g1->g2->g3 (~1.5B own self-play positions, teacher = previous champion each generation); g3 net = current champion.
Non-linear int8+VNNI evaluation head (768->256 x2 -> 32 -> 1, SCReLU): +82.
Factorised king-buckets feature transformer (8 quadrant buckets), engine-side int8 accumulator with incremental updates.
Search
SPSA-tuned search parameters (LMR base/divisor, futility/RFP/razor margins, null-move R, aspiration) + Late Move Pruning: +57.
Continuation (counter-move) history, 1+2 ply, bonus/malus with gravity: +12.7.
Context-aware LMR (PV / killer / history / improving) + a second full SPSA round that rebalanced NMP and futility: +14.
Adaptive time management: soft/hard limits, best-move stability, fail-low panic: +49.5 (real clock).
Fix three AddressSanitizer/UBSan bugs (killer[height-2] guard, stageGame overflow, pawnAttacks negative shift): +5.
Tooling
Local SPSA tuner over UCI-exposed search params (fastchess-driven, anchored vs a fixed champion binary).
Windows/portable/node build targets; gauntlet + Ordo harness.
Results
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

Comments
Post a Comment