À suivreGuide suivant
Parallélisme des modèles et des pipelines
Technique
GUIDE Technique
Un moyen de diviser les calculs au sein d'une seule couche de réseau neuronal sur plusieurs GPU afin qu'un modèle trop volumineux pour un seul appareil puisse toujours s'exécuter.
Écoutez ce guideNarré par l'IA · ~2 min
It matters because frontier models have hundreds of billions of parameters that no single GPU can hold or compute fast enough alone.
Le parallélisme tensoriel (également appelé parallélisme de modèle intra-couche) divise les matrices de poids individuelles sur les GPU plutôt que de placer des couches entières sur des appareils distincts. Dans un transformateur, les grandes multiplications matricielles (projections d'attention et MLP feed-forward) sont divisées : par exemple, la première matrice de poids du MLP est partitionnée par colonnes et la seconde par lignes, de sorte que chaque GPU calcule une tranche et une seule réduction totale combine les résultats. L’attention est répartie entre les têtes, chaque GPU gérant un sous-ensemble. Étant donné que chaque GPU effectue simultanément une partie de chaque couche, le parallélisme tensoriel réduit la mémoire par GPU et accélère le calcul, mais il nécessite une communication fréquente et à large bande passante entre les GPU de chaque couche. C'est pourquoi il est généralement confiné dans un nœud connecté par NVLink et combiné avec un pipeline et un parallélisme de données pour de très grandes tâches de formation et de service.
Entraînement d'un modèle de 175 B en partageant les matrices de poids de chaque couche sur 8 GPU dans un nœud connecté à NVLink à l'aide de Megatron-LM.
Servir un modèle de discussion de 70 B dans vLLM avec tensor_parallel_size=4 afin que les pondérations s'adaptent à quatre GPU et répondent en temps réel.
Diviser l'attention du transformateur entre les GPU afin que chaque appareil calcule un sous-ensemble, puis concaténer les sorties pour la couche suivante.
Combiner le parallélisme tensoriel au sein des nœuds et le parallélisme pipeline entre les nœuds pour former des modèles comportant des milliards de paramètres sur de grands clusters GPU.
Le parallélisme tensoriel reste fondamental mais est de plus en plus intégré au « parallélisme 3D » (tenseur + pipeline + données) et combiné au parallélisme expert pour les modèles de mélange d'experts. Des frameworks comme Megatron-LM, DeepSpeed et vLLM automatisent le partitionnement. À mesure que les interconnexions GPU (NVLink, NVSwitch) et les structures optiques deviennent plus rapides, la limite des limites des nœuds s'assouplit, permettant des groupes tensoriels parallèles plus larges. Attendez-vous à une parallélisation automatique plus intelligente qui sélectionne les dimensions des partitions et la taille des groupes afin de minimiser la communication pour une topologie de cluster donnée.
Newsletter gratuite
Trois histoires d'IA vérifiées chaque matin de la semaine, écrites dans un anglais simple. Gratuit pour toujours, sans publicité.
Un e-mail chaque jour de la semaine. Désabonnez-vous en un clic. Nous ne vendons ni ne partageons jamais votre adresse.
Testez-vous
Commentaires instantanés sur chaque réponse et un certificat partageable avec une pièce d'identité vérifiable une fois que vous avez réussi un cours.
Soutenez l’enseignement gratuit de l’IA. AI Understanding est une organisation à but non lucratif 501(c)(3) : pas de publicité, pas de paywall, jamais. Faire un don
Un moyen de diviser les calculs au sein d'une seule couche de réseau neuronal sur plusieurs GPU afin qu'un modèle trop volumineux pour un seul appareil puisse toujours s'exécuter. C’est important car les modèles frontières comportent des centaines de milliards de paramètres qu’aucun GPU ne peut contenir ou calculer assez rapidement à lui seul.
Le parallélisme tenseur (intra-couche) fragmente les matrices de poids à l'intérieur d'une couche, de sorte que chaque GPU calcule une partie de la même couche, à la différence du parallélisme de pipeline, qui place des couches entières sur différents GPU.
Le fractionnement de la première matrice par colonnes permet à chaque GPU d'appliquer la non-linéarité localement ; diviser la seconde en lignes signifie qu'une seule réduction totale additionne les sorties partielles, minimisant ainsi la synchronisation.
Chaque couche déclenche une communication collective (tout réduit), de sorte que le trafic lourd et sensible à la latence exige des liaisons intra-nœuds rapides comme NVLink plutôt que des réseaux inter-nœuds plus lents.
Les têtes d'attention sont indépendantes, elles sont donc réparties sur les GPU : chaque appareil calcule certaines têtes et les sorties sont combinées.
All-reduce additionne les sorties partielles calculées sur chaque GPU afin qu'elles soient d'accord sur le résultat de la couche ; cela se produit plusieurs fois par couche lors des passes avant et arrière.
Continuez à apprendre
Plus de guides sélectionnés pour ce sujet
À suivreGuide suivant
Parallélisme des modèles et des pipelines
Technique