I decided it was finally time to take a whack at NNUE, and the results are a 3250 Elo chess engine
The most unique thing about Willow's NNUE is that while generating self-play data, it intentionally makes errors sometimes, ranging from second-best moves to blunders and even random moves. This leads to an aggressive style of play, and possibly increased strength as well (Willow is trained on a fairly small dataset with a fairly small arch compared to other similar strength NNUE engines I know, and doesn't really have much in the way of speed or search to compensate).
Search-wise, singular extensions have been implemented, as well as a few other patches.
bastiball wrote: ↑Sun Jul 23, 2023 5:53 am
Congrats!
I'll include this to my tournament Mini-TCEC next season, Any chances to implement FRC?
Thank you! I'll probably add it for next version. Shouldn't be too difficult as there is only castling to worry about. However I will likely not make too much of an attempt to improve FRC strength because it doesn't interest me quite as much.
Whiskers wrote: ↑Sun Jul 23, 2023 2:48 am
I decided it was finally time to take a whack at NNUE, and the results are a 3250 Elo chess engine
The most unique thing about Willow's NNUE is that while generating self-play data, it intentionally makes errors sometimes, ranging from second-best moves to blunders and even random moves. This leads to an aggressive style of play, and possibly increased strength as well (Willow is trained on a fairly small dataset with a fairly small arch compared to other similar strength NNUE engines I know, and doesn't really have much in the way of speed or search to compensate).
Search-wise, singular extensions have been implemented, as well as a few other patches.
Willow 3.0 is just playing its games as part of the MCERL series
Easy and fast compilation. Mac (Apple Silicon) version available on my site (Files section).
Whiskers, thank you for your engine. Very enjoyable to watch it's aggressive playing style!
I cannot change the CPU parameters. It is stuck at 1. I just went in there and manually edited UCI file for the engine and it shows 4 CPU's in the interface but it is still only using 1?
"Without change, something sleeps inside us, and seldom awakens. The sleeper must awaken." (Dune - 1984)
reflectionofpower wrote: ↑Sun Jul 23, 2023 1:33 pm
I cannot change the CPU parameters. It is stuck at 1. I just went in there and manually edited UCI file for the engine and it shows 4 CPU's in the interface but it is still only using 1?
List of things to do in future:
- The PV goes wild in mating endgames. I blame extensions for this, but have been unable to fix it yet. I will try and get it working properly for next release. It has no effect on strength, as the first move in the pv is still the best move, but it is annoying to see "m7" and then have the PV not be a mate.
- add multithreading. Yes, I still haven't done that yet.
- new arches, more data, better datagen script, quantizing nets and improving inference.
I had faith,heehee. Right after I posted this I was thinking it this just a 1 CPU program byt it threw me off when I seen in the UCI file that there was thread(s). His do to list explains that will be in the future which I did not read.
I am getting a runtime error and it crashed Fritz 18. No other engine does there.
"Without change, something sleeps inside us, and seldom awakens. The sleeper must awaken." (Dune - 1984)
I had faith,heehee. Right after I posted this I was thinking it this just a 1 CPU program byt it threw me off when I seen in the UCI file that there was thread(s). His do to list explains that will be in the future which I did not read.
I am getting a runtime error and it crashed Fritz 18. No other engine does there.
The dummy Threads option is to stop OpenBench complaining during tests, it does not actually do anything :3
you'll see the same for other engines too that do not support SMP but are tested via OpenBench, e.g. Svart and Midnight
Whiskers wrote: ↑Sun Jul 23, 2023 2:48 am
I decided it was finally time to take a whack at NNUE, and the results are a 3250 Elo chess engine
The most unique thing about Willow's NNUE is that while generating self-play data, it intentionally makes errors sometimes, ranging from second-best moves to blunders and even random moves. This leads to an aggressive style of play, and possibly increased strength as well (Willow is trained on a fairly small dataset with a fairly small arch compared to other similar strength NNUE engines I know, and doesn't really have much in the way of speed or search to compensate).
Search-wise, singular extensions have been implemented, as well as a few other patches.
If downloading the exe doesn't work because of antivirus shenanigans, git clone the repository ("git clone https://github.com/Adam-Kulju/Willow"), cd into Willow, run make, and the exe will pop up in that same directory.