DeepSeek Open Source Week, jour 4 : DualPipe 253

小编 ·

DeepSeek Open Source Week, jour 4 : DualPipe

DualPipe est un algorithme novateur de parallélisme de pipeline bidirectionnel, présenté pour la première fois dans le rapport technique DeepSeek-V3. En superposant pleinement les phases de calcul avant et arrière avec les phases de communication, il améliore considérablement l'efficacité et l'utilisation des ressources de l'entraînement de modèles à grande échelle, tout en réduisant efficacement les « bulles » du pipeline.

DeepSeek Open Source Week, jour 4 : DualPipe

Qu'est-ce que DualPipe ?

DualPipe est un algorithme novateur de parallélisme par pipeline bidirectionnel, présenté pour la première fois dans le rapport technique de DeepSeek-V3. En réalisant un chevauchement complet entre les phases de calcul avant et arrière et les phases de communication, il améliore significativement l'efficacité et l'utilisation des ressources lors de l'entraînement de modèles à grande échelle, tout en réduisant efficacement le phénomène de « bulles » dans le pipeline.

screenshot (8).webp

Aperçu de DualPipe

DualPipe est un algorithme novateur de parallélisme par pipeline bidirectionnel, présenté pour la première fois dans le rapport technique de DeepSeek-V3. En réalisant un chevauchement complet entre les phases de calcul avant et arrière et les phases de communication, il améliore significativement l'efficacité et l'utilisation des ressources lors de l'entraînement de modèles à grande échelle, tout en réduisant efficacement le phénomène de « bulles » dans le pipeline.

Innovations clés de DualPipe

Chevauchement du calcul et de la communication

Le principe fondamental de DualPipe repose sur la planification bidirectionnelle des micro-lots, permettant un chevauchement complet entre les calculs avant et arrière et la communication. Cette conception garantit que les ressources de calcul ne restent pas inactives lors de l'attente de la communication, améliorant ainsi considérablement le taux d'utilisation des GPU.

Réduction des bulles dans le pipeline

Les méthodes traditionnelles de parallélisme par pipeline (telles que 1F1B et ZB1P) entraînent souvent des goulets d'étranglement d'efficacité lors du traitement de modèles à grande échelle, en raison de la séparation entre les phases de calcul et de communication. DualPipe réduit efficacement le phénomène de bulles dans le pipeline grâce à une disposition optimisée des modules fonctionnels et à un contrôle précis de l'allocation des ressources GPU.

Optimisation de l'utilisation de la mémoire

Bien que DualPipe nécessite de conserver deux copies des paramètres du modèle, cette redondance n'entraîne pas d'augmentation significative de la consommation mémoire grâce à l'utilisation d'une accumulation de gradients à grande échelle (EP) durant l'entraînement. De plus, son pic de mémoire active n'est multiplié que par 2, ce qui est plus efficace que les méthodes traditionnelles.

Détails d'implémentation de DualPipe

Division des modules fonctionnels

Chaque bloc de calcul est divisé en quatre modules fonctionnels : le mécanisme d'attention, la distribution de données à tous les nœuds, le traitement MLP et l'agrégation de données à tous les nœuds. Dans les blocs de calcul arrière, les modules d'attention et MLP sont en outre subdivisés en deux parties : le calcul du gradient d'entrée et le calcul du gradient des poids.

Mécanisme de planification

DualPipe adopte une stratégie de planification de pipeline bidirectionnelle novatrice, permettant l'entrée simultanée de micro-lots depuis les deux extrémités du pipeline. Cette conception garantit que, même lorsque l'échelle du modèle augmente davantage, tant qu'un ratio calcul/communication approprié est maintenu, il est possible d'obtenir une distribution fine des experts entre les nœuds, tout en réduisant le coût de la communication à l'échelle du nœud à un niveau proche de zéro.

Comparaison des performances

Par rapport aux méthodes traditionnelles 1F1B et ZB1P, DualPipe présente d'excellentes performances en termes de réduction des blocages du pipeline et de consommation mémoire. La durée des « bulles » est significativement réduite, tandis que le pic de mémoire active n'augmente que légèrement. Ce mode de planification efficace confère à DualPipe un avantage de performance notable dans les scénarios de parallélisme à grande échelle.

Perspectives d'application de DualPipe

L'apparition de DualPipe offre une solution d'entraînement parallèle efficace et viable pour l'entraînement de modèles à grande échelle. Que ce soit dans la recherche académique ou les applications industrielles, cette technologie est susceptible de favoriser le développement ultérieur du domaine de l'entraînement des outils d'ia.

Adresse GitHub de DualPipe :https://github.com/deepseek-ai/DualPipe

Rétrospective des projets open source des trois jours précédents

FlashMLA : un noyau de décodage haute performance pour les GPU NVIDIA Hopper, optimisant les performances de l'attention latente multi-têtes (MLA) et améliorant significativement la vitesse de réponse des outils d'IA dans la création de contenu.

DeepeEP : la première bibliothèque de communication open source dédiée à l'entraînement et à l'inférence des modèles Mixture of Experts (MoE), optimisant l'efficacité de la communication dans l'entraînement distribué à grande échelle et réduisant la latence.

DeepGEMM : une bibliothèque de calcul FP8 prenant en charge les modèles denses et MoE, spécialement conçue pour les GPU à architecture NVIDIA Hopper, améliorant considérablement l'efficacité de calcul et l'utilisation du matériel.