Vimos en un artículo anterior que, en 2017, la investigación en Inteligencia Artificial (IA) tenía como última frontera de exploración, jugar al póker, ya que, en este juego el sistema de IA se enfrentaba a un juego con información imperfecta en el que incluso tenía que aprender a mentir (i.e. farolear). Finalmente, esa frontera también se traspasó ya que el sistema de IA Libratus de la Universidad Carnegie Mellon, consiguió ser mejor, consistentemente mejor, pero no sobrehumanamente mejor, que los mejores jugadores de póker profesionales de la modalidad Texas Hold’em. Aunque existen aún otras modalidades del póker y otros juegos de cartas que conquistar, ¿cuál podría ser la nueva frontera tras Libratus?
La nueva frontera eran los videojuegos de estrategia en mundos virtuales. ¿Y por qué son tan interesantes? Pues porque los videojuegos complejos son capaces de capturar el desorden y la naturaleza continua del mundo real.
Y en este campo de la investigación sobre IA con videojuegos complejos dos empresas destacan por encima del resto, DeepMind, de la que ya hablamos en el artículo sobre el Go, que se centró en el popular videojuego Starcraft y OpenAI, que es una empresa sin ánimo de lucro dedicada a la investigación y diseminación de los últimos avances en algoritmos de IA, de manera que al hacer público sus descubrimientos nadie puede tomar una ventaja decisiva en esta carrera sobre sistemas de IA cada vez más avanzados. Así que me centraré para variar en OpenAI, uno de cuyos patrocinadores y fundadores, es, precisamente, Elon Musk. Esta empresa centró sus investigaciones en el también muy popular videojuego Dota 2.
Y cuando digo muy popular, me refiero a que tienen millones de seguidores (gamers) en todo el mundo y organizan campeonatos locales, regionales, nacionales y mundiales y existen personas que profesionalmente se dedican a jugarlos y a los que asisten en directo u online miles o decenas de miles de personas.
En agosto de 2017, un sistema de IA de OpenAI ganó a jugadores profesionales en el juego de estrategia basado en mundo virtuales Dota 2 1v1 (versión uno contra uno). Mientras que en la versión 5v5 (OpenAI Five) fue “machacado” con relativa facilidad por estos jugadores.
¿Cuáles son las nuevas habilidades que requieren inteligencia?
En Dota 2 existen muchísimos grados de libertad a disposición del jugador, poderes, habilidades, herramientas, armas y el universo de posibles opciones es prácticamente continuo (a diferencia del número de posiciones en una partida del Go, que es discreto, aunque gigantesco). Además, existe información oculta (las acciones de otros jugadores y aquella parte del mundo virtual que no podemos observar). Los dos equipos están formados por entre 2 y 5 personas. Cada jugador controla un personaje denominado “héroe”.
Un buen jugador de Dota 2 requiere de las siguientes características:
- Manejo de horizontes de estrategia a largo plazo: se juega a 30 imágenes por segundo y una partida suele durar entorno a 45 minutos, lo que permite, potencialmente, alrededor de 80.000 acciones (ticks) por juego. La versión denominada OpenAI 1v1, observa el juego cada 3 imágenes, por lo que la partida se juega en unos 26.000 movimientos, comparado con los 40 del ajedrez o los 150 del Go. Las acciones son muy variadas y unas pueden tener un impacto individual menor como mover el héroe a una ubicación, mientras que otras pueden afectar de una forma estratégica al juego como la utilización de tele transportes e incluso existen algunas acciones pueden afectar a toda la partida.
- Estado de observación parcial: las unidades sobre el terreno y los edificios sólo pueden ver el área a su alrededor. El resto del mapa está cubierto de una niebla para aislar los enemigos y sus estrategias. De esta manera se requiere hacer inferencias sobre lo que los enemigos estarán tramando, basándose en información incompleta. Tanto el ajedrez como el Go son juegos de información completa, en el que los jugadores ven todo el tablero.
- Estado de acciones continuo de múltiples dimensiones: cada jugador dispone de docenas de acciones posibles y muchas de ellas tienen como objetivo otra unidad o una ubicación del terreno. La gente de OpenAI a discretizado el espacio en 170.000 posibles acciones por héroe (por eso se dice que es “continuo”), aunque no todas son válidas en cualquier circunstancia. Existen una media de 1.000 acciones válidas en cada momento, frente a las 35 del ajedrez o las 250 del Go.
- Estado de observaciones continuo de múltiples dimensiones: se juega en un gran mapa continuo con 10 héroes, docenas de edificios, docenas de unidades que no juegan directamente y una larga lista de características del juego como runas, árboles y salas. Es importante saber, que OpenAI observa el estado de la partida a través de la interfaz de programación de Dota 2 denominada Bot API que comprende 20.000 números en coma flotante representando toda la información que se le permite acceder a un humano y enumera 8 posibles valores para cada acción.
En contraste el ajedrez tiene sólo 70 posibles valores de enumeración (tablero de 8×8 con 6 tipos de pieza y alguna información histórica para la repetición de movimientos), mientras que el Go tiene 400 (tablero 19×19 con 2 tipos de piezas e información histórica de repetición: el Ko)
Además, las reglas de Dota son muy complejas. El juego ha sido activamente desarrollado por más de una década. La lógica del programa comprende centenares de miles de líneas de código. Cada tick se ejecuta en milisegundos frente a los nanosegundos del ajedrez o el Go. El juego se actualiza cada dos semanas aproximadamente y está cambiando constantemente la semántica de su entorno.
Lo más relevante es que la programación de los bots (los agentes inteligentes) se utiliza una programación por guiones (scripting) basada en el lenguaje lua directamente en el servidor, por lo que no hay que hacer cosas como examinar los pixeles de la pantalla o simular clics. Esto facilita mucho las cosas a la IA, aunque no se permite acceder a más cosas a través de la API de las que podría acceder un jugador humano. Al mismo tiempo el número de acciones por unidad de tiempo está controlado para que sea similar al de un jugador humano, en los que los mejores jugadores que “sólo” son capaces de teclear ¡8 o 10 acciones por segundo en determinados momentos!
¿Cómo aprende a jugar OpenAI Five?
Open AI utiliza técnicas de aprendizaje por refuerzo (reinforcement learning), que es el equivalente al “prueba y error” que usamos los seres humanos.
¿Y cuál es la realimentación que utiliza el sistema para aprender de la experiencia?
El agente inteligente (bot) recibe sus incentivos de ganar la partida y unas métricas básicas como la salud (del bot) y la técnica de “lasts hits” por la cual el jugador recibe la “experiencia” del oponente al que mata en el juego.
En particular, se utilizó la técnica de jugar contra sí mismo (self-play) para aprender rápidamente. De esta manera en menos de unos meses pasaron de apenas poder hacer frente a un jugador con un ranking alto a batirlos a todos y continuar mejorando.

