Maison > Périphériques technologiques > IA > Stratégies de parallélisme optimisées publiées par Deepseek

Stratégies de parallélisme optimisées publiées par Deepseek

Lisa Kudrow
Libérer: 2025-03-03 18:34:10
original
253 Les gens l'ont consulté

Dans le cadre de #OpenSourceweek Day 4, Deepseek présente 2 nouveaux outils pour rendre l'apprentissage en profondeur plus rapide et plus efficace: Dualpipe et EPLB. Ces outils aident à améliorer la façon dont les ordinateurs gèrent les calculs et la communication pendant la formation, ce qui rend le processus plus lisse et plus rapide. Dans le monde en évolution rapide de l'apprentissage en profondeur, trouver des moyens de mieux former des modèles tout en utilisant moins de ressources est essentielle. Dualpipe et EPLB sont de grands pas en avant pour résoudre ces défis. Cet article explique comment ces outils fonctionnent et comment ils peuvent faire une différence dans l'apprentissage en profondeur.

? Jour 4 de #OpenSourceWeek: Stratégies de parallélisme optimisées

✅ Dualpipe - Un algorithme de parallélisme bidirectionnel pour le chevauchement de communication de calcul dans la formation V3 / R1.
? https://t.co/gbtxsvwlt4

✅ EPLB - Un équilibreur de charge-parallèle expert pour v3 / r1.
?…

- Deepseek (@deepseek_ai) 27 février 2025

Cette version marque le jour 4 de nos célébrations de la semaine open source, après les lancements réussis de FlashML le jour 1, DeepPe le jour 2 et Deepgemm le jour 3.

Table des matières

  • Comprendre le parallélisme du pipeline
  • DUALPIPE: Détallélisme bidirectionnel du pipeline
    • Clés
    • Détails techniques
  • EPLB: Fonctionnement de la technique d'experts parallèle
      Détails
    • Équilibrage de charge hiérarchique
    • Équilibrage de la charge globale
    • Données de profilage: analyse des données de profilage de formation de la formation de calcul
    • Applications de profilage réels
    Directions
  • Conclusion
  • Comprendre le parallélisme du pipeline
  • Le parallélisme du pipeline est une approche qui facilite le traitement simultané de divers segments de la séquence d'entraînement d'un modèle. En partageant le modèle et en gérant plusieurs entrées à la fois, le parallélisme du pipeline peut considérablement abréger la période de formation. Pourtant, les méthodologies traditionnelles du pipeline sont sujettes aux inefficacités, notamment des intervalles d'inactivité ou des «bulles», qui nuisent aux performances. Des innovations comme Dualpipe sont introduites pour améliorer ces inefficacités et augmenter l'efficacité globale.

Dans l'apprentissage en profondeur, l'expression «bulles dans un pipeline» caractérise les intervalles d'inactivité sur les GPU pendant l'entraînement parallèle du pipeline, où un segment du pipeline est bloqué, en attente de données d'un segment antécédent. Cela génère un «écart» ou une «bulle» dans la progression de calcul, aboutissant à une gestion inefficace des ressources du GPU.

Dualpipe: parallélisme bidirectionnel du pipeline

Dualpipe est un algorithme de parallélisme bidirectionnel sophistiqué qui vise à maximiser le chevauchement entre les phases de communication de calcul vers l'avant et vers l'arrière. Cette approche est particulièrement bénéfique pour réduire les bulles de pipeline, ce qui peut entraver considérablement l'efficacité de l'entraînement.

Caractéristiques de clés

  • chevauchement complet: réalise le chevauchement complet des phases avant et arrière, garantissant que les ressources sont utilisées efficacement.
  • Bubbles de pipeline réduits: minimise le temps d'inactivité pendant la formation, conduisant à une utilisation améliorée des ressources et à des temps d'entraînement plus rapides.

Détails techniques

Les performances de l'algorithme peuvent être illustrées grâce à un exemple de planification impliquant 8 rangs PP et 20 micro-lots. Les micro-lots dans le sens inverse sont symétriques à ceux dans le sens avant, simplifiant l'illustration.

