Qu'est-ce que Pikafish ?
Pikafish est un moteur de Xiangqi gratuit et open source : un programme qui prend une position et renvoie le coup qu'il juge le meilleur, accompagné d'une évaluation chiffrée de qui est mieux. Il n'a aucune interface propre. C'est un cœur de calcul qui dialogue avec un programme graphique par commandes texte, comme un moteur sous le capot d'une voiture. Ce choix est délibéré : en séparant le moteur de l'interface, le même cœur peut alimenter un échiquier d'analyse sur ordinateur, une application mobile ou un site web. Pikafish est devenu le moteur de référence du monde du Xiangqi pour les mêmes raisons que Stockfish aux échecs : il est plus fort que les alternatives commerciales, il ne coûte rien, et son code source est public, donc vérifiable par n'importe qui. Pour la vue d'ensemble de la façon dont les machines ont pris le dessus au Xiangqi, notre panorama des moteurs d'IA au Xiangqi couvre toute l'histoire ; cet article se concentre sur Pikafish lui-même.
D'où vient Pikafish ? L'héritage Stockfish
Pikafish est un dérivé de Stockfish, le moteur d'échecs open source qui domine les échecs informatiques depuis plus de dix ans. Plutôt que de reconstruire un algorithme de recherche de zéro, ses auteurs ont repris la recherche éprouvée de Stockfish — la partie qui décide quelles branches de l'arbre de coups méritent d'être explorées et lesquelles peuvent être élaguées sans risque — et l'ont adaptée à un jeu doté d'un plateau 9x10, d'une rivière, d'un palais et de pièces qui ne se comportent en rien comme leurs équivalents des échecs. L'évaluation, elle, a dû être entièrement refaite : savoir qu'une tour est puissante sur une colonne ouverte ne dit rien de la valeur d'un canon qui a besoin d'un écran pour capturer. Cet héritage explique beaucoup de choses : le langage de commandes, les options de configuration, les conventions de publication et la licence viennent tous de la famille Stockfish. Il est distribué sous GPL v3, ce qui signifie qu'il est libre d'usage et de modification, mais que tout travail dérivé doit être publié aux mêmes conditions.
Quelle est la force réelle de Pikafish ?
Considérable — au point que la question de le battre n'a plus vraiment de réponse sérieuse. Sur du matériel moderne ordinaire, avec quelques secondes par coup, Pikafish joue très au-delà du niveau des plus forts Grands Maîtres humains. Il ne commet pas de gaffe, ne fatigue jamais, calcule les séquences forcées plus profondément qu'aucun humain ne peut le tenir en tête, et évalue les positions calmes avec une constance que personne ne maintient sur une longue partie. La comparaison intéressante n'est pas humain contre moteur, mais à quoi le moteur sert. Un joueur à 1400 ne gagne rien à s'entendre dire qu'une position est perdue de deux points ; il gagne à comprendre quel coup a créé le problème. C'est pourquoi la force brute du moteur compte bien moins que l'usage qu'on en fait. Notre article sur la cote Elo au Xiangqi remet les échelles humaines en perspective et montre que l'écart entre un joueur de club et un Grand Maître est plus petit que celui entre un Grand Maître et un moteur.
Qu'est-ce que le NNUE, et pourquoi Pikafish a-t-il besoin d'un fichier séparé ?
NNUE désigne un réseau de neurones à mise à jour efficace, et c'est la partie de Pikafish qui juge les positions. Les moteurs classiques évaluaient une position avec des règles écrites à la main : une tour vaut tant, un pion protégé au-delà de la rivière vaut tant, un général exposé est une pénalité. Le NNUE remplace ce barème manuel par un petit réseau de neurones entraîné sur des millions de positions, qui capture des subtilités que personne n'a su formuler en règles. Le mot efficace est la clé : le réseau est conçu pour que, lorsqu'une seule pièce bouge, seule une petite partie du calcul soit à refaire — c'est ce qui le rend assez rapide pour tourner des millions de fois par seconde. En pratique, ce réseau vit dans un fichier séparé, généralement nommé quelque chose comme pikafish.nnue. Le binaire du moteur ne le contient pas. C'est de loin la première source de confusion chez les nouveaux venus, et l'objet de la section suivante.
Comment télécharger et lancer Pikafish ?
Pikafish est distribué sous forme de binaire compilé sur son dépôt public, github.com/official-pikafish/Pikafish, avec des versions pour Windows, Linux, macOS et Android. Les publications proposent en général plusieurs variantes de la même version, nommées d'après des jeux d'instructions de processeur — avx2, bmi2, vnni et consorts. Ce ne sont pas des moteurs différents : c'est le même programme compilé pour exploiter des fonctions de processeur plus ou moins récentes. Prenez la plus récente que votre machine supporte ; si elle refuse de démarrer avec une erreur d'instruction illégale, redescendez d'un cran. L'archive de publication contient déjà le réseau NNUE : un téléchargement normal ne demande aucune étape supplémentaire. Vous n'avez à récupérer le réseau vous-même que si vous compilez depuis les sources ; il vit alors dans le dépôt Networks et se place à côté du binaire. Et l'échec n'a rien de subtil : un moteur qui ne peut pas charger son réseau affiche le chemin qu'il a essayé et l'URL de téléchargement, puis s'arrête — il ne continue jamais en jouant faible. Enfin, rappelez-vous que le binaire n'a ni fenêtre ni échiquier : il vous faut une interface graphique parlant le même protocole pour vous en servir.
Comment bien configurer Pikafish ?
Trois réglages font l'essentiel de la différence en pratique. Threads indique au moteur combien de cœurs du processeur utiliser. Plus de threads, c'est plus de positions examinées par seconde, mais laisser au moins un cœur libre garde la machine réactive ; dépasser le nombre réel de cœurs ne fait que ralentir. Hash est la mémoire que le moteur consacre à retenir les positions déjà évaluées, exprimée en mégaoctets. Trop peu, il recalcule sans fin les mêmes choses ; trop, il entre en concurrence avec le reste du système. Quelques centaines de mégaoctets sont confortables pour de l'analyse sur un ordinateur normal. Le troisième réglage n'en est pas vraiment un : c'est le temps que vous lui laissez réfléchir. La force croît avec le temps, mais à rendement décroissant — le saut d'une seconde à dix est énorme, celui de dix à cent bien plus modeste. Pour étudier vos propres parties, quelques secondes par position suffisent largement. Les mêmes arbitrages, appliqués à des adversaires plutôt qu'à de l'analyse, sont ceux que nous décrivons dans comment nous équilibrons la difficulté des bots.
Comment lire ce que dit Pikafish ?
Le moteur produit un flux continu de lignes, et trois nombres comptent. L'évaluation est exprimée en équivalents-pions du point de vue du trait : un score positif signifie que le camp au trait est mieux, un score proche de zéro signifie l'équilibre. Une valeur de +1 correspond en gros à l'avantage d'un pion sain de plus, pas à une partie gagnée. La profondeur indique le nombre de demi-coups explorés ; une évaluation élevée à faible profondeur mérite bien moins de confiance qu'une évaluation modeste à grande profondeur. La variante principale est la suite de coups que le moteur juge la meilleure pour les deux camps, et c'est de loin la partie la plus instructive : l'évaluation vous dit que quelque chose ne va pas, la variante vous dit pourquoi. Les débutants ne lisent que le nombre ; ceux qui progressent lisent la ligne. Si la notation de ces lignes vous est étrangère, notre guide de la notation au Xiangqi explique les systèmes en usage.
Se servir d'un moteur pour progresser — et où est la limite
Un moteur est une machine à réponses impitoyable, ce qui en fait à la fois le meilleur et le pire partenaire d'étude. La méthode productive consiste à analyser vos propres parties après les avoir jouées, et à réfléchir avant de regarder : formez votre jugement sur le moment où la partie a basculé, puis vérifiez. Quand le moteur n'est pas d'accord avec vous, le désaccord est la leçon. La méthode improductive consiste à dérouler une partie en regardant la barre d'évaluation bouger : ça ressemble à du travail et ça n'apprend rien. En dessous de 2000 environ, la plupart des défaites viennent de tactiques que vous pouvez trouver seul avec plus de rigueur, pas de subtilités que seul un moteur révèle — notre guide de progression au Xiangqi propose un chemin plus efficace. Et le point évident qu'il faut quand même dire : utiliser l'assistance d'un moteur pendant une partie en direct contre quelqu'un, c'est tricher, sur toute plateforme sérieuse et dans toute fédération. Les moteurs, c'est pour après la partie, ou pour des positions que personne ne joue.
Utiliser Pikafish sans rien installer
Si tout ce que vous voulez est un moteur puissant qui analyse vos positions, vous n'avez rien à installer du tout. Xiangqi One fait tourner Pikafish directement, en natif dans les applications mobiles et compilé en WebAssembly dans le navigateur : l'analyse se fait sur votre propre appareil, sans installation, sans fichier réseau à télécharger et sans configuration. Vous ouvrez un échiquier, déroulez une partie, et obtenez le même jugement de moteur que décrit plus haut, à la profondeur que votre patience autorise. Les bots contre lesquels vous jouez utilisent le même cœur, délibérément bridé pour produire des adversaires à un niveau réellement utile à affronter — le raisonnement est détaillé dans comment nous équilibrons la difficulté des bots. Pour analyser une position ou jouer contre un adversaire calibré tout de suite, ouvrez Xiangqi One. Pour le paysage complet des moteurs et la façon dont les machines ont changé le jeu, continuez avec notre panorama des moteurs d'IA au Xiangqi ou parcourez la catégorie moteurs.



