Parallélisation de l’apprentissage par renforcement basé sur des populations

Mots clefs : apprentissage par renforcement, GPU, parallélisation, robotique, algorithmes évolutionnaires, recherche de nouveauté, qualité-diversité

Nombre suggéré d’étudiants/étudiantes : groupe de 2

(Se référer au document descriptif pour les références et détails)

-) Enjeux

Les algorithmes de recherche de nouveauté (Novelty Search - NS) [1] sont des algorithmes évolutionnaires qui remplacent l’objectif de performance par la recherche de diversité. Ces méthodes se sont avérées particulièrement efficaces pour aborder des problèmes d’exploration difficile. Les algorithmes de qualité-diversité (QD) [2] réalisent une optimisation multi-objectifs de manière à produire un ensemble de solutions à la fois performantes et diverses. Ces deux familles de méthodes ont émergées simultanément au début des années 2010, et se développent parallèlement, bien qu’elles partagent des dynamiques et propriétés similaires.

En particulier, les connaissances liées à ces familles de méthodes sont en quasi-totalité des connaissances empiriques. Les outils expérimentaux jouent donc un rôle essentiel, au sens où l’accélération des expériences impliquent l’accélération de l’acquisition de connaissances.

JAX [3] est une libraire d’apprentissage automatique développée par Google, qui permet de paralléliser massivement des calculs sur GPU. Toujours en cours de développement, cette librairie permet de tels gains en temps de calcul que beaucoup d’équipes de recherche en IA s’en emparent, que ce soit pour l’apprentissage supervisé, par renforcement, ou la science des données en général, au détriment d’autres outils comme Pytorch. BRAX [4] est une librairie développée en JAX pour simuler des environnements standards en apprentissage par renforcement, notamment pour la robotique. La parallélisation mise en œuvre dans les environnements BRAX permet de réduire significativement les temps d’exécution des algorithmes d’apprentissage.

QDAX [5] est une librairie codée en JAX pour accélérer l’exécution des algorithmes QD. Mais la librairie a été conçue de manière rigide pour optimiser les calculs autant que possible, et est orientée vers des outils spécifiques dans la littérature QD (notamment pour des approches analogues à MAP-Elites [6]). Ces choix de conceptions rendent son adaptation particulièrement délicate dans un contexte de recherche.

La librairie diversity_algorithm [7] est une libraire python pour l’application de méthodes NS et QD. Parallélisée via scoop, elle a été conçue pour permettre des modifications rapides du code sans que cela n’affecte dramatiquement son intégrité. En revanche, elle ne tire par encore parti de la parallélisation GPU proposée par JAX.

L’objectif de ce projet est d’intégrer des environnements BRAX à diversity_algorithm. Il est connu dans la littérature NS-QD que l’évaluation (i.e. le déploiement d’une politique dans un environnement sur un certain nombre de pas de temps) est ce qu’il y a de plus coûteux en calculs. Mais l’intégration de BRAX nécessite des modification dans diversity_algorithm – notamment l’utilisation de scoop – pour correspondre aux contraintes imposées par JAX pour réaliser la parallélisation.

-) Feuille de route

Les grandes étapes du projet sont les suivantes : 
- Prise en main de diversity_algorithms
- Intégration de BRAX à la librairie
- (bonus) Implémentation d’environnements JAX

-) Encadrement

Stéphane Doncieux : stephane (point) doncieux [arobase] isir (point) upmc (point) fr 
Johann Huber : stephane (point) doncieux [arobase] isir (point) upmc (point) fr 

Encadrant: 
S. Doncieux
Nombre d'étudiants: 
2
Attribué: 
No
Deprecated: 
Yes

User login