Your network blocks the Lichess assets!

lichess.org
Donate

LeelaChessZero vs Stockfish---Who could be your best chess coach?

LC0 relies heavily on GPUs for neural network inference. Why does LC0 love to work on GPUs? LC0 uses large-scale matrix algorithms. After analyzing multiple game positions, it packages them into a batch and sends the batch to the neural network for evaluation. This fits well with the parallel computing environment of GPU, for much the same reason that LLMs typically work on GPUs

Stockfish also performs neural network evaluations, but on CPUs.

The actual conclusion here should be that basically everything we know and love about game evaluations should be redesigned from scratch:

  • Analyze the entire game at the same time, in parallel with multiple runs
  • Identify key points worth highlighting to the user
  • Allow the user to guide search over multiple positions simultaneously (redesign UI)
> LC0 relies heavily on GPUs for neural network inference. Why does LC0 love to work on GPUs? LC0 uses large-scale matrix algorithms. After analyzing multiple game positions, it packages them into a batch and sends the batch to the neural network for evaluation. This fits well with the parallel computing environment of GPU, for much the same reason that LLMs typically work on GPUs Stockfish also performs neural network evaluations, but on CPUs. The actual conclusion here should be that basically everything we know and love about game evaluations should be redesigned from scratch: - Analyze the entire game at the same time, in parallel with multiple runs - Identify key points worth highlighting to the user - Allow the user to guide search over multiple positions simultaneously (redesign UI)

the question on "who is better" is just scratching the surface, the real question is "when do i use either", from my experience, you could find interesting opening lines and overlooked gems in the first ~20 moves, specially 1.c4 variations, so for opening prep i recommend Lc0, for middle game, Lc0 thinks like a human and is more intuitive about it, and i specifically find it more creative than stockgfish in the middle game, stockfish tends to find the boring absolute best move line in a middle game, while Lc0 simply creates more problems and tensions, just like humans and post the year 2000 games / players, while yes, stockfish gives the absolute best mathematical way of solving a middle game position, Lc0 creates chances in it

For endgames stockfish is with no doubt the go-to chess analysis tool and i highly recommend it for studying, endgames have a robotic, systematic atmosphere and Lc0 is simply not suitable for it

Also a key note in determining who is better by simply facing them to each other, this is not how it works, and also your PC specs limit Lc0 by A LOT, for a fair result, you need GPU H100 and above, lela sucks at endgames and that's how stockfish wins against it most of the time, but with a GPU lela could sustain a fight, also to really test 2 engines, you match them against each other for like 500 games with 30 + 5 time format, which is used in tcec-chess.com, and with random openings too...

the question on "who is better" is just scratching the surface, the real question is "when do i use either", from my experience, you could find interesting opening lines and overlooked gems in the first ~20 moves, specially 1.c4 variations, so for opening prep i recommend Lc0, for middle game, Lc0 thinks like a human and is more intuitive about it, and i specifically find it more creative than stockgfish in the middle game, stockfish tends to find the boring absolute best move line in a middle game, while Lc0 simply creates more problems and tensions, just like humans and post the year 2000 games / players, while yes, stockfish gives the absolute best mathematical way of solving a middle game position, Lc0 creates chances in it For endgames stockfish is with no doubt the go-to chess analysis tool and i highly recommend it for studying, endgames have a robotic, systematic atmosphere and Lc0 is simply not suitable for it Also a key note in determining who is better by simply facing them to each other, this is not how it works, and also your PC specs limit Lc0 by A LOT, for a fair result, you need GPU H100 and above, lela sucks at endgames and that's how stockfish wins against it most of the time, but with a GPU lela could sustain a fight, also to really test 2 engines, you match them against each other for like 500 games with 30 + 5 time format, which is used in tcec-chess.com, and with random openings too...

And that is why AlphaZero is still way better than Leela... I feel like AlphaZero would still beat Stockfish 18 in a match. Leela just feels like a cheap version of AlphaZero to me, that was altered to make it possible to put it online. I completely understand why it is impractical for AlphaZero, but well...

