Exécutez des charges de travail de formation distribuées avec Slurm on HyperPod - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exécutez des charges de travail de formation distribuées avec Slurm on HyperPod

SageMaker HyperPod est spécialisé pour les charges de travail liées à la formation de grands modèles linguistiques (LLM) et de modèles de base (FM). Ces charges de travail nécessitent souvent l'utilisation de plusieurs techniques de parallélisme et des opérations optimisées pour l'infrastructure et les ressources de machine learning. À l'aide de SageMaker HyperPod, vous pouvez utiliser les cadres de formation SageMaker distribués suivants :

Utilisation de SMDDP sur un SageMaker HyperPod

La bibliothèque SMDDP est une bibliothèque de communication collective qui améliore les performances de calcul de l'entraînement parallèle aux données distribuées. La bibliothèque SMDDP fonctionne avec les frameworks de formation distribués open source suivants :

La bibliothèque SMDDP répond à la surcharge de communication liée aux principales opérations de communication collective en proposant ce qui suit pour. SageMaker HyperPod

  • La bibliothèque propose des offres AllGather optimisées pour AWS. AllGatherest une opération clé utilisée dans le cadre du sharded data parallel training, une technique de parallélisme de données économe en mémoire proposée par des bibliothèques populaires. Il s'agit notamment de la bibliothèque de parallélisme des SageMaker modèles (SMP), de DeepSpeed Zero Redundancy Optimizer (Zero) et de PyTorch Fully Sharded Data Parallelism (FSDP).

  • La bibliothèque optimise la node-to-node communication en utilisant pleinement l'infrastructure AWS réseau et la topologie de l'instance SageMaker ML.

Pour exécuter des exemples de tâches de formation parallèles aux données

Explorez les exemples de formation distribuée suivants mettant en œuvre des techniques de parallélisme de données à l'aide de la bibliothèque SMDDP.

Pour configurer un environnement d'utilisation de la bibliothèque SMDDP sur SageMaker HyperPod

Vous trouverez ci-dessous les exigences relatives à l'environnement de formation pour utiliser la bibliothèque SMDDP sur. SageMaker HyperPod

  • PyTorch v2.0.1 et versions ultérieures

  • CUDA v11.8 et versions ultérieures

  • libstdc++version d'exécution supérieure à 3

  • Python v3.10.x et versions ultérieures

  • ml.p4d.24xlargeet ml.p4de.24xlarge quels sont les types d'instances pris en charge par la bibliothèque SMDDP

  • imdsv2activé sur l'hôte de formation

Selon la manière dont vous souhaitez exécuter la tâche de formation distribuée, deux options s'offrent à vous pour installer la bibliothèque SMDDP :

  • Installation directe à l'aide du fichier binaire SMDDP.

  • Utilisation des SageMaker Deep Learning Containers (DLC) préinstallés avec la bibliothèque SMDDP.

Les images Docker préinstallées avec la bibliothèque SMDDP ou les URL des fichiers binaires SMDDP sont répertoriées dans la section Frameworks pris en charge dans la documentation de la bibliothèque SMDDP.

Pour installer la bibliothèque SMDDP sur le DLAMI SageMaker HyperPod
  • pip install --no-cache-dir https://smdataparallel.s3.amazonaws.com/binary/pytorch/<pytorch-version>/cuXYZ/YYYY-MM-DD/smdistributed_dataparallel-X.Y.Z-cp310-cp310-linux_x86_64.whl

    Note

    Si vous travaillez dans un environnement Conda, veillez à installer PyTorch en utilisant conda install plutôt que. pip

    conda install pytorch==X.Y.Z torchvision==X.Y.Z torchaudio==X.Y.Z pytorch-cuda=X.Y.Z -c pytorch -c nvidia
Pour utiliser la bibliothèque SMDDP sur un conteneur Docker
  • La bibliothèque SMDDP est préinstallée sur les SageMaker Deep Learning Containers (DLC). Pour trouver la liste des DLC de SageMaker framework compatibles PyTorch avec la bibliothèque SMDDP, consultez la section Frameworks pris en charge dans la documentation de la bibliothèque SMDDP. Vous pouvez également apporter votre propre conteneur Docker avec les dépendances requises installées pour utiliser la bibliothèque SMDDP. Pour en savoir plus sur la configuration d'un conteneur Docker personnalisé pour utiliser la bibliothèque SMDDP, consultez également. Créez votre propre conteneur Docker avec la bibliothèque de données parallèles SageMaker distribuées

    Important

    Pour utiliser la bibliothèque SMDDP dans un conteneur Docker, montez le /var/log répertoire depuis la machine hôte sur /var/log le conteneur. Cela peut être fait en ajoutant l'option suivante lors de l'exécution de votre conteneur.

    docker run <OTHER_OPTIONS> -v /var/log:/var/log ...

Pour savoir comment exécuter des tâches de formation parallèles aux données avec SMDDP en général, voir. Comment exécuter une tâche de formation distribuée avec la bibliothèque de parallélisme de données SageMaker distribuée

Utilisation du protocole SMP sur un cluster SageMaker HyperPod

La bibliothèque de parallélisme des SageMaker modèles (SMP) propose différentes techniques de parallélisme des state-of-the-art modèles, notamment :

  • parallélisme de données entièrement segmenté

  • parallélisme expert

  • entraînement de précision mixte avec les types de données FP16/BF16 et FP8

  • parallélisme tensoriel

La bibliothèque SMP est également compatible avec les frameworks open source tels que PyTorch FSDP, NVIDIA Megatron et NVIDIA Transformer Engine.

Pour exécuter un exemple de charge de travail d'entraînement parallèle à un modèle

Les équipes SageMaker de service proposent des exemples de tâches de formation mettant en œuvre le parallélisme des modèles avec la bibliothèque SMP à l'adresse. awsome-distributed-training/3.test_cases/17.SM-modelparallelv2