Sujet projet ANDROIDE : Parallelisation de l'apprentissage par renforcement base sur des populations Mots clefs : apprentissage par renforcement, GPU, parallelisation, robotique, algorithmes evolutionnaires, recherche de nouveaute, qualite-diversite Nombre suggere d'etudiants/etudiantes : groupe de 2 A) Enjeux Les algorithmes de recherche de nouveaute (Novelty Search - NS) [1] sont des algorithmes evolutionnaires qui remplacent l'objectif de performance par la recherche de diversite. Ces methodes se sont averees particulierement efficaces pour aborder des problemes d'exploration difficile. Les algorithmes de qualite-diversite (QD) [2] realisent une optimisation multi-objectifs de maniere a produire un ensemble de solutions a la fois performantes et diverses. Ces deux familles de methodes ont emergees simultanement au debut des annees 2010, et se developpent parallelement, bien qu'elles partagent des dynamiques et proprietes similaires. En particulier, les connaissances liees a ces familles de methodes sont en quasi-totalite des connaissances empiriques. Les outils experimentaux jouent donc un role essentiel, au sens ou l'acceleration des experiences impliquent l'acceleration de l'acquisition de connaissances. JAX [3] est une libraire d'apprentissage automatique developpee par Google, qui permet de paralleliser massivement des calculs sur GPU. Toujours en cours de developpement, cette librairie permet de tels gains en temps de calcul que beaucoup d'equipes de recherche en IA s'en emparent, que ce soit pour l'apprentissage supervise, par renforcement, ou la science des donnees en general, au detriment d'autres outils comme Pytorch. BRAX [4] est une librairie developpee en JAX pour simuler des environnements standards en apprentissage par renforcement, notamment pour la robotique. La parallelisation mise en oeuvre dans les environnements BRAX permet de reduire significativement les temps d'execution des algorithmes d'apprentissage. QDAX [5] est une librairie codee en JAX pour accelerer l'execution des algorithmes QD. Mais la librairie a ete concue de maniere rigide pour optimiser les calculs autant que possible, et est orientee vers des outils specifiques dans la litterature QD (notamment pour des approches analogues a MAP-Elites [6]). Ces choix de conceptions rendent son adaptation particulierement delicate dans un contexte de recherche. La librairie diversity_algorithm [7] est une libraire python pour l'application de methodes NS et QD. Parallelisee via scoop, elle a ete concue pour permettre des modifications rapides du code sans que cela n'affecte dramatiquement son integrite. En revanche, elle ne tire par encore parti de la parallelisation GPU proposee par JAX. L'objectif de ce projet est d'integrer des environnements BRAX a diversity_algorithm. Il est connu dans la litterature NS-QD que l'evaluation (i.e. le deploiement d'une politique dans un environnement sur un certain nombre de pas de temps) est ce qu'il y a de plus couteux en calculs. Mais l'integration de BRAX necessite des modification dans diversity_algorithm - notamment l'utilisation de scoop - pour correspondre aux contraintes imposees par JAX pour realiser la parallelisation. B) Objectifs Les grandes etapes proposees dans ce projet sont les suivantes : 1) Prise en main de diversity_algorithm - Analyse du code, experimentations simples - Identification de sa structure, des relations entre les modules, des outils mis a disposition par la librairie. Remarque : Une connaisse approfondie des algorithmes NS et QD n'est pas necessaire ici ; mais un minimum de connaissance a leur sujet sera indispensable pour faire des choix coherents par rapport aux necessites du domaine. [8] 2) Integration de BRAX a la librairie - Modifier diversity_algorithm pour permettre l'utilisation d'environnements BRAX. Tester ces environnements. Comparer les performances de diversity_algorithm avec BRAX, ou leurs equivalent dans les simulateurs precedemment utilises - comme MUJOCO. 3 - Bonus) Implementation d'environnements JAX - Implementer des environnements jouets. Quelques exemples : particule se deplacant sur une carte (discrete ou continue) en X et en Y (avec ou sans collision dans la carte), recherche d'un extema global d'une fonction, robot deux roues naviguant dans des labyrinthes avec des capteurs de distances et de contacts embarques (voir fastsim dans diversity_algorithm). D'autres environnements peuvent etre implementes, sous reserve qu'ils soient simple, optimises, et pertinents dans le cadre d'etudes experimentales. C) Rendu Le rendu attendu du projet est le code open-source de la libraire diversity_algorithm qui integre des environnements BRAX - et, le cas echeant, de nouveaux environnements jouets. Une analyse des choix de conception est attendue, accompagnee des visualisations qui rendront les resultats interpretables facilement. L'analyse doit s'appuyer sur des etudes comparatives en temps (idealement en cout computationnel), ainsi que l'etude des complexites en usage memoire et en calculs. Les problemes rencontres lors de l'integration doivent etre discutes et analyses pour justifier les choix effectues au cours du projet. Le travail doit donc etre realise en Python. D) Encadrement Stephane Doncieux : stephane (point) doncieux [arobase] isir (point) upmc (point) fr Johann Huber : stephane (point) doncieux [arobase] isir (point) upmc (point) fr References : [1] Lehman, J., & Stanley, K. O. (2011). Abandoning objectives: Evolution through the search for novelty alone. Evolutionary computation, 19(2), 189-223. [2] Pugh, J. K., Soros, L. B., & Stanley, K. O. (2016). Quality diversity: A new frontier for evolutionary computation. Frontiers in Robotics and AI, 40. [3] https://github.com/google/jax [4] Freeman, C. D., Frey, E., Raichuk, A., Girgin, S., Mordatch, I., & Bachem, O. (2021). Brax--A Differentiable Physics Engine for Large Scale Rigid Body Simulation. arXiv preprint arXiv:2106.13281. [5] Lim, B., Allard, M., Grillotti, L., & Cully, A. (2022). Accelerated Quality-Diversity for Robotics through Massive Parallelism. arXiv preprint arXiv:2202.01258. [6] Mouret, J. B., & Clune, J. (2015). Illuminating search spaces by mapping elites. arXiv preprint arXiv:1504.04909. [7] https://github.com/robotsthatdream/diversity_algorithms [8] Cully, A., & Demiris, Y. (2017). Quality and diversity optimization: A unifying modular framework. IEEE Transactions on Evolutionary Computation, 22(2), 245-259.