Progreso dota 2 en 2017. Ranking TrueSkill (similar al Sistema ELO del ajedrez) del bot de OpenAI en el tiempo, calculado simulando juegos entre bots y observando el porcentaje de victorias. Las mejoras se pueden hacer de cualquier parte del Sistema, desde añadir nuevas características, a mejoras algorítmicas para impulsar sus capacidades. El gráfico lineal, significa que la mejora del bot fue exponencial a lo largo del tiempo.
A diferencia del aprendizaje clásico de IA, denominado supervisado (donde se le debe indicar si el resultado final es bueno o malo), en los que el sistema sólo puede ser tan bueno como sus conjuntos de datos de entrenamiento, en el juego contra sí mismo, dada la suficiente capacidad computacional, los datos disponibles mejoran automáticamente según el agente se va haciendo mejor.
Los números de OpenAI 1v1 BOT son impresionantes:
OPENAI 1V1 BOT | |
CPUs | 60.000 CPU cores en Azure |
GPUs | 256 K80 GPUs en Azure |
Experiencia recogida | ~300 años por día |
Tamaño de la observación | ~3.3 kB |
Observaciones por segundo de la partida | 10 |
Tamaño del lote | 8.388.608 observaciones |
Lotes por minuto | ~20 |
Pero todos los algoritmos de aprendizaje por refuerzo necesitan equilibrar el tiempo que dedican a explotar lo que han aprendido, tomando la mejor decisión dada la información disponible (esto es siendo racionales), con el tiempo que ha de dedicar a explorar el territorio y aprender nuevas estrategias que nos permitan tomar mejores decisiones en el futuro. Pero es complicado explorar eficientemente un espacio tan rico de objetos, edificios, tipos de unidades y mecánicas del juego (conocido como combinatoriamente vasto)
Para evitar este “colapso estratégico” OpenAI juega el 80% de las partidas contra sí mismo y otro 20% contra versiones anteriores de sí mismo. Y nuevamente, como sucede en todo sistema complejo, en el proceso emergen estrategias por sí solas de forma natural: en las primeras horas los héroes camina sin objetivo por el mapa, poco después aparece conceptos como carriles (laning), cultivar oro (farming) o luchar uno a uno sobre el carril medio (fighting over mid lane). Después de varios días, aparecen de forma consistente estrategias humanas como esconder runas de recompensas, caminar hacia las torres de nivel 1 para recolectar oro y dar vueltas alrededor del mapa para ganar ventaja con los carriles. Con más entrenamiento llegó a ser muy efectivo en estrategias de alto nivel como “el empuje de los 5 héroes”.
¿Cómo puede afectar esta investigación a otros campos en el mundo real?
La esperanza de la investigación en IA en estos juegos es que, si estos sistemas de IA si tienen éxito jugando mejor que un ser humano, en el mundo real serán muy generalistas a la hora de resolver problemas, lo que abre la posibilidad de ser utilizados en múltiples problemas, como una IA fuerte o general y no en problemas muy específicos como se usan ahora en la IA estrecha o débil.
Pero queda mucho por hacer, aunque el aprendizaje pueda parecer rápido, alcanzar un nivel cercano a sobrehumano (el sistema de IA es mejor que el 99,9% de los jugadores en la versión), le ha costado el equivalente a 300 años de estar jugando llegar a este nivel, mientras que un profesional le toma 10 años de práctica llegar a ese nivel y eso sin contar con la ventaja que supone usar la API de Dota 2. Luego la forma de aprender de los seres humanos es mucho más eficiente y, por lo tanto, hay mucho margen de mejora.
A por la nueva frontera
La próxima frontera para 2018 y 2019 ya se vislumbra: ser capaz de ganar a profesionales en la versión en grupos 5v5, lo que requiere, además de lo ya logrado coordinación y división del trabajo.
El otro gran objetivo será evitar usar la API de programación para acceder al estado de la partida y ser capaces de deducir la información directamente de la observación de los píxeles y simulando los clics del ratón, exactamente como cualquier ser humano.
Esto si sería un «salto de calidad en la inteligencia» que aproximaría al sistema de IA a un funcionamiento más parecido al de un ser humano pero para ello debe ser capaz de romper la denominada paradoja de Moravec., por la que aquello que nos parece más fácil como todo lo relacionado con nuestra percepción sensorial y psicomotora es extremadamente complejo de ser solucionado por un sistema de IA o un robot, mientras que aquellos que nos parece muy difícil, como el cálculo o el razonamiento lógico es relativamente sencillo de lograr por un sistema de IA.
La pregunta pertinente es, ¿cuándo se conseguirá?