This strikes me as a distribution shift relative to playing actual games. Often the issue is that you don't consider the correct candidate move, and by the time you've narrowed the position down to two candidate moves you've already made a bunch of progress. Also, the two moves you're shown in the app are often not the top two moves you'd consider as a human[1].
ChessTempo has a version of this where you play through master games and guess the move (without any prompting), and you gain points based on your score relative to the engine/master move. I think it still has some issues but seems better than this app to me.
Edit:
Also, it seems your screenshot might have a bug? Neither Bxh7 nor Ne5 are good moves in this position.
E.g. in your screenshot, I would consider Ne2 before looking at Bxh7+ or Ne5.
I agree with this. I'm tempted to add a mode where you just have to pick Stockfish's top move and then your score is how much worse your move is than Stockfish's (Stockfish's move = perfect score). I focused the initial version on the easiest problems though, since my theory is that the newest players are the ones who will benefit the most from this kind of training anyway.
Would it be possible to use something like Maia, instead of Stockfish? Then you could more plausibly get 'higher human-strength moves', where you are not left trying to followup impossibly sharp tactical play you can't pull off without a chess engine, or other issues with doing direct naive behavior cloning from superhuman chess engines.
LLMs learn faster if we first pretrain them to imitate dense teacher-forced examples. I speculated that this would work on humans too, so I built a chess app where you try to imitate Stockfish. My theory is that this will help humans quickly become OK at chess, but they will reach a wall where practice on full games is more efficient than continued pretraining[1]. I also think the app is fun.
This is probably not an efficient way to learn the basic rules of chess, and you'll need to train openings separately. The idea of chess puzzle apps is hardly unique, but I don't think anything else works in exactly the same way[2].
https://chess-pretraining.brendanlong.com
How does the game work?
We show you a board state from a real game, and two moves (generally the real move vs. what Stockfish would play). You pick which move you think is better, and then we tell you what Stockfish thinks, and show you how Stockfish would play out the next few moves.
There are also options to see the other move, to copy the info (to ask an AI to explain it), to share a link to the same problem with a friend, and an Elo-style[3] number so you can watch the number go up[4].
How do we pick moves?
We collect a bunch of games from Lichess (filtered to exclude certain fast game types), pick positions where the move mattered and the game wasn't already over, and then run the moves through Stockfish.
If the real player and Stockfish disagree, we save the real move, Stockfish's move, Stockfish's win percentage for each move, and what Stockfish would play after each move. In the rare case where players agree with Stockfish, we save Stockfish's second best move as an alternative.
When someone opens the app, we try to show a move that they can discriminate with 80% accuracy[5]. This still needs more calibration, but the calculation is based on the win probability gap given a shallow search.
There's a lot more detail about how the app works in the spec.
More details
The code is open source and MIT licensed. You can find it on GitHub: brendanlong/chess-pretraining-for-humans
In terms of privacy, I collect the obvious data (your answers, plus account info if you sign up), and general usage data (how often do people open each page). I may run my own analyses (do people actually improve quickly?) and/or share anonymized data with other researchers.
Try it
If this sounds interesting to you, the app is live and you can try it instantly with no signup.
If this app gets any traction, I'll measure how quickly people improve and compare it to Lichess ratings.
Chessort is similar to my app, but has you rank 4 moves. This is actually a better match for dense pretraining over a teacher model's logit distribution than my app, but it's so difficult that I'm not convinced it's helpful.
The Elo number is calibrated from the Elo of players making the moves you're judging, but it's very unlikely to match your real chess Elo.
Or watch the number go down, if you're bad at chess like me.
Learning seems to be fastest around 85% accuracy. 80% makes it slightly easier for us to calibrate our ratings.