Verwenden Sie die SMDDP-Bibliothek in Ihrem Trainingsskript PyTorch - Amazon SageMaker

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.

Verwenden Sie die SMDDP-Bibliothek in Ihrem Trainingsskript PyTorch

Ausgehend von der SageMaker Distributed Data Parallelism (SMDDP) -Bibliothek v1.4.0 können Sie die Bibliothek als Backend-Option für das verteilte Paket verwenden. PyTorch Um SMDDP AllReduce und AllGather Collective Operations zu verwenden, müssen Sie die SMDDP-Bibliothek nur zu Beginn Ihres Trainingsskripts importieren und SMDDP bei der Prozessgruppeninitialisierung als Backend für verteilte Module festlegen. PyTorch Mit der einzigen Zeile der Backend-Spezifikation können Sie alle nativen PyTorch verteilten 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) und Megatron-. DeepSpeedDeepSpeed

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 das Erstellen von Unterprozessgruppen mit der API. torch.distributed.new_group() Sie können das smddp Backend auch nicht gleichzeitig mit anderen Prozessgruppen-Backends wie und verwenden. NCCL Gloo

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 installierten mpirun Launchern (smdistributedundpytorchddp) zu verwendenSchritt 2: Starten Sie einen verteilten Trainingsjob mit dem SageMaker Python-SDK, 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 in der Dokumentation unter Advanced Model Training with Fully Sharded Data Parallel (FSDP). PyTorch

Allgemeine Hinweise zum Schreiben eines PyTorch DDP-Trainingsskripts finden Sie in der PyTorch Dokumentation unter Erste Schritte mit verteilten Daten parallel.

Nachdem Sie die Anpassung Ihres Trainingsskripts abgeschlossen haben, fahren Sie mit Schritt 2: Starten Sie einen verteilten Trainingsjob mit dem SageMaker Python-SDK fort.