[HN Gopher] Grandmaster-Level Chess Without Search
       ___________________________________________________________________
        
       Grandmaster-Level Chess Without Search
        
       Author : lawrenceyan
       Score  : 56 points
       Date   : 2024-10-17 19:13 UTC (3 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | hlfshell wrote:
       | I did a talk about this! (And also wrote up about my talk
       | here[1]). This paper is a great example of both knowledge
       | distillation. It's less of a paper about chess and more about how
       | complicated non linear search functions - complete with whatever
       | tuning experts can prepare - can be distilled into a (quasi-
       | linear, if it's a standardized input like chess) transformer
       | model.
       | 
       | [1]: https://hlfshell.ai/posts/deepmind-grandmaster-chess-
       | without...
        
         | janalsncm wrote:
         | I think the vs. humans result should be taken with a huge grain
         | of salt. These are blitz games, and their engine's elo was far
         | higher against humans than against other bots. So it's likely
         | that time was a factor, where humans are likely to flag (run
         | out of time) or blunder in low time situations.
         | 
         | It's still very cool that they could learn a very good eval
         | function that doesn't require search. I would've liked the
         | authors to throw out the games where the Stockfish fallback
         | kicked in though. Even for a human, mate in 2 vs mate in 10 is
         | the difference between a win and a draw/loss on time.
         | 
         | I also would've liked to see a head to head with limited search
         | depth Stockfish. That would tell us approximately how much of
         | the search tree their eval function distilled.
        
           | hlfshell wrote:
           | The reason the time (blitz) games make sense is because the
           | distilled functionality is of a 50ms Stockfish eval function.
           | The engine likely would perform worse as only the human would
           | benefit from the additional time.
           | 
           | As for limited search tree I like the idea! I think it's
           | tough to measure, since the time it takes to perform search
           | across various depths vary wildly based on the complexity of
           | the position. I feel like you would have to compile a dataset
           | of specific positions identified to require significant depth
           | of search to find a "good" move.
        
             | janalsncm wrote:
             | My point is that if the computer never flags it will have
             | an inherent advantage in low time controls. If not, why not
             | just test it in hyperbullet games? Games where humans flag
             | in a drawn or winning position need to be excluded,
             | otherwise it's unclear what this is even measuring.
             | 
             | And limited depth games would not have been difficult to
             | run. You can run a limited search Stockfish on a laptop
             | using the UCI protocol: https://github.com/official-
             | stockfish/Stockfish/wiki/UCI-%26...
        
       | joelthelion wrote:
       | I wonder if you could creatively combine this model with search
       | algorithms to advance the state of the art in computer chess? I
       | wouldn't be surprised to see such a bot pop up on tcec in a
       | couple years.
        
         | alfalfasprout wrote:
         | The thing is classical chess (unlike eg; go) is essentially
         | "solved" when run on computers capable of extreme depth. Modern
         | chess engines play essentially flawlessly.
        
           | KK7NIL wrote:
           | The developers of stockfish and lc0 (and the many weaker
           | engines around) would disagree, we've seen their strength
           | improve considerably over the last few years.
           | 
           | Currently there's a very interesting war between small neural
           | networks on the CPU with high search depth alpha-beta pruning
           | (stockfish NNUE) and big neural networks on a GPU with Monte
           | Carlo search and lower depth (lc0).
           | 
           | So, while machines beating humans is "solved", chess is very
           | far from solved (just ask the guys who have actually solved
           | chess endgames with 8 or less pieces).
        
             | GaggiX wrote:
             | Stockfish and lc0 would always draw if they are not put in
             | unbalanced starting positions, the starting position will
             | be swapped in the next game to make it fair.
        
               | KK7NIL wrote:
               | In classical controls (what TCEC mainly uses), yes. They
               | can play pretty exciting bullet chess without a forced
               | opening though.
        
           | solveit wrote:
           | We really have no way to know this. But I would be very
           | surprised if modern chess engines didn't regularly blunder
           | into losing (from the perspective of a hypothetical 32-piece
           | tablebase) positions, and very very surprised if modern chess
           | engines perfectly converted tablebase-winning positions.
        
             | __s wrote:
             | not only blunder into losing positions, but also blunder
             | from winning positions into draws
             | 
             | even in human chess people sometimes mistaken draw
             | frequency to reflect both sides playing optimally, but
             | there are many games where a winning advantage slips away
             | into a draw
        
             | janalsncm wrote:
             | The fact that TCEC games aren't all draws suggests that
             | computers aren't perfect. Stockfish loses to Leela
             | sometimes for example.
        
               | grumpopotamus wrote:
               | Tcec games are deliberately played from imbalanced
               | opening positions. The draw rate would be much higher for
               | the top participants if this wasn't forced. However, I
               | agree that engines are not perfect. I have heard this
               | claim many times before a new engine came along that
               | showed just how beatable the state of the art engines
               | still were at the time.
        
           | __s wrote:
           | compared to humans yes, but between themselves in TCEC
           | progress continues. TCEC has AIs play both sides of random
           | openings, rather than stick to playing chess's initial
           | position. The same happens for checkers amongst humans, where
           | opening positions are randomized
        
           | janalsncm wrote:
           | Chess is not "solved". Solved doesn't mean computers can beat
           | humans, it means for any chess board position we can tell
           | whether white wins, black wins, or the game is drawn with
           | perfect play. We would know if the starting position was
           | drawn, for example.
           | 
           | No computers now or in the foreseeable future will be capable
           | of solving chess. It has an average branching factor over 30
           | and games can be over 100 moves.
        
           | primitivesuave wrote:
           | This is accurate for endgames only. In complicated positions,
           | there is still room for improvement - the recent game of lc0
           | vs stockfish where lc0 forced a draw against an impending
           | checkmate is a good example. There is currently no way for a
           | chess engine searching a massive game tree can see how an
           | innocuous pawn move enables a forced stalemate 40 moves down
           | the line.
        
         | janalsncm wrote:
         | The advantage of this flavor of engine is that it might make
         | parallel position evaluation extremely efficient. Calculate
         | 1024 leaf positions and batch them to the model, take the top
         | 10% and explore their sub-trees either via further GPU batching
         | or minimax eval.
         | 
         | NNUE already tries to distill a subtree eval into a neural net,
         | but it's optimized for CPU rather than GPU.
        
       | dgraph_advocate wrote:
       | This is missing a makefile to automate the manual installation
       | steps
        
       | ChrisArchitect wrote:
       | Associated discussion on the paper:
       | 
       |  _Grandmaster-Level Chess Without Search_
       | 
       | https://news.ycombinator.com/item?id=39301944
        
       | tzs wrote:
       | OT: what's the state of the art in non-GM level computer chess?
       | 
       | Say I want to play chess with an opponent that is at about the
       | same skill level as me, or perhaps I want to play with an
       | opponent about 100 rating points above me for training.
       | 
       | Most engines let you dumb them down by cutting search depth, but
       | that usually doesn't work well. Sure, you end up beating them
       | about half the time if you cut the search down enough but it
       | generally feels like they were still outplaying you for much of
       | the game and you won because they made one or two blunders.
       | 
       | What I want is a computer opponent that plays at a level of my
       | choosing but plays a game that feels like that of a typical human
       | player of that level.
       | 
       | Are there such engines?
        
         | rtlaker wrote:
         | No, not with adjustable rating. The best human-like engine is
         | fairymax, but its Elo is estimated between 1700-2000.
        
         | danielmarkbruce wrote:
         | It doesn't seem that difficult to pull off - take one of the
         | existing engines, get the top y moves, choose randomly. For
         | each level down increase y by 1.
        
           | agubelu wrote:
           | It doesn't work that way. There are many positions with lots
           | of moves that are reasonable, but many others with only 1-2
           | sensible moves. It would make lots of obvious blunders that
           | an amateur human would never make.
        
             | chmod775 wrote:
             | Also attention. Lower level human players are more likely
             | to make a move close to their own/their opponent's recent
             | move. They're focused on one area of the board.
             | 
             | Basic computer opponents on the other hand can make moves
             | all over the place. They look at the board state
             | holistically. This can be very frustrating to play against
             | as a human who has enough problems just thinking their way
             | through some subset of the board, but is thrown off by the
             | computer again and again.
             | 
             | It's not that bad in chess at least (compared to Go), but
             | still something worth to keep in mind if you're trying to
             | make an AI that is fun to play against as an amateur.
        
           | dullcrisp wrote:
           | Seems this might still have the problem of moves being either
           | extremely good or extremely bad depending on how many good
           | moves are found, rather than playing at a consistent level.
           | Or for example in a degenerate case where there are only two
           | moves and one leads to mate, the computer will be picking
           | randomly.
        
           | bobmcnamara wrote:
           | Your engine would only mate once it had y options to mate.
        
           | ajkjk wrote:
           | No, it doesn't work at all. Human mistakes are not at all
           | like computer mistakes. Like -- blundering a piece in a 1-2
           | move combination will straight up never show up in the
           | stockfish move tree, no matter what you set `y` to.
        
         | rococode wrote:
         | Maia does this reasonably well! You can play against it on
         | Lichess. I have gotten a few "feels like a human" moments when
         | playing against it - for example, getting it to fall into a
         | trap that could trick a human but would easily be seen by a
         | traditional search algorithm. It's not adjustable but there are
         | a few different versions with different ratings (although it's
         | not a very wide range).
         | 
         | https://www.maiachess.com/
         | 
         | https://lichess.org/@/maia1
        
       ___________________________________________________________________
       (page generated 2024-10-17 23:00 UTC)