David Wu

Créateur de Katago

Fin septembre, le tournoi mondial des IA de Go 2020 a conclu ses préliminaires à Fuzhou, avec 15 équipes d'IA de Go de Chine et cinq équipes d'IA de Go de Corée du Sud, du Japon, de Belgique et des États-Unis. Après sept tours d'attribution de points, les huit meilleures équipes ont accédé à la phase d'élimination directe, qui a eu lieu à la fin du mois de novembre.

 Étonnamment, le puissant KataGo a perdu trois parties en raison d'un temps mort, d'une auto-défaite et de l'utilisation d'un algorithme de recherche non testé, et a terminé à la 9e place, tandis qu'un grand nombre de successeurs de KataGo "de second développement" se sont hissés dans le top 8.

Ce tournoi , organisé en Chine  a opposé de nombreux programmes de go mais il manquait AlphaGo, le programme de DeepMind

Fuzhou preliminary program list



Résultats


Résultats





David Wu

Après ce tournoi préliminaire, l'auteur de KataGo, David Wu ,diplômé de l'université de Harvard et actuellement chercheur en intelligence artificielle à Jane Street, a été contacté, et voici  l' entretien qu'il a accordé

1. Quel est votre niveau au jeu de Go ? Quelle est votre histoire avec le jeu de Go ? Pourquoi avez-vous choisi de développer l'IA de Go en premier lieu (ou pourquoi êtes-vous intéressé par le développement de l'IA de Go) ?

Je suis officiellement un amateur d'AGA 3d, mais je suis très rouillé et je manque de pratique car je me suis concentré ces dernières années sur le développement de l'IA et sur beaucoup d'autres choses plutôt que de jouer à des jeux moi-même. J'ai découvert le jeu de Go il y a plus de 15 ans et je m'intéresse depuis à l'IA pour les jeux vidéo. L'écriture d'algorithmes et de programmes d'IA amusants pour les jeux a toujours été une chose que j'aime et pour laquelle je suis doué. J'étais présent à l'époque des premiers développements passionnants, lorsque les Monte-Carlo Tree Search (MCTS) ont été découverts en 2006 et 2007 et que les programmes de Go sont passés du niveau débutant au niveau amateur, et j'ai suivi de nombreux articles et recherches publiés depuis lors. Cependant, ce n'est que très récemment, en 2017 et 2018, que j'ai commencé à coder mon propre robot. En fait, vers 2017, c'est essentiellement la première fois que j'ai entraîné un réseau neuronal et que j'ai appris comment fonctionnait l'apprentissage profond.


2. Pourquoi cette IA s'appelle-t-elle Katago ?

Si j'ai bien compris, "kata" est un mot d'origine japonaise qui est devenu un mot normal en anglais (et en Français) dans le contexte des arts martiaux. Il fait référence à la séquence de motifs, de mouvements et de formes que l'on pratique lors de l'entraînement aux arts martiaux. Cela semblait être un nom amusant pour un moteur de jeu contre soi-même ( self-play) - un moteur qui s'améliore en s'entraînant tout seul pour former progressivement son propre modèle, son propre mouvement et sa propre forme sur le plateau de jeu de Go.

Katago Output

3. Un grand merci à KataGo pour sa grande contribution à la richesse et à la facilité d'utilisation de l'IA. KataGo a offert aux fans de go un cadeau sans pareil. La question que je souhaite poser est la suivante : au cours du processus de développement de KataGo, avez-vous également progressé dans votre compréhension de l'IA, et dans quelle mesure ?

Bien sûr. Comme je l'ai dit, la première fois que j'ai expérimenté l'apprentissage profond, c'était en 2017, et le projet de recherche qui est finalement devenu KataGo ma tentative d'apprendre le domaine. Chaque fois que j'essaie d'apprendre un nouveau domaine majeur en informatique, j'essaie toujours de le faire en lançant un projet personnel pour construire quelque chose dans ce domaine - et parfois cela devient quelque chose d'utile à publier pour les autres. J'aime écrire des outils et des algorithmes qui font des choses utiles et intéressantes.

