Hoy será el primer partido entre los profesionales de OpenAI y Dota 2 (la gente ganó). Entendemos cómo funciona el bot



[UPD 2] El equipo de Pain Gaming derrotó a OpenAI Five. El partido duró 53 minutos y terminó con un puntaje de 45-41 por frags a favor de los bots. La grabación del juego se puede ver en Twitch aquí . Empieza a las 7:38:00

Esta noche, 22 de agosto, antes del comienzo del próximo día de los playoffs internacionales, el primer partido de demostración entre jugadores profesionales y el bot OpenAI Five se llevará a cabo como parte de las actividades del espectáculo. La información sobre los partidos apareció en el sitio web oficial de Dota 2 en la sección con el calendario de juegos para los playoffs de The International. En total, OpenAI jugará tres partidos en tres días con jugadores profesionales.

Este evento es significativo porque hace un año el bot "reprimió" a Daniil Ishutin en la confrontación con el SF de espejo medio solo 1x1 , y hace unas semanas derrotó a la "mezcolanza" de comentaristas y ex jugadores profesionales.

Esta vez, el desarrollo de una compañía patrocinada por Elon Musk y otros empresarios prominentes del sector de TI se enfrentará a un oponente más serio: The International reúne anualmente a los mejores equipos del mundo, por lo que no será fácil para los bots. Hasta ahora, el equipo de desarrollo no ha informado si se aplicarán todas las restricciones antiguas sobre los picos y la mecánica que eran relevantes en el juego contra las personas a principios de mes, pero vale la pena recordarlo.

Entonces, las viejas reglas son las siguientes:
  • grupo de 18 héroes en modo Draft aleatorio (Axe, Crystal Maiden, Death Prophet, Earthshaker, Gyrocopter, Lich, Lion, Necrophos, Queen of Pain, Razor, Riki, Shadow Fiend, Slark, Sniper, Sven, Tidehunter, Viper o Witch Doctor);
  • sin estoque divino, botella;
  • sin criaturas controladas e ilusiones;
  • emparejar con cinco correos (no se pueden rastrear ni destruir);
  • sin usar un escaneo.


En los comentarios sobre nuestra última publicación sobre este tema, surgió una gran controversia sobre los métodos de entrenamiento de redes neuronales. Esta vez trajimos algunas imágenes sobre cómo funciona el bot OpenAI y cómo se ve desde el punto de vista de las personas.

Los desarrolladores dijeron que debido a la gran potencia de cómputo, la gran cantidad de registros y la capacidad de ejecutar entrenamiento en varias transmisiones, OpenAI imita diariamente hasta 180 años de juegos continuos de Dota 2. Obviamente, la capacidad de aprendizaje de esta IA es mucho menor que incluso los no tan inteligentes "Animales, sin mencionar perros o primates, a los que pertenece el hombre.

Para entrenar a OpenAI, el equipo utilizó su propio desarrollo llamado Gym ( repositorio de github , documentación oficial). Esta "mecedora" es compatible con cualquier biblioteca pública, como TensorFlow o Theano. En el entrenamiento de redes neuronales en el marco de Gym, se usa el clásico bucle agente-entorno:



Los desarrolladores afirman que cualquiera puede usar Gym para enseñar a su red neuronal a jugar títulos clásicos para el Atari 2600 u otros proyectos relativamente fáciles de entender. Obviamente, la velocidad de la capacitación depende directamente de la cantidad de recursos involucrados en esto. Como ejemplo, los desarrolladores de OpenAI le enseñaron a la red neuronal a jugar la venganza de Montezuma .

Pero la segunda y cuarta etapas: la acción y el análisis del resultado (recompensas por la acción) son de gran interés para nosotros. Y en el contexto de Dota 2, el nivel de variabilidad simplemente se transfiere, y las acciones inicialmente evaluadas por el bot como "correctas" a larga distancia pueden conducir a la pérdida.

Cómo el equipo de OpenAI enseñó a la IA a jugar Dota 2 en términos de equipamiento