Method Bubble Parameter Activation
1F1B (PP-1)(? ?) PP
ZB1P (PP-1)(? ?-2?) PP
DualPipe (PP/2-1)(?&? ?-3?) PP 1
Méthode bulle Paramètre Activation 1f1b (pp-1) (??) 1 × pp zb1p (pp-1) (?? -2?) 1 × pp dualpipe (pp / 2-1) (? &?? -3?) 2 × pp 1 table>

où:

  • ?: Temps d'exécution d'un morceau avant
  • ?: Temps d'exécution d'un morceau complet en arrière
  • ?: Temps d'exécution d'un morceau «arrière pour les poids»
  • ? & ?: Temps d'exécution de deux morceaux vers l'avant et vers l'arrière se chevauchait mutuellement

Stratégies de parallélisme optimisées publiées par Deepseek

Exemple de configuration de planification à deux tuyaux pour 8 pp (parallélisme du pipeline) et 20 micro-lots, avec un accent sur deux directions. Les micro-lots traités dans le sens inverse reflètent ceux dans le sens avant, nous permettant d'omettre leurs identifiants par lots dans le but de simplifier l'illustration. Deux cellules qui partagent une bordure noire commune sont impliquées dans les tâches de calcul et de communication qui se chevauchent.

Pour plus d'informations, visitez le référentiel Github Dualpipe

EPLB: équilibreur de charge-parallèle expert

EPLB, ou équilibreur de charge-parallèle expert, optimise l'équilibrage de la charge dans la formation V3 / R1. Il distribue efficacement les charges de travail sur plusieurs unités de traitement, augmentant les performances globales.

Caractéristiques clés

  • Parallélisme expert: utilise des modèles d'experts pour équilibrer efficacement la charge, garantissant que chaque unité de traitement est utilisée à son plein potentiel.
  • Équilibrage de charge dynamique: s'adapte à des charges de travail variables pendant la formation, permettant aux ajustements en temps réel de maintenir des performances optimales.

Détails techniques

EPLB (distribution efficace de la charge des pipelines) vise à affectation judicieuse des tâches aux ressources accessibles pour diminuer les intervalles inactifs et améliorer le débit. Cette méthodologie est d'une signification accrue dans les contextes où des modèles ou des tâches variables nécessitent des niveaux distincts de pouvoir de calcul.

L'algorithme d'équilibrage de charge utilise deux politiques distinctes, adaptées à des circonstances variables:

Équilibrage de charge hiérarchique

La stratégie d'équilibrage de charge hiérarchique s'active lorsque le nombre de nœuds de serveur se divise uniformément dans le nombre de groupes d'experts. Cette stratégie tire parti du routage d'experts limité en groupe en organisant initialement des groupes d'experts sur les nœuds d'une manière qui favorise la distribution équilibrée des charges. Par la suite, la réplication des experts se produit dans chaque nœud pour maintenir l'équilibre de charge. En fin de compte, ces experts reproduits sont affectés à des GPU individuels, atteignant ainsi l'équilibre de la charge entre différents GPU. La politique d'équilibrage de la charge hiérarchique est particulièrement adaptée à la phase de préfilmage lorsqu'il s'agit de petites tailles d'experts parallèles.

Équilibrage de la charge globale

Inversement, lorsque le nombre des nœuds du serveur ne divise pas les groupes d'experts, la politique globale d'équilibrage de charge est mise en œuvre. Cette approche implique la réplication mondiale d'experts, quelle que soit leur groupe au sein des groupes d'experts. Après la réplication, les experts sont répartis uniformément aux GPU individuels, garantissant un équilibre de chargement à travers les GPU. La politique globale d'équilibrage de la charge est applicable au stade de décodage lors de la gestion des tailles d'experts parallèles plus grandes.

Exemple de code:

import torch

import eplb

weight = torch.tensor([[ 90, 132,  40,  61, 104, 165,  39,   4,  73,  56, 183,  86],

                       [ 20, 107, 104,  64,  19, 197, 187, 157, 172,  86,  16,  27]])

num_replicas = 16

num_groups = 4

num_nodes = 2

num_gpus = 8

