Die SMDDP-Bibliothek in Ihrem PyTorch-Trainingsskript verwenden - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die SMDDP-Bibliothek in Ihrem PyTorch-Trainingsskript verwenden

In der SMDDP-Bibliothek (SageMaker AI Distributed Data Parallelism) v1.4.0 und höher können Sie die Bibliothek als Backend-Option für das verteilte PyTorch-Paket verwenden. Um die kollektiven AllReduce- und AllGather-Operationen der SMDDP zu verwenden, müssen Sie nur die SMDDP-Bibliothek zu Beginn Ihres Trainingsskripts importieren und SMDDP während der Prozessgruppeninitialisierung als Backend der verteilten PyTorch-Module festlegen. Mit der einzigen Zeile der Backend-Spezifikation können Sie alle nativen verteilten PyTorch-Module und das gesamte Trainingsskript unverändert lassen. Die folgenden Codefragmente zeigen, wie die SMDDP-Bibliothek als Backend für PyTorch-basierte verteilte Trainingspakete verwendet wird: PyTorch Distributed Data Parallel (DDP), PyTorch Fully Sharded Data Parallelism (FSDP), DeepSpeed und Megatron-DeepSpeed.

Für PyTorch DDP oder FSDP

Initialisieren Sie die Prozessgruppe wie folgt.

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

(Nur für PyTorch-DDP-Jobs) Das smddp-Backend unterstützt derzeit nicht die Erstellung von Unterprozessgruppen mit der torch.distributed.new_group()-API. Sie können das smddp-Backend auch nicht gleichzeitig mit anderen Prozessgruppen-Backends wie NCCL und Gloo verwenden.

Für DeepSpeed oder Megatron-DeepSpeed

Initialisieren Sie die Prozessgruppe wie folgt.

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

Um SMDDP AllGather mit den mpirun-basierten Launchern (smdistributed und pytorchddp) in Starten von verteilten Trainingsjobs mit dem SageMaker Python SDK zu verwenden, müssen Sie außerdem die folgende Umgebungsvariable in Ihrem Trainingsskript festlegen.

export SMDATAPARALLEL_OPTIMIZE_SDP=true

Allgemeine Hinweise zum Schreiben eines PyTorch-FSDP-Trainingsskripts finden Sie unter Erweitertes Modelltraining mit Fully Sharded Data Parallel (FSDP) in der PyTorch-Dokumentation.

Allgemeine Hinweise zum Schreiben eines PyTorch-DDP-Trainingsskripts finden Sie unter Erste Schritte mit der Parallelität verteilter Daten in der PyTorch-Dokumentation.

Nachdem Sie die Anpassung Ihres Trainingsskripts abgeschlossen haben, fahren Sie mit Starten von verteilten Trainingsjobs mit dem SageMaker Python SDK fort.