Utilisez la SMDDP bibliothèque dans votre script PyTorch d'entraînement - 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.

Utilisez la SMDDP bibliothèque dans votre script PyTorch d'entraînement

À partir de la bibliothèque de parallélisme de données SageMaker distribué (SMDDP) v1.4.0, vous pouvez utiliser la bibliothèque comme option de backend pour le package distribué. PyTorch Pour utiliser SMDDP AllReduce les opérations AllGather collectives, il vous suffit d'importer la SMDDP bibliothèque au début de votre script de formation et de la définir SMDDP comme backend des modules PyTorch distribués lors de l'initialisation du groupe de processus. Avec une seule ligne de spécification du backend, vous pouvez conserver tous les modules PyTorch distribués natifs et l'intégralité du script de formation inchangés. Les extraits de code suivants montrent comment utiliser la SMDDP bibliothèque en tant que backend de packages de formation PyTorch distribués : distributed PyTorch data parallel (DDP), PyTorch fully sharded data parallelism (FSDP) et Megatron-. DeepSpeedDeepSpeed

Pour PyTorch DDP ou FSDP

Initialisez le groupe de processus comme suit.

import torch.distributed as dist import smdistributed.dataparallel.torch.torch_smddp dist.init_process_group(backend="smddp")
Note

(Pour les PyTorch DDP tâches uniquement) Le smddp backend ne prend actuellement pas en charge la création de groupes de sous-processus avec le. torch.distributed.new_group() API Vous ne pouvez pas non plus utiliser le smddp backend simultanément avec d'autres backends de groupes de processus tels que et. NCCL Gloo

Pour DeepSpeed ou Megatron- DeepSpeed

Initialisez le groupe de processus comme suit.

import deepspeed import smdistributed.dataparallel.torch.torch_smddp deepspeed.init_distributed(dist_backend="smddp")
Note

Pour l'utiliser SMDDP AllGather avec les lanceurs mpirun basés (smdistributedetpytorchddp)Lancement de tâches de formation distribuées à SMDDP l'aide de SageMaker Python SDK, vous devez également définir la variable d'environnement suivante dans votre script d'entraînement.

export SMDATAPARALLEL_OPTIMIZE_SDP=true

Pour obtenir des conseils généraux sur la rédaction d'un script d' PyTorch FSDPentraînement, voir Advanced Model Training with Fully Sharded Data Parallel (FSDP) dans la PyTorch documentation.

Pour obtenir des conseils généraux sur la rédaction d'un script de PyTorch DDP formation, consultez Getting started with distributed data parallel dans la PyTorch documentation.

Une fois que vous avez terminé d'adapter votre scénario d'entraînement, passez à Lancement de tâches de formation distribuées à SMDDP l'aide de SageMaker Python SDK.