Leela Chess Zero Blog
Unless you were living under a rock during the last year, you have probably heard of the revolution that has been happening in computer chess. That is assuming you are interested in computer chess, but if you are not then why are you reading this? We are talking about Efficiently Updatable Neural Networks (referred to as NNUE, giving new meaning to backronyms) allegedly discovered by Japanese monks on sacred FORTRAN punched cards. The introduction of NNUE to the Alpha-Beta search of Stockfish resulted in impressive gains, despite initial bugs and ridicule. Since then the dominoes have been falling one after the other and now almost all the top chess engines have a NNUE implementation. Obviously Lc0 couldn’t be far behind, so we proudly present LcFiSh, the latest incarnation of Lc0 with NNUE technology.
There has been a long time without posts in our blog, and finally there is a good occasion to revive it.
One of the most active LCZero contributors dje, was not very active in 2020. There was a good reason for it though — he was writing Ceres, a new chess engine that uses LCZero networks!
Yesterday, December 31th 2020, it was released under the GPLv3.
Lc0 v0.25 has been released.
(and it’s actually already at v0.25.1 due to hot bugfixes after the initial release).
by @glbchess64
thanks to @dtracers and @ildolphino for correction and rewriting.
Leela won the SuFi, 52.5 to 47.5 (+5 wins). This was a difficult match that showed the qualities and the weaknesses of the two engines. Leela, with network SV-t60-3010, is by most people considered as a positional engine who likes to grind down the opponent instead of going for the quickest mate, but of course she is also a tremendous tactical player. Still she has tactical blunders and sometimes has difficulties with correctly estimating the opponent’s queen play, especially in open positions. Sometimes she does not succeed in converting a winning position because of falling prey to a perpetual check (note: the developers are working hard on this issue and a few enhancements are in the pipeline). StockFish, with 176 threads, is a fast and impressive tactician with a very solid play. But, even non-grandmaster players permit themselves to call its positional play dubious at times. It looks like a very clever player, it calculates good combinations but sometimes does not know how to coordinate pieces with pawns. In other words StockFish attempts to solve chess by brute force calculation, very clever search heuristics and a fast evaluation function. Sometimes it even helps Leela in some positions sacking pawns in a desperate way while Leela had a hard time finding the win!
Traditionally, computer chess engines evaluated position in terms of pawns. This is a convenient choice, as material is a foundation of position evaluation, which is true also among humans. Situations where the importance of positional aspect strongly outweights material are often thought as beautiful exceptions rather than the rule.
It is however not the most logical way to score a position. Using pawns sounds arbitrary, and it’s also not linear and the same step has different meanings: while going from 0 to 1 pawn advantage keeps the position quite holdable, going from 1 to 2 usually makes it mostly lost. Going from 10 to 11 makes no difference at all.
One of the commonly expressed complaints about lc0 is that there are too many parameters. While this is undoubtedly true, this gives us unparalleled flexibility to tune the engine’s behavior to reach the point where “when you see what Leela suggests, then you say - it makes sense” as Magnus Carlsen recently said. While there are efforts underway to simplify the user-facing configuration options, we decided that this is a perfect opportunity to reveal the underlying formulas used to derive the default values for most parameters:
IMPORTANT UPDATE: v0.24.0 had a bug when either --logit-q or
--draw-score-* options were active. If you use either of those options, please
upgrade to v0.24.1.
It’s been a while since we had a blog post, and it’s been a while since we had a release of Lc0. And today is happening:
Lc0 v0.24 has been released, and you can download it here.
Update: we have a bugfix release v0.23.1, download here. It contains no chess-play-related changes, the bug was in training game generation code.
We have a new release today!
Download here.
The era of test40 has finished, that training of test40 has been stopped.
Does the world need another Chess GUI? Some people say no, but they don’t have very many Chess GUIs, do they?
I’m the author of Nibbler, the first Chess GUI designed specifically for Lc0, and inspired by the excellent Lizzie Go interface. Although Nibbler is a work in progress, it’s very usable, and has received a lot of favourable comment.