Difference between revisions of "Leela Chess Zero"

From Chessprogramming wiki
Jump to: navigation, search
(105 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
'''[[Main Page|Home]] * [[Engines]] * Leela Chess Zero'''
 
'''[[Main Page|Home]] * [[Engines]] * Leela Chess Zero'''
 +
 +
[[FILE:LC0-Logo.jpg|border|right|thumb|link=https://twitter.com/leelachesszero| Lc0 logo <ref>[https://twitter.com/leelachesszero Leela Chess Zero (@LeelaChessZero) | Twitter]</ref> ]]
  
 
'''Leela Chess Zero''', (LCZero, lc0)<br/>
 
'''Leela Chess Zero''', (LCZero, lc0)<br/>
an adaption of [[Gian-Carlo Pascutto|Gian-Carlo Pascutto's]] [[Leela Zero]] [[Go]] project <ref>[https://github.com/gcp/leela-zero GitHub - gcp/leela-zero: Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper]</ref> to [[Chess]], using [[Stockfish|Stockfish's]] [[Board Representation|board representation]] and [[Move Generation|move generation]]. No heuristics or prior [[Knowledge|knowledge]] are carried over from Stockfish. Leela Chess is [[:Category:Open Source|open source]], released under the terms of [[Free Software Foundation#GPL|GPL version 3]] or later, and supports [[UCI]]. The goal is to build a strong [[UCT]] chess AI following the same type of [[Deep Learning|deep learning]] techniques of [[AlphaZero]] as described in [[DeepMind|DeepMind's]] paper <ref>[[David Silver]], [[Thomas Hubert]], [[Julian Schrittwieser]], [[Ioannis Antonoglou]], [[Matthew Lai]], [[Arthur Guez]], [[Marc Lanctot]], [[Laurent Sifre]], [[Dharshan Kumaran]], [[Thore Graepel]], [[Timothy Lillicrap]], [[Karen Simonyan]], [[Demis Hassabis]] ('''2017'''). ''Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm''. [https://arxiv.org/abs/1712.01815 arXiv:1712.01815]</ref>, but using distributed training for the weights of the [[Neural Networks#Deep|deep]] [[Neural Networks#Residual|residual]] [[Neural Networks#Convolutional|convolutional neural network]]. The training process requires [https://en.wikipedia.org/wiki/CUDA CUDA] and a [[GPU]] accelerated version of [https://en.wikipedia.org/wiki/TensorFlow Tensorflow] installed <ref>[https://github.com/glinscott/leela-chess/blob/master/README.md leela-chess/README.md at master · glinscott/leela-chess · GitHub]</ref>.  
+
an adaption of [[Gian-Carlo Pascutto|Gian-Carlo Pascutto's]] [[Leela Zero]] [[Go]] project <ref>[https://github.com/gcp/leela-zero GitHub - gcp/leela-zero: Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper]</ref> to [[Chess]], initiated and announced by [[Stockfish]] co-author [[Gary Linscott]], who was already responsible for the Stockfish [[Stockfish#TestingFramework|Testing Framework]] called ''Fishtest''. Leela Chess is [[:Category:Open Source|open source]], released under the terms of [[Free Software Foundation#GPL|GPL version 3]] or later, and supports [[UCI]].  
 +
The goal is to build a strong chess playing entity following the same type of [[Deep Learning|deep learning]] along with [[Monte-Carlo Tree Search|Monte-Carlo tree search]] (MCTS) techniques of [[AlphaZero]] as described in [[DeepMind|DeepMind's]] 2017 and 2018 papers
 +
<ref>[[David Silver]], [[Thomas Hubert]], [[Julian Schrittwieser]], [[Ioannis Antonoglou]], [[Matthew Lai]], [[Arthur Guez]], [[Marc Lanctot]], [[Laurent Sifre]], [[Dharshan Kumaran]], [[Thore Graepel]], [[Timothy Lillicrap]], [[Karen Simonyan]], [[Demis Hassabis]] ('''2017'''). ''Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm''. [https://arxiv.org/abs/1712.01815 arXiv:1712.01815]</ref>
 +
<ref>[[David Silver]], [[Thomas Hubert]], [[Julian Schrittwieser]], [[Ioannis Antonoglou]], [[Matthew Lai]], [[Arthur Guez]], [[Marc Lanctot]], [[Laurent Sifre]], [[Dharshan Kumaran]], [[Thore Graepel]], [[Timothy Lillicrap]], [[Karen Simonyan]], [[Demis Hassabis]] ('''2018'''). ''[http://science.sciencemag.org/content/362/6419/1140 A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play]''. [https://en.wikipedia.org/wiki/Science_(journal) Science], Vol. 362, No. 6419</ref>
 +
<ref>[http://blog.lczero.org/2018/12/alphazero-paper-and-lc0-v0191.html AlphaZero paper, and Lc0 v0.19.1] by [[Alexander Lyashuk|crem]], [[Leela Chess Zero|LCZero blog]], December 07, 2018</ref>,
 +
but using distributed training for the weights of the [[Neural Networks#Deep|deep]] [[Neural Networks#Convolutional|convolutional neural network]] (CNN, DNN, DCNN).
 +
 
 +
=Lc0=
 +
Leela Chess Zero consists of an executable to play or analyze [[Chess Game|games]], initially dubbed '''LCZero''', soon rewritten by a team around [[Alexander Lyashuk]] for better performance and then called '''Lc0''' <ref>[https://github.com/LeelaChessZero/lc0/wiki/lc0-transition lc0 transition · LeelaChessZero/lc0 Wiki · GitHub]</ref> <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68094&start=91 Re: TCEC season 13, 2 NN engines will be participating, Leela and Deus X] by [[Gian-Carlo Pascutto]], [[CCC]], August 03, 2018</ref>. This executable, the actual chess engine, performs the [[Monte-Carlo Tree Search|MCTS]] and reads the self-taught [[Neural Networks#Convolutional|CNN]], which weights are persistent in a separate file.
 +
Lc0 is written in [[Cpp|C++]] (started with [[Cpp#14|C++14]] then upgraded to [[Cpp#17|C++17]]) and may be compiled for various platforms and backends. Since deep CNN approaches are best suited to run massively in parallel on [[GPU|GPUs]] to perform all the [[Float|floating point]] [https://en.wikipedia.org/wiki/Dot_product dot products] for thousands of neurons,
 +
the preferred target platforms are [[Nvidia]] [[GPU|GPUs]] supporting [https://en.wikipedia.org/wiki/CUDA CUDA] and [https://en.wikipedia.org/wiki/CuDNN CuDNN] libraries <ref>[https://developer.nvidia.com/cudnn NVIDIA cuDNN | NVIDIA Developer]</ref>. [[Ankan Banerjee]] wrote the CuDNN backend code, also shared by [[Deus X]] and [[Allie]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71822&start=48 Re: My failed attempt to change TCEC NN clone rules] by [[Adam Treat]], [[CCC]], September 19, 2019</ref>. None CUDA compliant GPUs ([[AMD]]) are supported through [[OpenCL]], while much slower pure CPU binaries are possible using  [https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS], target systems with or without a [https://en.wikipedia.org/wiki/Video_card graphics card] (GPU) are [[Linux]], [[Mac OS]] and [[Windows]] computers, or BLAS only the [[Raspberry Pi]].
 +
 
 +
=Description=
 +
Like [[AlphaZero]], Lc0's [[Evaluation|evaluates]] [[Chess Position|positions]] using non-linear function approximation based on a [[Neural Networks|deep neural network]], rather than the [[Evaluation#Linear|linear function approximation]] as used in classical chess programs.
 +
This neural network takes the board position as input and outputs position evaluation (QValue) and a vector of move probabilities (PValue, policy).
 +
Once trained, these network is combined with a [[Monte-Carlo Tree Search]] (MCTS) using the policy to narrow down the search to high­probability moves,
 +
and using the value in conjunction with a fast rollout policy to evaluate positions in the tree. The MCTS selection is done by a variation of [[Christopher D. Rosin|Rosin's]] [[UCT]] improvement dubbed [[Christopher D. Rosin#PUCT|PUCT]] (Predictor + UCT).
 +
 
 +
==[[Board Representation]]==
 +
Lc0's color agnostic board is represented by five [[Bitboards|bitboards]] (own pieces, opponent pieces, orthogonal sliding pieces, diagonal sliding pieces, and pawns including [[En passant|en passant]] target information coded as pawns on rank 1 and 8), two king squares, [[Castling Rights|castling rights]], and a flag whether the board is [[Color Flipping|color flipped]]. Getting individual piece bitboards requires some [[General Setwise Operations|setwise operations]] such as [[General Setwise Operations#Intersection|intersection]] and [[General Setwise Operations#RelativeComplement|set theoretic difference]] <ref>[https://github.com/LeelaChessZero/lc0/blob/master/src/chess/board.h lc0/board.h at master · LeelaChessZero/lc0 · GitHub]</ref>.
 +
 
 +
==Network==
 +
While [[AlphaGo]] used two disjoint networks for policy and value, [[AlphaZero]] as well as Leela Chess Zero, share a common "body" connected to disjoint policy and value "heads". The “body” consists of spatial 8x8 planes, using B [[Neural Networks#Residual|residual]] blocks with F filters of kernel size 3x3, stride 1. So far, model sizes FxB of 64x6, 128x10, 192x15, and 256x20 were used.
 +
 
 +
Concerning [[Nodes per Second|nodes per second]] of the MCTS, smaller models are faster to calculate than larger models. They are faster to train and will earlier recognize progress, but they will also saturate earlier so that at some point more training will no longer improve the engine. Larger and deeper network models will improve the receptivity, the amount of knowledge and pattern to extract from the training samples, with potential for a [[Playing Strength|stronger]] engine.
 +
As a further improvement, Leele Chess Zero applies the ''Squeeze and Excite'' (SE) extension to the residual block architecture <ref>[https://github.com/LeelaChessZero/lc0/wiki/Technical-Explanation-of-Leela-Chess-Zero Technical Explanation of Leela Chess Zero · LeelaChessZero/lc0 Wiki · GitHub]</ref> <ref>[https://towardsdatascience.com/squeeze-and-excitation-networks-9ef5e71eacd7 Squeeze-and-Excitation Networks – Towards Data Science] by [http://plpp.de/ Paul-Louis Pröve], October 17, 2017</ref>. The body is connected to both the policy "head" for the move probability distribution, and the value "head" for the evaluation score aka [[Pawn Advantage, Win Percentage, and Elo|winning probability]] of the current position and up to seven predecessor positions on the input planes.
 +
 
 +
==Training==
 +
Like in [[AlphaZero]], the '''Zero''' suffix implies no other initial knowledge than the rules of the game, to build a superhuman player, starting with truly random self-play games to apply [[Reinforcement Learning|reinforcement learning]] based on the outcome of that games. However, there are derived approaches, such as [[Albert Silver|Albert Silver's]] [[Deus X]], trying to take a short-cut by initially using [[Supervised Learning|supervised learning]] techniques, such as feeding in high quality games played by other strong chess playing entities, or huge records of positions with a given preferred move.
 +
The unsupervised training of the NN is about to minimize the [https://en.wikipedia.org/wiki/Norm_(mathematics)#Euclidean_norm L2-norm] of the [https://en.wikipedia.org/wiki/Mean_squared_error mean squared error] loss of the value output and the policy loss. Further there are experiments to train the value head against not the game outcome, but against the accumulated value for a position after exploring some number of nodes with [[UCT]] <ref>[https://medium.com/oracledevs/lessons-from-alphazero-part-4-improving-the-training-target-6efba2e71628 Lessons From AlphaZero (part 4): Improving the Training Target] by [https://blogs.oracle.com/author/vish-abrams Vish Abrams], [https://blogs.oracle.com/ Oracle Blog], June 27, 2018</ref>.
 +
 
 +
The distributed training is realized with an sophisticated [https://en.wikipedia.org/wiki/Client%E2%80%93server_model client-server model]. The client, written entirely in the [[Go (Programming Language)|Go programming language]], incorporates Lc0 to produce self-play games.Controlled by the server, the client may download the latest network, will start self-playing, and uploading games to the server, who on the other hand will regularly produce and distribute new neural network weights after a certain amount of games available from contributors. The training software consists of [[Python]] code, the pipeline requires [https://en.wikipedia.org/wiki/NumPy NumPy] and [https://en.wikipedia.org/wiki/TensorFlow TensorFlow] running on [[Linux]] <ref>[https://github.com/LeelaChessZero/lczero-training GitHub - LeelaChessZero/lczero-training: For code etc relating to the network training process.]</ref>.  
 +
The server is written in [[Go (Programming Language)|Go]] along with [[Python]] and [https://en.wikipedia.org/wiki/Shell_script shell scripts].
 +
 
 +
=Structure Diagrams=
 +
[[FILE:lc0diagram.png|none|border|text-bottom]]
 +
Related to [[TCEC]] clone discussions concerning [[Deus X]] and [[Allie]] aka [[Allie#AllieStein|AllieStein]],<br/>
 +
[[Alexander Lyashuk]] published diagrams with all components of the affected engines,<br/>
 +
The above shows the common legend, and the structure of all Leela Chess Zero's components based on current Lc0 engine <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71822 My failed attempt to change TCEC NN clone rules] by [[Alexander Lyashuk]], [[CCC]], September 14, 2019 » [[TCEC]]</ref>
 +
[[FILE:Lczero.png|none|border|text-bottom|670px]]
 +
Same diagram, but initial LCZero engine, which played [[TCEC Season 12]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71822 My failed attempt to change TCEC NN clone rules] by [[Alexander Lyashuk]], [[CCC]], September 14, 2019 » [[TCEC]]</ref>
  
=lc0=
+
=Tournament Play=
Soon after the start of the project, some of the team led by [[Alexander Lyashuk]] started to rewrite the engine from scratch. The new engine dubbed '''lc0''' was able to search 4-8 times faster than lczero on [https://en.wikipedia.org/wiki/Nvidia Nvidia ]GPU’s <ref>[https://blog.lczero.org/2018/06/18/2-the-way-forward/ The Way Forward · Leela Chess Zero]</ref>. Training has changed to require lc0 instead of lczero <ref>[http://lczero.org/ LCZero]</ref>.
+
==First Experience==
 +
LCZero gained first tournament experience in April 2018 at [[TCEC Season 12]] and over the board at the [[WCCC 2018]]
 +
in [https://en.wikipedia.org/wiki/Stockholm Stockholm], July 2018. It won the [[TCEC Season 13#Fourth|fourth division]] of [[TCEC Season 13]] in August 2018, [[#Lc0|Lc0]] finally coming in third in the [[TCEC Season 13#Third|third division]].
 +
==Breakthrough==
 +
[[TCEC Season 14]] from November 2018 until February 2019 became a breakthrough, Lc0 winning the [[TCEC Season 14#Third|third]], [[TCEC Season 14#Second|second]] and [[TCEC Season 14#First|first]] division,  
 +
to even [[TCEC Season 14#Premier|qualify]] for the [[TCEC Season 14#Superfinal|superfinal]], losing by the narrow margin of +10 =81 -9, '''50½ - 49½''' versus [[Stockfish]].
 +
Again runner-up at the [[TCEC Season 15#Premier|TCEC Season 15 premier division]] in April 2019,
 +
Lc0 aka '''LCZero v0.21.1-nT40.T8.610''' won the [[TCEC Season 15#Superfinal|superfinal]] in May 2019 versus Stockfish with +14 =79 -7, '''53½-46½''' <ref>[https://blog.lczero.org/2019/05/lc0-won-tcec-15.html Lc0 won TCEC 15] by [[Alexander Lyashuk|crem]], [[Leela Chess Zero|LCZero blog]], May 28, 2019</ref>.
 +
At the [[TCEC Season 16#Premier|TCEC Season 16 premier division]] in September 2019, Lc0 became in third behind Stockfish and the [[Supervised Learning|supervised]] trained [[Allie#AllieStein|AllieStein]],
 +
but Lc0 took revenge by winning the [[TCEC Season 17#Premier|TCEC Season 17 premier division]] in spring 2020, as '''LCZero v0.24-sv-t60-3010''' fighting down Stockfish in a thrilling [[TCEC Season 17#Superfinal|superfinal]] in April 2020 with +17 =71 -12, '''52½-47½''' <ref>[https://lczero.org/blog/2020/04/tcec-s17-super-final-report/ TCEC S17 SUper FInal report] by @glbchess64, [[Leela Chess Zero|LCZero blog]], April 21, 2020</ref>, but tables turned again in [[TCEC Season 18#Premier|TCEC Season 18]], when Stockfish won the [[TCEC Season 18#Superfinal|superfinal]].
 +
 
 +
=Release Dates=
 +
==2018==
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.14.1 - July 08, 2018
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.16.0 - July 20, 2018
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.17.0 - August 27, 2018
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.18.0 - September 30, 2018
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.18.1 - October 02, 2018
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.19.0 - November 19, 2018
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.19.1.1 - December 10, 2018
 +
==2019==
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.20.9 - January 01, 2019
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.20.1 - January 07, 2019
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.20.2 - February 01, 2019
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.21.1 - March 23, 2019
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.21.2 - June 09, 2019
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.21.4 - July 28, 2019
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.22.0 - August 05, 2019
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.23.2 - December 31, 2019
 +
==2020==
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.23.3 - February 18, 2020
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.24.1 - March 15, 2020
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.25.1 - April 30, 2020
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.26.0 - July 02, 2020
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.26.1 - July 15, 2020
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.26.2 - September 02, 2020
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] v0.26.3 - October 10, 2020
 +
==2021==
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] [https://github.com/LeelaChessZero/lc0/releases/tag/v0.27.0 v0.27.0] - February 21, 2021
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] [https://github.com/LeelaChessZero/lc0/releases/tag/v0.28.0 v0.28.0] - August 26, 2021
 +
* [[Leela Chess Zero]] / [[Leela Chess Zero#Lc0|Lc0]] [https://github.com/LeelaChessZero/lc0/releases/tag/v0.28.2 v0.28.2] - December 13, 2021
 +
 
 +
=Authors=
 +
* [[:Category:Leela Chess Contributor|Leela Chess Contributors]]
  
 
=See also=
 
=See also=
 +
* [[Allie]]
 
* [[AlphaZero]]
 
* [[AlphaZero]]
 +
* [[Ceres]]
 +
* [[Fat Fritz]]
 
* [[Deep Learning]]
 
* [[Deep Learning]]
* [[UCT]]
+
* [[Deus X]]
 +
* [[Leela Zero]]
 +
* [[Leila]]
 +
* [[Maia Chess]]
 +
* [[Monte-Carlo Tree Search]]
 +
: [[UCT]]
 
: [[Christopher D. Rosin#PUCT|PUCT]]
 
: [[Christopher D. Rosin#PUCT|PUCT]]
 +
* [[Stockfish NNUE]]
 +
 +
=Publications=
 +
* [[Bill Jordan]] ('''2020'''). ''Calculation versus Intuition: Stockfish versus Leela''. [https://www.amazon.com/Calculation-versus-Intuition-Stockfish-Leela-ebook/dp/B08LYBQDMB/ amazon] » [[TCEC]], [[Stockfish]]
 +
* [[Dominik Klein]] ('''2021'''). ''[https://github.com/asdfjkl/neural_network_chess Neural Networks For Chess]''. [https://github.com/asdfjkl/neural_network_chess/releases/tag/v1.1 Release Version 1.1 · GitHub] <ref>[https://www.talkchess.com/forum3/viewtopic.php?f=2&t=78283 Book about Neural Networks for Chess] by dkl, [[CCC]], September 29, 2021</ref>
 +
* [[Rejwana Haque]], [[Ting Han Wei]], [[Martin Müller]] ('''2021'''). ''On the Road to Perfection? Evaluating Leela Chess Zero Against Endgame Tablebases''. [[Advances in Computer Games 17]]
  
 
=Forum Posts=
 
=Forum Posts=
Line 17: Line 116:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66280 Announcing lczero] by [[Gary Linscott|Gary]], [[CCC]], January 09, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66280 Announcing lczero] by [[Gary Linscott|Gary]], [[CCC]], January 09, 2018
 
: [http://www.talkchess.com/forum/viewtopic.php?t=66280&start=67 Re: Announcing lczero] by [[Daniel Shawul]], [[CCC]], January 21, 2018 » [[Bojun Huang#Rollout|Rollout Paradigm]]
 
: [http://www.talkchess.com/forum/viewtopic.php?t=66280&start=67 Re: Announcing lczero] by [[Daniel Shawul]], [[CCC]], January 21, 2018 » [[Bojun Huang#Rollout|Rollout Paradigm]]
 +
* [https://github.com/glinscott/leela-chess/issues/47 Policy and value heads are from AlphaGo Zero, not Alpha Zero Issue #47] by [[Gian-Carlo Pascutto]], [https://github.com/glinscott/leela-chess  glinscott/leela-chess · GitHub], January 24, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66452 LCZero is learning] by [[Gary Linscott|Gary]], [[CCC]], January 30, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66452 LCZero is learning] by [[Gary Linscott|Gary]], [[CCC]], January 30, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66824 LCZero update] by [[Gary Linscott|Gary]], [[CCC]], March 14, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66824 LCZero update] by [[Gary Linscott|Gary]], [[CCC]], March 14, 2018
Line 22: Line 122:
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66945 LCZero: Progress and Scaling. Relation to CCRL Elo] by [[Kai Laskos]], [[CCC]], March 28, 2018 » [[Playing Strength]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=66945 LCZero: Progress and Scaling. Relation to CCRL Elo] by [[Kai Laskos]], [[CCC]], March 28, 2018 » [[Playing Strength]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=67013 What does LCzero learn?] by [[Uri Blass]], [[CCC]], April 05, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=67013 What does LCzero learn?] by [[Uri Blass]], [[CCC]], April 05, 2018
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67044 How to play vs LCZero with Cute Chess gui] by Hai, [[CCC]], April 08, 2018 » [[Cute Chess]]
 
* [http://www.talkchess.com/forum/viewtopic.php?t=67075 LCZero in Aquarium / Fritz] by [[Carl Bicknell]], [[CCC]], April 11, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=67075 LCZero in Aquarium / Fritz] by [[Carl Bicknell]], [[CCC]], April 11, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=67087 LCZero on 10x128 now] by [[Gary Linscott|Gary]], [[CCC]], April 12, 2018  
 
* [http://www.talkchess.com/forum/viewtopic.php?t=67087 LCZero on 10x128 now] by [[Gary Linscott|Gary]], [[CCC]], April 12, 2018  
 
* [http://www.talkchess.com/forum/viewtopic.php?t=67092 lczero faq] by Duncan Roberts, [[CCC]], April 13, 2018
 
* [http://www.talkchess.com/forum/viewtopic.php?t=67092 lczero faq] by Duncan Roberts, [[CCC]], April 13, 2018
 +
* [http://www.talkchess.com/forum/viewtopic.php?t=67104 Run LC Zero in LittleBlitzerGUI] by [[Stefan Pohl]], [[CCC]], April 14, 2018 » [[LittleBlitzer]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=67121 LC0 - how to catch up?] by [[Srdja Matovic]], [[CCC]], April 16, 2018
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67300 Leela on more then one GPU?] by [[Karlo Balla]], [[CCC]], May 01, 2018
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67357 GPU contention] by [[Ian Kennedy]], [[CCC]], May 07, 2018 » [[GPU]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67646 New CLOP settings give Leela huge tactics boost] by [[Albert Silver]], [[CCC]], June 04, 2018 » [[CLOP]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67668 First Win by Leela Chess Zero against Stockfish dev] by [[Ankan Banerjee]], [[CCC]], June 07, 2018 » [[Stockfish]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67718 what may be two firsts...] by [[Michael Byrne|Michael B]], [[CCC]], June 13, 2018 » [[DGT Pi]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67728 LcZero and STS] by [[Ed Schroder|Ed Schröder]], [[CCC]], June 14, 2018 » [[Strategic Test Suite]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=67728 LcZero and STS] by [[Ed Schroder|Ed Schröder]], [[CCC]], June 14, 2018 » [[Strategic Test Suite]]
 
* [https://groups.google.com/d/msg/lczero/S-rhiPLnbHg/XY9-Z1LWCAAJ Who entered Leela into WCCC? Bad idea!!] by [[Chris Whittington]], [[Computer Chess Forums|LCZero Forum]], June  23, 2018 » [[WCCC 2018]]
 
* [https://groups.google.com/d/msg/lczero/S-rhiPLnbHg/XY9-Z1LWCAAJ Who entered Leela into WCCC? Bad idea!!] by [[Chris Whittington]], [[Computer Chess Forums|LCZero Forum]], June  23, 2018 » [[WCCC 2018]]
Line 35: Line 143:
 
* [https://groups.google.com/d/msg/lczero/vGdNYW-Ou58/Kh0GCj2OCgAJ Has Silver written any code for "his" ZeusX?] by [[Chris Whittington]], [[Computer Chess Forums|LCZero Forum]], July 31, 2018  
 
* [https://groups.google.com/d/msg/lczero/vGdNYW-Ou58/Kh0GCj2OCgAJ Has Silver written any code for "his" ZeusX?] by [[Chris Whittington]], [[Computer Chess Forums|LCZero Forum]], July 31, 2018  
 
: [https://groups.google.com/d/msg/lczero/vGdNYW-Ou58/-icwb0pjDAAJ Re: Has Silver written any code for "his" ZeusX?] by [[Alexander Lyashuk]], [[Computer Chess Forums|LCZero Forum]], August 02, 2018  
 
: [https://groups.google.com/d/msg/lczero/vGdNYW-Ou58/-icwb0pjDAAJ Re: Has Silver written any code for "his" ZeusX?] by [[Alexander Lyashuk]], [[Computer Chess Forums|LCZero Forum]], August 02, 2018  
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68441 Some properties of Lc0 playing] by [[Kai Laskos]], [[CCC]], September 14, 2018
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68448 How good is the RTX 2080 Ti for Leela?] by Hai, September 15, 2018 <ref>[https://en.wikipedia.org/wiki/GeForce_20_series GeForce 20 series from Wikipedia]</ref>
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68448&start=2 Re: How good is the RTX 2080 Ti for Leela?] by [[Ankan Banerjee]], [[CCC]], September 16, 2018
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68448&start=9 Re: How good is the RTX 2080 Ti for Leela?] by [[Ankan Banerjee]], [[CCC]], September 17, 2018 <ref>[https://en.wikipedia.org/wiki/Multiply%E2%80%93accumulate_operation Multiply–accumulate operation - Wikipedia]</ref>
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68448&start=37 Re: How good is the RTX 2080 Ti for Leela?] by [[Ankan Banerjee]], [[CCC]], October 28, 2018
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68448&start=44 Re: How good is the RTX 2080 Ti for Leela?] by [[Ankan Banerjee]], [[CCC]], November 15, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68511 LC0 0.18rc1 released] by [[Günther Simon]], [[CCC]], September 25, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68511 LC0 0.18rc1 released] by [[Günther Simon]], [[CCC]], September 25, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68973 My non-OC RTX 2070 is very fast with Lc0] by [[Kai Laskos]], [[CCC]], November 19, 2018 <ref>[https://www.nvidia.com/en-us/geforce/graphics-cards/rtx-2070/ GeForce RTX 2070 Graphics Card | NVIDIA]</ref>
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=68973 My non-OC RTX 2070 is very fast with Lc0] by [[Kai Laskos]], [[CCC]], November 19, 2018 <ref>[https://www.nvidia.com/en-us/geforce/graphics-cards/rtx-2070/ GeForce RTX 2070 Graphics Card | NVIDIA]</ref>
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69045 2900 Elo points progress, 10 million games, 330 nets] by [[Kai Laskos]], [[CCC]], November 25, 2018
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69045&start=8 Re: 2900 Elo points progress, 10 million games, 330 nets] by [[Alexander Lyashuk|crem]], [[CCC]], November 25, 2018
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69068 Scaling of Lc0 at high Leela Ratio] by [[Kai Laskos]], [[CCC]], November 27, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69175&start=75 Re: Alphazero news] by [[Gian-Carlo Pascutto]], [[CCC]], December 07, 2018 » [[AlphaZero]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69175&start=75 Re: Alphazero news] by [[Gian-Carlo Pascutto]], [[CCC]], December 07, 2018 » [[AlphaZero]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=69306 Policy training in Alpha Zero, LC0 ..] by [[Chris Whittington]], [[CCC]], December 18, 2018 » [[AlphaZero]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=69306 Policy training in Alpha Zero, LC0 ..] by [[Chris Whittington]], [[CCC]], December 18, 2018 » [[AlphaZero]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69400 LC0 using 4 x 2080 Ti GPU's on Chess.com tourney?] by M. Ansari, [[CCC]], December 28, 2018
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69400 LC0 using 4 x 2080 Ti GPU's on Chess.com tourney?] by M. Ansari, [[CCC]], December 28, 2018
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69318 Smallnet (128x10) run1 progresses remarkably well] by  [[Kai Laskos]], [[CCC]], December 19, 2018
 +
* [https://groups.google.com/d/msg/lczero/EGcJSrZYLiw/netJ4S38CgAJ use multiple neural nets?] by [[Warren D. Smith]], [[Computer Chess Forums|LCZero Forum]], December 25, 2018
 
==2019==
 
==2019==
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69478 LCZero FAQ is missing one important fact] by [[Jouni Uski]], [[CCC]], January 01, 2019 » [[GPU]]
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69478 LCZero FAQ is missing one important fact] by [[Jouni Uski]], [[CCC]], January 01, 2019 » [[GPU]]
 +
* [https://groups.google.com/d/msg/lczero/CrMiK3OR1og/mcFd0NDKDQAJ "boosting" endgames in leela training? Simple change to learning process proposed: "forked" training games] by [[Warren D. Smith]], [[Computer Chess Forums|LCZero Forum]], January 03, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69552 Leela on a weak pc, question] by chessico, [[CCC]], January 09, 2019
 +
* [https://groups.google.com/d/msg/lczero/I0lTgR-fFFU/NGC3kJDzAwAJ Michael Larabel benches lc0 on various GPUs] by [[Warren D. Smith]], [[Computer Chess Forums|LCZero Forum]], January 14, 2019 » [[GPU]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69622 Can somebody explain what makes Leela as strong as Komodo?] by Chessqueen, [[CCC]], January 16, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=69668 A0 policy head ambiguity] by [[Daniel Shawul]], [[CCC]], January 21, 2019 » [[AlphaZero]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69672 Schizophrenic rating model for Leela] by [[Kai Laskos]], [[CCC]], January 21, 2019 » [[Match Statistics]]
 +
* [http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=10194 Leela Zero (Lc0) - NVIDIA Geforce RTX 2060] by [[Andreas Strangmüller]], [[Computer Chess Forums|CSS Forum]], January 29, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69820 11258-32x4-se distilled network released] by [[Dietrich Kappe]], [[CCC]], February 03, 2019
 +
* [http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=10213 Lc0 setup Hilfe] by [[Clemens Keck]], [[Computer Chess Forums|CSS Forum]], February 07, 2019 (German)
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=69852 Lc0 - macOS binary requested] by Steppenwolf, [[CCC]], February 09, 2019 » [[Mac OS]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=69957 Thanks for LC0] by [[Peter Berger]], [[CCC]], February 19, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=70069&start=10 Re: Training the trainer: how is it done for Stockfish?] by Graham Jones, [[CCC]], March 03, 2019 » [[Monte-Carlo Tree Search]], [[Stockfish]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=70350 Lc0 51010] by [[Larry Kaufman]], [[CCC]], March 29, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=70362 Using LC0 with one or two GPUs - a guide] by [[Srdja Matovic]], [[CCC]], March 30, 2019 » [[GPU]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=70451 32930 Boost network available] by [[Dietrich Kappe]], [[CCC]], April 09, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71209 Lc0 question] by [[Larry Kaufman]], [[CCC]], July 06, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=71651 Some newbie questions about lc0] by [[Pham Hong Nguyen|Nguyen Pham]], [[CCC]], August 25, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71686 Lc0 Evaluation Explanation] by Hamster, [[CCC]], August 29, 2019
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71686&start=14 Re: Lc0 Evaluation Explanation] by [[Alexander Lyashuk]], [[CCC]], September 03, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71822 My failed attempt to change TCEC NN clone rules] by [[Alexander Lyashuk]], [[CCC]], September 14, 2019 » [[TCEC]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72640 Best Nets for Lc0 Page] by [[Ted Summers]], [[CCC]], December 23, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72685 Correct LC0 syntax for multiple GPUs] by [[Dann Corbit]], [[CCC]], December 30, 2019
 +
==2020==
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=73684 Lc0 soon to support chess960 ?] by Modern Times, [[CCC]], April 18, 2020 » [[Chess960]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=73714 How to run rtx 2080ti for leela optimally?] by h1a8, [[CCC]], April 20, 2020
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=74092 Total noob Leela question] by [[Harm Geert Muller]], [[CCC]], June 03, 2020
 +
* [https://groups.google.com/d/msg/lczero/BvhCa-muLt0/ZzINQk_vCQAJ How strong is Stockfish NNUE compared to Leela..] by OmenhoteppIV, [[Computer Chess Forums|LCZero Forum]], July 13, 2020 » [[Stockfish NNUE]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74607 LC0 vs. NNUE - some tech details...] by [[Srdja Matovic]], [[CCC]], July 29, 2020 » [[NNUE]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=74915 The next step for LC0?] by [[Srdja Matovic]], [[CCC]], August 28, 2020
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75262 Checking the backends with the new lc0 binary] by [[Kai Laskos]], [[CCC]], October 01, 2020
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75950 ZZ-tune conclusively better than the Kiudee default for Lc0] by [[Kai Laskos]], [[CCC]], December 01, 2020 <ref>[https://github.com/kiudee/chess-tuning-tools GitHub - kiudee/chess-tuning-tools] by [[Karlson Pfannschmidt]]</ref>
 +
==2021==
 +
* [https://lczero.org/blog/2021/01/announcing-ceres/ Announcing Ceres] by [[Alexander Lyashuk|crem]], [[Leela Chess Zero|LCZero blog]], January 01, 2021 » [[Ceres]]
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=76948 leela] by [[Stuart Cracraft]], [[CCC]], March 29, 2021 » [[Banksia GUI]], [[iPhone]]
 +
* [https://lczero.org/blog/2021/04/joking-ftw-seriously/ Joking FTW, Seriously] by borg, [[Leela Chess Zero|LCZero blog]], April 25, 2021
 +
* [https://lczero.org/blog/2021/06/the-importance-of-open-data/ The importance of open data] by borg, [[Leela Chess Zero|LCZero blog]], June 15, 2021
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77496 Leela data publicly available for use] by Madeleine Birchfield, [[CCC]], June 15, 2021
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77503 will Tcec allow Stockfish with a Leela net to play?] by Wilson, [[CCC]], June 17, 2021 » [[TCEC Season 21]]
  
 
=External Links=
 
=External Links=
 
==Chess Engine==
 
==Chess Engine==
* [http://lczero.org/ LCZero]
+
* [https://lczero.org/ Leela Chess Zero]
 +
* [https://lczero.org/blog/ Blog - Leela Chess Zero]
 +
* [https://groups.google.com/forum/#!forum/lczero LCZero – Forum]
 +
* [https://training.lczero.org/ Testing instance of LCZero server]
 +
* [https://en.wikipedia.org/wiki/Leela_Chess_Zero Leela Chess Zero from Wikipedia]
 +
* [https://en.wikipedia.org/wiki/Leela_(software) Leela (software) from Wikipedia]
 +
* [https://www.facebook.com/LeelaChessZero/ Leela Chess Zero - Facebook]
 +
* [https://twitter.com/leelachesszero Leela Chess Zero (@LeelaChessZero) | Twitter]
 +
* [https://slides.com/crem/lc0#/logo Lc0 Slides] by [[Alexander Lyashuk]]
 +
==GitHub==
 
* [https://github.com/LeelaChessZero/ LCZero · GitHub]
 
* [https://github.com/LeelaChessZero/ LCZero · GitHub]
 +
* [https://github.com/LeelaChessZero/lczero GitHub - LeelaChessZero/lczero: A chess adaption of GCP's Leela Zero]
 +
* [https://github.com/LeelaChessZero/lc0 GitHub - LeelaChessZero/lc0: The rewritten engine, originally for tensorflow. Now all other backends have been ported here]
 
* [https://github.com/LeelaChessZero/lc0/wiki Home · LeelaChessZero/lc0 Wiki · GitHub]
 
* [https://github.com/LeelaChessZero/lc0/wiki Home · LeelaChessZero/lc0 Wiki · GitHub]
 +
* [https://github.com/LeelaChessZero/lc0/wiki/Getting-Started Getting Started · LeelaChessZero/lc0 Wiki · GitHub]
 
* [https://github.com/LeelaChessZero/lc0/wiki/FAQ FAQ · LeelaChessZero/lc0 Wiki · GitHub]
 
* [https://github.com/LeelaChessZero/lc0/wiki/FAQ FAQ · LeelaChessZero/lc0 Wiki · GitHub]
* [https://github.com/LeelaChessZero/lc0 GitHub - LeelaChessZero/lc0: The rewritten engine, originally for tensorflow. Now all other backends have been ported here]
+
* [https://github.com/LeelaChessZero/lc0/wiki/Technical-Explanation-of-Leela-Chess-Zero Technical Explanation of Leela Chess Zero · LeelaChessZero/lc0 Wiki · GitHub]
 +
* [https://github.com/LeelaChessZero/lc0/graphs/contributors Contributors to LeelaChessZero/lc0 · GitHub]
 +
* [https://github.com/LeelaChessZero/lc0/commit/62741d56252b23f74e8a7200a42812f27fe32b7d Use NHCW layout for fused winograd residual block (#1567) · LeelaChessZero/lc0@62741d5 · GitHub], commit by [[Ankan Banerjee]], June 10, 2021
 
* [https://github.com/mooskagh/lc0 GitHub - mooskagh/lc0: The rewritten engine, originally for cudnn. Now all other backends have been ported here]
 
* [https://github.com/mooskagh/lc0 GitHub - mooskagh/lc0: The rewritten engine, originally for cudnn. Now all other backends have been ported here]
* [https://github.com/LeelaChessZero/lczero GitHub - LeelaChessZero/lczero: A chess adaption of GCP's Leela Zero]
+
* [https://github.com/dkappe/leela-chess-weights/wiki/Distilled-Networks Distilled Networks · dkappe/leela-chess-weights Wiki · GitHub]
* [https://groups.google.com/forum/#!forum/lczero LCZero – Google Groups]
+
==Rating Lists==
* [https://blog.lczero.org/ Leela Chess Zero - Blog]
+
* [http://computerchess.org.uk/ccrl/404/cgi/compare_engines.cgi?family=Leela%20Chess&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents Leela Chess Zero] in [[CCRL|CCRL Blitz]]
* [https://www.facebook.com/LeelaChessZero/ Leela Chess Zero - Facebook]
+
* [http://computerchess.org.uk/ccrl/4040/cgi/compare_engines.cgi?family=Leela%20Chess&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents Leela Chess Zero] in [[CCRL|CCRL 40/15]]
* [https://en.wikipedia.org/wiki/Leela_Chess_Zero Leela Chess Zero from Wikipedia]
+
==ChessBase==
 
* [https://en.chessbase.com/post/leela-chess-zero-alphazero-for-the-pc Leela Chess Zero: AlphaZero for the PC] by [[Albert Silver]], [[ChessBase|ChessBase News]], April 26, 2018
 
* [https://en.chessbase.com/post/leela-chess-zero-alphazero-for-the-pc Leela Chess Zero: AlphaZero for the PC] by [[Albert Silver]], [[ChessBase|ChessBase News]], April 26, 2018
 +
* [https://en.chessbase.com/post/standing-on-the-shoulders-of-giants Standing on the shoulders of giants] by [[Albert Silver]], [[ChessBase|ChessBase News]], September 18, 2019
 +
* [https://en.chessbase.com/post/running-leela-and-fat-fritz-on-your-notebook Running Leela and Fat Fritz on your notebook] by [https://ratings.fide.com/card.phtml?event=2099713 Evelyn Zhu], [[ChessBase|ChessBase News]], June 14, 2020 » [[Fat Fritz]]
 +
==Chessdom==
 +
* [http://www.chessdom.com/interview-with-alexander-lyashuk-about-the-recent-success-of-lc0/ Interview with Alexander Lyashuk about the recent success of Lc0], [[Chessdom]], February 6, 2019 » [[TCEC Season 14]]
 +
==Tuning==
 +
* [https://github.com/kiudee/bayes-skopt GitHub - kiudee/bayes-skopt: A fully Bayesian implementation of sequential model-based optimization] by [[Karlson Pfannschmidt]] » [[Fat Fritz]] <ref>[https://en.chessbase.com/post/fat-fritz-update-and-fat-fritz-jr Fat Fritz 1.1 update and a small gift] by [[Albert Silver]]. [[ChessBase|ChessBase News]], March 05, 2020</ref>
 +
* [https://github.com/kiudee/chess-tuning-tools GitHub - kiudee/chess-tuning-tools] by [[Karlson Pfannschmidt]] <ref>[https://chess-tuning-tools.readthedocs.io/en/latest/ Welcome to Chess Tuning Tools’s documentation!]</ref>
 
==Misc==
 
==Misc==
 +
* [https://en.wikipedia.org/wiki/Leela Leela from Wikipedia]
 +
* [https://en.wikipedia.org/wiki/Leela_(game) Leela (game) from Wikipedia]
 +
* [https://en.wikipedia.org/wiki/Leela_(name) Leela (name) from Wikipedia]
 +
* [https://en.wikipedia.org/wiki/Leela_(Doctor_Who) Leela (Doctor Who) from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Leela_(Futurama) Leela (Futurama) from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Leela_(Futurama) Leela (Futurama) from Wikipedia]
* [[:Category:Marc Ribot|Marc Ribot's]] Ceramic Dog - Lies My Body Told Me (Live on [https://en.wikipedia.org/wiki/KEXP-FM KEXP], July 20, 2016), [https://en.wikipedia.org/wiki/YouTube YouTube] Video  
+
* [[:Category:Soft Machine|Soft Machine]] - [https://en.wikipedia.org/wiki/Hidden_Details Hidden Details], 2018, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: {{#evu:https://www.youtube.com/watch?v=YohWv7kIp5o|alignment=left|valignment=top}}
+
: Lineup: [https://en.wikipedia.org/wiki/Theo_Travis Theo Travis], [[:Category:Roy Babbington|Roy Babbington]], [https://en.wikipedia.org/wiki/John_Etheridge John Etheridge], [[:Category:John Marshall|John Marshall]]
 +
: {{#evu:https://www.youtube.com/watch?v=uGIf97m243M|alignment=left|valignment=top}}
  
 
=References=  
 
=References=  
 
<references />
 
<references />
 
 
'''[[Engines|Up one level]]'''
 
'''[[Engines|Up one level]]'''
 
[[Category:UCI]]
 
[[Category:UCI]]
 
[[Category:Open Source]]
 
[[Category:Open Source]]
 
[[Category:GPL]]
 
[[Category:GPL]]
[[Category:Marc Ribot]]
+
[[Category:GPU]]
 +
[[Category:DCNN]]
 +
[[Category:MCTS]]
 +
[[Category:PC]]
 +
[[Category:Windows]]
 +
[[Category:Linux]]
 +
[[Category:Mac]]
 +
[[Category:Fiction]]
 +
[[Category:Given Name]]
 +
[[Category:Soft Machine]]
 +
[[Category:Roy Babbington]]
 +
[[Category:John Marshall]]

Revision as of 09:37, 7 April 2022

Home * Engines * Leela Chess Zero

Lc0 logo [1]

Leela Chess Zero, (LCZero, lc0)
an adaption of Gian-Carlo Pascutto's Leela Zero Go project [2] to Chess, initiated and announced by Stockfish co-author Gary Linscott, who was already responsible for the Stockfish Testing Framework called Fishtest. Leela Chess is open source, released under the terms of GPL version 3 or later, and supports UCI. The goal is to build a strong chess playing entity following the same type of deep learning along with Monte-Carlo tree search (MCTS) techniques of AlphaZero as described in DeepMind's 2017 and 2018 papers [3] [4] [5], but using distributed training for the weights of the deep convolutional neural network (CNN, DNN, DCNN).

Lc0

Leela Chess Zero consists of an executable to play or analyze games, initially dubbed LCZero, soon rewritten by a team around Alexander Lyashuk for better performance and then called Lc0 [6] [7]. This executable, the actual chess engine, performs the MCTS and reads the self-taught CNN, which weights are persistent in a separate file. Lc0 is written in C++ (started with C++14 then upgraded to C++17) and may be compiled for various platforms and backends. Since deep CNN approaches are best suited to run massively in parallel on GPUs to perform all the floating point dot products for thousands of neurons, the preferred target platforms are Nvidia GPUs supporting CUDA and CuDNN libraries [8]. Ankan Banerjee wrote the CuDNN backend code, also shared by Deus X and Allie [9]. None CUDA compliant GPUs (AMD) are supported through OpenCL, while much slower pure CPU binaries are possible using BLAS, target systems with or without a graphics card (GPU) are Linux, Mac OS and Windows computers, or BLAS only the Raspberry Pi.

Description

Like AlphaZero, Lc0's evaluates positions using non-linear function approximation based on a deep neural network, rather than the linear function approximation as used in classical chess programs. This neural network takes the board position as input and outputs position evaluation (QValue) and a vector of move probabilities (PValue, policy). Once trained, these network is combined with a Monte-Carlo Tree Search (MCTS) using the policy to narrow down the search to high­probability moves, and using the value in conjunction with a fast rollout policy to evaluate positions in the tree. The MCTS selection is done by a variation of Rosin's UCT improvement dubbed PUCT (Predictor + UCT).

Board Representation

Lc0's color agnostic board is represented by five bitboards (own pieces, opponent pieces, orthogonal sliding pieces, diagonal sliding pieces, and pawns including en passant target information coded as pawns on rank 1 and 8), two king squares, castling rights, and a flag whether the board is color flipped. Getting individual piece bitboards requires some setwise operations such as intersection and set theoretic difference [10].

Network

While AlphaGo used two disjoint networks for policy and value, AlphaZero as well as Leela Chess Zero, share a common "body" connected to disjoint policy and value "heads". The “body” consists of spatial 8x8 planes, using B residual blocks with F filters of kernel size 3x3, stride 1. So far, model sizes FxB of 64x6, 128x10, 192x15, and 256x20 were used.

Concerning nodes per second of the MCTS, smaller models are faster to calculate than larger models. They are faster to train and will earlier recognize progress, but they will also saturate earlier so that at some point more training will no longer improve the engine. Larger and deeper network models will improve the receptivity, the amount of knowledge and pattern to extract from the training samples, with potential for a stronger engine. As a further improvement, Leele Chess Zero applies the Squeeze and Excite (SE) extension to the residual block architecture [11] [12]. The body is connected to both the policy "head" for the move probability distribution, and the value "head" for the evaluation score aka winning probability of the current position and up to seven predecessor positions on the input planes.

Training

Like in AlphaZero, the Zero suffix implies no other initial knowledge than the rules of the game, to build a superhuman player, starting with truly random self-play games to apply reinforcement learning based on the outcome of that games. However, there are derived approaches, such as Albert Silver's Deus X, trying to take a short-cut by initially using supervised learning techniques, such as feeding in high quality games played by other strong chess playing entities, or huge records of positions with a given preferred move. The unsupervised training of the NN is about to minimize the L2-norm of the mean squared error loss of the value output and the policy loss. Further there are experiments to train the value head against not the game outcome, but against the accumulated value for a position after exploring some number of nodes with UCT [13].

The distributed training is realized with an sophisticated client-server model. The client, written entirely in the Go programming language, incorporates Lc0 to produce self-play games.Controlled by the server, the client may download the latest network, will start self-playing, and uploading games to the server, who on the other hand will regularly produce and distribute new neural network weights after a certain amount of games available from contributors. The training software consists of Python code, the pipeline requires NumPy and TensorFlow running on Linux [14]. The server is written in Go along with Python and shell scripts.

Structure Diagrams

Lc0diagram.png

Related to TCEC clone discussions concerning Deus X and Allie aka AllieStein,
Alexander Lyashuk published diagrams with all components of the affected engines,
The above shows the common legend, and the structure of all Leela Chess Zero's components based on current Lc0 engine [15]

Lczero.png

Same diagram, but initial LCZero engine, which played TCEC Season 12 [16]

Tournament Play

First Experience

LCZero gained first tournament experience in April 2018 at TCEC Season 12 and over the board at the WCCC 2018 in Stockholm, July 2018. It won the fourth division of TCEC Season 13 in August 2018, Lc0 finally coming in third in the third division.

Breakthrough

TCEC Season 14 from November 2018 until February 2019 became a breakthrough, Lc0 winning the third, second and first division, to even qualify for the superfinal, losing by the narrow margin of +10 =81 -9, 50½ - 49½ versus Stockfish. Again runner-up at the TCEC Season 15 premier division in April 2019, Lc0 aka LCZero v0.21.1-nT40.T8.610 won the superfinal in May 2019 versus Stockfish with +14 =79 -7, 53½-46½ [17]. At the TCEC Season 16 premier division in September 2019, Lc0 became in third behind Stockfish and the supervised trained AllieStein, but Lc0 took revenge by winning the TCEC Season 17 premier division in spring 2020, as LCZero v0.24-sv-t60-3010 fighting down Stockfish in a thrilling superfinal in April 2020 with +17 =71 -12, 52½-47½ [18], but tables turned again in TCEC Season 18, when Stockfish won the superfinal.

Release Dates

2018

2019

2020

2021

Authors

See also

UCT
PUCT

Publications

Forum Posts

2018

Re: Announcing lczero by Daniel Shawul, CCC, January 21, 2018 » Rollout Paradigm
LCZero update (2) by Rein Halbersma, CCC, March 25, 2018
Re: TCEC season 13, 2 NN engines will be participating, Leela and Deus X by Gian-Carlo Pascutto, CCC, August 03, 2018
Re: Has Silver written any code for "his" ZeusX? by Alexander Lyashuk, LCZero Forum, August 02, 2018
Re: How good is the RTX 2080 Ti for Leela? by Ankan Banerjee, CCC, September 16, 2018
Re: How good is the RTX 2080 Ti for Leela? by Ankan Banerjee, CCC, September 17, 2018 [21]
Re: How good is the RTX 2080 Ti for Leela? by Ankan Banerjee, CCC, October 28, 2018
Re: How good is the RTX 2080 Ti for Leela? by Ankan Banerjee, CCC, November 15, 2018
Re: 2900 Elo points progress, 10 million games, 330 nets by crem, CCC, November 25, 2018

2019

Re: Lc0 Evaluation Explanation by Alexander Lyashuk, CCC, September 03, 2019

2020

2021

External Links

Chess Engine

GitHub

Rating Lists

ChessBase

Chessdom

Tuning

Misc

Lineup: Theo Travis, Roy Babbington, John Etheridge, John Marshall

References

  1. Leela Chess Zero (@LeelaChessZero) | Twitter
  2. GitHub - gcp/leela-zero: Go engine with no human-provided knowledge, modeled after the AlphaGo Zero paper
  3. David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis (2017). Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm. arXiv:1712.01815
  4. David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis (2018). A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play. Science, Vol. 362, No. 6419
  5. AlphaZero paper, and Lc0 v0.19.1 by crem, LCZero blog, December 07, 2018
  6. lc0 transition · LeelaChessZero/lc0 Wiki · GitHub
  7. Re: TCEC season 13, 2 NN engines will be participating, Leela and Deus X by Gian-Carlo Pascutto, CCC, August 03, 2018
  8. NVIDIA cuDNN | NVIDIA Developer
  9. Re: My failed attempt to change TCEC NN clone rules by Adam Treat, CCC, September 19, 2019
  10. lc0/board.h at master · LeelaChessZero/lc0 · GitHub
  11. Technical Explanation of Leela Chess Zero · LeelaChessZero/lc0 Wiki · GitHub
  12. Squeeze-and-Excitation Networks – Towards Data Science by Paul-Louis Pröve, October 17, 2017
  13. Lessons From AlphaZero (part 4): Improving the Training Target by Vish Abrams, Oracle Blog, June 27, 2018
  14. GitHub - LeelaChessZero/lczero-training: For code etc relating to the network training process.
  15. My failed attempt to change TCEC NN clone rules by Alexander Lyashuk, CCC, September 14, 2019 » TCEC
  16. My failed attempt to change TCEC NN clone rules by Alexander Lyashuk, CCC, September 14, 2019 » TCEC
  17. Lc0 won TCEC 15 by crem, LCZero blog, May 28, 2019
  18. TCEC S17 SUper FInal report by @glbchess64, LCZero blog, April 21, 2020
  19. Book about Neural Networks for Chess by dkl, CCC, September 29, 2021
  20. GeForce 20 series from Wikipedia
  21. Multiply–accumulate operation - Wikipedia
  22. GeForce RTX 2070 Graphics Card | NVIDIA
  23. GitHub - kiudee/chess-tuning-tools by Karlson Pfannschmidt
  24. Fat Fritz 1.1 update and a small gift by Albert Silver. ChessBase News, March 05, 2020
  25. Welcome to Chess Tuning Tools’s documentation!

Up one level