Zevra v2.6 (NNUE) released!

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Zevra v2.6 (NNUE) released!

Post by sovaz1997 »

Hello!
After a long break I release new version of Zevra with NNUE.
The net has size (768->256)x2->1 and fully trained from Zero.
First net has 768->8 size and trained on self-play games with random weights net.
Last net (11th gen) trained on 1 billion self-play games of previous net.


Changes
- NNUE eval (weights integrated to binary)
- UCI options for changing NNUE eval to HCE and Temperature for randomizing moves
- Small search improvements to make NNUE working correctly
- Remove hash probing in qsearch
- Remove Hash buckets, because didn't show improvements

Regression test (on Mac M2 Pro):

Code: Select all

tc=60+0.6, hash=256
Score of Zevra Self v11 vs Zevra Classic: 2363 - 1004 - 523  [0.675] 3890
...      Zevra Self v11 playing White: 1113 - 608 - 224  [0.630] 1945
...      Zevra Self v11 playing Black: 1250 - 396 - 299  [0.720] 1945
...      White vs Black: 1509 - 1858 - 523  [0.455] 3890
Elo difference: 126.7 +/- 10.7, LOS: 100.0 %, DrawRatio: 13.4 %
The performance on avx2 is better as I see, but don't have full test results for now.


Minimum requirements

- CPU: AVX-2 support. Intel Haswell or newer. Also Apple silicon architecture supported with using NEON instructions.

Download
https://github.com/sovaz1997/Zevra2/releases/tag/v2.6
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Zevra v2.6 (NNUE) released!

Post by sovaz1997 »

If something doesn't work, tell me please
I uploaded updated binaries for Windows, because it was not fully static. Now should be ok
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
Rowen
Posts: 104
Joined: Tue Nov 15, 2016 1:19 pm
Location: Cheshire, England

Re: Zevra v2.6 (NNUE) released!

Post by Rowen »

Thanks for sharing. I can see that temperature randomises moves but how exactly does it work? I have only seen it being used with regard to Lc0, and what is the best way of weakening the engine, to play against. Increasing temperature with or without HCE? Thanks
sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Zevra v2.6 (NNUE) released!

Post by sovaz1997 »

Yeah, of course!

First: I generate offsets before search. Offsets is random values from 0 to temperature.

After when I run search, I run it with some bias, like

Code: Select all

 eval = -search(board, searchInfo, -beta + bias[moveNumber], -alpha + bonus[moveNumber], depth + 1) - bonus[moveNumber];
Bias is different on any move.

I did the temperature, because was need to generate more randomized games + also if I test with fixed nodes (I did it with NN), I wanted to have randomization, because otherwise I will have a lot of similar games.
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Zevra v2.6 (NNUE) released!

Post by sovaz1997 »

Ah yeah, one mistake
I trained on 1 billion positions, not 1 billion games of course
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
JohnW
Posts: 402
Joined: Thu Nov 22, 2012 12:20 am
Location: New Hampshire

Re: Zevra v2.6 (NNUE) released!

Post by JohnW »

I am not sure if I am doing something wrong but it keeps losing on time when the time control is 1 minute with 1 second increment.
sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Zevra v2.6 (NNUE) released!

Post by sovaz1997 »

Where do you test, in cutechess or somewhere else? I'll take a look
In theory there shouldn't be any problems, is it specifically this tc (1 minute + 1 second) that's the problem?
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
sovaz1997
Posts: 292
Joined: Sun Nov 13, 2016 10:37 am

Re: Zevra v2.6 (NNUE) released!

Post by sovaz1997 »

I do my tests on different, on 60+0.6 also and don't have timelosses. Maybe I can have time-losses, if I load more threads than I have
Maybe I need to count time differently in that case.
Zevra 2 is my chess engine. Binary, source and description here: https://github.com/sovaz1997/Zevra2
Zevra v2.6 is last version of Zevra: https://github.com/sovaz1997/Zevra2/releases
JohnW
Posts: 402
Joined: Thu Nov 22, 2012 12:20 am
Location: New Hampshire

Re: Zevra v2.6 (NNUE) released!

Post by JohnW »

sovaz1997 wrote: Tue Mar 04, 2025 6:51 pm Where do you test, in cutechess or somewhere else? I'll take a look
In theory there shouldn't be any problems, is it specifically this tc (1 minute + 1 second) that's the problem?
I am using Arena. I haven't tried other time controls
JohnW
Posts: 402
Joined: Thu Nov 22, 2012 12:20 am
Location: New Hampshire

Re: Zevra v2.6 (NNUE) released!

Post by JohnW »

I just tried it in the Fritz 19 software and it's working fine there.