After ten months, this bot plays chess like a real Lichess opponent
Spending 10 months building the most human-like chess bot
Frustrated that Allie 2.0 and Maia-3 didn't quite fit his needs, the author spent ten months building Chessbook-1, a human-like chess bot trained on Lichess games. It matches Maia-3's move prediction on blitz and beats it in time scrambles, tracks human strength and blunder rates across every rating band, predicts how long a human would think, and even estimates who is winning better than Stockfish's raw evaluation.
A model without a clock input plays exactly the same move distribution at 2 seconds as at 2 minutes; Chessbook-1 knows that people in time trouble play faster and worse, and does the same.
- fps-hero
There are some novel ideas in here worth appreciating. The classic “time scramble” is absolutely worth considering, even in top level human play.
It seems strange that even with fairly abundant datasets such as Lichess, that it is still difficult to approximate human strength with a bot.
As a “low strength human”, it’s very easy to see how traditional chess engines fail to emulate humans.
As far as actual calculation look ahead goes, humans aren’t calculating to chess engine depth. How often is a human really considering every possible move to greater than a 3 move depth?
Humans are moving with instinct. We cull the decision tree based on our evaluation of how promising a branch may be, not its objective calculated strength. This is where the chess engines break down.
Humans rely on instinct, pattern recognition, and strategy. None of this translates to a chess engine unless you are a top level player with near perfect instincts and pattern recognition.
My hunch is that for approximately human strength, the lowest ELO human makes moves completely at random, where the highest ELO human with follow the brute forced top lines. The challenge is tweaking the decision tree to match human evaluation of a branch based on skill level, and a second conditional probability of selecting a branch based on the player’s ELO.
The output of the chess engine shouldn’t be deterministic, but probabilistic. History has shown when you take a probabilistic approach to a problem, normally magic fall […]
- matsemann
> This also helps the model maintain a more consistent playing style. Sometimes there’s a sacrifice available on the board, through many turns. A human would usually either decide he wants to do it or not, and stick with that decision until something concrete changes. But when I played this bot before adding recency, the bot would be ignoring the tactic for many moves then after an unrelated quiet move, go for it. It felt very alien and off-putting.
From the position history in the previous post. Good point. Same with bishops "sniping". If a bishop is moved to b2, and remains there or 20 moves, it can be "forgotten" and opponent suddenly has a pin or something underprotected. But if I saw the exact same board, but the previous move was moving the bishop to b2, I would be aware of it. That kind of local thinking is of course something I should learn to not do, but at my level (1700-1800 FIDE) it's how humans play.
- hyperbolablabla
I thought maybe chessbook.com would allow me to just play a normal game against this bot, but I guess not?