- Même KataGo, aux performances moyennes surhumaines en partie, s’est effondré dans certaines situations, et la politique adversariale a enregistré un taux de victoire supérieur à 97 % même dans des configurations surhumaines
- Plutôt que de bien jouer au go de manière générale, l’attaquant a déstabilisé l’évaluation de KataGo en l’incitant à passer tôt et à laisser sans défense de grands groupes de pierres en forme de cycle
- L’apprentissage de l’attaque a utilisé moins de 14 % du calcul d’entraînement de KataGo, et a obtenu plus de 99 % de victoires contre KataGo sans recherche, 95,7 à 97,3 % contre KataGo à 4096 visites, et 72 % contre KataGo à 10⁷ visites
- La même vulnérabilité s’est transférée en zero-shot à d’autres IA de go surhumaines comme Leela Zero et ELF OpenGo, et un expert humain du go a appris la stratégie sans aide algorithmique et battu plusieurs bots
- Une petite quantité d’apprentissage adversarial a bloqué un attaquant fixe, mais un affinage supplémentaire l’a de nouveau contournée ; de fortes performances moyennes ne garantissent pas à elles seules la robustesse dans le pire cas
Attaque par politique adversariale visant KataGo
- L’étude vérifie, avec une IA de go, que des systèmes d’IA dont les performances moyennes progressent rapidement peuvent rester vulnérables en matière de performance dans le pire cas
- La cible de l’attaque est KataGo, l’IA de go publique la plus forte au moment de la rédaction de l’article
- KataGo utilise le self-play et une procédure d’apprentissage de type AlphaZero
- Il utilise un réseau neuronal doté d’une tête de politique et d’une tête de valeur, et choisit ses coups avec Monte-Carlo Tree Search (MCTS)
- Les réseaux les plus récents ont été entraînés pendant plus de 15 000 V100-equivalent GPU days
- Si KataGo, doté de performances surhumaines, peut être attaqué avec succès, cela peut servir d’exemple illustrant la vulnérabilité de systèmes d’IA plus larges
- L’attaquant peut seulement poser des pierres ou passer comme un joueur ordinaire, et ne dispose d’aucun privilège spécial sur les règles du jeu
Modèle de menace et méthode d’apprentissage
- L’attaquant dispose d’un accès gray-box lui permettant d’évaluer le réseau neuronal de l’agent victime sur des entrées arbitraires
- Il n’a pas d’accès direct aux poids du réseau
- La politique de la victime est supposée fixe
- Cela correspond naturellement aux cas où l’on peut exécuter localement une IA de go commerciale ou open source
- L’objectif n’est pas simplement de créer une IA de go plus forte, mais de révéler une non-transitivité (non-transitivity) exploitant une faiblesse précise de la victime
- L’adversaire bat KataGo
- KataGo bat les professionnels humains
- Les amateurs humains battent l’adversaire
- L’apprentissage se fait par victim-play plutôt que par self-play
- L’adversaire et la victime fixe jouent des parties
- Seules les données des tours de l’adversaire sont utilisées pour l’entraîner
- Les chercheurs introduisent Adversarial MCTS (A-MCTS)
- Le MCTS classique modélise les coups de l’adversaire avec sa propre politique
- A-MCTS modélise les coups de la victime en utilisant son réseau lors de ses tours
- A-MCTS-S échantillonne à partir de la tête de politique de la victime
- A-MCTS-S++ utilise une moyenne sur les symétries du plateau
- A-MCTS-R modélise récursivement jusqu’à la recherche de la victime, mais son coût de calcul est élevé
Deux attaques : pass-adversary et cyclic-adversary
- pass-adversary est une attaque qui trompe KataGo sans recherche afin qu’il passe trop tôt
- En jouant avec 600 visites, elle atteint 99,9 % de victoires contre la dernière version de KataGo sans recherche
- L’apprentissage a utilisé 20,4 V100 GPU days, soit 0,13 % du budget d’entraînement de Latest
- Sous les règles Tromp-Taylor, elle incite KataGo à passer tôt au moment où l’adversaire est en tête au score
- Cette stratégie perd aussi contre des amateurs humains
- Le pass-adversary entraîné contre une victime sans recherche se transfère en partie à des victimes utilisant une recherche très faible
- Avec A-MCTS-R, taux de victoire de 88 % contre Latest à 8 visites
- Avec A-MCTS-S, taux de victoire de 15 % dans les mêmes conditions
- cyclic-adversary est une deuxième attaque obtenue en attaquant de nouveau KataGo après l’application d’une défense contre le passage
- Les chercheurs réentraînent après avoir appliqué une défense pass-alive empêchant la victime de perdre en passant trop tôt
- Elle affiche 1048 victoires en 1048 parties, soit 100 %, contre Latestdef sans recherche
- Elle enregistre aussi 1000 victoires en 1000 parties contre Latest sans défense et sans recherche
- L’apprentissage a utilisé 2223,2 V100 GPU days, soit environ 14,0 % du calcul d’entraînement de Latest
Même KataGo surhumain avec recherche est percé
- cyclic-adversary montre aussi un taux de victoire élevé contre KataGo utilisant la recherche
- 95,7 % de victoires sur 1052 parties contre Latestdef à 4096 visites
- 97,3 % de victoires sur 1000 parties contre Latest sans défense à 4096 visites
- 82 % de victoires sur 50 parties contre Latest à 10⁶ visites/coup
- 72 % de victoires sur 50 parties contre Latest à 10⁷ visites/coup
- 10⁷ visites correspond à un niveau où l’évaluation d’un seul coup prend plus d’une heure même sur du matériel grand public performant, ce qui en fait difficilement une défense pratique dans de nombreuses applications
- Plus le volume de recherche de la victime augmente, plus le taux de victoire de l’adversaire diminue
- La recherche peut être un outil pour améliorer la robustesse
- Mais elle ne suffit pas, à elle seule, à produire une robustesse complète
- Côté adversaire, la recherche donne les meilleurs résultats entre 128 et 600 visites
- Au-delà de 600 visites, les performances ne s’améliorent pas et peuvent même se dégrader
- A-MCTS-S++ ne montre pas de meilleures performances que le moins coûteux A-MCTS-S
Fonctionnement de la vulnérabilité cyclic
- cyclic-adversary incite KataGo à former un grand groupe de pierres en motif circulaire, puis capture ce groupe pour renverser décisivement le score
- Pendant la majeure partie de la partie, KataGo victime prédit qu’il va gagner avec plus de 99 % de probabilité, et ne perçoit la possibilité de défaite que juste avant la capture du grand groupe
- Dans certaines parties, sa prédiction de taux de victoire fluctue fortement pendant une bataille de ko avant de converger vers la certitude de perdre
- Les propres prédictions de l’adversaire évoluent plus lentement et de façon moins certaine
- L’analyse des activations montre que les différences entre des positions cycliques et des positions non cycliques presque identiques apparaissent à certaines couches
- Aucune différence importante n’est visible à la couche 25
- Des différences nettes apparaissent dans certains canaux de la couche 26
- La différence entre le checkpoint cp580 entraîné de manière adversariale et Latest présente un motif similaire, ce qui suggère que ces canaux pourraient être liés à la vulnérabilité cyclique
- Les attaques baseline codées en dur fonctionnent mal contre Latestdef
- Le baseline Edge a gagné près de la moitié des parties contre Latest sans défense en jouant avec les blancs
- Cela montre que Latestdef est plus robuste que Latest, et que cyclic-adversary a appris un exploit relativement sophistiqué
Expériences de défense et limites
- Mi-décembre 2022, l’apprentissage distribué officiel de KataGo a inclus 0,08 % de parties en self-play démarrant depuis des positions où le cyclic exploit était en cours
- Il s’agit d’une forme faible d’apprentissage adversarial visant à améliorer la compréhension des positions cycliques tout en préservant le niveau de jeu normal
- Après cette défense, les performances du cyclic-adversary existant ont progressivement diminué
- 0 victoire en 50 parties contre KataGo b60-s7702m à 32 visites
- 119 victoires en 2050 parties contre b60-s7702m à 1 visite
- Cependant, après 1154,9 V100 GPU days de fine-tuning supplémentaire du cyclic-adversary contre le réseau entraîné de manière adversariale, la puissance de l’attaque s’est partiellement rétablie
- 47 % de victoires sur 400 parties contre b60-s7702m à 4096 visites
- 17,5 % de victoires sur 40 parties contre b60-s7702m à 100 000 visites
- Le mode de victoire repose toujours sur le cyclic exploit, mais l’exécute d’une manière légèrement différente
- Une petite quantité d’apprentissage sur des positions adversariales peut bloquer un attaquant fixe, mais cette défense ne s’est pas généralisée
- Il reste possible qu’un volume plus important d’apprentissage adversarial rende l’exploit de KataGo computationnellement infeasible, mais il faudrait des scaling laws plus précises pour le vérifier
Transfert vers d’autres IA de go et vers des joueurs humains
- Bien que cyclic-adversary ait été entraîné uniquement contre KataGo, il se transfère en zero-shot à d’autres IA de go surhumaines
- 6,1 % de victoires contre Leela Zero
- 3,5 % de victoires contre ELF OpenGo
- Comme A-MCTS modélise l’adversaire comme KataGo, les conditions sont difficiles : il se heurte en permanence à des coups inattendus de Leela ou ELF
- Un auteur de l’article spécialiste du go a observé des parties de l’adversaire et appris l’attaque sans aide algorithmique
- Sur le serveur de go KGS, il a obtenu plus de 90 % de victoires contre des bots KataGo de premier plan sans lien avec les auteurs
- Il a aussi gagné en donnant 9 pierres de handicap
- Il a également gagné dans des conditions où KataGo et Leela Zero jouaient chacun avec 100k visites
- Par la suite, d’autres humains ont utilisé le cyclic attack pour battre plusieurs IA de go de premier plan, dont KataGo, ELF OpenGo, FineArt, Leela Zero et Sai
- Les attaquants ont pu transférer l’attaque sans disposer des poids du modèle cible, de ses sorties de politique, ni d’un grand nombre d’historiques de parties
- Cela suggère qu’une attaque apprise sur un système open source peut se transférer à un modèle fermé
Reproductibilité et conclusion
- Le code, l’environnement d’exécution conteneurisé et les instructions d’exécution sont publiés sur GitHub
- Des parties d’exemple sont disponibles sur goattack.far.ai
- Sur le serveur de go KGS, le bot Adversary0, exécutant le dernier checkpoint de cyclic-adversary, a été rendu public pendant un mois
- Les principaux résultats ont été reproduits de plusieurs façons
- David Wu, développeur de KataGo, a confirmé indépendamment les vulnérabilités au passing attack et au cyclic attack
- Plusieurs personnes de la communauté du go informatique ont confirmé la vulnérabilité cyclique
- La vulnérabilité cyclique et le résultat selon lequel un novice human play bat l’adversaire ont été reproduits dans des parties ordinaires contre le bot KGS
- Le résultat selon lequel des humains utilisent le cyclic attack pour battre KataGo et plusieurs autres IA de go a également été reproduit
- L’échec d’une IA de go surhumaine est un cas intéressant, mais des échecs similaires dans des systèmes critiques pour la sécurité, comme le trading financier automatisé ou les véhicules autonomes, pourraient avoir de graves conséquences
- L’amélioration des performances ne conduit pas automatiquement à une robustesse suffisante ; il faut investir dans l’apprentissage robuste et les techniques de défense adversariale
1 commentaires
Avis de Hacker News
À noter : c’est un article de juillet 2023, et l’article de défense de septembre 2024 est https://arxiv.org/abs/2406.12843
À première vue, ça paraît impressionnant, mais même en connaissant un peu le go et les IA de go, et beaucoup les échecs et les IA d’échecs, l’article est assez difficile à comprendre
On dirait qu’ils ont fait le minimum d’efforts pour expliquer ce qu’ils ont fait et comment cela peut fonctionner, et qu’ils masquent le message central avec du jargon non expliqué
J’ai le sentiment que l’idée cachée pourrait en fait être étonnamment simple, mais elle n’apparaît pas complètement
Au go, il existe des phases particulièrement longues que j’appellerais un état où l’on marche longtemps tout en étant déjà mort. Un groupe de pierres peut déjà être mort au 30e coup, mais l’adversaire peut ne le capturer effectivement qu’après le 150e coup
Si l’adversaire connaît la vérité dès le 30e coup et que moi je suis entraîné dans une mauvaise direction pendant des centaines de coups ensuite, je vais presque forcément perdre
Cette IA adversariale trompe AlphaGo/KataGo pour les mettre dans ce genre de situation, puis, plutôt que d’exploiter immédiatement cet avantage, elle se concentre sur le maintien de la tromperie afin que KataGo continue de mal comprendre la position. Autrement dit, si le meilleur coup risque de faire comprendre son erreur à KataGo, il vaut mieux jouer le deuxième meilleur coup pour le maintenir dans un état bogué
Même avec un entraînement adversarial, c’est-à-dire même si KataGo apprend ce défaut, le défaut reste présent, sans raison claire
Ce bug de groupe de pierres cyclique semble assez simple pour qu’un amateur le comprenne. Je suis environ 10 kyu, avec un niveau que j’estimerais comparable à l’effort nécessaire pour atteindre 1500 Elo aux échecs : j’ai donc pratiqué un peu, mais je n’ai rien de spécial
Du coup, il semble que même moi, humain de niveau 10 kyu, avec un peu d’entraînement, pourrais battre AlphaGo/KataGo
Le jargon, comme presque tout, a une fonction d’utilité, et si l’objectif est de transmettre l’information aussi clairement que possible, il semble qu’au-delà d’un certain point d’inflexion la valeur produite diminue. Si l’objectif est différent, la fonction d’utilité peut peut-être croître de façon exponentielle
Aux échecs aussi, il existe ce genre de cas limite avec des positions de forteresse. Les trois premières sont « 0.0 » et la quatrième est gagnante pour les noirs
8/8/8/1Pk5/2Pn3p/5BbP/6P1/5K1R w - - 0 1: les blancs ne peuvent pas libérer la tour1B4r1/1p6/pPp5/P1Pp1k2/3Pp3/4Pp1p/5P1P/5K2 b - - 0 1: la tour ne peut pas entrer dans le camp blanckqb5/1p6/1Pp5/p1Pp4/P2Pp1p1/K3PpPp/5P1B/R7 b - - 0 1: si la tour va en h1 et le roi en g1, la dame ne peut pas entrer par a62nnkn2/2nnnn2/2nnnn2/8/8/8/3QQQ2/3QKQ2 w - - 0 1: les cavaliers avancent comme un bloc, de sorte que le cavalier attaqué est protégé deux foisDans la première position, Stockfish et Lc0 estiment tous deux que les blancs sont légèrement mieux. Dans les deuxième et troisième, ils estiment que les noirs gagnent. La quatrième est comprise par Lc0, mais pas par Stockfish
https://lichess.org/analysis/standard/8/8/8/1Pk5/2Pn3p/5BbP/...
https://lichess.org/analysis/fromPosition/1B4r1/1p6/pPp5/P1P...
https://lichess.org/analysis/fromPosition/kqb5/1p6/1Pp5/p1Pp...
https://lichess.org/analysis/fromPosition/2nnkn2/2nnnn2/2nnn...
Au go, jouer contre un parfait amateur peut parfois être délicat. Ses coups sont trop imprévisibles et les formes s’éloignent trop de la normale. Un jeu très bizarre peut parfois fonctionner
Je suis 4 dan européen, et quel que soit le coup non orthodoxe joué par un joueur faible, je rase le plateau. De la même façon, contre un joueur plus fort que moi, si je choisis des coups étranges, je me fais généralement écraser encore plus vite que d’habitude. Ça ne peut marcher qu’aux alentours des kyu à deux chiffres
La partie devient alors une bataille tactique, et l’adversaire finit par entrer dans une mauvaise finale. Et il se trouve que cet adversaire joue contre Magnus
C’est un article de 2022, révisé en 2023, donc je l’ai peut-être déjà vu puis oublié. C’est assez intéressant, et je me demande à quel point cette approche fonctionnerait contre des moteurs d’échecs, au moins contre des moteurs à la Leela
Cela me rappelle qu’après Deep Blue, les joueurs d’échecs ont aussi appris de meilleures stratégies anti-ordinateur. Comme l’espace d’états du go est beaucoup plus vaste, il est très probable qu’il existe bien plus de stratégies anti-ordinateur de ce type
En quelque sorte, on attaque la fonction d’évaluation de la même manière
Comme aux échecs, davantage de calcul finira par l’emporter, et cela s’est déjà vu. Il faut se rappeler que l’Elo mesure les résultats en termes de victoires et de défaites, pas la difficulté. Confondre les deux dégrade le raisonnement
Pour référence, une discussion de fin 2022 sur cette attaque se trouve en [1]. Elle inclut notamment une longue participation de hexahedron / lightvector, le développeur de KataGo, qui semble être l’IA de go surhumaine la plus utilisée
Le lien pointe vers le milieu du fil parce que les révisions ultérieures étaient plus intéressantes que la première version de l’article
[1] https://forums.online-go.com/t/potential-rank-inflation-on-o...
Si l’on peut concevoir un piège sophistiqué, on pourrait penser que cela implique une connaissance du jeu d’un niveau comparable, et qu’une IA très entraînée inclurait implicitement les stratégies adversariales. Résultat intéressant
Une échelle est une forme simple que même un amateur occasionnel cherchant à atteindre les kyu les plus faibles doit apprendre
KataGo reconnaît ce défaut et possède un solveur d’échelles explicite écrit en code traditionnel. Il semble que le réseau de neurones ne parvienne jamais à découvrir les échelles. On ne sait pas vraiment pourquoi un réseau de neurones profond ne saisit pas un motif aussi simple
Il ne serait donc pas surprenant que ces IA aient manqué d’autres motifs plus profonds