Open ghost opened 6 months ago
There was a similar discussion in the past: https://github.com/lichess-org/lila/issues/11026 There is also this: https://www.chess-journal.com/evaluatingSharpness1.html although I don't completely agree with the formula Stockfish 16 returns WDL if so configured, too, I use it in the Move Assistant feature. I don't know if replacing the bar will agree with everybody. Perhaps make it configurable to choose which one you prefer?
Yeah, ideally it would be an configurable option. Interesting, I hadn’t seen those two other issues (#11026 and #9221).
I hope this issue isn’t closed like the other ones. I feel like being able to see the draw chances can be a very insightful. E.g. if an engine says “0.0”, does that mean both sides have about the same winning chances, or that the game is drawn with perfect play? You can extrapolate that to other situations too, of course.
An interesting exercise might be to evaluate the games from the 2024 Candidates Match, for example. It seems like the first few games would be more drawish, whereas the more recent games would be more “sharp”, with more risk taken to play for a win, even when the evaluation is close to zero.
I am interested in implementing this feature myself, so I hope it is acceptable and/or desirable.
I think this would pack more of a punch if Lichess would add leela to the native JS engine list. Even if SF does expose WDL, I don't trust it that much as I think it's a reverse calculation from the eval. At the beginning all moves are 100% draw because the eval is 0.0. If there is no NNUE involvement, then I think you can just compute the WDL yourself out of any cp value.
Yes, Stockfish’s WDL evaluation is subpar. Lc0 can’t be easily added as an inbuilt JS engine because it heavily depends on the GPU to be effective. I have tried investigating ways to make it work using WebGPU or WebGL (see e.g. microsoft/onnxruntime#20141), but I got nothing currently. Also, schlawg told me on Discord that there isn’t much interest in bringing Lc0 as an inbuilt engine on Lichess, so I don’t have a lot of hope for it.
I certainly don't want to add it to LiChess Tools. It's already 500K zipped. I feel it's too heavy already. And I don't think you want to tie yourself with GPU work in JS. Every browser and every different device configuration will react differently :)
Maybe a WDL dedicated NN? I don't know if that exists. Maybe we could train it on existing Lichess game db.
Stockfish’s WDL evaluation is subpar.
As a chess player I find it soul-crushing to ask this, but please file an issue with official-SF. Lichess uses Stockfish and while I find the concept of showing WDL quite appealing, that depends upon the quality of the WDL feedback.
It would be very nice to have WDL evaluation for engines that support it, specially with the external engine API.
Generally, when displaying WDL evaluation on the evaluation gauge, a third color is added between the white and black bars representing the draw probability.
Usually this is a middling gray, but my preferrence is to make it desaturated blue/cyan.
There is a Lc0 blog post that talks about how this can be useful for understanding games played between engines, but I feel like this is very highly underused by people for analysing their own games and gaining a better understanding of their chances of winning/losing vs. drawing.
Here is how such an evaluation bar might look like: