Leela Chess Zero Blog
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.
I’ve just decided that maybe it’s a time for a post. Describing what’s going on and what are the plans, stuff like that!
There are some plans for the Lc0 engine itself, but that is a topic for another post. At least we hope to make releases more regular again (v0.21.0-rc1 appeared on February 16th, and we are not even v0.22 yet).