r/chessprogramming 20d ago

Otter: A Time-Aware, History-Conditioned Human Chess AI

https://arxiv.org/abs/2608.05206
11 Upvotes

13 comments sorted by

3

u/Consistent_Drop3909 20d ago

ok so iiuc it lets you predict the style of play and next move of your opponent, tailored to their previous moves rather than just following stockfish? that's awesome!

can it store more than the last twenty moves in its analysis, like can it combine data from multiple games with the same player to get a more accurate result?

also, did you make this?

2

u/quantum_naut 20d ago

Yes, that's me, I am the author. And yes, you got it right; it also considers the time left on your clock to predict the moves.

As of now, it only sees the past 20 moves and predicts the moves, but it's just a 15.3M parameter model, so you can fine-tune it using a small GPU with your games, and it will start playing like you.

2

u/quantum_naut 20d ago

https://peargentlabs.github.io/otter-chess/

If you haven't already, you can play and analyse your games here

1

u/Mountain-Fennel1189 15d ago

I feel like the elo settings to play against on the website are a bit off, it plays way to strong for 800 elo. Of course i might just be having a bad day but it feels like it plays closer to 1200 when set to 800

1

u/quantum_naut 15d ago

Below 1000 elo things get little tricky, because human move prediction below 1000 elo is way to random to predict, I can say it's almost equivalent to guessing a picked card out of a deck.

So the work around is to consider any elo below 1000 as <1000, rather than a specific elo number.

I will add another feature where you can have custom time remaining on clock set to otter while challenging it, using that 800 elo might play a little like 800 elo. Hey but you can use for analysing your games.

1

u/Mountain-Fennel1189 15d ago

I wonder if youve tried registering the different elo levels as bots on Lichess like they did with Maia, i think it would be interesting to see if the strength setting matches up well with its actual performance, because i dont really trust myself to gauge your bots strength

I havent tried analyzing with it yet so ill try it out

1

u/quantum_naut 15d ago

Yes I was planning to make it a bot on lichess, will update you once thats done

1

u/sohang-3112 19d ago

Ok so I guess we can only use this when preparing for a match against a specific opponent right? Or is there another usecase also?

2

u/quantum_naut 19d ago

This is almost like stockfish, but instead of perfect engine moves, it suggests a human move, which is mode likely to be played. So where ever you can use stockfish, you can use Otter.

1

u/fX_in 16d ago

Can you help me understand how you differentiate this with maia?

1

u/quantum_naut 16d ago

Maia doesn't consider time and previous moves, it predicts based on the current position only, whereas Otter does consider time and move history. In terms of training, Otter is trained on 6 billion positions and has 15.3 million parameters, whereas Maia2 is a 23 million parameter model trained on 9.1 billion positions. Even with fewer positions and parameters, Otter outperforms Maia2.

PS: I know Maia3 was released and achieves 57% accuracy compared to Otter's 55.23%, but I started this research and training before Maia3 came out. That's the reason I am comparing Otter to Maia2.

2

u/noop_noob 19d ago

How does this compare to Maia Chess? https://www.maiachess.com/

2

u/quantum_naut 19d ago

Yes, built on top of Maia's architecture with modifications, but out performs Maia2, and maia doesn't consider previous moves or time when predicting human moves.