phy2log, log2phy, logcnt = eplb.rebalance_experts(weight, num_replicas, num_groups, num_nodes, num_gpus)

print(phy2log)
Copier après la connexion

Sortie:

tensor([[ 5,  6,  5,  7,  8,  4,  3,  4, 10,  9, 10,  2,  0,  1, 11,  1],

         [ 7, 10,  6,  8,  6, 11,  8,  9,  2,  4,  5,  1,  5,  0,  3,  1]])
Copier après la connexion

Stratégies de parallélisme optimisées publiées par Deepseek

La représentation visuelle illustre une configuration à deux niveaux de mélange d'experts (MOE), chaque niveau comprenant 12 experts spécialisés. Pour augmenter la robustesse du modèle et créer des mécanismes de sauvegarde, nous introduisons 4 experts supplémentaires à chaque niveau. Cette modification conduit à un total cumulatif de 16 experts par niveau servant de sauvegardes. Le système reproduit et distribue ces experts sur 2 nœuds de calcul, chaque nœud contenant 4 GPU. Il applique la politique d'équilibrage des charges hiérarchiques et démontre la réplication stratégique et l'allocation des experts selon le plan.

Pour les instructions de mise en œuvre détaillées, reportez-vous au référentiel EPLB GitHub.

Données de profilage: Analyse de la communication de calcul se chevauche

Pour analyser efficacement le chevauchement de communication de calcul dans V3 / R1, les données de profilage fournissent des informations essentielles. Les goulots d'étranglement des performances et l'optimisation du processus de formation peuvent être compris en utilisant ces données.

Caractéristiques clés

  • Analyse complète: cette approche fournit une évaluation approfondie des phases de calcul et de communication, facilitant une compréhension approfondie des métriques de performance du système.
  • Performance Insights: Il identifie les possibilités d'améliorer l'efficacité de la formation, équipant les développeurs d'informations critiques pour guider les efforts d'optimisation.

Données de profilage de formation

Stratégies de parallélisme optimisées publiées par Deepseek

Les données de profil de formation illustre la stratégie de chevauchement des morceaux inversés et arrière inverses dans Dualpipe. Chaque morceau intègre 4 couches de mélange d'experts (MOE). La configuration parallèle correspond aux paramètres utilisés dans Deepseek-V3 Pre-Traging, spécifiquement en utilisant des configurations EP64 (EPOCH 64) et TP1 (rembourrage temporel avec 1 jeton), avec une longueur de séquence de 4K. Pour garder les choses simples, nous excluons la communication PP (parallélisme du pipeline) pendant le profilage.

Pour plus d'informations et pour accéder aux données de profilage, visitez le référentiel Github de profilage.

Applications du monde réel

L'application pratique de Dualpipe et EPLB a démontré des résultats encourageants dans divers domaines tels que le traitement du langage naturel, la vision par ordinateur et l'apprentissage du renforcement. En affinant le processus de formation, ces méthodologies facilitent la convergence des modèles accélérés et la précision accrue, se révèlent être des instruments indispensables pour les chercheurs et les praticiens.

Directions futures

à mesure que le domaine de l'apprentissage en profondeur progresse, la demande de méthodologies de formation plus efficaces augmentera probablement. Les enquêtes futures pourraient se concentrer sur l'amplification de l'efficacité de Dualpipe et EPLB, éventuellement en étudiant les modèles hybrides qui fusionnent les avantages des deux. De plus, l'intégration de ces stratégies avec des technologies de pointe, y compris l'informatique quantique, pourrait ouvrir de nouvelles voies d'optimisation.

Conclusion

Les progrès des stratégies de parallélisme via Dualpipe et EPLB marquent des progrès considérables dans le raffinement des procédures de formation en profondeur. En exploitant ces algorithmes, les chercheurs et les praticiens peuvent atteindre une utilisation supérieure des ressources et des durées de formation accélérées, aboutissant à une création de modèles plus efficace. L’assimilation des données de profilage augmente la capacité d’étalonner ces processus, garantissant que la trajectoire d’apprentissage en profondeur de progrès rapide persiste.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal