Je comprends qu'AlphaZero doit utiliser un type de matériel différent de celui de Stockfish ordinaire. Je m'attendrais à ce que le matériel ait un grand effet sur la force du moteur. C'est pourquoi je me demande si des tentatives ont été faites pour fournir du matériel comparable aux deux. Que signifierait également «comparable» ici?
Plus précisément, j'ai lu que les gens se plaignent:
- Stockfish ne disposant que de 1 Go de cache, et
- la limite de temps de 1 min / mouvement (Comment cela désavantagerait-il Stockfish?)
Réponses:
C'est Google dont vous parlez! La réponse est donc évidemment «non».
Du matériel papier d'origine utilisé pour l'initialisation et la formation -
et le matériel utilisé pour les jeux -
Ainsi, AlphaZero a utilisé du matériel spécial développé par Google. Il a utilisé des unités de processeur de tenseurs (TPU) spécialisées plutôt que des unités centrales de traitement (CPU) générales comme celles disponibles dans le commerce.
C'est ainsi que Wikipedia décrit les TPU de deuxième génération qu'ils ont utilisés -
Ils ont utilisé 4 TPU pour les jeux, donc une puissance de traitement de 180 TFLOPS. Remarque TFLOPS = 1000 milliards d'opérations en virgule flottante par seconde.
A titre de comparaison, la dernière puce la plus puissante d'Intel est le processeur Core i9 Extreme Edition qui se connecte à 1 TFLOP. Un I7 haut de gamme que vous trouverez dans une machine de jeu serait généralement d'environ 100 GFLOP (soit un dixième d'un TFLOP).
Je pense qu'il est juste de dire que AlphaZero utilisait un gorille de 800 livres d'une configuration matérielle par rapport à la souris Stockfishes.
la source
Je pense qu'il est préférable que j'élabore sur votre deuxième point avec un exemple de mouvement dans le jeu 1 entre AlphaZero et Stockfish qui a également servi à satisfaire ma curiosité aujourd'hui.
Les performances de Stockfish dépendent à la fois de la limite de temps et de la configuration matérielle, alors pensez à quelqu'un qui double les threads du processeur, alors Stockfish a besoin de moins de temps (pas nécessairement la moitié) pour trouver la solution qu'il ne le ferait avec la première configuration.
Dans le premier rapport publié sur Chess.com, quelqu'un a affirmé que Stockfish ne jouait pas de manière optimale car il ne pouvait pas reproduire les mêmes résultats en utilisant le même Stockfish sur son ordinateur. Il a dit que sur la position ci-dessous (match 1 - coup 11) Stockfish a joué Kg1-h1 (a déplacé son roi), ce qui n'avait aucun sens. En revanche, le stockfish sur son ordinateur a montré un mouvement plus évolutif comme Be3 (déplacer l'évêque carré noir), permet de regarder la position:
Oui, c'était un mouvement passif et il semble que Stockfish aurait dû jouer un mouvement plus développé. Mais il avait tort. Pourquoi? Parce qu'il a couru Stockfish pendant 15 secondes, et s'il l'avait couru pendant une heure, il aurait obtenu Kg1-h1 comme le meilleur mouvement dans cette position. Stockfish change de décision en analysant plus en profondeur tous les mouvements possibles. Voici ce que j'ai initialement dit dans ma réponse :
J'ai dirigé le dernier stockfish sur la position (au coup 11):
Mais après 5 minutes sur mon matériel qui fonctionne sur 1400 nœuds / s, il décidera de choisir Kh1 comme le mouvement optimal.
Dans le document, il est dit que stockfish calcule 70 000 k positions par seconde et est exécuté pendant 1 minute par mouvement, c'est environ 50 fois mon matériel, donc je vais laisser le mien fonctionner pendant 50 minutes ... Kg1-h1 est toujours le choix pour Stockfish.
La limite de temps est la clé
Dans le cas ci-dessus, cela n'avait probablement pas beaucoup d'importance si Stockfish courait deux fois plus longtemps parce que la décision aurait été la même, mais au prochain coup, cela aurait certainement :
Dans cette position, Stockfish a choisi de déplacer le pion sur le côté gauche ( a4-a5 ). Disons que j'ai un ordinateur qui exécute le moteur Stockfish à une vitesse de 1400 nœuds par seconde, soit environ 50 fois plus bas que le Stockfish dans le jeu réel ( dans le document , il est écrit 70 000kn / s). Je peux donc simuler le jeu si je l'exécute pendant 50 minutes à chaque coup. D'accord.
J'ai effectué une analyse Stockfish sur la position ci-dessus et j'ai obtenu les résultats suivants:
C'est bien, mais je l'ai fait fonctionner pendant 50 minutes complètes afin d'atteindre les calculs du Stockfish dans le jeu qui était autorisé à 1 minute:
La triste vérité est que je crois que Stockfish a perdu tous ses jeux à cause du délai. Stockfish obtient une recherche et une évaluation plus approfondies au fil du temps et dans le jeu, il n'était pas autorisé à utiliser un livre d'ouverture, ce qui lui permet de considérer de nombreux mouvements dans des profondeurs peu profondes. Notez que dans le jeu réel a4-a5 a été joué, ce qui montre que (en supposant qu'il puisse évaluer 70 millions de positions par seconde) le Stockfish dans le jeu n'a pas passé plus de 21,6 secondes en mouvement. Sinon, il aurait changé sa décision pour ces trois autres mouvements dans le jeu réel. La raison de cela n'est toujours pas claire pour moi car mon Stockfish consomme également moins de mémoire (environ ~ 130 Mo de RAM par rapport aux 1 Go mentionnés dans le document d'origine , en supposant que tout cela va aux tables de hachage).
Conclusion
Le matériel qui exécutait Stockfish, comme je l'ai souligné, était au mieux 18 fois plus rapide que le mien (mise à jour: sur un seul cœur) en fonction du mouvement que j'ai analysé. Je ne sais pas si AlphaZero pourrait vraiment utiliser un tel matériel pour entraîner ses réseaux en 4 heures, je ne peux que supposer qu'il est trop bas pour un jeu comme les échecs. En outre, AlphaZero a passé ces heures à apprendre, ce qui comprend également la construction d'ouvertures solides (et comme le souligne le document, les préférences par rapport à certaines ouvertures). En revanche, Stockfish était handicapé sur les ouvertures, et il n'a pas évalué 70 millions de positions par seconde pendant 60 secondes à chaque mouvement.
Pour terminer, tout ce que j'ai dit était basé sur mes hypothèses. Bien sûr, le résultat d'AlphaZero et des jeux était super intéressant pour moi. Cependant, j'aurais adoré voir un jeu où le jeu Stockfish était comme ce que j'obtiens sur mon ordinateur aussi. Autrement dit, plus de temps et un livre d'ouverture autorisés. Il est également facile d'obtenir les résultats de l'analyse Stockfish à chaque mouvement, et je souhaite qu'ils la libèrent afin de montrer à quel point elle a fonctionné.
la source
L'un des auteurs originaux de Stockfish répond aux plaintes spécifiques que vous avez mentionnées ici:
Source: https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author
la source
L'exécution sur un matériel comparable serait nécessaire si l'objectif final de Google était de créer un moteur d'échecs supérieur, mais cet exercice ne concernait pas vraiment les échecs. Les échecs sont juste un moyen pratique de démontrer la capacité de l'IA à apprendre des tâches compliquées à partir de zéro. S'il peut bien fonctionner contre une configuration vaguement raisonnable de Stockfish, il est coché la case.
Je prédis que l'équipe Google ne consacrera pas beaucoup plus d'efforts aux échecs; au lieu de cela, ils passeront à d'autres problèmes que l'IA n'a jamais pu résoudre.
la source
Visitez le forum Talkchess pour en savoir plus, c'est là que vous trouverez quelque 3000 programmeurs. Ce n'était qu'une arnaque. Alpha a joué sur un matériel 30 fois plus grand que SF, 4TPU vs 64 cœurs. 4TPU, c'est environ 1000 cœurs ou même plus. Alpha avait simulé le livre d'ouverture, formé sur d'innombrables jeux gagnants GM. SF avait très peu de hachage. TC a été fixé à 1 minute par mouvement, ce qui est à nouveau préjudiciable à SF, qui dispose d'une gestion du temps avancée. Les TPU n'ont pas les inefficacités SMP avec plus de cœurs, donc l'avantage matériel était encore plus grand. Etc, etc., donc en gros, ce n'était qu'un énorme coup de publicité de la part de Google. Actuellement, Alpha est autour de 2800 sur un seul cœur, donc 400 élos en dessous de SF, et ne progressera pas beaucoup à l'avenir, car, à partir de maintenant, il aura besoin d'une évaluation avancée qu'il ne pourra pas découvrir. Concernant le problème des 4 heures, eh bien, LOL, c'était il y a 48 heures, alors maintenant Alpha est à 5000 elo? Allons.
la source
Stockfish est limité aux processeurs, il ne pourra donc jamais évoluer au niveau auquel les GPU sont capables.
Les GPU de calcul de la matrice Gor évoluent avec le n, tandis que les processeurs évoluent avec n 3 , ces cœurs de tenseurs sont encore optimisés, ce qui améliore probablement les performances à mesure que vous évoluez.
la source
Premier paragraphe plus détaillé, deuxième réponse courte et simple troisième paragraphe mes opinions sur la situation
Avec AlphaZero, le matériel n'a aucun effet sur la force de son jeu. Cela peut prendre plus de temps, mais pas parce qu'il réfléchit. C'est un réseau de neurones, ce qui signifie que vous lui fournissez des informations dans un vecteur (un tableau à une seule colonne), il fait des calculs simples à travers un tenseur géant (un tableau à 3 dimensions ou plus) puis il crache la réponse. Le stockfish a besoin de temps pour être bon car il vérifie les positions possibles pour voir si un mouvement est bénéfique, donc plus il étudie le problème plus il peut vérifier la position / les mouvements.
Il n'y a pas vraiment de configuration matérielle comparable. Parce qu'ils ont des besoins différents, Stockfish doit analyser plus de positions tandis qu'AlphaZero a juste besoin de bouger. Et les gens sont contrariés parce que l'ordinateur d'AlphaZero est techniquement beaucoup plus puissant et ils pensent qu'ils devraient être égaux à cet égard. Mais, AlphaZero n'a pas besoin de ce superordinateur après l'entraînement.
À mon avis, peu importe ce qu'ils donnent à chaque camp, à moins que Stockfish ne dispose d'un temps déraisonnable, il y aura probablement encore quelques matchs, mais en général, un effet similaire se produira. C'est pourquoi je pense que cela, Stockfish évalue d'abord avec des pièces et leurs valeurs tandis qu'Alpha a joué (probablement) des millions de jeux pour réaliser ce qui est important stratégiquement. C'est pourquoi les sacs Alpha sont beaucoup plus nombreux que Stockfish, mais bénéficient d'énormes avantages positionnels.
la source