View a markdown version of this page

Verwenden Sie die SMDDP-Bibliothek in Ihrem Trainingsskript PyTorch - 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.

Verwenden Sie die SMDDP-Bibliothek in Ihrem Trainingsskript PyTorch

Ausgehend von der SMDDP-Bibliothek ( SageMaker AI Distributed Data Parallelism) v1.4.0 können Sie die Bibliothek als Backend-Option für das verteilte Paket verwenden. PyTorch Um die SMDDP AllReduce - und AllGather kollektiven Operationen zu verwenden, müssen Sie nur die SMDDP-Bibliothek zu Beginn Ihres Trainingsskripts importieren und SMDDP während 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-based verteilte Trainingspakete verwendet werden kann: PyTorch Distributed Data Parallel (DDP), PyTorch Fully Sharded Data Parallelism (FSDP) und. DeepSpeed Megatron-DeepSpeed

PyTorch Für 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 NCCL und Gloo verwenden.

DeepSpeed Für 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 verteilter Trainingsjobs mit SMDDP mithilfe des SageMaker Python-SDK zu verwenden, müssen Sie außerdem die folgende Umgebungsvariable in Ihrem Trainingsskript festlegen.

export SMDATAPARALLEL_OPTIMIZE_SDP=true

Allgemeine Anleitungen zum Schreiben eines PyTorch FSDP-Trainingsskripts finden Sie in der Dokumentation unter Advanced Model Training with Fully Sharded Data Parallel (FSDP). PyTorch

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

Nachdem Sie die Anpassung Ihres Trainingsskripts abgeschlossen haben, fahren Sie mit Starten verteilter Trainingsjobs mit SMDDP mithilfe des SageMaker Python-SDK fort.