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 PyTorch Lightning-Trainingsskript
Wenn Sie Ihr PyTorch smdistributed.dataparallel Bibliothek, richten Sie die Umgebungsvariablen ein, damit PyTorch Lightning die vom SageMaker Schulungs-Toolkit voreingestellten SageMaker KI-Umgebungsvariablen akzeptiert, und aktivieren Sie die SMDDP-Bibliothek, indem Sie das Prozessgruppen-Backend auf einstellen. "smddp" 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 Data Parallel Library 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 https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.strategies.DDPStrategy.html
DDPStrategy-Klasse mit "smddp"forprocess_group_backendund"gpu"foracceleratorund übergeben Sie es an die Trainer-Klasse. https://pytorch-lightning.readthedocs.io/en/stable/common/trainer.htmlimport 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 https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.strategies.FSDPStrategy.html
FSDPStrategy-Klasse (mit einer gewünschten Wrapping-Richtlinie ) mit "smddp"fürprocess_group_backendund"gpu"für und übergeben Sie es an dieacceleratorTrainer-Klasse. https://pytorch-lightning.readthedocs.io/en/stable/common/trainer.htmlimport 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 verteilter Trainingsjobs mit SMDDP mithilfe des SageMaker Python-SDK fort.
Anmerkung
Wenn Sie eine SageMaker KI konstruieren PyTorch ModelTrainer und eine Anfrage für einen Schulungsauftrag einreichen, müssen Sie angeben Starten verteilter Trainingsjobs mit SMDDP mithilfe des SageMaker Python-SDKrequirements.txt, ob pytorch-lightning und lightning-bolts in dem SageMaker PyTorch AI-Trainingscontainer installiert sind.
# 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 platziert werden soll, finden Sie in der Amazon SageMaker AI Python SDK-Dokumentation