4. Avant la naissance de KataGo, l'IA du Go a complètement changé la perception du Go par les gens et a profondément affecté tous les aspects du jeu. Alors, avez-vous créé KataGo davantage pour l'application de l'intelligence artificielle ou dans l'espoir de changer l'écologie du jeu de go ?

Les deux ! J'ai initialement développé KataGo parce que dans les années qui ont suivi AlphaZero, la capacité de développer une IA basée sur l'auto-jeu dans de grands jeux de société à grande échelle était presque entièrement hors de portée de quiconque, à l'exception des grandes entreprises et organisations ou des projets distribués en ligne en masse. AlphaZero et certaines répliques comme ELF OpenGo utilisaient tous deux des milliers de GPU ou de TPU, ce qui est totalement impossible à égaler pour de nombreux individus ou de petits groupes de recherche.

Une fois que j'ai compris les algorithmes, j'ai vu qu'il y avait de nombreuses possibilités d'améliorer les algorithmes de jeu contre soi-même pour les rendre beaucoup plus puissants et efficaces. Grâce à ces nombreuses améliorations, KataGo a atteint les niveaux les plus élevés en n'utilisant qu'une petite fraction des ressources informatiques. Avec le code de KataGo, même avec une seule 2080 Ti, si vous êtes capable d'y consacrer quelques mois, vous devriez être en mesure d'entraîner un bot de Go à partir de rien pour qu'il atteigne le niveau des professionnels humains forts, voire même au-delà. Cela signifie que le niveau atteint par "AlphaGo Lee" peut désormais être égalé par toute personne possédant un ordinateur de jeu haut de gamme et disposée à y consacrer du temps. Avec les bonnes méthodes, les petites équipes de recherche et les développeurs individuels peuvent obtenir des résultats qui n'étaient auparavant possibles qu'avec de grands centres de données et des millions de dollars, ce qui rend la recherche beaucoup plus possible et pratique.


Elo progress


C'est pourquoi KataGo est également open source. Il ne s'agit pas seulement de Go. J'ai également reçu des nouvelles personnelles de développeurs travaillant sur d'autres jeux de plateau que le Go, selon lesquelles certaines des techniques de KataGo ont été utiles dans ces autres jeux également. Si vous essayez seulement de développer des programmes de Go encore plus puissants mais que vous ne publiez jamais rien ou n'expliquez jamais vos méthodes, alors vous améliorerez peut-être légèrement le niveau de l'IA de Go, mais vous n'aiderez pas d'autres petits chercheurs ou développeurs qui veulent construire leurs propres IA pour le Go ou d'autres jeux, ou expérimenter la recherche sur l'IA dans des domaines plus vastes.

Quoi qu'il en soit, une fois l'objectif ci-dessus atteint, il m'a semblé amusant de continuer à développer KataGo. J'aime aussi construire des outils que d'autres personnes peuvent utiliser, donc KataGo était ma tentative de donner à la communauté du jeu de Go un moteur avec des caractéristiques que personne d'autre ne semblait encore capable de produire. La prise en charge d'une grande variété de jeux de règles, y compris les règles japonaises, la réduction du relâchement du jeu en fin de partie en cas de victoire pour produire une meilleure analyse, l'amélioration du jeu avec handicap, la prise en charge de plusieurs tailles de plateau sans modifier le réseau neuronal. Toutes ces fonctionnalités étaient absentes de presque tous les meilleurs bots après AlphaZero, et je pensais savoir comment les prendre en charge, alors je l'ai fait.

Katago evaluation display

5. KataGo a une force étonnante, aidant les gens à améliorer leur niveau de compétition au Go, et a également des paramètres très libres. De nombreuses personnes l'utilisent pour découvrir le plaisir du jeu de Go. Par exemple, Yike (serveur de go chinois https://home.yikeweiqi.com/) utilise les fonctionnalités de KataGo pour créer un jeu d'IA qui est populaire parmi les utilisateurs. Parmi eux, les différents plateaux et les différents modes de jeu rendent les joueurs accros. Je me demande si le Dr. Wu a essayé ? Pensez-vous que ce jeu présente toutes les caractéristiques de KataGo ?

