DualPipe : un algorithme parallèle bidirectionnel en pipeline pour améliorer l'efficacité de l'entraînement des modèles d'IA à grande échelle (DeepSeek Open Source Week Day 4)

Introduction générale

DualPipe est une technologie open source développée par l'équipe DeepSeek-AI qui vise à améliorer l'efficacité de la formation de modèles d'IA à grande échelle. Il s'agit d'un algorithme parallèle bidirectionnel innovant, qui est principalement utilisé pour réaliser un chevauchement complet du calcul et de la communication dans DeepSeek-V3 et la formation de modèle R1, réduisant efficacement les "bulles" (c'est-à-dire le temps d'attente) dans le pipeline, et accélérant ainsi le processus de formation. Développé par Jiashi Li, Chengqi Deng et Wenfeng Liang, le projet a été ouvert sur GitHub et attire l'attention de la communauté de l'IA. L'avantage principal de DualPipe est qu'il permet à l'apprentissage de modèles de s'exécuter efficacement sur des clusters de GPU multi-nœuds grâce à une planification optimisée, ce qui le rend adapté à des scénarios d'apprentissage de modèles à des trillions de paramètres et offre de nouvelles possibilités aux chercheurs et aux développeurs en IA. DualPipe offre un nouveau paradigme parallèle aux chercheurs et développeurs en IA.

Liste des fonctions

  • Ordonnancement bidirectionnel en pipelineLe système de gestion de l'information (SGI) : il permet l'entrée simultanée de micro-lots depuis les deux extrémités du pipeline, ce qui permet un degré élevé de chevauchement entre le calcul et la communication.
  • Réduction des bulles d'air sur la chaîne de montageRéduire le temps d'attente pendant la formation grâce à l'optimisation algorithmique.
  • Supports pour l'entraînement de modèles à grande échelleLa nouvelle version de DeepSeek-V3 est la première du genre au monde, et elle peut être utilisée pour entraîner des trillions de paramètres sur de très grands modèles tels que DeepSeek-V3.
  • Chevauchement des calculs et des communicationsTraitement parallèle des tâches de calcul et de communication dans le cadre de la propagation vers l'avant et de la rétropropagation afin d'améliorer l'utilisation du GPU.
  • Soutien à l'Open SourceLes développeurs sont libres de la télécharger, de la modifier et de l'intégrer.

Utiliser l'aide

DualPipe est un outil avancé pour les développeurs, et en tant que projet open source GitHub, il n'a pas d'interface graphique autonome, mais est disponible en tant que base de code. Vous trouverez ci-dessous un guide détaillé pour aider les développeurs à démarrer rapidement et à l'intégrer dans leurs projets de formation à l'IA.

Processus d'installation

L'installation de DualPipe nécessite quelques bases de Python et un environnement d'apprentissage profond. Voici les étapes à suivre :

  1. Préparation de l'environnement
    • Assurez-vous que Python 3.8 ou une version ultérieure est installé sur votre système.
    • Installer Git pour télécharger du code depuis GitHub.
    • Il est recommandé d'utiliser un environnement virtuel pour éviter les conflits de dépendance avec la commande suivante :
      python -m venv dualpipe_env
      source dualpipe_env/bin/activate  # Linux/Mac
      dualpipe_env\Scripts\activate  # Windows
      
  2. Cloner le dépôt de code
    Téléchargez le référentiel DualPipe localement en entrant la commande suivante dans le terminal :

    git clone https://github.com/deepseek-ai/DualPipe.git
    cd DualPipe
  1. Installation des dépendances
    DualPipe s'appuie sur des bibliothèques communes d'apprentissage profond, les dépendances spécifiques ne sont pas explicitement listées dans le référentiel, mais sur la base de sa fonctionnalité, il est supposé nécessiter un environnement tel que PyTorch. Vous pouvez essayer la commande suivante pour installer les dépendances de base :

    pip install torch torchvision
    

    Si vous rencontrez des erreurs concernant des bibliothèques spécifiques manquantes, suivez les instructions pour poursuivre l'installation.

  2. Vérifier l'installation
    Étant donné que DualPipe est un code algorithmique et non une application autonome, il n'est pas possible d'effectuer la vérification directement. Cependant, il peut être vérifié en regardant les fichiers de code (par ex. dualpipe.py) pour confirmer que le téléchargement est terminé.

