DESCRIPTION :
Ce sujet de thèse est proposé dans le cadre d'une collaboration entre Inria et hive (https://www.hivenet.com). hive fournit Hivenet, une infrastructure Cloud entièrement distribuée basée sur les machines des membres de la communauté. En d'autres termes, les membres de Hivenet partagent leurs propres ressources informatiques et de stockage dans le Cloud, ce qui profite ensuite aux autres utilisateurs et utilisatrices. L'un des avantages de cette architecture est qu'elle a un impact positif sur les émissions de carbone en utilisant les ressources existantes au lieu de construire de nouveaux centres de données.
Nous nous concentrons sur l'émergence de nouvelles applications qui s'adaptent naturellement à l'exécution distribuée, telles que l'inférence de modèles d'intelligence artificielle (IA) à grande échelle qui nécessitent l'exécution d'un grand nombre de tâches indépendantes. Ces applications sont bien adaptées à l'exécution distribuée sur des ressources informatiques interconnectées, même si le réseau est nettement moins puissant que celui d'un superordinateur.
Dans le contexte de l'inférence de l'IA à grande échelle, plusieurs problèmes doivent être résolus :
* Chaque génération de token doit a priori passer par plusieurs unités de traitement graphique (GPUs), chacune stockant différentes parties du modèle. Il y a un problème de partitionnement du modèle [1][2] et aussi un problème associé à la construction de chemins d'inférence pour minimiser la latence (faire des groupes de ressources proches) ;
* La quantité d'inférence requise variera naturellement dans le temps, et l'ensemble des ressources mises à la disposition du calcul variera également. Il existe donc un problème de planification statique (décider quelles ressources sont susceptibles de participer et y stocker les modèles) et un problème dynamique (comment allouer les nouvelles demandes) ;
* En fonction des modèles utilisés, certaines tâches d'inférence sont naturellement placées sur certaines ressources (par exemple, parce que les tokens précédents ont été générés dans cette ressource). En termes de tolérance aux défaillances, le calcul peut facilement être redémarré (en sachant quels tokens ont été générés), mais à un coût élevé. Cela pose des problèmes d'allocation des ressources en fonction des statistiques de disponibilité des ressources.
Mission confiée
L'objectif de cette thèse est de proposer et d'adapter des techniques pour améliorer la latence, le débit ou l'utilisation des ressources de l'inférence IA à grande échelle dans un environnement Cloud entièrement distribué.
Le travail se concentrera sur les modèles complexes (tels que les LLMs) qui nécessitent plusieurs GPU en raison de leurs besoins en mémoire. Ces GPUs constitueront également une plateforme informatique complexe, compte tenu de leur hétérogénéité potentielle, de leur volatilité et de leur répartition géographique dans l'infrastructure du Cloud.
Les techniques d'optimisation proposées se concentreront sur les méthodes d'ordonnancement et d'allocation des ressources afin d'optimiser le temps d'exécution des tâches d'inférence et leur communication.
Un objectif de cette collaboration avec hive est de déployer les modèles optimisés à grande échelle dans des nœuds de calcul :
* du même fournisseur (avec des GPU homogènes de niveau desktop disponibles à proximité les uns des autres) ; et
* de différents membres de la communauté (où la latence de communication entre les fournisseurs doit être prise en compte, et où les modèles de GPU sont plus hétérogènes).
Dans le contexte de ce sujet, nous considérons également qu'il est pertinent de mentionner ses similitudes avec le traitement des flux de données (DSP). Plus précisément, les DSPs sont des modèles représentant le traitement continu des données (apparenté à la génération de tokens), qui passent par divers opérateurs (répliqués si nécessaire) représentés par un DAG. Il existe une littérature abondante sur le placement des opérateurs dans de tels modèles, avec l'optimisation de diverses mesures [3] (latence, débit, communications, mise à l'échelle, tolérance aux pannes, etc.), bien que la plupart d'entre elles concernent le cas de l'exécution dans des nuages [4] (moins de contraintes de ressources et moins d'hétérogénéité)., * Recherche bibliographique (littérature sur l'ordonnancement et l'IA)
* Modélisation de l'inférence en IA (pour son optimisation)
* Conception, programmation et validation d'algorithmes
* Intégration de composants ou de modules logiciels dans des cadres logiciels existants
* Publication des résultats de la recherche dans des articles scientifiques
* Présentation et diffusion des résultats lors de conférences et de workshops
Activités complémentaires :
* Participation aux cours obligatoires de l'école doctorale (EDMI - Université de Bordeaux)
* Participation facultative à l'encadrement des étudiants en stage de master
* Enseignement facultatif à l'université de Bordeaux ou à l'école d'ingénieurs ENSEIRB-MATMECA
Code d'emploi : Ingénieur en Intelligence Artificielle (h/f)
Domaine professionnel actuel : IT R&D Professionals
Niveau de formation : Bac+5
Temps partiel / Temps plein : Plein temps
Type de contrat : Contrat à durée déterminée (CDD)
Compétences : Intelligence Artificielle, Conception Algorithme, Unix, Cloud Computing, Data Centers, Tolérance aux Pannes, Conception et Développement de Logiciel, Flux de Données, Graphics Processing Unit (GPU), Modules Logiciels, Large Language Models, Système d'Opérations, Axé sur le Succès, Esprit d'Équipe, Curiosité, Algorithmes, Architecture, Edition, Enseignement, Allocation des Ressources, Contraintes de Ressources, Etudes et Statistiques, Gestion de Planning, Compétences de Modélisation, Traitement Numérique du Signal, Utilisation des Ressources
Courriel :
laercio.lima@inria.fr
Téléphone :
0524574000
Type d'annonceur : Employeur direct