# OpenAI Five

OpenAI Five es un programa informático de OpenAI que juega al videojuego de cinco contra cinco Dota 2. Su primera aparición pública tuvo lugar en 2017, donde fue probado en una partida en vivo de uno contra uno contra el jugador profesional Dendi, que perdió contra él. Al año siguiente, el sistema había avanzado hasta el punto de actuar como un equipo completo de cinco personas, y empezó a jugar contra equipos profesionales y a demostrar su capacidad para derrotarlos.
Al elegir un juego tan complejo como Dota 2 para estudiar el aprendizaje automático, OpenAI pensó que podría capturar con mayor precisión la imprevisibilidad y la continuidad que se observan en el mundo real, construyendo así sistemas de resolución de problemas más generales. Los algoritmos y el código utilizados por OpenAI Five acabaron siendo tomados prestados por otra red neuronal en desarrollo por la empresa, una que controlaba una mano robótica física. ¡OpenAI Five se ha comparado con otros casos similares de inteligencia artificial (IA) que juega contra humanos y los derrota, como AlphaStar en el videojuego StarCraft II, AlphaGo en el juego de mesa Go, Deep Blue en ajedrez y Watson en el programa de televisión Jeopardy!

## Historia

El desarrollo de los algoritmos utilizados para los bots comenzó en noviembre de 2016. OpenAI decidió utilizar Dota 2, un videojuego competitivo de cinco contra cinco, como base debido a su popularidad en la plataforma de retransmisión en directo Twitch, a su compatibilidad nativa con Linux y a que disponía de una interfaz de programación de aplicaciones (API). Antes de convertirse en un equipo de cinco, la primera demostración pública tuvo lugar en The International 2017 en agosto, el principal torneo anual del juego, donde Dendi, un jugador profesional ucraniano, perdió contra un bot de OpenAI en un enfrentamiento en directo de uno contra uno. Tras el enfrentamiento, el director técnico Greg Brockman explicó que el bot había aprendido jugando contra sí mismo durante dos semanas en tiempo real, y que el software de aprendizaje era un paso en la dirección de crear software que pueda manejar tareas complejas "como ser un cirujano". OpenAI utilizó una metodología llamada aprendizaje por refuerzo, ya que los bots aprenden con el tiempo jugando contra sí mismos cientos de veces al día durante meses, en los que son recompensados por acciones como matar a un enemigo y destruir torres.
En junio de 2018, la capacidad de los bots se amplió para jugar juntos como un equipo completo de cinco personas y fueron capaces de derrotar a equipos de jugadores aficionados y semiprofesionales. En The International 2018, OpenAI Five jugó en dos partidas contra equipos profesionales, una contra el equipo brasileño paiN Gaming y la otra contra un equipo de estrellas formado por antiguos jugadores chinos. Aunque los bots perdieron ambos partidos, OpenAI siguió considerándolo una aventura exitosa, afirmando que jugar contra algunos de los mejores jugadores de Dota 2 les permitió analizar y ajustar sus algoritmos para futuras partidas. La demostración pública final de los bots tuvo lugar en abril de 2019, donde ganaron una serie al mejor de tres contra los campeones de The International 2018, OG, en un evento en vivo en San Francisco. Ese mismo mes tuvo lugar un evento en línea de cuatro días para jugar contra los bots, abierto al público. Allí, los bots jugaron en 42 729 partidas públicas, ganando el 99,4% de esas partidas.

## Arquitectura

Cada bot de OpenAI Five es una red neuronal que contiene una sola capa con una Memoria a corto plazo de 4096 unidades que observa el estado actual del juego extraído de la API del desarrollador de Dota. La red neuronal realiza acciones a través de numerosas cabezas de acción posibles (no hay datos humanos implicados), y cada cabeza tiene un significado. Por ejemplo, el número de ticks para retrasar una acción, qué acción seleccionar, la coordenada X o Y de esta acción en una cuadrícula alrededor de la unidad. Además, las cabezas de acción se calculan de forma independiente. El sistema de IA observa el mundo como una lista de 20.000 números y realiza una acción llevando a cabo una lista de ocho valores de enumeración. Además, selecciona diferentes acciones y objetivos para comprender cómo codificar cada acción y observar el mundo.
OpenAI Five se ha desarrollado como un sistema de formación de aprendizaje por refuerzo de uso general en la infraestructura "Rapid". Rapid consta de dos capas: hace girar miles de máquinas y las ayuda a "hablar" entre sí, y una segunda capa ejecuta software. En 2018, OpenAI Five había jugado alrededor de 180 años de juegos de aprendizaje por refuerzo ejecutados en 256 GPU y 128 000 núcleos de CPU, utilizando Proximal Policy Optimization, un método de gradiente de políticas.
Cuadro comparativo :
| | OpenAI 1v1 bot (2017) | OpenAI Five (2018) |
| CPU | 60.000 núcleos de CPU en Microsoft Azure | 128.000 núcleos de CPU preferentes en Google Cloud Platform (GCP) |
| GPU | 256 GPU K80 en Azure | 256 GPU P100 en el GCP |
| Experiencia adquirida | ~300 años por día | ~180 años por día |
| Tamaño de la observación | ~3,3kB | ~36.8kB |
| Observaciones por segundo de juego | 10 | 7.5 |
| Tamaño del lote | 8.388.608 observaciones | 1.048.576 observaciones |
| Lotes por minuto | ~20 | ~60 |

## Comparaciones con otros sistemas de juegos de IA

Antes de OpenAI Five, ya se habían utilizado con éxito otros experimentos y sistemas de IA contra humanos, como Jeopardy! con Watson, ajedrez con Deep Blue y Go con AlphaGo. En comparación con otros juegos que han utilizado sistemas de IA para jugar contra jugadores humanos, Dota 2 difiere como se explica a continuación:
Vista de larga duración: Los bots funcionan a 30 fotogramas por segundo durante un tiempo medio de partido de 45 minutos, lo que se traduce en 80.000 ticks por partida. OpenAI Five observa cada cuatro fotogramas, lo que genera 20.000 movimientos. En comparación, el ajedrez suele terminar antes de 40 movimientos, mientras que el Go lo hace antes de 150.
Estado del juego parcialmente observado: Los jugadores y sus aliados sólo pueden ver el mapa directamente a su alrededor. El resto está cubierto por una niebla de guerra que oculta las unidades enemigas y sus movimientos. Por lo tanto, jugar a Dota 2 requiere hacer inferencias basadas en estos datos incompletos, así como predecir lo que su oponente podría estar haciendo al mismo tiempo. En comparación, el Ajedrez y el Go son "juegos de información completa", ya que no ocultan elementos al jugador contrario.
Espacio de acción continua: Cada personaje jugable en una partida de Dota 2, conocido como héroe, puede realizar docenas de acciones dirigidas a otra unidad o a una posición. Los desarrolladores de OpenAI Five dejan el espacio en 170.000 acciones posibles por héroe. Sin contar los aspectos perpetuos del juego, hay una media de ~1.000 acciones válidas cada tick. En comparación, la media de acciones en ajedrez es de 35 y de 250 en Go.
Espacio de observación continuo: Dota 2 se juega en un gran mapa con diez héroes, cinco en cada equipo, junto con docenas de edificios y unidades de personajes no jugadores (PNJ). El sistema OpenAI observa el estado de una partida a través de la API bot de los desarrolladores, como 20.000 números que constituyen toda la información a la que un humano puede acceder. Un tablero de ajedrez se representa como unas 70 listas, mientras que un tablero de Go tiene unas 400 enumeraciones.

## Recepción

OpenAI Five han recibido el reconocimiento de la comunidad de la IA, la tecnología y los videojuegos en general. El fundador de Microsoft, Bill Gates, lo calificó de "gran cosa", ya que sus victorias "requirieron trabajo en equipo y colaboración". El ajedrecista Garry Kasparov, que perdió contra la IA Deep Blue en 1997, declaró que, a pesar de su derrota en The International 2018, los robots acabarían "llegando, y antes de lo esperado".
En una conversación con MIT Technology Review, los expertos en IA también consideraron el sistema OpenAI Five como un logro significativo, ya que señalaron que Dota 2 era un "juego extremadamente complicado", por lo que incluso vencer a jugadores no profesionales era impresionante PC Gamer escribió que sus victorias contra jugadores profesionales era un acontecimiento significativo en el aprendizaje automático. Por el contrario, Motherboard escribió que la victoria era "básicamente una trampa" debido a la simplificación de los grupos de héroes en ambos bandos, así como al hecho de que los bots tuvieran acceso directo a la API, en lugar de utilizar la visión por ordenador para interpretar los píxeles de la pantalla. The Verge escribió que los bots eran la prueba de que el enfoque de la compañía sobre el aprendizaje por refuerzo y su filosofía general sobre la IA estaban "produciendo hitos".
En 2019, DeepMind dio a conocer un bot similar para Starcraft II, AlphaStar. Al igual que OpenAI Five, AlphaStar utilizó el aprendizaje por refuerzo y el juego automático. The Verge informó que "el objetivo con este tipo de investigación de IA no es solo aplastar a los humanos en varios juegos solo para demostrar que se puede hacer. Por el contrario, se trata de demostrar que, con tiempo, esfuerzo y recursos suficientes, un sofisticado software de IA puede superar a los humanos en prácticamente cualquier desafío cognitivo competitivo, ya sea un juego de mesa o un videojuego moderno". Añadieron que las victorias de DeepMind y OpenAI eran también un testimonio del poder de ciertos usos del aprendizaje por refuerzo.
La esperanza de OpenAI era que la tecnología pudiera tener aplicaciones fuera del ámbito digital. En 2018, pudieron reutilizar los mismos algoritmos de aprendizaje por refuerzo y el código de entrenamiento de OpenAI Five para Dactyl, una mano robótica similar a la humana con una red neuronal construida para manipular objetos físicos. En 2019, Dactyl resolvió el cubo de Rubik.