Merci. Non, je n'ai pas exploré toutes les différentes choses que les gens font avec KataGo. Je sais qu'il y en a beaucoup plus que je ne peux en suivre moi-même, et j'espère qu'il en restera ainsi, car les gens continuent à le trouver passionnant et amusant. Et si des développeurs ont des idées pour de nouvelles fonctionnalités que je pourrais mettre en œuvre, j'aimerais beaucoup les entendre. Plus d'une fois maintenant, j'ai ajouté des fonctionnalités et des sous-commandes à KataGo qui étaient nécessaires à d'autres développeurs sur d'autres serveurs ou sites pour faire des choses intéressantes et des choses nouvelles qui n'étaient pas possibles auparavant, et je suis heureux d'en ajouter d'autres quand j'en aurai le temps.

Katago

6. Quels sont les projets futurs de KataGo ? Devrions-nous continuer à approfondir le jeu de Go ou explorer d'autres domaines tels que la médecine, la finance ou la météorologie ? En outre, le jeu de Go est presque le premier à être modifié par l'IA. Quel type de mentalité les joueurs de Go et même l'humanité tout entière doivent-ils adopter face à l'ère de l'IA ?

D'ici un mois ou deux, il est possible que KataGo commence également l'entraînement distribué, à l'instar de Leela Zero. Grâce aux améliorations de l'efficacité de KataGo, l'entraînement distribué à grande échelle avec des centaines de GPU et de contributeurs n'a pas été nécessaire jusqu'à présent pour atteindre un niveau élevé, mais il serait fascinant de le pousser plus loin et de voir jusqu'où il peut aller s'il reçoit ces ressources. Une fois que l'entraînement distribué sera disponible, j'espère que certaines personnes se joindront à moi pour voir quel niveau KataGo peut atteindre avec plus d'entraînement.

7. Il n'y a pas longtemps, Yike a eu la chance de contacter le développeur qui a réalisé l'IA de Gobang sur la base du moteur KataGo et a appliqué avec succès ce programme à la plateforme Yike, ce qui apporte un taux de victoire, une stratégie et une expérience d'ouverture sans précédent pour les joueurs de Gobang. Aimeriez-vous voir ce type de coopération transfrontalière ?

Oui, sans aucun doute. Comme je l'ai mentionné plus haut, l'objectif initial de KataGo ne se limitait pas au jeu de Go. Il s'agissait de faciliter la tâche d'un large éventail de chercheurs et de développeurs d'IA pour les jeux afin qu'ils puissent créer des programmes de haute qualité pour différents jeux. Si quelqu'un veut prendre les idées de KataGo, ou ses techniques algorithmiques publiées, ou son code directement, et les développer pour résoudre de nouveaux problèmes ou surpasser KataGo lui-même, alors c'est un succès. Mon seul souhait est que les gens fassent preuve d'amabilité et d'honnêteté lorsqu'ils utilisent KataGo - qu'ils le clonent en y apportant des modifications mineures ou qu'ils l'utilisent simplement comme base d'une nouvelle formation et d'une recherche originale. Lors du développement de KataGo, l'objectif n'a jamais été d'essayer de battre d'autres personnes, d'être le meilleur ou de gagner. Je me fiche de savoir s'il gagne ou s'il est le meilleur bot, cela n'a pas d'importance. L'objectif de KataGo est plutôt de permettre à tout le monde de faire mieux ensemble.

