About Me

header ads

Cómo las GPU pueden democratizar el aprendizaje por refuerzo profundo para el desarrollo robótico

Imagen: NVIDIA – 2020

Un cachorro puede tardar semanas en aprender que ciertos tipos de comportamientos resultarán en un bocadillo delicioso, abrazos adicionales o un masaje en el vientre, y que otros comportamientos no. Con un sistema de refuerzo positivo, un perro mascota anticipará con el tiempo que perseguir ardillas tiene menos probabilidades de ser recompensado que quedarse al lado de su humano.
 
El aprendizaje por refuerzo profundo, una técnica utilizada para entrenar modelos de IA para robótica y problemas estratégicos complejos, funciona con el mismo principio.
 
En el aprendizaje por refuerzo , un agente de software interactúa con un entorno real o virtual, confiando en la retroalimentación de las recompensas para aprender la mejor manera de lograr su objetivo. Al igual que el cerebro de un cachorro en formación, un modelo de aprendizaje por refuerzo utiliza la información que se observa sobre el entorno y sus recompensas, y determina qué acción debe tomar el agente a continuación.
 
Hasta la fecha, la mayoría de los investigadores se han basado en una combinación de CPU y GPU para ejecutar modelos de aprendizaje por refuerzo. Esto significa que diferentes partes de la computadora abordan diferentes pasos del proceso, incluida la simulación del entorno, el cálculo de recompensas, la elección de qué acción tomar a continuación, la adopción de medidas y luego aprender de la experiencia.
 
Pero alternar entre núcleos de CPU y GPU potentes es por naturaleza ineficiente, lo que requiere que los datos se transfieran de una parte de la memoria del sistema a otra en múltiples puntos durante el proceso de entrenamiento de aprendizaje por refuerzo. Es como un estudiante que tiene que llevar una gran pila de libros y notas de un aula a otra, además de la biblioteca, antes de comprender un nuevo concepto.
 
Con Isaac Gym (Entorno de simulación de física de NVIDIA para la investigación del aprendizaje por refuerzo), los desarrolladores de NVIDIA han hecho posible ejecutar todo el proceso de aprendizaje por refuerzo en GPU , lo que permite una aceleración significativa y reduce los recursos de hardware necesarios para desarrollar estos modelos.
 
Esto es lo que significa este avance para el proceso de aprendizaje por refuerzo profundo y cuánta aceleración puede aportar a los desarrolladores.
 
Aprendizaje por refuerzo en GPU: simulación a la acción
 
Cuando se entrena un modelo de aprendizaje por refuerzo para una tarea de robótica, como un robot humanoide que sube y baja escaleras, es mucho más rápido, más seguro y más fácil usar un entorno simulado que el mundo físico. En una simulación, los desarrolladores pueden crear un mar de robots virtuales que pueden acumular rápidamente miles de horas de experiencia en una tarea.
 
Si se prueba únicamente en el mundo real, un robot en entrenamiento podría caerse, chocar con objetos o manipularlos incorrectamente, lo que podría causar daños a su propia maquinaria, el objeto con el que interactúa o su entorno. Las pruebas en simulación proporcionan al modelo de aprendizaje por refuerzo un espacio para practicar y resolver los problemas, lo que le da una ventaja cuando se cambia al mundo real.
 
En un sistema típico actual, el motor de simulación NVIDIA PhysX ejecuta esta fase de recopilación de experiencias del proceso de aprendizaje por refuerzo en las GPU NVIDIA. Pero para otros pasos de la aplicación de entrenamiento, los desarrolladores tradicionalmente todavía utilizan CPU.
 
Una parte clave del entrenamiento del aprendizaje por refuerzo es realizar lo que se conoce como pase hacia adelante: primero, el sistema simula el entorno, registra un conjunto de observaciones sobre el estado del mundo y calcula una recompensa por lo bien que lo hizo el agente.
 
Las observaciones registradas se convierten en la entrada a una red de “políticas” de aprendizaje profundo, que elige una acción que debe realizar el agente. Tanto las observaciones como las recompensas se almacenan para su uso más adelante en el ciclo de entrenamiento.
 
Finalmente, la acción se envía de vuelta al simulador para que el resto del entorno se pueda actualizar en respuesta.
 
Después de varias rondas de estos pases hacia adelante, el modelo de aprendizaje por refuerzo echa un vistazo hacia atrás, evaluando si las acciones que eligió fueron efectivas o no. Esta información se utiliza para actualizar la red de políticas y el ciclo comienza de nuevo con el modelo mejorado.
 
Aceleración de GPU con Isaac Gym
 
Para eliminar la sobrecarga de transferir datos de CPU a GPU durante este ciclo de capacitación de aprendizaje reforzado, los investigadores de NVIDIA han desarrollado un enfoque para ejecutar cada paso del proceso en GPU. Este es Isaac Gym , un entorno de entrenamiento de extremo a extremo, que incluye el motor de simulación PhysX y una API basada en tensor de PyTorch.
 
Isaac Gym hace posible que un desarrollador ejecute decenas de miles de entornos simultáneamente en una sola GPU. Eso significa que los experimentos que anteriormente requerían un centro de datos con miles de núcleos de CPU pueden, en algunos casos, entrenarse en una sola estación de trabajo.
 
Disminuir la cantidad de hardware requerido hace que el aprendizaje por refuerzo sea más accesible para los investigadores individuales que no tienen acceso a los grandes recursos del centro de datos. También puede hacer que el proceso sea mucho más rápido.
 
Un modelo simple de aprendizaje por refuerzo con la tarea de hacer que un robot humanoide camine se puede entrenar en solo unos minutos con Isaac Gym. Pero el impacto de la aceleración de la GPU de extremo a extremo es más útil para tareas más desafiantes, como enseñarle a una mano robótica compleja a manipular un cubo en una posición específica.
 
Este problema requiere una destreza significativa por parte del robot y un entorno de simulación que implica la aleatorización de dominios , un mecanismo que permite que la política aprendida se transfiera más fácilmente a un robot del mundo real.
 
La investigación de OpenAI abordó esta tarea con un grupo de más de 6,000 núcleos de CPU más múltiples GPU NVIDIA Tensor Core , y requirió aproximadamente 30 horas de capacitación para que el modelo de aprendizaje por refuerzo tuviera éxito en la tarea 20 veces seguidas utilizando una red de alimentación directa. modelo.
 
Usando solo una GPU NVIDIA A100 con Isaac Gym, los desarrolladores de NVIDIA pudieron lograr el mismo nivel de éxito en alrededor de 10 horas: una sola GPU superó a un clúster completo en un factor de 3 veces.

Publicar un comentario

0 Comentarios