What is Lc0? (for non programmers) - LeelaChessZero/lc0 GitHub Wiki
Lc0 is often referred to as a chess engine, however, Lc0 is more like a chess engine shell than an actual chess engine. This is often called "the binary". Lc0 needs a neural network (also called a "weights file") in order to play, just as a car requires a driver, or a mech requires a pilot.
In other words, Lc0 is a robot body with eyes to see the pieces and hands to move them, and the neural network is the brain of the robot that chooses the best move.
Lc0 (the shell) tells the network (the brain) where the pieces are and what the possible moves are. The network then figures out which moves are most likely to win the game. If a move looks good, the network will look at the moves that might come after it to figure out if it really is the best move. If it isn't, it will start looking at a different, better looking move.
But this requires that the network knows what a good looking move even is. A completely new untrained network has no idea what moves are good and will choose seemingly random moves. But a trained network that has seen millions of games will know what a good move looks like and will generally choose a great, or the best, move, which Lc0 will then play.
With a weak network, Lc0 can play as poorly as a toddler, and with a strong network, Lc0 can beat even the strongest existing chess engines (assuming you have a good enough GPU).
And so, if you wish to use Lc0, you need to download both Lc0 and a network to drive it. To get started, you can follow the instructions found here.
There are also different network sizes. The bigger networks are smarter but slower, and the smaller networks aren't as smart but are much faster. So if Lc0 is playing a bullet game, then you might want to use a smaller net which can think faster. However if you are using Lc0 to analyze a position, and don't really care about the time it takes to analyze it, then you'll want a bigger and smarter network.
So what networks are available, and what are the differences between them?
BT nets
Latest series of neural networks based on the transformer architecture, often seen in LLMs. These have become the main nets in recent years. They are trained on T80 data and are much bigger than all other nets. There are different generations of BT networks, featuring slightly different architectures. BT4 is the best one currently released. BT5 is the latest one but it turned out to be weaker than *BT4.
T Nets
T nets are the main Lc0 networks.
The T nets are created entirely by playing against themselves for some number of games at a time and then learning from those games. After finishing a set of those games, a new network is created by adjusting the previous network based on what worked and what didn't in the games.
Just like BT nets, There are different generations of T nets. Each generation starts from scratch, and so the newest generation will be significantly weaker than previous generations until they are trained up.
The current generation that is being trained is called T80.
All of the main networks can be downloaded from training.lczero.org
J Nets
J nets are nets created by jhorthos.
J nets are not the main Lc0 networks, but are still important networks, and are often used in tournaments against other engines.
J nets are trained on the games that the T networks train with.
The J nets have different network sizes and different training parameters from the T nets, which can sometimes make them stronger than the T nets in some ways.
There are many J nets, each of different sizes and different parameters. (This is a summary, but for the full description of each, head to this page.)
J13 nets are trained on T40 games.
J48 nets are trained on T60 games.
LD2 (Little Demon 2) is a specific J net trained on T40 games.
Other Nets
Leelenstein is a net that is trained on a myriad of chess game databases with a myraid of training methods, focused mostly on high level play. It also runs on a modified version of Lc0.
Dark Queen is a net that is trained on the available Lichess games database.
You can find more nets here.
SV or Sergio
Nets by Sergiovieri, found here.
What is the BEST net?
That depends on what you're using the net for and the system that you are running it on. You can find a good list here.