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-Lightning-Trainingsskript verwenden
Wenn Sie Ihr PyTorch Lightningsmdistributed.dataparallel-Bibliothek, richten Sie die Umgebungsvariablen für PyTorch Lightning so ein, dass sie die vom SageMaker-AI-Trainingstoolkit voreingestellten SageMaker-Umgebungsvariablen akzeptieren, und aktivieren Sie die SMDDP-Bibliothek, indem Sie das Prozessgruppen-Backend auf "smddp" setzen. Um mehr zu erfahren, gehen Sie die folgenden Anweisungen durch, die die Schritte anhand von Codebeispielen aufschlüsseln.
Anmerkung
Die PyTorch Lightning-Unterstützung ist in der SageMaker-AI-Datenparallelbibliothek v1.5.0 und höher verfügbar.
-
Importieren Sie die
pytorch_lightningBibliothek und diesmdistributed.dataparallel.torchModule.import lightning as pl import smdistributed.dataparallel.torch.torch_smddp -
Instanziieren Sie die LightningEnvironment
. from lightning.fabric.plugins.environments.lightning import LightningEnvironment env = LightningEnvironment() env.world_size = lambda: int(os.environ["WORLD_SIZE"]) env.global_rank = lambda: int(os.environ["RANK"]) -
Für PyTorch DDP – Erstellen Sie ein Objekt der Klasse DDPStrategy
mit "smddp"fürprocess_group_backendund"gpu"füracceleratorund übergeben Sie es an die Trainer-Klasse. import lightning as pl from lightning.pytorch.strategies import DDPStrategy ddp = DDPStrategy( cluster_environment=env, process_group_backend="smddp", accelerator="gpu" ) trainer = pl.Trainer( max_epochs=200, strategy=ddp, devices=num_gpus, num_nodes=num_nodes )Für PyTorch FSDP – Erstellen Sie ein Objekt der Klasse FSDPStrategy
(mit der gewünschten Wrapping-Richtlinie ) mit "smddp"fürprocess_group_backendund"gpu"füracceleratorund übergeben Sie es an die Trainer-Klasse. import lightning as pl from lightning.pytorch.strategies import FSDPStrategy from functools import partial from torch.distributed.fsdp.wrap import size_based_auto_wrap_policy policy = partial( size_based_auto_wrap_policy, min_num_params=10000 ) fsdp = FSDPStrategy( auto_wrap_policy=policy, process_group_backend="smddp", cluster_environment=env ) trainer = pl.Trainer( max_epochs=200, strategy=fsdp, devices=num_gpus, num_nodes=num_nodes )
Nachdem Sie die Anpassung Ihres Trainingsskripts abgeschlossen haben, fahren Sie mit Starten von verteilten Trainingsjobs mit dem SageMaker Python SDK fort.
Anmerkung
Wenn Sie einen PyTorch-Schätzer von SageMaker AI konstruieren und in Starten von verteilten Trainingsjobs mit dem SageMaker Python SDK einen Trainingsjob einreichen, müssen Sie requirements.txt angeben, um pytorch-lightning und lightning-bolts im SageMaker-PyTorch-Trainingscontainer zu installieren.
# requirements.txt pytorch-lightning lightning-bolts
Weitere Informationen zur Angabe des Quellverzeichnisses, in dem die requirements.txt Datei zusammen mit Ihrem Trainingsskript und einer Auftragsübermittlung abgelegt werden soll, finden Sie unter Verwenden von Bibliotheken von Drittanbietern