And that is why AlphaZero is still way better than Leela... I feel like AlphaZero would still beat Stockfish 18 in a match. Leela just feels like a cheap version of AlphaZero to me, that was altered to make it possible to put it online. I completely understand why it is impractical for AlphaZero, but well...

@Jisu101 AlphaZero is almost exactly on the level of Lc0 T30 (February 2019, lost the TCEC S14 SuFi by 49.5-50.5 against the SFdev version 2 weeks after the SF11 release), and the Deepmind team has confirmed that Leela (as well as Stockfish) has surpassed it by a lot.

https://lczero.org/blog/2024/02/how-well-do-lc0-networks-compare-to-the-greatest-transformer-network-from-deepmind/ gives you an idea how much progress has been made since then, the blue tinged boxes are from the Deepmind paper.

@Jisu101 AlphaZero is almost exactly on the level of Lc0 T30 (February 2019, lost the TCEC S14 SuFi by 49.5-50.5 against the SFdev version 2 weeks after the SF11 release), and the Deepmind team has confirmed that Leela (as well as Stockfish) has surpassed it by a lot. https://lczero.org/blog/2024/02/how-well-do-lc0-networks-compare-to-the-greatest-transformer-network-from-deepmind/ gives you an idea how much progress has been made since then, the blue tinged boxes are from the Deepmind paper.

I mainly use local stockfish on the lichess web UI, but I have used the local nibbler UI with leela instead. The interesting thing about the leela with CUDA, is that it can analyze EVERY move on the board at once, giving them a score from 0-100 (where 100 is checkmate and 0 is getting checkmated).

I found this more useful than Stockfish's setup on Lichess, which only shows you the best (or 5 best) move in a position. I liked this, because I could it would let me:

  • Analyze openings, finding other viable lines that weren't the "best" according to the engine
  • Analyze my own moves and plans more efficiently. Even though my move wasn't the best, if it was close enough, I could leave it. Often, although my move wasn't the best move, my plan was the best plan, but maybe I made an error in move order or missed something subtle. Seeing a number attached to every move that advances a plan, and then playing them all out and comparing them would let me rapidly understand the nuances of the position.
  • And most critically, it would show me the best human-findable moves, instead of only the best moves. I would rather use the engine to show me strong moves that I could actually find based on plans I could understand, rather than the engine showing me the strongest move I can't understand, and I wouldn't be able to find or execute reliably.

What I really wish, and I think stockfish could theoretically do this as well on CPU too, even in the browser, is for it to analyze every move on the board and show a number similar to nibbler and lc0 I was using.

I mainly use local stockfish on the lichess web UI, but I have used the local nibbler UI with leela instead. The interesting thing about the leela with CUDA, is that it can analyze EVERY move on the board at once, giving them a score from 0-100 (where 100 is checkmate and 0 is getting checkmated). I found this more useful than Stockfish's setup on Lichess, which only shows you the best (or 5 best) move in a position. I liked this, because I could it would let me: * Analyze openings, finding other viable lines that weren't the "best" according to the engine * Analyze my own moves and plans more efficiently. Even though my move wasn't the best, if it was close enough, I could leave it. Often, although my move wasn't the best move, my *plan* was the best plan, but maybe I made an error in move order or missed something subtle. Seeing a number attached to every move that advances a plan, and then playing them all out and comparing them would let me rapidly understand the nuances of the position. * And most critically, it would show me the best human-findable moves, instead of only the best moves. I would rather use the engine to show me strong moves that I could actually find based on plans I could understand, rather than the engine showing me the strongest move I can't understand, and I wouldn't be able to find or execute reliably. What I really wish, and I think stockfish could theoretically do this as well on CPU too, even in the browser, is for it to analyze every move on the board and show a number similar to nibbler and lc0 I was using.

I use Leela as main engine and Stockfish as error checker.

I use Leela as main engine and Stockfish as error checker.