Il ne faut que 3 secondes à un seul GPU pour exécuter des milliers d'environnements et 8 millions d'étapes de simulation. Stanford a développé un super moteur de jeu
À ce stade, les agents de l'IA semblent être omnipotents, jouant à des jeux et imitant les humains pour accomplir diverses tâches, et ces agents sont essentiellement formés dans des environnements complexes. Non seulement cela, mais à mesure que la tâche d'apprentissage devient plus complexe, la complexité de l'environnement simulé augmente également, augmentant ainsi le coût de l'environnement simulé.
Même pour les entreprises et les institutions disposant de ressources à l'échelle du supercalcul, la formation d'un agent utilisable peut prendre des jours.
Cela entrave les progrès sur le terrain et réduit l'aspect pratique de la formation d'agents d'IA avancés. Pour faire face au coût élevé de la simulation de l'environnement, les efforts de recherche récents ont fondamentalement repensé les simulateurs pour atteindre une plus grande efficacité lors de la formation des agents. Ces travaux partagent l'idée de la simulation par lots, qui est l'exécution simultanée de nombreux environnements indépendants (instances d'entraînement) au sein d'un seul moteur de simulation.
Dans cet article, des chercheurs de l'Université de Stanford et d'autres institutions** ont proposé un moteur de jeu d'apprentissage par renforcement appelé Madrona, qui peut exécuter des milliers d'environnements en parallèle sur un seul GPU, réduisant ainsi le temps de formation des agents d'heures en heures. *.
* Adresse papier :
Page d'accueil papier :
Plus précisément, Madrona est un moteur de jeu de recherche conçu pour créer des environnements d'apprentissage pouvant exécuter simultanément des milliers d'instances d'environnement sur un seul GPU et à très haut débit (millions d'étapes d'agrégation par seconde). L'objectif de Madrona est de permettre aux chercheurs de créer plus facilement de nouveaux environnements hautes performances pour une variété de tâches, accélérant ainsi la formation des agents d'IA de plusieurs ordres de grandeur.
Madrona a les fonctionnalités suivantes :
Simulation par lots GPU : des milliers d'environnements peuvent s'exécuter sur un seul GPU ;
Architecture ECS (Entity Component System) ;
Facilement interopérable avec PyTorch.
Exemple d'environnement Madrona :
Comme nous l'avons mentionné ci-dessus, l'étude a utilisé les principes de conception ECS, et le processus spécifique est le suivant :
À l'aide du cadre Madrona, les chercheurs ont mis en œuvre plusieurs environnements d'apprentissage, montrant une accélération de deux à trois ordres de grandeur sur les GPU par rapport à une ligne de base de CPU open source, et une accélération de deux à trois ordres de grandeur par rapport à une ligne de base solide fonctionnant sur un 32 -thread CPU 5-33 fois. En outre, la recherche a également implémenté l'environnement "cache-cache 3D" d'OpenAI dans le cadre, et chaque étape de simulation a effectué la physique du corps rigide et le lancer de rayons, atteignant une vitesse de plus de 1,9 million d'étapes par seconde sur un seul GPU.
L'un des auteurs, Kayvon Fatahalian, professeur agrégé d'informatique à l'Université de Stanford, a déclaré que sur Overcooked, un jeu de cuisine auquel plusieurs agents pouvaient jouer, avec l'aide du moteur de jeu Madrona, le temps nécessaire pour simuler 8 millions d'étapes environnementales était raccourcie d'une heure à trois secondes.
Actuellement, Madrona nécessite C++ pour écrire la logique du jeu. Madrona ne fournit qu'un support de rendu de visualisation, et bien qu'il puisse simuler des milliers d'environnements simultanément, le visualiseur ne peut afficher qu'un seul environnement à la fois.
**Quels sont les simulateurs environnementaux basés sur Madrona ? **
Madrona lui-même n'est pas un simulateur d'environnement RL, mais un moteur ou un framework de jeu. Il permet aux développeurs d'implémenter plus facilement leurs propres nouveaux simulateurs d'environnement, en obtenant des performances élevées en exécutant des simulations par lots sur le GPU et en couplant étroitement la sortie de la simulation avec le code d'apprentissage.
Vous trouverez ci-dessous quelques simulateurs d'environnement basés sur Madrona.
Salle d'évasion Madrona
Madrona Escape Room est un environnement 3D simple qui utilise l'API ECS de Madrona ainsi que des capacités de physique et de rendu. Dans cette tâche simple, l'agent doit apprendre à appuyer sur un bouton rouge et à pousser des cases d'autres couleurs pour se déplacer dans une série de pièces.
** IA trop cuite **
L'environnement Overcooked AI, un environnement d'apprentissage multi-agents basé sur un jeu vidéo collaboratif (jeu de cuisine collaboratif multijoueur), est ici réécrit dans une réécriture Madrona à haut débit.
Source:
Cache-cache
En septembre 2019, l'agent OpenAI a organisé une bataille offensive et défensive à cache-cache, créant ses propres routines et anti-routines. L'environnement "Hide and Seek" est reproduit ici à l'aide de Madrona.
Habi
Hanabi est une implémentation du jeu de cartes Hanabi basé sur le moteur de jeu Madrona et un Dec-POMDP coopératif. L'environnement est basé sur l'environnement Hanabi de DeepMind et prend en charge une partie de la mise en œuvre de MAPPO.
Mâteau
Cartpole est un environnement d'entraînement RL typique avec la même dynamique qu'une implémentation de salle de sport construite sur le moteur de jeu Madrona.
Adresse GitHub :
Jeu de cuisine trop cuite : formez le meilleur agent en une minute
Trop cuit dans des milliers de cuisines : former les agents les plus performants en moins d'une minute
Bidipta Sarkar, étudiant de premier cycle à Stanford, l'un des auteurs de l'article, a écrit un blog détaillant le processus de formation d'un agent pour jouer au jeu de cuisine Overcooked. Overcooked est un jeu de cuisine populaire qui sert également de référence pour la recherche collaborative multi-agents.
Dans la recherche RL de Sarkar, le coût élevé de la simulation d'environnements virtuels a toujours été pour lui un obstacle majeur à la formation des agents.
Dans le cas du jeu de cuisine Overcooked, environ 8 millions d'étapes de jeu sont nécessaires pour former une paire d'agents qui convergent vers une stratégie d'équilibre stable dans la disposition de la salle étroite Overcooked (ci-dessous). L'implémentation open source d'Overcooked est écrite en Python et s'exécute à 2 000 pas par seconde sur un processeur AMD à 8 cœurs. La génération de l'expérience d'agent nécessaire prend donc plus d'une heure.
En revanche, l'exécution de toutes les autres opérations requises pour la formation (y compris l'inférence de politique pour les 8 millions d'étapes de simulation, la rétropropagation pour la formation de politique) prend moins d'une minute sur un GPU NVIDIA A40. Évidemment, la formation des agents Overcooked est limitée par la vitesse du simulateur d'environnement Overcooked.
Étant donné que Overcooked est un environnement simple, il semble idiot de lutter avec la vitesse de simulation. Sarkar a donc essayé de voir si la vitesse de simulation de l'environnement Overcooked pouvait être améliorée, ce qui nécessitait l'utilisation du moteur de jeu Madrona.
En utilisant le moteur de jeu Madrona, Sarkar obtient un remplacement plug-and-play accéléré par GPU de l'implémentation originale d'Overcooked Python. Lors de la simulation de 1000 environnements Overcooked en parallèle, la mise en œuvre accélérée par GPU peut générer 3,5 millions de pas par seconde d'expérience sur un GPU A40.
En conséquence, le temps de simulation de 8 millions d'étapes d'environnement a été réduit de 1 heure à 3 secondes, permettant à une politique d'être formée en seulement 1 minute à l'aide d'un GPU A40.
La vitesse du simulateur ouvre de nouvelles possibilités pour effectuer des balayages d'hyperparamètres étendus dans Overcooked, en particulier la possibilité de former plusieurs politiques dans le temps auparavant nécessaire pour former une seule politique.
En fin de compte, Sarkar s'est rendu compte que le portage d'Overcooked sur Madrona était un processus plus fluide que les alternatives existantes pour créer des environnements accélérés par GPU tels que PyTorch, Taichi Lang, Direct CUDA C++.
Détails du blog :
Lien de référence :
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Il ne faut que 3 secondes à un seul GPU pour exécuter des milliers d'environnements et 8 millions d'étapes de simulation. Stanford a développé un super moteur de jeu
À ce stade, les agents de l'IA semblent être omnipotents, jouant à des jeux et imitant les humains pour accomplir diverses tâches, et ces agents sont essentiellement formés dans des environnements complexes. Non seulement cela, mais à mesure que la tâche d'apprentissage devient plus complexe, la complexité de l'environnement simulé augmente également, augmentant ainsi le coût de l'environnement simulé.
Même pour les entreprises et les institutions disposant de ressources à l'échelle du supercalcul, la formation d'un agent utilisable peut prendre des jours.
Cela entrave les progrès sur le terrain et réduit l'aspect pratique de la formation d'agents d'IA avancés. Pour faire face au coût élevé de la simulation de l'environnement, les efforts de recherche récents ont fondamentalement repensé les simulateurs pour atteindre une plus grande efficacité lors de la formation des agents. Ces travaux partagent l'idée de la simulation par lots, qui est l'exécution simultanée de nombreux environnements indépendants (instances d'entraînement) au sein d'un seul moteur de simulation.
Dans cet article, des chercheurs de l'Université de Stanford et d'autres institutions** ont proposé un moteur de jeu d'apprentissage par renforcement appelé Madrona, qui peut exécuter des milliers d'environnements en parallèle sur un seul GPU, réduisant ainsi le temps de formation des agents d'heures en heures. *.
Plus précisément, Madrona est un moteur de jeu de recherche conçu pour créer des environnements d'apprentissage pouvant exécuter simultanément des milliers d'instances d'environnement sur un seul GPU et à très haut débit (millions d'étapes d'agrégation par seconde). L'objectif de Madrona est de permettre aux chercheurs de créer plus facilement de nouveaux environnements hautes performances pour une variété de tâches, accélérant ainsi la formation des agents d'IA de plusieurs ordres de grandeur.
Madrona a les fonctionnalités suivantes :
L'un des auteurs, Kayvon Fatahalian, professeur agrégé d'informatique à l'Université de Stanford, a déclaré que sur Overcooked, un jeu de cuisine auquel plusieurs agents pouvaient jouer, avec l'aide du moteur de jeu Madrona, le temps nécessaire pour simuler 8 millions d'étapes environnementales était raccourcie d'une heure à trois secondes.
**Quels sont les simulateurs environnementaux basés sur Madrona ? **
Madrona lui-même n'est pas un simulateur d'environnement RL, mais un moteur ou un framework de jeu. Il permet aux développeurs d'implémenter plus facilement leurs propres nouveaux simulateurs d'environnement, en obtenant des performances élevées en exécutant des simulations par lots sur le GPU et en couplant étroitement la sortie de la simulation avec le code d'apprentissage.
Vous trouverez ci-dessous quelques simulateurs d'environnement basés sur Madrona.
Salle d'évasion Madrona
Madrona Escape Room est un environnement 3D simple qui utilise l'API ECS de Madrona ainsi que des capacités de physique et de rendu. Dans cette tâche simple, l'agent doit apprendre à appuyer sur un bouton rouge et à pousser des cases d'autres couleurs pour se déplacer dans une série de pièces.
L'environnement Overcooked AI, un environnement d'apprentissage multi-agents basé sur un jeu vidéo collaboratif (jeu de cuisine collaboratif multijoueur), est ici réécrit dans une réécriture Madrona à haut débit.
Cache-cache
En septembre 2019, l'agent OpenAI a organisé une bataille offensive et défensive à cache-cache, créant ses propres routines et anti-routines. L'environnement "Hide and Seek" est reproduit ici à l'aide de Madrona.
Hanabi est une implémentation du jeu de cartes Hanabi basé sur le moteur de jeu Madrona et un Dec-POMDP coopératif. L'environnement est basé sur l'environnement Hanabi de DeepMind et prend en charge une partie de la mise en œuvre de MAPPO.
Cartpole est un environnement d'entraînement RL typique avec la même dynamique qu'une implémentation de salle de sport construite sur le moteur de jeu Madrona.
Adresse GitHub :
Jeu de cuisine trop cuite : formez le meilleur agent en une minute
Trop cuit dans des milliers de cuisines : former les agents les plus performants en moins d'une minute
Bidipta Sarkar, étudiant de premier cycle à Stanford, l'un des auteurs de l'article, a écrit un blog détaillant le processus de formation d'un agent pour jouer au jeu de cuisine Overcooked. Overcooked est un jeu de cuisine populaire qui sert également de référence pour la recherche collaborative multi-agents.
Dans le cas du jeu de cuisine Overcooked, environ 8 millions d'étapes de jeu sont nécessaires pour former une paire d'agents qui convergent vers une stratégie d'équilibre stable dans la disposition de la salle étroite Overcooked (ci-dessous). L'implémentation open source d'Overcooked est écrite en Python et s'exécute à 2 000 pas par seconde sur un processeur AMD à 8 cœurs. La génération de l'expérience d'agent nécessaire prend donc plus d'une heure.
Étant donné que Overcooked est un environnement simple, il semble idiot de lutter avec la vitesse de simulation. Sarkar a donc essayé de voir si la vitesse de simulation de l'environnement Overcooked pouvait être améliorée, ce qui nécessitait l'utilisation du moteur de jeu Madrona.
En utilisant le moteur de jeu Madrona, Sarkar obtient un remplacement plug-and-play accéléré par GPU de l'implémentation originale d'Overcooked Python. Lors de la simulation de 1000 environnements Overcooked en parallèle, la mise en œuvre accélérée par GPU peut générer 3,5 millions de pas par seconde d'expérience sur un GPU A40.
En conséquence, le temps de simulation de 8 millions d'étapes d'environnement a été réduit de 1 heure à 3 secondes, permettant à une politique d'être formée en seulement 1 minute à l'aide d'un GPU A40.
La vitesse du simulateur ouvre de nouvelles possibilités pour effectuer des balayages d'hyperparamètres étendus dans Overcooked, en particulier la possibilité de former plusieurs politiques dans le temps auparavant nécessaire pour former une seule politique.
En fin de compte, Sarkar s'est rendu compte que le portage d'Overcooked sur Madrona était un processus plus fluide que les alternatives existantes pour créer des environnements accélérés par GPU tels que PyTorch, Taichi Lang, Direct CUDA C++.
Détails du blog :
Lien de référence :