Entendo que o AlphaZero precisa usar um tipo diferente de hardware que o Stockfish comum. Eu esperaria que o hardware tenha um grande efeito na força do motor. É por isso que me pergunto se houve alguma tentativa de fornecer hardware comparável a ambos. Além disso, o que "comparável" significaria aqui?
Li especificamente que as pessoas reclamam:
- O bacalhau recebe apenas 1 GB de cache e
- o limite de tempo de 1 min / movimento (como isso prejudicaria o Stockfish?)
Respostas:
É sobre o Google que você está falando! Portanto, a resposta é obviamente "Não".
Do hardware de papel original usado para inicializar e treinar -
e hardware usado para os jogos -
Portanto, o AlphaZero usou hardware especial desenvolvido pelo Google. Utilizou Unidades de Processador Tensor (TPUs) especializadas em vez de Unidades Centrais de Processamento (CPU) gerais, como estão disponíveis comercialmente.
É assim que a Wikipedia descreve as TPUs de segunda geração que eles usaram -
Eles usaram 4 TPUs para os jogos, portanto, um poder de processamento de 180 TFLOPS. Nota TFLOPS = 1000 bilhões de operações de ponto flutuante por segundo.
Para comparação, o chip mais poderoso e mais recente da Intel é o processador Core i9 Extreme Edition, com 1 TFLOP. O topo da linha I7 que você encontraria em uma máquina de jogos normalmente seria de cerca de 100 GFLOPs (ou seja, um décimo de um TFLOP).
Acho justo dizer que o AlphaZero estava usando um gorila de 800 libras de uma configuração de hardware em comparação com o mouse Stockfishes.
fonte
Acho que é melhor elaborar seu segundo ponto com um exemplo de jogada no jogo 1 entre AlphaZero e Stockfish, que também serviu para satisfazer minha curiosidade hoje.
O desempenho do Stockfish depende do tempo limite e da configuração do hardware; portanto, pense em quando alguém duplica os threads da CPU; o Stockfish precisa de menos tempo (não necessariamente a metade) para encontrar a solução do que faria na primeira configuração.
No primeiro relatório publicado no Chess.com, alguém afirmou que o Stockfish não estava sendo reproduzido da melhor maneira possível, porque ele não conseguiu reproduzir os mesmos resultados usando o mesmo Stockfish em seu computador. Ele disse que na posição abaixo (jogo 1 - jogada 11) Stockfish jogou Kg1-h1 (mudou seu rei), o que não fez nenhum sentido. Por outro lado, o bacalhau em seu computador mostrou um movimento mais desenvolvido como o Be3 (mova o bispo do quadrado escuro), vamos olhar para a posição:
Sim, foi um movimento passivo e parece que o Stockfish deveria ter desempenhado um movimento mais em desenvolvimento. Mas ele estava errado. Por quê? Como ele administrou o Stockfish por 15 segundos, e se ele o executasse por uma hora, ele teria Kg1-h1 como a melhor jogada nessa posição. O Stockfish muda sua decisão quando analisa todos os movimentos possíveis com mais profundidade. Aqui está o que eu disse originalmente na minha resposta :
Corri o último bacalhau na posição (no movimento 11):
Mas, após 5 minutos no meu hardware que roda em 1.400k nós / s, ele decide usar o Kh1 como a melhor opção.
No artigo, é dito que o bacalhau calcula 70.000k de posições por segundo e é executado por 1 minuto por movimento, ou seja, cerca de 50 vezes o meu hardware, por isso deixarei o meu funcionar por 50 minutos ... Kg1-h1 ainda é o escolha para o Stockfish.
O prazo é a chave
No caso acima, provavelmente não importava muito se o Stockfish funcionasse duas vezes, porque a decisão seria a mesma, mas no próximo passo, definitivamente :
Nesta posição, o Stockfish optou por mover o peão no lado esquerdo ( a4-a5 ). Digamos que eu tenha um computador que execute o mecanismo Stockfish a uma velocidade de 1.400k nós por segundo, cerca de 50 vezes menor que o Stockfish no jogo real ( no documento , ele diz 70.000kn / s). Para simular o jogo, se eu o executar por 50 minutos a cada movimento. OK.
Fiz a análise do Stockfish na posição acima e obtive os seguintes resultados:
Isso é bom, mas mantive-o funcionando por 50 minutos completos para alcançar os cálculos do Stockfish no jogo que foi permitido em 1 minuto:
A triste verdade é que acredito que o Stockfish perdeu todos os seus jogos por causa do prazo. O Stockfish recebe uma pesquisa e avaliação mais aprofundadas à medida que o tempo passa e, no jogo, não era permitido o uso de um livro de abertura, o que o leva a considerar muitos movimentos em profundidades rasas. Observe que no jogo real a4-a5 foi jogado, o que mostra que (supondo que ele pudesse avaliar 70 milhões de posições por segundo) o Stockfish no jogo não gastou mais de 21,6 segundos em movimento. Caso contrário, ele teria mudado sua decisão para esses três outros movimentos no jogo real. A razão para isso ainda não está clara para mim, pois meu Stockfish também estava consumindo menos memória (cerca de ~ 130 MB de RAM em comparação com 1 GB mencionado no artigo original , supondo que tudo isso vá para tabelas de hash).
Conclusão
O hardware que executava o Stockfish, como apontei, era no máximo 18 vezes mais rápido que o meu (atualização: em um único núcleo), com base na movimentação que analisei. Não tenho certeza se o AlphaZero poderia realmente usar esse hardware para treinar suas redes em 4 horas. Só posso assumir que é muito baixo para um jogo como o xadrez. Além disso, o AlphaZero passou essas horas aprendendo, o que também inclui a construção de aberturas sólidas (e, como o artigo indica, preferências em relação a determinadas aberturas). Por outro lado, o Stockfish foi deficiente em aberturas e não avaliou 70 milhões de posições por segundo durante 60 segundos em cada movimento.
Como nota final, todas as coisas que eu disse foram baseadas em minhas suposições. Claro, o resultado do AlphaZero e os jogos foram super interessantes para mim. No entanto, eu adoraria ver um jogo em que o jogo Stockfish era igual ao que recebo no meu computador também. Ou seja, mais tempo e um livro de abertura permitido. Também é fácil obter os resultados da análise do Stockfish a cada movimento, e eu desejo que eles a divulguem para mostrar o desempenho.
fonte
Um dos autores originais do Stockfish responde às reclamações específicas que você mencionou aqui:
Fonte: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
fonte
Seria necessário rodar em hardware comparável se o objetivo final do Google fosse construir um mecanismo de xadrez superior, mas esse exercício não era realmente sobre xadrez. O xadrez é apenas uma maneira conveniente de demonstrar a capacidade da IA de aprender tarefas complicadas do zero. Se ele tiver um bom desempenho em relação a alguma configuração vagamente razoável do Stockfish, está marcada a caixa.
Prevejo que a equipe do Google não gastará muito mais esforço no xadrez; em vez disso, eles passarão para outros problemas que a IA nunca foi capaz de realizar.
fonte
Visite o Fórum da Talkchess para saber mais, é onde você encontrará cerca de 3000 programadores. Isso tudo foi uma farsa. O Alpha jogou em hardware 30 vezes maior que o SF, 4TPUs vs 64 núcleos. 4TPUs tem cerca de 1000 núcleos ou mais. Alpha simulou o livro de abertura, treinado em inúmeros jogos vencedores de GM. SF tinha muito pouco hash. O TC foi fixado em 1 minuto por jogada, o que é novamente prejudicial ao SF, que possui gerenciamento avançado de tempo. As TPUs não possuem as ineficiências do SMP com mais núcleos, portanto a vantagem do hardware foi ainda maior. Etc., etc., basicamente, esse foi apenas um grande golpe publicitário da parte do Google. Atualmente, o Alpha está em torno de 2800 em núcleo único, portanto, 400 elos abaixo do SF, e não avançará muito no futuro, pois, a partir de agora, precisará de uma avaliação avançada que não poderá descobrir. Em relação à questão de 4 horas, bem, LOL, isso foi há 48 horas, então agora o Alpha está em 5000 elo? Vamos.
fonte
O Stockfish é restrito às CPUs, portanto nunca será capaz de escalar para o nível que as GPUs são capazes.
As GPUs dos cálculos da matriz Gor são escalonadas com n, enquanto as CPUs são escalonadas com n 3 , esses núcleos de tensores são otimizados ainda mais, por isso é provável um desempenho ainda melhor à medida que você escala.
fonte
Primeiro parágrafo mais detalhes, segunda resposta curta e simples terceiro parágrafo minhas opiniões sobre a situação
Com o AlphaZero, o hardware tem 0 efeito na força do seu jogo. Pode levar mais tempo, mas não porque está pensando. É uma rede neural, o que significa que você alimenta as informações em um vetor (uma tabela de coluna única), faz cálculos simples através de um tensor gigante (uma tabela tridimensional ou mais) e, em seguida, fornece a resposta. O Stockfish precisa de tempo para ser bom, pois verifica as possíveis posições para ver se um movimento é benéfico; portanto, quanto mais tempo ele olha para o problema, mais posição / movimento ele pode verificar.
Não existe realmente uma configuração de hardware comparável. Por terem necessidades diferentes, o Stockfish precisa analisar mais posições, enquanto o AlphaZero só precisa fazer uma jogada. E as pessoas estão chateadas porque o computador do AlphaZero é tecnicamente muito mais poderoso e eles pensam que deveriam ser iguais nesse sentido. Mas o AlphaZero não precisa desse supercomputador após o treinamento.
Na minha opinião, não importa o que eles dêem a ambos os lados, a menos que o Stockfish tenha uma quantidade razoável de tempo, provavelmente amarrará mais alguns jogos, mas em geral um efeito semelhante ocorrerá. É por isso que penso que o Stockfish avalia inicialmente com peças e seus valores, enquanto o Alpha jogava (provavelmente) milhões de jogos para perceber o que é importante estrategicamente. É por isso que o Alpha economiza muito mais do que o Stockfish jamais faria, mas obtém enormes vantagens posicionais.
fonte