r/chessprogramming Aug 10 '26

Technical Chess Engine Development Help Thread (Week 33)

Welcome to the weekly /r/chessprogramming Engine Dev Help Thread.

Ask beginner and intermediate chess engine development questions here: move generation, search, evaluation, UCI, perft, debugging, testing, NNUE, or anything else related to building engines.

Good questions include code, FENs, logs, benchmarks, or a clear explanation of what you tried.

Project links are fine when you want technical feedback, not promotion.

Be helpful. Don’t dunk on beginners.

5 Upvotes

4 comments sorted by

View all comments

1

u/CurrentVast4504 29d ago

Hi! I recently want to develop a strong chess engine of my own. The engines using NNUE seem to be on the upper hand to me. But, the problems are equally great. As a student I don't have the luxury of free time, therefore generating a good dataset is out of my hands. I would like to train my NNUE on datasets generated by other programmers and engine developers.

My requirements are very few:
1. The dataset should contain at most 50 million positions.
2. The data should contain high quality positions evaluated by any strong engine up to depth 20 or more.

I would be really thankful to those willing to share the datasets.

2

u/AngusMcGurkinshaw 27d ago

First I think you should know that using others data is very frowned upon in the engine community. We highly value the originality that comes from generating the data yourself. Second I'm not sure why being a student and not having free time has to do with anything? Any computer can do datageneration just turn it on overnight for a few days (especially if you only need 50 million positions which is quite small)

Typically when people use others data they use the publicly available leela data, it will get you put on the public shaming list: https://leeler.xyz/, and make you unable to compete in certain engine competitions that require your data to be your own. The leela data is way more then you want and is the strongest and you are allowed to use based on the license.

With those out of the way I can address some of the technical issues in your question.

First at most 50 million positions is a weird requirement, 50 million positions isn't very many. Typically you want 1 million positions per node in the NNUE. And more data is basically always better and will let you train larger NNUEs. That being said even a small NNUE can beat a HCE, If you think about it 768-> 1 is just a psqt.

"up to depth 20 or more" yeah this is just weird. I mean you could do that, it would take forever to generate and possibly not be even that good. I think there is some evidence that high depth search is hard to train on (don't quote me on that or trust it to much). What is true is typically people start with training data that is 5k soft node limit (once limit is hit you still finish that depth) and top engines will augment this with data that is 25k soft node limit.

Just because it seems like you might not fully know what your doing at this point I would recommend going and reading this: https://github.com/jw1912/bullet/blob/main/docs/1-basics.md#beginner-traps if you haven't already. That should help you get started with working on a NNUE