- Incluso KataGo, con un rendimiento promedio de juego sobrehumano, colapsó en ciertas situaciones, y la política adversaria registró una tasa de victorias superior al 97% incluso en configuraciones sobrehumanas
- El atacante no juega Go bien en general, sino que sacude la evaluación de KataGo induciendo pases tempranos y el abandono de grandes grupos de piedras en forma cíclica
- El entrenamiento del ataque usó menos del 14% del cómputo de entrenamiento de KataGo, y mostró más del 99% contra KataGo sin búsqueda, 95.7~97.3% contra KataGo con 4096 visitas, y 72% incluso contra KataGo con 10⁷ visitas
- La misma vulnerabilidad se transfirió zero-shot a otras IA de Go sobrehumanas como Leela Zero y ELF OpenGo, y un experto humano en Go también aprendió la estrategia sin ayuda algorítmica y venció a varios bots
- Una pequeña cantidad de entrenamiento adversario bloqueó a un atacante fijo, pero volvió a ser vulnerado con fine-tuning adicional, lo que muestra que un alto rendimiento promedio por sí solo difícilmente garantiza robustez en el peor caso
Ataque de política adversaria contra KataGo
- Se verifica con una IA de Go que los sistemas de IA cuyo rendimiento promedio mejora rápidamente pueden seguir siendo vulnerables en rendimiento de peor caso
- El objetivo del ataque es KataGo, la IA de Go pública más fuerte al momento de escribir el artículo
- KataGo usa self-play y un procedimiento de entrenamiento al estilo AlphaZero
- Usa una red neuronal con una cabeza de política y una cabeza de valor, y elige jugadas mediante Monte-Carlo Tree Search (MCTS)
- La red más reciente fue entrenada con más de 15,000 V100-equivalent GPU days
- Si KataGo, con rendimiento sobrehumano, puede ser vulnerada con éxito por un ataque, esto puede servir como ejemplo de la vulnerabilidad de sistemas de IA más amplios
- El atacante solo puede colocar piedras o pasar como un jugador normal, y no tiene permisos especiales sobre las reglas del juego
Modelo de amenaza y método de entrenamiento
- El atacante tiene acceso gray-box, con el que puede evaluar la red neuronal de la víctima ante entradas arbitrarias
- No tiene acceso directo a los pesos de la red
- Se asume que la política de la víctima está fija
- Es algo natural cuando se puede ejecutar localmente una IA de Go comercial u open source
- El objetivo no es simplemente crear una IA de Go más fuerte, sino revelar una no transitividad (non-transitivity) que aprovecha una debilidad específica de la víctima
- El adversario vence a KataGo
- KataGo vence a profesionales humanos
- Un amateur humano vence al adversario
- El entrenamiento se realiza con victim-play en lugar de self-play
- El adversario y la víctima fija juegan partidas
- Solo se usan los datos de los turnos del adversario para entrenarlo
- Los investigadores introducen Adversarial MCTS (A-MCTS)
- El MCTS normal modela las jugadas del oponente con su propia política
- A-MCTS usa la red de la víctima en los turnos de la víctima para modelar sus jugadas
- A-MCTS-S muestrea desde la cabeza de política de la víctima
- A-MCTS-S++ usa el promedio de simetrías del tablero
- A-MCTS-R modela recursivamente incluso la búsqueda de la víctima, pero tiene un alto costo computacional
Dos ataques: pass-adversary y cyclic-adversary
- pass-adversary es un ataque que engaña a KataGo sin búsqueda para que pase demasiado pronto
- Al jugar con 600 visitas, alcanzó una tasa de victorias de 99.9% contra Latest no-search KataGo
- El entrenamiento usó 20.4 V100 GPU days, equivalente al 0.13% del presupuesto de entrenamiento de Latest
- Bajo las reglas Tromp-Taylor, induce a KataGo a pasar temprano cuando el adversario va adelante en puntaje
- Esta estrategia también pierde contra amateurs humanos
- El pass-adversary entrenado contra una víctima sin búsqueda se transfiere parcialmente a víctimas con búsqueda muy baja
- Al usar A-MCTS-R, obtuvo 88% de victorias contra Latest con 8 visitas
- Al usar A-MCTS-S, obtuvo 15% de victorias bajo las mismas condiciones
- cyclic-adversary es un segundo ataque obtenido al volver a atacar a KataGo después de aplicar una defensa contra pases
- Tras aplicar la defensa pass-alive para que la víctima ya no perdiera por pases tempranos, se volvió a entrenar
- Contra Latestdef sin búsqueda mostró 1048 victorias en 1048 partidas, una tasa de victorias de 100%
- También registró 1000 victorias en 1000 partidas contra Latest sin búsqueda y sin defensa
- El entrenamiento usó 2223.2 V100 GPU days, aproximadamente el 14.0% del cómputo de entrenamiento de Latest
Incluso KataGo sobrehumano con búsqueda fue vulnerado
- cyclic-adversary también mostró altas tasas de victoria contra KataGo que usa búsqueda
- 95.7% de victorias en 1052 partidas contra Latestdef con 4096 visitas
- 97.3% de victorias en 1000 partidas contra Latest sin defensa con 4096 visitas
- 82% de victorias en 50 partidas contra Latest con 10⁶ visitas/movimiento
- 72% de victorias en 50 partidas contra Latest con 10⁷ visitas/movimiento
- 10⁷ visitas es un nivel que, incluso en hardware de consumo de alto rendimiento, tarda más de 1 hora en evaluar una jugada, por lo que difícilmente sea una defensa práctica en muchas aplicaciones
- A medida que aumenta la cantidad de búsqueda de la víctima, baja la tasa de victorias del adversario
- La búsqueda puede ser una herramienta para mejorar la robustez
- Sin embargo, la búsqueda por sí sola no logra una robustez completa
- La búsqueda del lado del adversario mostró el mejor rendimiento entre 128 y 600 visitas
- Superar las 600 visitas no mejoró el rendimiento, e incluso podía empeorarlo
- A-MCTS-S++ no mostró mejor rendimiento que el A-MCTS-S más barato
Cómo funciona la vulnerabilidad cíclica
- cyclic-adversary induce a KataGo a crear grandes grupos de piedras con patrones circulares y luego captura esos grupos para dar vuelta el puntaje de forma decisiva
- La víctima KataGo predice durante la mayor parte de la partida que tiene más de 99% de probabilidad de ganar, y solo reconoce la posibilidad de perder justo antes de que se capture el gran grupo
- En algunas partidas, la predicción de tasa de victoria oscila mucho durante una pelea ko y luego converge hacia la certeza de derrota
- Las predicciones propias del adversario cambian más lentamente y muestran menor certeza
- En el análisis de activaciones, las diferencias entre posiciones cíclicas y posiciones casi iguales pero no cíclicas aparecen en capas específicas
- En la layer 25 no se observan grandes diferencias
- En algunos canales de la layer 26 aparecen diferencias claras
- Las diferencias entre el checkpoint adversarialmente entrenado cp580 y Latest también muestran un patrón similar, lo que sugiere que esos canales podrían estar vinculados con la vulnerabilidad cíclica
- Los ataques baseline hardcodeados no funcionaron bien contra Latestdef
- El baseline Edge ganó casi la mitad de las veces contra Latest sin defensa cuando jugaba con blancas
- Esto muestra que Latestdef es más robusto que Latest, y que cyclic-adversary aprendió un exploit relativamente sofisticado
Experimentos de defensa y limitaciones
- A mediados de diciembre de 2022, el entrenamiento distribuido oficial de KataGo incluyó un 0.08% de partidas de self-play que comenzaban desde posiciones donde el cyclic exploit estaba en curso
- Es una forma débil de entrenamiento adversario para mejorar la comprensión de posiciones cíclicas preservando la fuerza en partidas normales
- Después de esta defensa, el rendimiento del cyclic-adversary existente cayó gradualmente
- 0 victorias en 50 partidas contra KataGo b60-s7702m con 32 visitas
- 119 victorias en 2050 partidas contra KataGo b60-s7702m con 1 visita
- Sin embargo, al hacer fine-tuning adicional del cyclic-adversary durante 1154.9 V100 GPU days contra la red entrenada adversarialmente, se recuperó parte de la capacidad de ataque
- 47% de victorias en 400 partidas contra b60-s7702m con 4096 visitas
- 17.5% de victorias en 40 partidas contra b60-s7702m con 100,000 visitas
- La forma de ganar sigue dependiendo del cyclic exploit, aunque se ejecuta de una manera ligeramente distinta
- Una pequeña cantidad de entrenamiento con posiciones adversarias puede bloquear a un atacante fijo, pero esa defensa no se generalizó
- Sigue existiendo la posibilidad de que más entrenamiento adversario haga que explotar KataGo sea computacionalmente infeasible, pero para confirmarlo se necesita una scaling law más precisa
Transferencia a otras IA de Go y jugadores humanos
- Aunque cyclic-adversary se entrenó solo contra KataGo, también se transfirió zero-shot a otras IA de Go sobrehumanas
- 6.1% de victorias contra Leela Zero
- 3.5% de victorias contra ELF OpenGo
- Como A-MCTS modela al oponente como KataGo, se trata de una condición difícil donde constantemente se enfrenta a jugadas inesperadas de Leela o ELF
- Uno de los autores del artículo, experto en Go, observó partidas del adversario y aprendió el ataque sin ayuda algorítmica
- En el servidor de Go KGS obtuvo más de 90% de victorias contra bots KataGo de alto nivel no relacionados con los autores
- Ganó incluso dando 9 piedras de ventaja
- También ganó en condiciones donde KataGo y Leela Zero jugaban cada uno con 100k visitas
- Posteriormente, otros humanos usaron el cyclic attack para vencer a varias IA de Go de alto nivel, entre ellas KataGo, ELF OpenGo, FineArt, Leela Zero y Sai
- El atacante pudo realizar la transferencia incluso sin los pesos del modelo objetivo, salidas de política ni muchos registros de partidas
- Esto sugiere que un ataque aprendido en un sistema open source puede transferirse a un modelo cerrado
Reproducibilidad y conclusión
- El código, el entorno de ejecución en contenedores y las instrucciones de ejecución se publicaron en GitHub
- Las partidas de ejemplo están disponibles en goattack.far.ai
- En el servidor de Go KGS, el bot Adversary0, que ejecuta el checkpoint más reciente de cyclic-adversary, estuvo disponible públicamente durante un mes
- Los resultados principales se reprodujeron de varias maneras
- David Wu, desarrollador de KataGo, confirmó de forma independiente las vulnerabilidades de passing attack y cyclic attack
- Varias personas de la comunidad de Go por computadora confirmaron la vulnerabilidad cíclica
- En partidas normales contra el bot de KGS se reprodujeron tanto la vulnerabilidad cíclica como el resultado de que novice human play vence al adversario
- También se reprodujo el resultado de que humanos usan el cyclic attack para vencer a KataGo y a varias otras IA de Go
- La falla de una IA de Go sobrehumana es un caso interesante, pero si ocurrieran fallas similares en sistemas críticos para la seguridad, como trading financiero automatizado o vehículos autónomos, las consecuencias podrían ser graves
- Mejorar el rendimiento no implica alcanzar una robustez suficiente, y se necesita invertir en aprendizaje robusto y técnicas de defensa adversaria
1 comentarios
Opiniones de Hacker News
Como referencia, este es un paper de julio de 2023, y el paper de defensa de septiembre de 2024 es https://arxiv.org/abs/2406.12843
A primera vista parece impresionante, pero aunque sé un poco de Go y de IA de Go, y bastante de ajedrez e IA de ajedrez, el paper me resulta bastante difícil de entender
Parece que dedicaron apenas el mínimo esfuerzo a explicar qué hicieron y cómo podría funcionar, y que el mensaje central queda oculto detrás de jerga técnica sin explicación
Me da la sensación de que la idea escondida podría ser en realidad sorprendente y simple, pero no se llega a ver del todo
En Go existe una etapa particularmente larga de lo que yo llamo caminar mucho tiempo estando ya muerto. Un grupo de piedras puede estar muerto ya en la jugada 30, pero puede que el rival no lo capture efectivamente hasta después de la jugada 150
Si el rival sabe la verdad desde la jugada 30 y a mí me guían por el camino equivocado durante cientos de jugadas después, casi con seguridad voy a perder
Esta IA adversarial engaña a AlphaGo/KataGo para llevarlos a esa situación y, en vez de cobrar la ventaja de inmediato, se concentra en mantener el engaño para que KataGo siga malinterpretando la situación. Es decir, si la mejor jugada pudiera hacer que KataGo se dé cuenta del malentendido, conviene jugar la segunda mejor para mantener a KataGo en un estado con bug
Incluso con entrenamiento adversarial, es decir, aunque KataGo aprenda esta falla, la falla permanece, y no está claro por qué
Este bug de los grupos de piedras en ciclo parece lo bastante fácil como para que un amateur lo entienda. Yo soy alrededor de 10 kyu, un nivel que estimo equivalente al esfuerzo de un 1500 Elo en ajedrez, así que practiqué algo, pero no soy especial
Por eso parece que incluso yo, como humano, con algo de práctica a nivel 10 kyu, podría ganarle a AlphaGo/KataGo
La jerga, como casi todo, tiene una función de utilidad, y si el objetivo es transmitir información con la mayor claridad posible, parece que después de cierto punto de inflexión el valor de salida más bien disminuye. Si el objetivo es otro, quizá la función de utilidad crezca exponencialmente
En ajedrez también existen casos límite de este tipo, llamados posiciones de fortaleza. Las primeras tres son “0.0” y la cuarta es victoria para las negras
8/8/8/1Pk5/2Pn3p/5BbP/6P1/5K1R w - - 0 1las blancas no pueden liberar la torre1B4r1/1p6/pPp5/P1Pp1k2/3Pp3/4Pp1p/5P1P/5K2 b - - 0 1la torre no puede entrar en el campo de las blancaskqb5/1p6/1Pp5/p1Pp4/P2Pp1p1/K3PpPp/5P1B/R7 b - - 0 1si la torre va a h1 y el rey va a g1, la dama no puede entrar por a62nnkn2/2nnnn2/2nnnn2/8/8/8/3QQQ2/3QKQ2 w - - 0 1los caballos avanzan como un bloque, de modo que el caballo atacado queda defendido dos vecesEn la primera, tanto Stockfish como Lc0 consideran que las blancas están ligeramente mejor. En la segunda y la tercera consideran que ganan las negras. La cuarta Lc0 la entiende, pero Stockfish no
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...
En Go, jugar contra un amateur absoluto a veces puede ser complicado. Sus jugadas son demasiado impredecibles y las formas se alejan demasiado de lo normal. A veces un juego muy extraño funciona
Soy 4 dan europeo, y si un jugador débil hace cualquier jugada no estándar, barro el tablero con él. Del mismo modo, contra un jugador más fuerte que yo, si elijo jugadas raras, normalmente me destroza más rápido de lo habitual. Esto solo puede funcionar alrededor de niveles kyu de dos dígitos
Entonces la partida se convierte en una batalla táctica y, al final, el rival termina en un mal final. Y justo ese rival es Magnus
Es un paper de 2022 revisado en 2023, así que quizá ya lo había visto antes y lo olvidé. Es bastante interesante, y me pregunto qué tan bien funcionaría este enfoque contra motores de ajedrez, al menos contra motores de estilo Leela
Me recuerda a cómo, después de Deep Blue, los ajedrecistas aprendieron mejores estrategias anticomputadora. Como el espacio de estados del Go es mucho más grande, es probable que existan muchas más estrategias anticomputadora de este tipo
Básicamente, se ataca la función de evaluación de la misma manera
Como en el ajedrez, más cómputo terminará ganando, y eso ya se ha visto. Hay que recordar que Elo es una métrica que mide victorias y derrotas, no dificultad. Confundir ambas cosas empeora el razonamiento
Como referencia, en [1] hay una discusión de fines de 2022 sobre este ataque. En particular, incluye una larga participación de hexahedron / lightvector, desarrollador de KataGo, que parece ser la IA de Go superhumana más usada
El motivo de que el enlace apunte a un hilo intermedio es que una revisión posterior del paper fue más interesante que la versión inicial
[1] https://forums.online-go.com/t/potential-rank-inflation-on-o...
Parecería que si puedes diseñar una trampa sofisticada, también tienes un nivel similar de conocimiento sobre el juego, y yo habría pensado que una IA muy entrenada incluiría implícitamente estrategias adversariales. Es un resultado interesante
Las escaleras son una forma simple que incluso un amateur casual que intenta llegar a los niveles kyu más bajos debe aprender
KataGo reconoce esta falla y tiene un solucionador explícito de escaleras escrito con código tradicional. Parece que la red neuronal nunca va a descubrir las escaleras. No está claro por qué una red neuronal profunda no logra captar un patrón tan simple
Así que no sorprendería que haya otros patrones más profundos que estas IA no hayan detectado