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 (LLMs) et de modèles de base (FMs). 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 SMDDP sur un SageMaker HyperPod

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

La SMDDP bibliothèque prend en charge les frais de communication liés aux principales opérations de communication collective en proposant les services suivants 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 de 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 SMDDP bibliothèque.

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

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

  • PyTorch v2.0.1 et versions ultérieures

  • CUDAv11.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 SMDDP bibliothèque

  • 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 SMDDP bibliothèque :

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

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

Les images Docker préinstallées avec la SMDDP bibliothèque ou dans les URLs fichiers SMDDP binaires sont répertoriées sous Supported Frameworks dans la documentation de la SMDDP bibliothèque.

Pour installer la SMDDP bibliothèque sur SageMaker HyperPod DLAMI
  • 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 SMDDP bibliothèque sur un conteneur Docker
  • La SMDDP bibliothèque est préinstallée sur les SageMaker Deep Learning Containers (DLCs). Pour trouver la liste des SageMaker frameworks DLCs compatibles PyTorch avec la SMDDP bibliothèque, consultez la section Frameworks pris en charge dans la documentation de la SMDDP bibliothèque. Vous pouvez également apporter votre propre conteneur Docker avec les dépendances requises installées pour utiliser la SMDDP bibliothèque. Pour en savoir plus sur la configuration d'un conteneur Docker personnalisé pour utiliser la SMDDP bibliothèque, consultez égalementCréez votre propre conteneur Docker avec la bibliothèque de données parallèles SageMaker distribuées.

    Important

    Pour utiliser la SMDDP bibliothèque dans un conteneur Docker, montez le /var/log répertoire depuis la machine hôte /var/log dans 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, voirFormation distribuée avec la bibliothèque de parallélisme de données SageMaker distribuées.

Utilisation SMP sur un SageMaker HyperPod cluster

La bibliothèque SageMaker model parallelism (SMP) propose différentes techniques de parallélisme de 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 typesFP16/BF16et de FP8 données

  • parallélisme tensoriel

La SMP bibliothèque 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 SMP bibliothèque à l'adresse. awsome-distributed-training/3.test_cases/17.SM-modelparallelv2