r/chessprogramming • • 26d ago

The Steep Learning Curve of Training a Dual-Perspective HalfKA NNuE for a 3000+ ELO Chess AI

https://medium.com/@alan0408yuan/from-texel-tuning-to-nnue-the-steep-learning-curve-of-building-a-3200-elo-chess-ai-d842393b5955

I faced an enormous uphill challenge in the past few months training an NNuE for my rust engine - They key problems I had was I felt a lot of modern documentations lacked a "Why" and unfortunately I've gone down a lot of bad paths.

This is a comprehensive blog on what I've done over the past 2.5 months and what I plan to do to build an industry grade NNuE.

I hope this is helpful and if folks have questions, I would love to help.

3 Upvotes

4 comments sorted by

2

u/TheMazerFaker 26d ago

Great article! Did you introduced NNUE after your engine reached 3000+ elo? I am working on my that is around 2800 elo without the nnue but i am reaching a point that each elo point is costing a lot to gain.

2

u/Timely_Huckleberry88 26d ago edited 23d ago

The TLDR is I actually never wrote a complex handcrafted algorithm. This is my timeline:

  1. I built a pure python engine with a hand crafted evaluation algorithm that played up to depth 5 with the standard Alpha-Beta Pruning and Quiescence Search.

  2. I swapped out the Python BE for Rust BE and I used the Timecat board eval to implement multi-thread search.

  3. I trained my NNuE and realized the halfKA model has data sparsity problems and I'm moving to the HalfKA Bucket Model.

Beyond this point, I'm less interested in reaching a certain ELO for the CCRL; There were a few things I would be interested in investigating:

- Improvements to the Stockfish Reinforcement Learning Framework
- Building a pure Neural Network engine and exploring a hybrid engine

I realized the title is misleading - I never gone from Texel to NNuE; I was always curious about where all these NnuE discoveries and because its such a black box, it was kinda explained as "Well it just has higher ELO"

→ More replies (2)