Et au Go, on m'a dit que lors des récents préliminaires du tournoi de Go AI à Fuzhou, en plus de l'entrée publique de KataGo, au moins quelques-unes des soumissions étaient basées sur KataGo et que dans au moins un cas, une équipe a également développé de nouvelles améliorations avec un nouvel entraînement séparé. Et on m'a dit que quelques-unes de ces soumissions pourraient également avoir été retenues pour les prochains tours finaux, ce qui est très bien. Je suis surtout un spectateur et je ne suis pas activement impliqué, mais si c'est vrai, j'espère qu'après la fin du tournoi, ces équipes envisageront de publier leurs méthodes, surtout si elles peuvent partager de nouveaux algorithmes et de nouvelles techniques d'entraînement. Je suis heureux d'avoir pu créer une IA que d'autres personnes voudraient utiliser ou développer.

Outre le Go et le "Gobang[i]" (aussi appelé Gomoku), j'ai également été contacté en privé par quelques développeurs d'autres jeux différents, qui m'ont indiqué qu'ils trouvaient utiles certaines des techniques individuelles de KataGo ("playout cap randomization", "cibles d'entraînement auxiliaires ", etc), et qui m'ont aidé à répondre à des questions sur la manière de les appliquer. J'ai également discuté avec des chercheurs qui effectuent des travaux plus généraux visant à améliorer la précision de la recherche d'arbres de jeu. Dans tous ces cas, si KataGo peut aider à jeter les bases pour que d'autres personnes fassent des recherches nouvelles et meilleures, cela me réjouit.

Katago

8. Le fait de taxer[1] rend le jeu de Go différent, ce qui est une option dans KataGo. Ce processus de taxation est-il le fruit d'un entraînement ou d'un algorithme spécifique ? Peut-on se rendre compte qu'en mode taxe, les Blancs jouent en premier ?

KataGo gère différentes variations de règles et de tailles de plateau simplement en entraînant le réseau neuronal avec un grand nombre de parties avec ces règles pendant le jeu contre lui-même. Vous pouvez tout à fait utiliser les règles de "taxe" ou de "score obtenu par le nombre de pierres" - KataGo joue une grande partie de ses parties avec ces règles, il devrait donc avoir beaucoup d'expérience. Vous pouvez également faire jouer les blancs en premier si vous le souhaitez, car KataGo ne se soucie pas de la couleur qui joue en premier. Si vous voulez que les blancs jouent en premier, dites simplement à KataGo de jouer un coup pour les blancs en premier au lieu des noirs, et mettez le "komi" à 0 ou à un nombre négatif pour que les noirs soient ceux qui reçoivent une compensation pour avoir joué en second au lieu des blancs.

Une chose fascinante à propos des anciennes règles de "taxe" ou de "score obtenu par le nombre de pierres" est qu'elles semblent encourager légèrement un style de jeu plus cosmique. Comme la pénalité est plus importante pour les petits groupes multiples, cela signifie que jouer beaucoup de grands coups globaux et faire de grands cadres devient plus favorable. Par exemple, avec ces règles, l'invasion 3-3 ne semble plus être un bon coup à jouer tôt, et la lutte pour l'influence sur les côtés et au centre devient également plus favorable. Pour ceux qui ont été un peu déçus par la valeur élevée que les IA modernes accordent au territoire du coin et par le style de jeu serré qui en résulte, ces anciennes règles pourraient peut-être leur sembler rafraîchissantes.

9. Quel niveau pensez-vous que KataGo atteindra à terme, en termes de classement elo, par rapport à la version actuelle ?

C'est très difficile à dire ! Comme je l'ai mentionné plus haut, j'espère que KataGo pourra commencer à distribuer des formations assez rapidement, et qu'il y aura suffisamment de soutien de la part de la communauté pour continuer à s'améliorer en tant que programme gratuit et ouvert à l'usage de tous. Nous verrons jusqu'où il peut s'améliorer :)

IA



[i] Le jeu consiste à être le premier à aligner 5 pierres

[1] Dans les règles chinoises anciennes, pour chaque groupe indépendant les deux premiers yeux n'étaient  pas comptés pour déterminer le score

Références :

Interview de Katago Author David Wu 2020-10-18 sur Yike

Règles de la compétition entre IA de go de Fuzhou 2020


Dernière mise à jour, le 24 Avril 2023

Retour Go