Skip to main content

Since you’re here...

... we have a small favour to ask. More people, like you, are reading and supporting our blog: "Chess Engines Diary". And unlike many other sites and blogs, we made the choice to keep our articles open for all, regardless of where they live or what they can afford to pay.

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.

============================== My email: jotes@go2.pl



Chess engine: Orion 1.0 NNUE



Orion - UCI chess engine
Author - David Carteau, Rating CEDR=3084

Orion 1.0  - author:

Orion 1.0 is available !
I'm very happy to release a new version of my little engine Orion ! Almost two years since the last release, with a lot of tries and errors, and significant progress made the last past months. Be aware that the new version will be weaker, and without any new user features, so don't be too disappointed... But I'm really proud of it, and it will be a good base for future growth !

It includes:
a neural network trained "from zero", using only game results (1-0, 0-1, 1/2-1/2) and material as labels and targets ;
quantization of weights and biases, resulting in a 40% increase in nps (nodes per second) !
a completely rewritten Cerebrum library, allowing anyone to reproduce my work and get exactly the same neural network from the same data ;
a minor change, with a default Transposition Table size of 256 Mb (previously 128 Mb).

The "zero approach"
That was the objective, and that task was really, really, difficult to achieve. Training a neural network with such noisy labels was a real challenge. To give an hint on that, imagine that you have to evaluate a position near the start of the game (with, let's says, 30 or more pieces), just using the fact that, at the end, one player - for example Black - won the game. The "signal" to catch is even weaker when you consider that the game can be a draw...

I started to explore other approaches, like the Seer's one (see the previous post), but without success. The time needed to train so many networks and to label data was impressive. And the results were not here.

I then decided to switch to a simpler method, where I have to train only one network, with game results in input, but trying to predict two values : the win ratio (or probability to win), between 0 and 1.0 (renormalised between -1.0 and 1.0), and the material, between -1.98 and 1.98* (with pawn=0.1, ..., queen=0.9). I took the average of the two predictions, and multiplied it by 1000 to get a final evaluation in pseudo-centipawns.

This original approach led me to get an engine around 3050 elo (~100 elo weaker than version 0.9), but ranking doesn't matter here, what matters for me is that I managed to get a pretty strong performance in an original way, without requiring any evaluations from other engines !
Architecture of the network is almost exactly the same than for the version 0.9, except that it predicts now two values instead of one, and I Let the possibibilty to ajdust (at inference time) the balance between these two values to produce the final evaluation (0.5-0.5 by default in version 1.0).

Quantization
Another thing that I absolutely wanted to explore was quantization of the weights and biases. As I wanted to release a new version before version 0.9 was 2 years old, I used a simple approach with a post-training quantization.

This should imply a loss in evaluation accuracy, but I'm not even really sure of that due to the fact than 1) quantization can help to reduce overfitting, if any (it could be considered as a kind of regularisation method) and 2) it resulted in a (very) nice speed improvement : +40% in terms of nodes per second !

I was really impressed by the difference, even if, at the end, standard (i.e. not quantized) and quantized versions of Orion 1.0 were very close in strength.


The Cerebrum library... and engine !
A last important thing for me was to get reproducible results and to allow other people to reproduce my work. I merely rewrote all the Cerebrum library in that perspective, and even wrote the smallest (and stupid !) UCI chess engine possible (named "Cerebrum 1.0") in order to demonstrate how to load and use a NNUE-like chess neural network in an engine. Do not expect strong performance here: the engine is limited at depth 1. I let testers decide if they want or not to include it in their respective rating list, at least to see if it can reach... the last position ;-)

I really hope that you, reader (!), or at least someone, will try to use the library to reproduce my results, and obtain the exact same network than the one now embedded in Orion 1.0. If you are interested, please follow these instructions !


Data used for the training
For those who are interested, some words about games used to train the network network. Here again, I tested several alternatives: use only games played by engines (CCRL, CEGT, etc.), only games played by humans (lichess elite database), or a mix.

As expected, I finally got best results with datasets composed of games played exclusively by engines (CCRL). But... It appears that it leads the current network to have some weaknesses in endgames for example (where games are usually adjudicated by the use of tablebases). It also have some difficulty to convert winning positions to an actual win (because strongly unbalanced games are not so common in engine tournaments). But, that's great ! I have now understood that the quality and the representativeness of data is crucial ! Let's see if we can go further...

As already said, a big thank you to the CCRL team for providing in such a simple way all the games they played !


Evaluation method and estimated strength
Evaluation has been performed using Arasan 20.4.1 (~3075 elo), Igel 2.4.0 (~3100 elo) and Counter 4.0 (~3125 elo) in a 40/2 tournament (total: 600 games). The estimated strength of the version 1.0 is ~3050 elo (more or less 100 elo weaker than version 0.9 on the same test).
All the given elo values are to be considered as "CCRL 40/15" elo values.

Next steps
I have ton of ideas, both for evaluation and search, to experiment. I also have in mind than some users already asked for more features (e.g. mutlipv). I will try to release a new version with such improvements in less than two years this time !

* 1.98 = 127/64, i.e. the maximum (absolute) value that can be represented using an int8 (signed byte, in the range -127..127) with a quantization method centered in zero with 64 possible negative and 64 possible positive values.

Orion 1.0 NNUE download


Comments

Popular posts from this blog

New Strong Engines Test, by Chess Engines Diary, 2024.04.12

  💾  552 (!) games from the tournament download   👍 @chessenginesdiary  Country - Poland, City -  Malbork 🕓 Time 3'+3" 💻HP Pavilion i5-1035G1 8GB RAM 🖬 GUI-Banksia All  CEDR  317.321 games download  (01.04.2024 - 3'+3")  HypnoS 030424, Yuli GM Pro 16, Stockfish 16.1 and ShashChess 35 . These four engines scored the same number of points and placed at the top of the table in this strong tournament. Tech table: Engine KN/move NPS dep/mov time/mov mov/game time/game fails Alexandria 6.1.0 3218 576429 30.2 5.6 56.7 316.2 Berserk 13 4779 841025 36.7 5.7 56.0 318.1 Brainlearn 28 2275 366977 31.4 6.2 43.5 269.4 Caissa 1.18 5492 923486 30.2 5.9 50.4 299.7 Clover 6.1.19 4803 854377 31.4 5.6 62.2 349.4 Cool Iris 12.10 2201 356730 27.6 6.2 51.2 315.5 CorChess 20240331 2253 372774 27.4 6.0 52.2 315.8 Crystal 8 3582 571994 20.3 6.3 47.7 298.8 Fire 9.3 5225 876565 22.0 6.0 55.5 331.1 Fisherov chess monk 1.2 3487 619728 36.0 5.6 60.4 340.0 Hyp

New version chess engine: Raid 3.6 TacticaL RetreaT (Stockfish derivative)

Raid - is a Stockfish derivative . Rating CEDR=3743 Raid 3.2 - results: Polyfish 240114 7/14 +0 14 Games Hazard 4.21 DuaL 6.5/12 +1 12 Games Leptir 100124 6/12 +0 12 Games Arasan 24.1 7.5/10 +5 10 Games Uralochka 3.41 dev1 6/10 +2 10 Games Caissa 1.16 5.5/10 +1 10 Games SF-PRO 07.01.2024 5/10 +0 10 Games Stockfish 20240117 5/10 +0 10 Games Minic 3.41 7/8 +6 8 Games Pawn 3.0 6.5/8 +5 8 Games Texel 1.11 5.5/8 +3 8 Games RubiChess 20240112 5/8 +2 8 Games CorChess 20240103 4/8 +0 8 Games Counter 5.5 4.5/6 +3 6 Games Obsidian 10.0 3.5/6 +1 6 Games Fisherov chess monk 1.2 3/6 +0 6 Games Avalanche 2.1.0 3.5/4 +3 4 Games Starzix 4.0 2.5/4 +1 4 Games Cool Iris 11.80 2/4 +0 4 Games Blue Marlin 15.7 2/4 +0 4 Games AI 28.0 2/4 +0 4 Games

