←back to thread

131 points xlinux | 9 comments | | HN request time: 0.424s | source | bottom
1. deadbabe ◴[] No.42187475[source]
Why build a chess engine these days, just use an LLM?
replies(4): >>42187631 #>>42187635 #>>42187948 #>>42188822 #
2. emptybits ◴[] No.42187631[source]
Why consume when you can create?

Building is often more fun and almost always more educational than just using. Even in “failure”. :-)

3. ziddoap ◴[] No.42187635[source]
Fun, a learning experience, practicing a skill set, curiosity, etc.

Take your pick.

4. achierius ◴[] No.42187948[source]
LLMs are quite bad at chess actually, even compared to human players -- and certainly compared to proper modern chess engines
replies(1): >>42188073 #
5. PaulHoule ◴[] No.42188073[source]
They usually struggle to always generate valid moves.

And that's pivotal.

If you have a program which always makes valid moves and gives up when it has lost you wrote a proper chess playing program. It may play badly, but it plays.

replies(1): >>42189228 #
6. janalsncm ◴[] No.42188822[source]
Your question sounds flippant but it’s actually quite deep. Why aren’t LLMs good at chess? The answer is likely that to be good at chess at some level requires search (and probably some ordering constraint on your evaluation function too that I’m not smart enough to figure out).

LLMs aren’t searching. They are memorizing. This explains their extremely poor performance on out of domain positions, whereas Stockfish can easily understand them.

replies(1): >>42192469 #
7. ElFitz ◴[] No.42189228{3}[source]
That could now be achieved by precomputing all valid moves and using outlines[0] or Structured Outputs[1] to constrain the output.

[0]: https://github.com/dottxt-ai/outlines

[1]: https://openai.com/index/introducing-structured-outputs-in-t...

replies(1): >>42190437 #
8. PaulHoule ◴[] No.42190437{4}[source]
… or just a valid move checker that prompts it to try again if it fails to make a valid move.
9. deadbabe ◴[] No.42192469[source]
I think chess is a great example to use to demonstrate that LLMs don’t actually know anything, and will be entirely unsuitable to replace humans on anything except thoroughly solved and documented problems.