El equipo de desarrollo abordó la cuestión de aprender OpenAI en Dota 2 más que en serio. Puede leer el informe oficial completo en el blog del proyecto aquí , pero le daremos los principales extractos sobre la parte técnica y la implementación sin marketing y otros comentarios.

Los comentaristas de la publicación anterior estaban más interesados ​​en el poder consumido por la red neuronal OpenAI para el entrenamiento. Obviamente, un par de Ryzen no pudo hacerlo, especialmente en el contexto de imitar 180 años de juego en un día real. Al mismo tiempo, el bot para Dota 2 no es un bot para el tirador de nivel Quake, que el usuario notó muy claramente en respuesta a uno de los escépticos:

Me parece que apenas imaginas el tamaño del espacio táctico en DotA, porque no estás familiarizado con el juego en sí. No hay posibilidad de hacer bots sin involucrar redes neuronales, limitándose al menos a algunos recursos informáticos sanos. En serio Esto no es Quake, donde puedes ser un roble completo en términos de tácticas, compensando esto con disparos inhumanamente rápidos en nabos desde los rieles. Ideal en términos de reacción y habilidades mecánicas, los bots que no saben cómo jugar cinco de ellos y no "sienten la carta" están condenados contra cualquier jugador hábil de carne.

Además, DotA es un juego con información incompleta, y esto complica dramáticamente la tarea. La tarea "qué hacer cuando veo al enemigo" es mucho más simple que la tarea "qué hacer cuando los enemigos no son visibles", no solo para los automóviles, sino también para las personas.

Los desarrolladores de OpenAI lo entendieron claramente, por lo que miles de máquinas virtuales se usaron simultáneamente para entrenar bots. Específicamente, estas cifras están dadas por el blog oficial del proyecto para entrenar al bot 1x1 Solo Mid, capaz de derrotar a Daniel Ishutin con algunas restricciones, y para entrenar a un equipo completo para el juego 5x5:


Esto no es un punto decimal. Para entrenar OpenAI en modo 5x5, se usan constantemente 128 mil núcleos de procesador de Google Cloud . Pero esto no es toda la pulpa. Dado que la visión artificial se usa para enseñar el bot OpenAI (del que hablaremos más adelante), en esta configuración monstruosa hay otras 256 GPU NVIDIA PID ( acelerador Tesla ).

Según el folleto oficial de NVIDIA, el P100 tiene las siguientes características:



El costo oficial de un P100 Tesla 12 GB PCI-E es de aproximadamente $ 5800, Tesla P100 SXM2 16GB comienza en $ 9400. OpenAI usa solo el modelo SXM2 anterior. Las tarjetas de video no son necesarias para representar "gráficos" en máquinas virtuales, sino para procesar y calcular datos que provienen constantemente de todos los lotes en ejecución. Para procesar este flujo, el equipo tuvo que implementar un sistema completo de nodos, dentro del cual funciona el P100 Tesla. Las tarjetas de video procesan y calculan los datos obtenidos, luego producen el resultado promedio de todos los lotes y lo comparan con los indicadores anteriores de OpenAI.

Dichas capacidades hacen posible simular redes neuronales de aproximadamente 60 partes por minuto, para cada una de las cuales la red neuronal analiza aproximadamente 1,04 millones de ciclos agente-medio, como se mencionó anteriormente.

Cómo OpenAI ve el juego


El dinero es polvo, si lo tienes, por supuesto. Incluso las estimaciones más aproximadas del costo de un día de capacitación de OpenAI causan una ligera conmoción, y el calor generado en los servidores de Google Cloud es suficiente para calentar una pequeña ciudad. Pero mucho más interesante es cómo OpenAI "ve" el juego.

