Expert Parallelism
Apprends comment le parallélisme d'experts distribue les modèles de mélange d'experts sur les GPU, réduisant les exigences de mémoire tout en équilibrant le routage, la communication et les performances.
Le parallélisme d'experts est une technique de calcul distribué qui place différents experts d'un modèle de mélange d'experts sur différents GPU ou accélérateurs. Au lieu que chaque appareil stocke chaque expert, chaque appareil en détient un sous-ensemble. Un routeur appris envoie chaque jeton d'entrée aux experts sélectionnés, permettant à de très grands modèles d'augmenter leur capacité en paramètres sans activer chaque paramètre pour chaque entrée.
La technique s'applique spécifiquement aux architectures de mélange d'experts, et non aux réseaux de neurones denses ordinaires. Elle est couramment utilisée lors de l'entraînement ou du service de grands modèles de langage et de vision-langage dont les couches d'experts consommeraient autrement trop de mémoire sur un seul appareil.
Fonctionnement du parallélisme d'experts#
Une couche MoE contient plusieurs réseaux d'experts, généralement des réseaux de neurones feed-forward, ainsi qu'un routeur. Pour chaque jeton, le routeur produit des scores et sélectionne un petit nombre d'experts, souvent appelé routage top-k.
Dans une couche à huit experts distribuée sur quatre GPU, par exemple, chaque GPU peut stocker deux experts. Le traitement suit ensuite quatre étapes principales :
- Le routeur sélectionne des experts pour chaque jeton.
- Les jetons sont échangés entre les GPU afin d'atteindre les appareils hébergeant ces experts.
- Chaque expert traite ses jetons assignés localement.
- Les résultats retournent aux positions d'origine des jetons et continuent à travers le modèle.
Cet échange repose généralement sur une communication all-to-all, une opération collective décrite dans la documentation des opérations collectives de NVIDIA NCCL. Le guide de parallélisme NVIDIA Megatron Bridge montre comment le nombre d'experts et la taille du parallélisme d'experts déterminent le nombre d'experts placés sur chaque GPU.
Le parallélisme d'experts économise la mémoire par appareil car les poids des experts sont partitionnés. Cependant, il n'élimine pas les coûts de calcul ou de communication : les jetons peuvent franchir les frontières des appareils ou des nœuds à chaque couche MoE.
Parallélisme d'experts par rapport aux techniques associées#
Le parallélisme d'experts est une forme d'entraînement distribué, mais il divise un modèle différemment des autres stratégies :
- Parallélisme de données : Chaque appareil stocke une réplique complète du modèle et traite un lot différent. Les gradients sont synchronisés entre les répliques, comme l'explique l'aperçu de l'entraînement distribué PyTorch. C'est efficace lorsque le modèle complet tient sur chaque appareil.
- Parallélisme de tenseurs : Les matrices de poids individuelles et les opérations mathématiques à l'intérieur d'une couche sont réparties entre les appareils. Le parallélisme d'experts attribue quant à lui des experts complets aux appareils.
- Parallélisme de pipeline : Des groupes consécutifs de couches s'exécutent sur différents appareils, avec des micro-lots circulant à travers eux comme des étapes de pipeline.
- Parallélisme de contexte : De longues séquences d'entrée sont partitionnées entre les appareils pour réduire les besoins en mémoire d'activation.
- Parallélisme de tenseurs d'experts : Les experts sont distribués entre les appareils, et chaque expert individuel est également fragmenté en tenseurs. Cette approche hybride peut s'adapter à des experts plus grands mais introduit des communications supplémentaires.
Ces approches sont complémentaires. Les grands systèmes MoE peuvent combiner le parallélisme d'experts, de données, de tenseurs, de pipeline et de contexte en fonction de la taille du modèle et de la topologie du matériel.
Applications concrètes#
Assistants multilingues à grande échelle : Un modèle de langage MoE peut contenir de nombreux réseaux d'experts tout en n'en activant que quelques-uns pour chaque jeton. Le parallélisme d'experts distribue ces réseaux sur un cluster de service, permettant au système de conserver une capacité de modèle élevée sans charger chaque expert sur chaque GPU. Des moteurs d'exécution de production tels que le déploiement en parallélisme d'experts vLLM et le parallélisme d'experts TensorRT-LLM prennent en charge ce type de disposition d'inférence.
Analyse de contenu multimodale : Un grand modèle MoE traitant des correctifs d'image et des jetons de texte peut router les entrées à travers des experts sélectionnés distribués sur plusieurs accélérateurs. Cela peut prendre en charge la compréhension de documents, la question-réponse visuelle et d'autres services d'IA multimodale tout en maintenant la mémoire des experts par appareil gérable. Le même principe peut s'appliquer aux transformers de vision à grande échelle et clairsemés, bien que la plupart des modèles de vision compacts en temps réel ne l'exigent pas.
Avantages, goulots d'étranglement et conseils pratiques#
Le parallélisme d'experts offre trois avantages principaux : une mémoire de poids d'experts réduite par GPU, un support pour les modèles dotés d'une capacité totale supérieure et un calcul clairsemé efficace lorsque seuls quelques experts s'activent par jeton. Le guide du parallélisme d'experts Amazon SageMaker illustre comment un degré de parallélisme d'experts contrôle la distribution sur un cluster.
Son principal défi est le déséquilibre de charge. Si le routeur envoie trop de jetons à un seul expert, le GPU de cet expert devient un retardataire pendant que les autres attendent. Les conséquences incluent un débit plus faible, une latence instable et une perte potentielle de jetons lorsque la capacité des experts est limitée. Les ingénieurs doivent surveiller les jetons par expert, l'équilibre du routage, le temps de communication, l'utilisation de la mémoire et la latence de bout en bout. Des interconnexions à haut débit et le chevauchement calcul-communication peuvent réduire la surcharge de transfert.
Le parallélisme d'experts est inutile lors de l'utilisation d'un modèle dense tel que Ultralytics YOLO26. L'entraînement Ultralytics YOLO multi-GPU utilise plutôt le parallélisme de données distribué :
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Two-GPU YOLO training uses data parallelism, not expert parallelism.
results = model.train(
data="coco8.yaml",
epochs=10,
imgsz=640,
device=[0, 1],
)Ce flux de travail réplique YOLO26 sur deux GPU et divise les lots d'entraînement entre eux ; il ne route pas les entrées parmi les réseaux d'experts. Les équipes peuvent également utiliser l'entraînement cloud de la plateforme Ultralytics pour gérer les jeux de données de vision, l'entraînement, les métriques, l'exportation et le déploiement sans configurer manuellement l'infrastructure distribuée.









