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.
0 Comentarios