Está claro que los bots no necesitan representación gráfica, pero tales poderes se usan por alguna razón. El bot en sus acciones se basa en la API de Valve estándar para bots , a través de la cual la red neuronal recibe un flujo de datos sobre el espacio circundante. La API es necesaria para ejecutar los datos a través de una red LSTM de una sola capa de 1024 bloques y, como resultado, recibir soluciones a corto plazo que sean consistentes con las estrategias a largo plazo disponibles para la red neuronal.

Las redes LSTM determinan la prioridad de las tareas para el bot "aquí y ahora", y de acuerdo con el modelo a largo plazo del comportamiento de la red neuronal, se selecciona la acción más ventajosa. Por ejemplo, los bots se concentran fácilmente en los creeps de último golpe para ganar oro y experiencia, lo que es consistente con el modelo de obtener beneficios a largo plazo en forma de objetos y la ventaja posterior en el juego.

Según la información de los desarrolladores, todas las partes ocurren con el dibujo de eventos en el mapa con una frecuencia de 30 FPS. La red neuronal OpenAI analiza constantemente cada trama a través de LSTM, en función del resultado del cual toma más decisiones. Al mismo tiempo, el bot tiene sus propias prioridades: todas las posibles interacciones con el entorno se someten al análisis más exhaustivo a través de áreas especialmente seleccionadas de la "visión" del bot: estos son cuadrados de 800x800 divididos en 64 celdas de 100x100 (se toma el tamaño del rango de acción y movimiento en el juego, y el tamaño del cuadrado es 8x8 ) Así es como el bot "ve" parcialmente el juego en un marco específico:


Un constructor completo con la capacidad de cambiar las acciones, estimar el tamaño de los cuadrados y otras posibilidades para "cambiar la configuración" está disponible en el blog oficial de desarrolladores en la sección Estructura del modelo

Y aquí está la visualización de la red LSTM en términos de pronóstico en tiempo real de los eventos del juego:


Además de LSTM y de evaluar la situación aquí y ahora, el bot OpenAI usa constantemente una grilla de "pronóstico" y establece sus propias prioridades. Así es como se ve la gente:



El cuadrado verde es el área de mayor prioridad y la acción actual del bot (ataque, movimiento, etc.) El cuadrado verde claro tiene menor prioridad, pero el bot puede cambiar a este sector en cualquier momento. Dos cuadrados grises más: áreas de actividad potencial, si nada cambia.

Puedes ver cómo el bot "ve" el juego y toma decisiones basadas en estas cuatro zonas en el siguiente video:


Cabe señalar que las áreas prioritarias del bot no siempre se encuentran al lado del modelo de personaje. Al arrastrar el mapa, los cuatro cuadrados se desplazan fácilmente para varias pantallas desde la posición actual del bot, es decir, OpenAI analiza simultáneamente todo el espacio del juego para determinar la disponibilidad y la conveniencia de cualquier acción, y no solo una pantalla.

OpenAI juega constantemente consigo mismo. Al mismo tiempo, el 80% de los bots están entrenados y el 20% usa tácticas y estrategias ya desarrolladas. Este enfoque permite que la red neuronal aprenda de sus propios errores, encuentre patrones vulnerables en el comportamiento real y al mismo tiempo consolide patrones exitosos de comportamiento.

Mañana ya. Gente profesional versus máquina


En lugar del resultado, vale la pena volver al tema de la confrontación de mañana entre jugadores profesionales y OpenAI.

Los detalles aún no se conocen, pero con confianza podemos decir que las redes neuronales tendrán dificultades. A diferencia de sus oponentes anteriores, OpenAI se enfrentará a lo mejor de lo mejor, y la posibilidad de maniobras y trabajo en equipo en el marco de un partido de exhibición permitirá a las personas alcanzar su máximo potencial. El formato Solo Mid 1x1, por supuesto, es extremadamente espectacular, pero no revela toda la esencia del juego y es extremadamente intolerante con los micro errores que la gente suele cometer.

La cuestión es qué tan en serio los profesionales tomarán esta confrontación. Si aparece información adicional, la publicación se actualizará.

Source: https://habr.com/ru/post/es420825/


All Articles