The Leela Chess Zero project blog covers the open-source neural network chess engine, its networks, and technical explanations.
HN commenters point to it as the home of the open-source AlphaZero successor and cite its analysis comparing Lc0 networks to DeepMind's transformer.
At a minimum: building the opening book alone will require human intervention.
When you build an opening book, you need to pick-and-choose which engines will self play. Will you build an opening book vs Stockfish? Komodo? LeelaZero?
If so, how will you generate these LeelaZero games? You'll have to build a computer (or rent one from AWS) to play these LeelaZero games. What are the time-controls of matches?
Self-play at 40-minutes + 15-second increment means that you'll only create a game every hour or so. Spend 30-days building databases at 40-minute + 15-second increment games, and you'll only reach ~720 games of analysis per month of preparation.
Self-play at 1-minutes + 0-second increment results in a game win/loss every 2-minutes (maximum), giving you 21600 generated opening book positions per month of analysis. But these 21600 games are of lower-quality.
----------
Spend 1-month building an anti-Stockfish database, an anti-LeelaZero database, an anti-Komodo database... and you're now 3-months into preparation and there's still Shredder, Johnny, and all other programs that may arrive at the contest.
Its not exactly as easy as you think it is. There's no algorithm that automatically builds the best opening book (or "counter" opening book) against your opponents. Its a human choice for what the computer will spend the next-3 months self-analyzing and self-playing.
Lets think about how to build anti-LeelaZero seriously. Which of these networks do you download as the…
from https://lczero.org/dev/wiki/technical-explanation-of-leela-chess-zero/:
Leela uses PUCT (Predictor + Upper Confidence Bound tree search). We evaluate new nodes by doing a playout: start from the root node (the current position), pick a move to explore, and repeat down the tree until we reach a game position that has not been examined yet (or a position that ends the game, called a terminal node). We expand the tree with that new position (assuming non-terminal node) and use the neural network to create a first estimate of the value for the position as well as the policy for continuing moves. In Leela, a policy for a node is a list of moves and a probability for each move. The probability specifies the odds that an automatic player that executes the policy will make that move. After this node is added to the tree, backup that new value to all nodes visited during this playout. This slowly improves the value estimation of different paths through the game tree. When a move is actually played on the board, the chosen move is made the new root of the tree. The old root and the other children of that root node are erased. This is the same search specified by the AGZ paper, PUCT (Predictor + Upper Confidence Bound tree search). Many people call this MCTS (Monte-Carlo Tree Search), because it is very similar to the search algorithm the Go programs started using in 2006. But the PUCT used in AGZ and Lc0 replaces rollouts (sampling playouts to a terminal game…
Part of the problem is that it is difficult/impossible to go through the original sources and verify the claims. Another part of the problem is knowing what biases an outlet/reporter has and what parts of a story/the thing they are reporting on is missing out.
It's known that a few research papers (e.g. [1], [2]) have been fabricated on various topics. So when you read the news about those, do you read the papers? If you do, can you verify the claims in those papers? It's not possible to do at scale, so you have to trust the reporting on those stories.
A lot of reporting on things like that, or releases from major companies, tend to be based on press releases. You also have papers and websites that use others as their source of the information, so any inaccuracies or biases in that initial reporting gets magnified. It also depends on the knowledge of the person reporting -- if they are not an expert in the field they can easily get some of the details wrong.
It took a long time, combined effort, and a lot of resources for the Leela Zero team to replicate the results of Alpha Zero [3]. And that's with papers that don't have the source code, or exact details on the training methodology. I've seen quite a lot of papers on things like arXiv that amount to a summary of "we did a thing, here's a table of results" -- this makes it hard to replicate the results. And a lot of papers build on work of others, so quite often you'll need to read and understand hundreds of…
James put together a really nice summary of the ideas and the projects!
It was almost a year ago that lc0 was launched, since then the community (led by Alexander Lyashuk, author of the current engine) has taken it to a totally different level. Follow along at http://lczero.org!
Gcp has also done an amazing job with Leela Zero, with a very active community on the Go side. http://zero.sjeng.org
Of course, DeepMind really did something amazing with AlphaZero. It’s hard to overstate how dominant minimax search has been in chess. For another approach (MCTS/NN) to even be competitive with 50+ years of research is amazing. And all that without any human knowledge!
Still, Stockfish keeps on improving - Stockfish 10 is significantly stronger than the version AlphaZero played in the paper (no fault of DeepMind; SF just improves quickly). We need a public exhibition match to setttle the score, ideally with some GM commentary :). To complete the links you can watch Stockfish improve here: http://tests.stockfishchess.org.
This is a slight tangent to the article, but in the hope HN readers will find this as fascinating as I have recently...
There's a three-way battle developing between AlphaZero (as described in the article, courtesy of DeepMind), LCZero[5] (derived from LeelaZero[1] -- an open source interpretation of the same principles as AZ), and Stockfish[2] (a long-standing open source chess engine that has recently begun including neural network support).
The 'Top Chess Engine Championship'[3] seems to be a good way to follow the latest news; they also stream matches live on their website[4] (it is quite an information-dense site).
You can play against an up-to-date implementation of Stockfish in your browser -- no registration or signup required -- at https://lichess.org
[1] - https://zero.sjeng.org/
[2] - https://stockfishchess.org/
[3] - https://en.wikipedia.org/wiki/Top_Chess_Engine_Championship
[4] - https://tcec-chess.com/
[5] - https://www.lczero.org/
Edit: correct LeelaZero -> LCZero
There's the TCEC [0] which is a big thing in some circles. Stockfish does lose every now and then against top engines. [1] Usually it's two different engines playing against one another, though. Like Leela Chess Zero [2] vs. Stockfish.
In that hypothetical of running 2 instances of Stockfish against one another on a modern laptop, with the key difference being minutes of compute time, it'd probably be very close to 100% of draws. Depending on how many games you run. So, if you run a million games, there's probably some outliers. If you run a hundred, maybe not.
When it comes to actually solved positions, the 7-piece tables take around 1TB of RAM to even run. These tablebases are used by Stockfish when you actually want to run it at peak strength. [3]
[0]: https://tcec-chess.com
[1]: https://lichess.org/broadcast/tcec-s28-leagues--superfinal/match/KeswEzV5
[2]: https://lczero.org
[3]: https://github.com/syzygy1/tb