Solo se necesitan 3 segundos para que una sola GPU ejecute miles de entornos y 8 millones de pasos de simulación Stanford ha desarrollado un motor de súper juego
En esta etapa, los agentes de IA parecen ser omnipotentes, juegan e imitan a los humanos para completar varias tareas, y estos agentes están básicamente entrenados en entornos complejos. No solo eso, sino que a medida que la tarea de aprendizaje se vuelve más compleja, la complejidad del entorno simulado también aumenta, lo que aumenta el costo del entorno simulado.
Incluso para empresas e instituciones con recursos a escala de supercomputación, la formación de un agente utilizable puede tardar días en completarse.
Esto dificulta el progreso en el campo y reduce la practicidad de entrenar agentes avanzados de IA. Para abordar el alto costo de la simulación del entorno, los esfuerzos de investigación recientes han rediseñado fundamentalmente los simuladores para lograr una mayor eficiencia al capacitar a los agentes. Estos trabajos comparten la idea de simulación por lotes, que es la ejecución simultánea de muchos entornos independientes (instancias de entrenamiento) dentro de un único motor de simulación.
En este artículo, investigadores de la Universidad de Stanford y otras instituciones** propusieron un motor de juegos de aprendizaje por refuerzo llamado Madrona, que puede ejecutar miles de entornos en paralelo en una sola GPU, lo que reduce el tiempo de capacitación de los agentes de horas a minutos*. *.
* Dirección en papel:
Página de inicio de papel:
Específicamente, Madrona es un motor de juegos de investigación diseñado para crear entornos de aprendizaje que pueden ejecutar miles de instancias de entorno simultáneamente en una sola GPU y con un rendimiento muy alto (millones de pasos de agregación por segundo) implementados. El objetivo de Madrona es facilitar a los investigadores la creación de nuevos entornos de alto rendimiento para una variedad de tareas, acelerando así la formación de agentes de IA en órdenes de magnitud.
Madrona tiene las siguientes características:
Simulación por lotes de GPU: miles de entornos pueden ejecutarse en una sola GPU;
Arquitectura del Sistema de Componentes de Entidad (ECS);
Fácilmente interoperable con PyTorch.
Ejemplo entorno Madrona:
Como mencionamos anteriormente, el estudio utilizó los principios de diseño de ECS, y el proceso específico es el siguiente:
Usando el marco Madrona, los investigadores implementaron múltiples entornos de aprendizaje, mostrando aceleraciones de dos a tres órdenes de magnitud en las GPU en comparación con una línea base de CPU de código abierto, y aceleraciones en comparación con una base sólida que se ejecuta en una CPU de 32 subprocesos. . Además, la investigación también implementó el entorno "esconder y buscar 3D" de OpenAI en el marco, y cada paso de simulación realizó física de cuerpo rígido y trazado de rayos, logrando una velocidad de más de 1,9 millones de pasos por segundo en una sola GPU.
Uno de los autores, Kayvon Fatahalian, profesor asociado de informática en la Universidad de Stanford, dijo que en Overcooked, un juego de cocina para múltiples agentes, con la ayuda del motor de juego Madrona, el tiempo para simular 8 millones de pasos ambientales fue reducido de una hora a tres segundos.
Actualmente, Madrona requiere C++ para escribir la lógica del juego. Madrona solo proporciona soporte de representación de visualización y, si bien puede simular miles de entornos simultáneamente, el visualizador solo puede ver un entorno a la vez.
**¿Qué son los simuladores ambientales basados en Madrona? **
Madrona en sí no es un simulador de entorno RL, sino un motor o marco de juego. Hace que sea más fácil para los desarrolladores implementar sus propios simuladores de entorno nuevos, logrando un alto rendimiento ejecutando simulaciones por lotes en la GPU y acoplando estrechamente la salida de la simulación con el código de aprendizaje.
A continuación se muestran algunos simuladores de entorno basados en Madrona.
Madrona Escape Room
Madrona Escape Room es un entorno 3D simple que utiliza la API ECS de Madrona, así como capacidades de física y renderizado. En esta sencilla tarea, el agente debe aprender a pulsar un botón rojo y empujar casillas de otros colores para moverse por una serie de habitaciones.
IA recocida
El entorno de IA Overcooked, un entorno de aprendizaje multiagente basado en videojuegos colaborativos (juego de cocina colaborativo multijugador), se reescribe aquí en una reescritura de Madrona de alto rendimiento.
Fuente:
Al escondite
En septiembre de 2019, el agente OpenAI protagonizó una batalla ofensiva y defensiva del escondite, creando sus propias rutinas y antirutinas. El entorno "Hide and Seek" se reproduce aquí usando Madrona.
Hanabí
Hanabi es una implementación del juego de cartas Hanabi basado en el motor de juego Madrona y un Dec-POMDP cooperativo. El entorno se basa en el entorno Hanabi de DeepMind y admite parte de la implementación de MAPPO.
Cartulina
Cartpole es un entorno de entrenamiento típico de RL con la misma dinámica que una implementación de gimnasio construida sobre el motor de juego Madrona.
Dirección de GitHub:
Juego de cocina recocido: entrena al mejor agente en un minuto
Recocido en miles de cocinas: capacitación de agentes de alto rendimiento en menos de un minuto
La estudiante de Stanford Bidipta Sarkar, una de las autoras del artículo, escribió un blog que detalla el proceso de capacitación de un agente para jugar el juego de cocina Overcooked. Overcooked es un popular juego de cocina que también sirve como punto de referencia para la investigación colaborativa de múltiples agentes.
En la investigación de RL de Sarkar, el alto costo de simular entornos virtuales siempre ha sido un obstáculo importante para capacitar agentes para él.
En el caso del juego de cocina Overcooked, se requieren aproximadamente 8 millones de pasos de juego para entrenar a un par de agentes que converjan en una estrategia de equilibrio estable en el diseño de sala estrecha Overcooked (abajo). La implementación de código abierto de Overcooked está escrita en Python y se ejecuta a 2000 pasos por segundo en una CPU AMD de 8 núcleos, por lo que generar la experiencia de agente necesaria lleva más de 1 hora.
Por el contrario, realizar todas las demás operaciones necesarias para el entrenamiento (incluida la inferencia de políticas para los 8 millones de pasos de simulación, la propagación hacia atrás para el entrenamiento de políticas) lleva menos de 1 minuto en una GPU NVIDIA A40. Obviamente, el entrenamiento de agentes Overcooked está limitado por la velocidad del simulador de entorno Overcooked.
Teniendo en cuenta que Overcooked es un entorno simple, parece una tontería luchar con la velocidad de la simulación. Así que Sarkar trató de ver si se podía mejorar la velocidad de la simulación del entorno Overcooked, lo que requería el uso del motor de juego Madrona.
Usando el motor de juego Madrona, Sarkar obtiene un reemplazo acelerado por GPU plug-and-play de la implementación original de Overcooked Python. Al simular 1000 entornos recocidos en paralelo, la implementación acelerada por GPU puede generar 3,5 millones de pasos por segundo de experiencia en una GPU A40.
Como resultado, el tiempo para simular 8 millones de pasos del entorno se redujo de 1 hora a 3 segundos, lo que permitió entrenar una política en tan solo 1 minuto con una GPU A40.
La velocidad del simulador abre nuevas posibilidades para realizar extensos barridos de hiperparámetros en Overcooked, especialmente la posibilidad de entrenar múltiples políticas en el tiempo que antes se requería para entrenar una sola política.
Al final, Sarkar se dio cuenta de que migrar Overcooked a Madrona era un proceso mucho más sencillo que las alternativas existentes para crear entornos acelerados por GPU como PyTorch, Taichi Lang, Direct CUDA C++.
Detalles del blog:
Link de referencia:
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
Solo se necesitan 3 segundos para que una sola GPU ejecute miles de entornos y 8 millones de pasos de simulación Stanford ha desarrollado un motor de súper juego
En esta etapa, los agentes de IA parecen ser omnipotentes, juegan e imitan a los humanos para completar varias tareas, y estos agentes están básicamente entrenados en entornos complejos. No solo eso, sino que a medida que la tarea de aprendizaje se vuelve más compleja, la complejidad del entorno simulado también aumenta, lo que aumenta el costo del entorno simulado.
Incluso para empresas e instituciones con recursos a escala de supercomputación, la formación de un agente utilizable puede tardar días en completarse.
Esto dificulta el progreso en el campo y reduce la practicidad de entrenar agentes avanzados de IA. Para abordar el alto costo de la simulación del entorno, los esfuerzos de investigación recientes han rediseñado fundamentalmente los simuladores para lograr una mayor eficiencia al capacitar a los agentes. Estos trabajos comparten la idea de simulación por lotes, que es la ejecución simultánea de muchos entornos independientes (instancias de entrenamiento) dentro de un único motor de simulación.
En este artículo, investigadores de la Universidad de Stanford y otras instituciones** propusieron un motor de juegos de aprendizaje por refuerzo llamado Madrona, que puede ejecutar miles de entornos en paralelo en una sola GPU, lo que reduce el tiempo de capacitación de los agentes de horas a minutos*. *.
Específicamente, Madrona es un motor de juegos de investigación diseñado para crear entornos de aprendizaje que pueden ejecutar miles de instancias de entorno simultáneamente en una sola GPU y con un rendimiento muy alto (millones de pasos de agregación por segundo) implementados. El objetivo de Madrona es facilitar a los investigadores la creación de nuevos entornos de alto rendimiento para una variedad de tareas, acelerando así la formación de agentes de IA en órdenes de magnitud.
Madrona tiene las siguientes características:
Uno de los autores, Kayvon Fatahalian, profesor asociado de informática en la Universidad de Stanford, dijo que en Overcooked, un juego de cocina para múltiples agentes, con la ayuda del motor de juego Madrona, el tiempo para simular 8 millones de pasos ambientales fue reducido de una hora a tres segundos.
**¿Qué son los simuladores ambientales basados en Madrona? **
Madrona en sí no es un simulador de entorno RL, sino un motor o marco de juego. Hace que sea más fácil para los desarrolladores implementar sus propios simuladores de entorno nuevos, logrando un alto rendimiento ejecutando simulaciones por lotes en la GPU y acoplando estrechamente la salida de la simulación con el código de aprendizaje.
A continuación se muestran algunos simuladores de entorno basados en Madrona.
Madrona Escape Room
Madrona Escape Room es un entorno 3D simple que utiliza la API ECS de Madrona, así como capacidades de física y renderizado. En esta sencilla tarea, el agente debe aprender a pulsar un botón rojo y empujar casillas de otros colores para moverse por una serie de habitaciones.
El entorno de IA Overcooked, un entorno de aprendizaje multiagente basado en videojuegos colaborativos (juego de cocina colaborativo multijugador), se reescribe aquí en una reescritura de Madrona de alto rendimiento.
Al escondite
En septiembre de 2019, el agente OpenAI protagonizó una batalla ofensiva y defensiva del escondite, creando sus propias rutinas y antirutinas. El entorno "Hide and Seek" se reproduce aquí usando Madrona.
Hanabi es una implementación del juego de cartas Hanabi basado en el motor de juego Madrona y un Dec-POMDP cooperativo. El entorno se basa en el entorno Hanabi de DeepMind y admite parte de la implementación de MAPPO.
Cartpole es un entorno de entrenamiento típico de RL con la misma dinámica que una implementación de gimnasio construida sobre el motor de juego Madrona.
Dirección de GitHub:
Juego de cocina recocido: entrena al mejor agente en un minuto
Recocido en miles de cocinas: capacitación de agentes de alto rendimiento en menos de un minuto
La estudiante de Stanford Bidipta Sarkar, una de las autoras del artículo, escribió un blog que detalla el proceso de capacitación de un agente para jugar el juego de cocina Overcooked. Overcooked es un popular juego de cocina que también sirve como punto de referencia para la investigación colaborativa de múltiples agentes.
En el caso del juego de cocina Overcooked, se requieren aproximadamente 8 millones de pasos de juego para entrenar a un par de agentes que converjan en una estrategia de equilibrio estable en el diseño de sala estrecha Overcooked (abajo). La implementación de código abierto de Overcooked está escrita en Python y se ejecuta a 2000 pasos por segundo en una CPU AMD de 8 núcleos, por lo que generar la experiencia de agente necesaria lleva más de 1 hora.
Teniendo en cuenta que Overcooked es un entorno simple, parece una tontería luchar con la velocidad de la simulación. Así que Sarkar trató de ver si se podía mejorar la velocidad de la simulación del entorno Overcooked, lo que requería el uso del motor de juego Madrona.
Usando el motor de juego Madrona, Sarkar obtiene un reemplazo acelerado por GPU plug-and-play de la implementación original de Overcooked Python. Al simular 1000 entornos recocidos en paralelo, la implementación acelerada por GPU puede generar 3,5 millones de pasos por segundo de experiencia en una GPU A40.
Como resultado, el tiempo para simular 8 millones de pasos del entorno se redujo de 1 hora a 3 segundos, lo que permitió entrenar una política en tan solo 1 minuto con una GPU A40.
La velocidad del simulador abre nuevas posibilidades para realizar extensos barridos de hiperparámetros en Overcooked, especialmente la posibilidad de entrenar múltiples políticas en el tiempo que antes se requería para entrenar una sola política.
Al final, Sarkar se dio cuenta de que migrar Overcooked a Madrona era un proceso mucho más sencillo que las alternativas existentes para crear entornos acelerados por GPU como PyTorch, Taichi Lang, Direct CUDA C++.
Detalles del blog:
Link de referencia: