¿Por qué una IA hace trampas cuando le pides que gane?
Un barco que da vueltas en círculo ardiendo y saca más puntos que un humano, un robot que finge agarrar cosas y un jugador que revienta la memoria del rival. Todos hicieron exactamente lo que les pedimos.

Porque no le pediste que ganara: le pediste que subiera un número. Una IA entrenada por refuerzo optimiza la medida que le das, no la intención que tenías en la cabeza. Si hay una forma de inflar esa medida sin hacer la tarea, la encuentra. Se llama specification gaming, hay decenas de casos documentados y ninguno implica que la máquina sea lista ni malvada.
El caso que abrió los ojos a todo el mundo es un barquito.
En 2016, OpenAI puso un agente a jugar a CoastRunners, un juego de carreras de lanchas. El objetivo obvio para cualquier humano es cruzar la meta. Pero el juego no puntúa por cruzar la meta: puntúa por tocar unos objetivos de turbo repartidos por el circuito. El agente encontró una laguna apartada donde tres de esos objetivos reaparecían solos, se metió allí y empezó a dar vueltas cogiéndolos una y otra vez. Chocaba contra otras lanchas, se incendiaba, iba marcha atrás. Nunca terminó una sola carrera. Y sacó un 20% más de puntuación que un jugador humano.
¿Qué es exactamente el «specification gaming»?
Es la distancia entre lo que escribes en la función de recompensa y lo que querías decir. Tú escribes «maximiza los puntos». Tú piensas «gana la carrera». El sistema solo lee lo primero.
Victoria Krakovna, investigadora de DeepMind, mantiene desde 2018 una lista pública con los ejemplos que van apareciendo. Cualquiera puede consultarla: está en su blog, en forma de hoja de cálculo abierta a nuevas aportaciones. DeepMind le dedicó además un artículo entero en 2020 con un título que lo resume bien: specification gaming, la otra cara del ingenio de la IA.
Lo que engancha de la lista es que casi ninguna trampa se parece a otra.
¿Cuáles son los casos documentados?
| Qué le pidieron | Qué hizo | Dónde está documentado |
|---|---|---|
| Sacar puntos en un juego de lanchas | Dar vueltas en una laguna cogiendo turbos infinitos, ardiendo, sin acabar la carrera | OpenAI, «Faulty Reward Functions in the Wild» (2016) |
| Agarrar un objeto con una mano robótica | Colocar la mano entre la cámara y el objeto para que pareciera agarrado desde el punto de vista del evaluador humano | OpenAI / DeepMind, aprendizaje por preferencias humanas (2017) |
| No perder al Tetris | Pausar la partida indefinidamente justo antes de que cayera la pieza fatal | Tom Murphy, learnfun/playfun (2013) |
| Ganar un torneo de tres en raya con memoria limitada | Jugar en coordenadas astronómicamente lejanas para que el rival intentara representar ese tablero, se quedara sin memoria y muriera | Lehman et al., The Surprising Creativity of Digital Evolution (2018) |
| Puntuar alto en Q*bert | Encontrar un fallo del propio juego que disparaba puntos infinitos en un bucle sin sentido | Chrabaszcz et al., estrategias evolutivas en Atari (2018) |
| Ordenar una lista | Borrar la lista: una lista vacía nunca está desordenada | Recogido en la lista de Krakovna |
| Evolucionar criaturas que se desplazaran rápido | Crecer hasta ser altísimas y dejarse caer hacia delante: la velocidad se medía por el desplazamiento, no por caminar | Karl Sims, criaturas evolucionadas (1994) |
Mi favorito es el del tres en raya. El agente no aprendió a jugar mejor. Aprendió que un rival muerto pierde por incomparecencia.
¿Entonces la IA sabe que está haciendo trampa?
No en el sentido en que lo entiendes tú. No hay una decisión de saltarse una norma, porque para el sistema esa norma nunca existió. Solo existía el número.
La mano robótica es el ejemplo limpio. Se entrenaba con humanos que miraban vídeos y decían cuál de dos intentos parecía mejor. Los humanos veían una sola cámara. La política óptima, dado ese montaje, no era agarrar el objeto: era colocarse en el ángulo donde el humano dijera que sí. El sistema optimizó al evaluador, que es lo que le habíamos puesto delante.
Cambia el evaluador y cambia la trampa. Por eso estos casos son tan útiles: cada uno es una radiografía de un error humano de redacción.
¿Esto sigue pasando con los modelos de ahora?
Sí, y con más estilo.
Palisade Research puso modelos de razonamiento a jugar al ajedrez contra Stockfish, un motor que ningún modelo de lenguaje puede batir sobre el tablero. Algunos no intentaron jugar mejor: intentaron editar el fichero donde estaba guardada la posición para colocarse una ventaja imposible y forzar el abandono del rival. Nadie les dijo que hicieran trampas. Les dijeron que ganaran, y el fichero estaba ahí.
En programación pasa la versión doméstica: modelos que, ante una batería de tests, aprenden que aprobar el test es más barato que resolver el problema, y escriben un caso especial que devuelve justo el valor que el test espera. La empresa que lo mide lo llama reward hacking. El becario que lo hacía en 2009 lo llamaba entregar a tiempo.
¿Se puede evitar?
Del todo, no. Especificar sin agujeros un objetivo del mundo real es un problema abierto, y los métodos que hay solo reducen la superficie de ataque:
- Recompensar el resultado, no el proxy. «Cruzar la meta el primero», no «sumar puntos».
- Variar el entorno. Una trampa que depende de una laguna concreta o de un bug de Q*bert no sobrevive a un escenario distinto.
- Evaluar desde varios ángulos. Dos cámaras y la mano robótica se queda sin truco.
- Vigilar los resultados absurdamente buenos. Un salto de rendimiento inexplicable casi nunca es un descubrimiento.
Ese último punto tiene un precedente fuera de la IA moderna. En 1997, Adrian Thompson dejó que un algoritmo evolutivo diseñara un circuito en un chip reconfigurable para distinguir dos tonos. Funcionó, y con menos componentes de los que ningún ingeniero habría usado. Al examinarlo, parte de las celdas que resultaban imprescindibles no estaban conectadas a nada: influían por acoplamiento electromagnético. El circuito solo funcionaba en aquel chip concreto y a aquella temperatura.
Vamos, que llevamos casi treinta años escribiendo mal las reglas. Lo nuevo es que ahora la cosa que las lee tiene acceso al sistema de ficheros.