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 PyTorch Framework-Schätzer im SageMaker Python-SDK
Sie können ein verteiltes Training starten, indem Sie das distribution
Argument zu den SageMaker KI-Framework-Schätzern hinzufügen, PyTorch
TensorFlow
- PyTorch
-
Die folgenden Launcher-Optionen sind für den Start von verteilten Schulungen verfügbar. PyTorch
-
pytorchddp
— Diese Option führt Umgebungsvariablen ausmpirun
und richtet sie ein, die für die Durchführung PyTorch verteilter Schulungen auf SageMaker KI erforderlich sind. Um diese Option zu verwenden, übergeben Sie das folgende Wörterbuch an dendistribution
Parameter.{ "pytorchddp": { "enabled": True } }
-
torch_distributed
— Diese Option führt Umgebungsvariablen austorchrun
und richtet sie ein, die für die Durchführung PyTorch verteilter Schulungen auf SageMaker KI benötigt werden. Um diese Option zu verwenden, übergeben Sie das folgende Wörterbuch an dendistribution
Parameter.{ "torch_distributed": { "enabled": True } }
-
smdistributed
— Diese Option läuft ebenfallssmddprun
, richtetmpirun
aber damit Umgebungsvariablen ein, die für die Durchführung von PyTorch verteiltem Training auf SageMaker KI benötigt werden.{ "smdistributed": { "dataparallel": { "enabled": True } } }
Wenn Sie NCCL
AllGather
durch SMDDP ersetzen möchtenAllGather
, können Sie alle drei Optionen verwenden. Wählen Sie eine Option, die zu Ihrem Anwendungsfall passt.Wenn Sie NCCL
AllReduce
durch SMDDP ersetzen möchtenAllReduce
, sollten Sie eine der folgenden Optionen wählen: odermpirun
.smdistributed
pytorchddp
Sie können auch wie folgt zusätzliche MPI-Optionen hinzufügen.{ "pytorchddp": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } }
{ "smdistributed": { "dataparallel": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } } }
Das folgende Codebeispiel zeigt die grundlegende Struktur eines PyTorch Schätzers mit verteilten Trainingsoptionen.
from sagemaker.pytorch import PyTorch pt_estimator = PyTorch( base_job_name="
training_job_name_prefix
", source_dir="subdirectory-to-your-code
", entry_point="adapted-training-script.py
", role="SageMakerRole
", py_version="py310
", framework_version="2.0.1
", # For running a multi-node distributed training job, specify a value greater than 1 # Example: 2,3,4,..8 instance_count=2
, # Instance types supported by the SageMaker AI data parallel library: # ml.p4d.24xlarge, ml.p4de.24xlarge instance_type="ml.p4d.24xlarge
", # Activate distributed training with SMDDP distribution={ "pytorchddp": { "enabled": True } } # mpirun, activates SMDDP AllReduce OR AllGather # distribution={ "torch_distributed": { "enabled": True } } # torchrun, activates SMDDP AllGather # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } # mpirun, activates SMDDP AllReduce OR AllGather ) pt_estimator.fit("s3://bucket/path/to/training/data
")Anmerkung
PyTorch Lightning und seine Utility-Bibliotheken wie Lightning Bolts sind in der SageMaker KI nicht vorinstalliert. PyTorch DLCs Erstellen Sie die folgende
requirements.txt
Datei und speichern Sie sie in dem Quellverzeichnis, in dem Sie das Trainingsskript speichern.# requirements.txt pytorch-lightning lightning-bolts
Die Verzeichnisstruktur sollte wie folgt aussehen:
├──
pytorch_training_launcher_jupyter_notebook.ipynb
└── sub-folder-for-your-code ├──adapted-training-script.py
└──requirements.txt
Weitere Informationen zur Angabe des Quellverzeichnisses, in dem die
requirements.txt
Datei zusammen mit Ihrem Schulungsskript und einer Jobübermittlung platziert werden soll, finden Sie unter Verwenden von Bibliotheken von Drittanbieternin der Amazon SageMaker AI Python SDK-Dokumentation. Überlegungen zur Aktivierung von SMDDP-Gruppenoperationen und zur Verwendung der richtigen Optionen für den verteilten Trainingsstarter
-
SMDDP
AllReduce
und SMDDPAllGather
sind derzeit nicht miteinander kompatibel. -
SMDDP
AllReduce
ist standardmäßig aktiviert, wenn Sie aufsmdistributed
odermpirun
basierende Launcher verwendenpytorchddp
und NCCL verwendet wird.AllGather
-
SMDDP
AllGather
ist standardmäßig aktiviert, wenn dertorch_distributed
Launcher verwendet wird, und es wird auf NCCL zurückgegriffen.AllReduce
-
SMDDP
AllGather
kann auch aktiviert werden, wenn diempirun
basierten Launcher mit einer zusätzlichen Umgebungsvariablen wie folgt verwendet werden.export SMDATAPARALLEL_OPTIMIZE_SDP=true
-
- TensorFlow
-
Wichtig
Die SMDDP-Bibliothek hat die Unterstützung für Versionen ab Version 2.11.0 eingestellt TensorFlow und ist ab Version 2.11.0 nicht mehr verfügbar. DLCs TensorFlow Frühere Versionen TensorFlow DLCs mit installierter SMDDP-Bibliothek finden Sie unter. TensorFlow (veraltet)
from sagemaker.tensorflow import TensorFlow tf_estimator = TensorFlow( base_job_name = "
training_job_name_prefix
", entry_point="
", role="adapted-training-script.py
SageMakerRole
", framework_version="2.11.0
", py_version="py38
", # For running a multi-node distributed training job, specify a value greater than 1 # Example: 2,3,4,..8 instance_count=2
, # Instance types supported by the SageMaker AI data parallel library: #ml.p4d.24xlarge
,ml.p3dn.24xlarge
, andml.p3.16xlarge
instance_type="ml.p3.16xlarge
", # Training using the SageMaker AI data parallel distributed training strategy distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } ) tf_estimator.fit("s3://bucket/path/to/training/data
")