Chess engine: Incognito 8.2 (experimental version of CorChess)

  Eduard Nemeth: "by Solista: This engine is identical in code to 8.01 but without Random Op. MultiPV mode. Some users only want to use normal MultiPV mode. Download Win 64-Bit (avx2, bmi2, sse41, source code).". Rating CEDR=3741 Incognito 5 PRO engine results SF CorChess 010124 25.5/50 +1 50 Games Predator AI 23/46 +0 46 Games Polyfish 240105 22.5/44 +1 44 Games Sawfish 2TC 21/42 +0 42 Games SF PB 070124 14.5/29 +0 29 Games Dragon 3.3 15.5/26 +5 26 Games Stockfish 20240108 12/24 +0 24 Games Deep Blue 20230628 12/24 +0 24 Games AbbyStein 2.8 12/24 +0 24 Games Berserk 12.1 11/20 +2 20 Games Cool Iris 11.80 10.5/20 +1 20 Games Ethereal 14.25 10.5/16 +5 16 Games Stockfish 20231231 8/16 +0 16 Games Raid 3.1 8/16 +0 16 Games SF-PRO 25.12.2023 8/16 +0 16 Games Killfish 071223 8/16 +0 16 Games Crystal 7 7/14 +0 14 Games TACTICAL 161223 6/12 +0 12 Games Fisherov chess monk 1.2 6/12 +0 12 Games Seer 2.8.0 6.5/10 +3 10 Games SF-PRO 07.01.2024 5/10 +0 10 Games Incognito 8.2 download

New version chess engine: Lc0 v.0.31.0-rc2

LcZero - CEDR Rating=3712 v0.31.0-rc2: In this version: Changed cuda compilation options to use -arch=native or -arch=all-major if no specific version is requested, with fallback for older cuda that don't support those options. Updated android builds to use openblas 0.3.27. A few small fixes. Individual statistics:  Lc0 BT4 Clover 6.1 5.5/8 +3 8 Games RofChade 3.1 4.5/8 +1 8 Games Dragon 3.3 4.5/8 +1 8 Games SF-PRO 19.11.2023 4/8 +0 8 Games YuliGM PrO 15 3.5/8 -1 8 Games ShashChess 34.5 3.5/8 -1 8 Games Sawfish 2TC 3.5/6 +1 6 Games Polyfish 231120 3.5/6 +1 6 Games Hazard 4.1 3/6 +0 6 Games Raid 3.1 3/6 +0 6 Games Eman 9.80 3/6 +0 6 Games Incognito 4 3/6 +0 6 Games Vanilla 14c 3/6 +0 6 Games Patzer AI X-256 2.5/6 -1 6 Games SugaR AI SE 2.5/5 +0 5 Games Altair 6.0.0 3.5/4 +3 4 Games Caissa 1.15 3/4 +2 4 Games Seer 2.8.0 2.5/4 +1 4 Games Fisherov chess monk 1.2 2.5/4 +1 4 Games Crystal 7 CMB 2.5/4 +1 4 Games Chess-System-Tal-2 2.5/4 +1 4 Games Lc0 v.0.31.0-rc2 (gpu-nvidia-cudnn) d

New Chess Engines Diary Rating (CEDR) - 06.04.2024, over 317 thousand games!

  In March there were as many as 16,713 new games . In total there are 317.321 games! The new CEDR ranking was calculated based on these games. All 317.321 games download New Chess Engines Diary Rating CEDR – 06.04.2024 Chess Engines Diary Rating CEDR – 06.04.2024 generated with Ordo 0.9.9 (anchor Critter 1.6a with 3230) All 317.321 games, Time:3’+3” Minimum 250 games Pl Engine Rating Score Games (%) 1 Stockfish 20231104 3760.8 221.00 301 73.42 2 CorChess 20240122 3750.7 149.00 278 53.60 3 ShashChess 34 3747.5 156.50 260 60.19 Stockfish 16.1 3745.6 660.00 1111 59.41 4 Lc0 BT4 3712.6 148.50 263 56.46 5 Dragon 3.3 3711.5 1537.00 2939 52.30 6 Berserk 20240311 3692.4 224.00 374 59.89 7 Caissa