Introduction
Les modèles de langage à grande échelle nécessitent de nombreuses cartes graphiques (GPU) pour fonctionner. Pour utiliser plusieurs GPU sur l'inférence de ces modèles, il est nécessaire de permettre à ces GPU de communiquer entre eux. Il existe différentes méthodes pour parvenir à ce résultat, notamment le parallélisme de tenseur, le parallélisme de pipeline, le parallélisme de contexte et le parallélisme d'expert. Le parallélisme d'expert est particulièrement important pour les modèles MoE (Mixture of Experts) lorsqu'il s'agit de servir à grande échelle.
Contexte Technique
Le parallélisme d'expert se différencie des autres méthodes de parallélisme en ce que la communication entre les GPU n'est pas fixe et dépend du routage des données à l'exécution. Cela signifie que les tokens (unités de données) doivent être acheminés vers les experts appropriés, qui peuvent se trouver sur d'autres GPU. Le noyau de communication EP (Expert Parallelism) est responsable de cette tâche. La bibliothèque DeepEP de DeepSeek a établi la forme moderne de ces noyaux.
Pour comprendre le fonctionnement d'un noyau EP haute performance, considérons un scénario où nous avons 8 GPU répartis sur 2 nœuds, avec 2 experts par GPU. Chaque token est routé vers 2 experts, qui peuvent se trouver sur d'autres GPU. Le but du noyau EP est de rassembler les tokens destinés aux experts locaux dans un tampon dense unique qui peut être consommé par une opération de multiplication de matrice groupée (GEMM).
Analyse et Implications
La difficulté principale dans la conception d'un noyau EP est de gérer le fait que la taille du tampon nécessaire n'est pas connue à l'avance. Il existe deux approches pour résoudre ce problème : réserver un espace suffisant pour le pire des cas ou allouer exactement ce qui est nécessaire en fonction des comptes réels. La première approche est plus simple mais gaspille de l'espace, tandis que la seconde nécessite une passe de coordination pour déterminer les comptes réels.
La méthode de coordination implique que chaque rang (GPU) partage le nombre de tokens qu'il envoie à chaque pair avec les autres rangs. Chaque rang peut alors calculer le nombre total de tokens qu'il recevra et allouer un tampon de la taille appropriée. Cette approche est plus efficace en termes de throughput mais peut introduire des retards dans les scénarios où la latence est critique.
Perspective
Le développement de noyaux EP haute performance est crucial pour l'inférence à grande échelle des modèles de langage. Les futures recherches devraient se concentrer sur l'optimisation de ces noyaux pour différents scénarios d'utilisation, en tenant compte à la fois du throughput et de la latence. De plus, l'intégration de ces noyaux dans les frameworks d'apprentissage automatique existants sera essentielle pour leur adoption à grande échelle.