Utilisation

Au cœur de DualPipe se trouve un algorithme d'ordonnancement que les développeurs doivent intégrer dans les cadres d'apprentissage de modèles existants (tels que PyTorch ou DeepSpeed). Voici comment cela fonctionne :

1. comprendre la structure du code

  • spectacle (un billet) DualPipe le code principal peut se trouver dans le dossier dualpipe.py ou dans un document similaire.
  • Lisez les commentaires du code et le rapport technique de DeepSeek-V3 (lien dans la description du dépôt GitHub) pour comprendre la logique de l'algorithme. Le rapport mentionne des exemples d'ordonnancement DualPipe (par exemple, 8 niveaux de pipeline et 20 microbatchs).

2. l'intégration dans le cadre de la formation

  • Préparation des modèles et des donnéesLa méthode d'évaluation de la qualité de l'eau : En supposant que vous disposiez déjà d'un modèle et d'un ensemble de données basés sur PyTorch.
  • Modifier le cycle d'entraînementLa logique d'ordonnancement de DualPipe est intégrée dans le code de formation. Voici un exemple simplifié :
    # 伪代码示例
    from dualpipe import DualPipeScheduler  # 假设模块名
    import torch
    # 初始化模型和数据
    model = MyModel().cuda()
    optimizer = torch.optim.Adam(model.parameters())
    data_loader = MyDataLoader()
    # 初始化 DualPipe 调度器
    scheduler = DualPipeScheduler(num_ranks=8, num_micro_batches=20)
    # 训练循环
    for epoch in range(num_epochs):
    scheduler.schedule(model, data_loader, optimizer)  # 调用 DualPipe 调度
    
  • La mise en œuvre doit être adaptée au code réel, et il est recommandé de se référer aux exemples du dépôt GitHub (s'il y en a).

3. configuration de l'environnement matériel

  • DualPipe est conçu pour les clusters de GPU multi-nœuds et est recommandé pour une utilisation avec au moins 8 GPU (par exemple NVIDIA H800).
  • Veillez à ce que le cluster prenne en charge InfiniBand ou NVLink pour tirer pleinement parti de l'optimisation des communications.

4. fonctionnement et mise en service

  • Exécutez le script de formation dans le terminal :
    python train_with_dualpipe.py
    
  • Observez la sortie du journal et vérifiez si le calcul et la communication se chevauchent avec succès. S'il y a un goulot d'étranglement au niveau des performances, ajustez le nombre de micro-lots ou le niveau du pipeline.

Fonction en vedette Fonctionnement

Ordonnancement bidirectionnel en pipeline

  • Paramétrage dans le fichier de configuration ou dans le code num_ranks(nombre de niveaux du pipeline) et num_micro_batches(Nombre de micro-lots).
  • Exemple de configuration : 8 niveaux, 20 micro-lots, voir le diagramme d'ordonnancement dans le rapport technique.

le chevauchement des communications informatiques

  • Sans intervention manuelle, DualPipe prend automatiquement en compte les calculs positifs (par ex. F) avec le calcul inverse (par ex. B) de tâches de communication qui se chevauchent.
  • Vérifiez les horodatages dans les journaux pour confirmer que le temps de communication est caché dans les calculs.

Réduction des bulles d'air sur la chaîne de montage

  • La configuration optimale a été trouvée en ajustant la taille des micro-lots (par exemple, de 20 à 16) et en observant le changement dans le temps de formation.

mise en garde

  • exigences en matière de matérielLes avantages du DualPipe ne peuvent pas être pleinement exploités avec une seule carte, c'est pourquoi un environnement multi-GPU est recommandé.
  • Soutien à la documentationLa page GitHub est actuellement pauvre en informations, il est donc recommandé de l'étudier en profondeur en conjonction avec le rapport technique DeepSeek-V3 (arXiv : 2412.19437).
  • Soutien communautaireLes questions peuvent être posées sur la page GitHub Issues, ou se référer aux discussions sur la plateforme X (par exemple, les messages de @deepseek_ai).

En suivant ces étapes, les développeurs peuvent intégrer DualPipe dans leurs projets et améliorer considérablement l'efficacité de la formation de modèles à grande échelle.

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...