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.
PyTorch-Framework-Schätzer im SageMaker Python SDK verwenden
Sie können das verteilte Training starten, indem Sie das distribution-Argument zu den Framework-Schätzern von SageMaker AI, PyTorchTensorFlow
- PyTorch
-
Die folgenden Launcher-Optionen sind für den Start von verteiltem PyTorch-Training verfügbar.
-
pytorchddp– Diese Option führtmpirunaus und richtet Umgebungsvariablen ein, die für die Ausführung von verteiltem PyTorch-Training auf SageMaker AI benötigt werden. Um diese Option zu verwenden, übergeben Sie das folgende Wörterbuch an den Parameterdistribution.{ "pytorchddp": { "enabled": True } } -
torch_distributed– Diese Option führttorchrunaus und richtet Umgebungsvariablen ein, die für die Ausführung von verteiltem PyTorch-Training auf SageMaker AI benötigt werden. Um diese Option zu verwenden, übergeben Sie das folgende Wörterbuch an den Parameterdistribution.{ "torch_distributed": { "enabled": True } } -
smdistributed– Diese Option führt ebenfallsmpirunaus, allerdings mitsmddprunzur Einrichtung von Umgebungsvariablen, die für die Ausführung von verteiltem PyTorch-Training auf SageMaker AI benötigt werden.{ "smdistributed": { "dataparallel": { "enabled": True } } }
Wenn Sie NCCL
AllGatherdurch SMDDPAllGatherersetzen möchten, können Sie alle drei Optionen verwenden. Wählen Sie eine Option aus, die zu Ihrem Anwendungsfall passt.Wenn Sie NCCL
AllReducedurch SMDDPAllReduceersetzen möchten, sollten Sie eine dermpirun-basierten Optionen wählen:smdistributedoderpytorchddp. Sie können auch 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 Hilfsbibliotheken wie Lightning Bolts sind in den PyTorch-DLCs von SageMaker AI nicht vorinstalliert. Erstellen Sie die folgende
requirements.txtDatei und speichern Sie sie in dem Quellverzeichnis, in dem Sie das Trainingsskript speichern.# requirements.txt pytorch-lightning lightning-boltsDie Verzeichnisstruktur sollte wie folgt aussehen:
├──pytorch_training_launcher_jupyter_notebook.ipynb└── sub-folder-for-your-code ├──adapted-training-script.py└──requirements.txtWeitere Informationen zur Angabe des Quellverzeichnisses, in dem die
requirements.txtDatei zusammen mit Ihrem Trainingsskript und einer Auftragsübermittlung abgelegt werden soll, finden Sie unter Verwenden von Bibliotheken von Drittanbieternin der Dokumentation zum Amazon SageMaker AI Python SDK. Überlegungen zur Aktivierung kollektiver SMDDP-Operationen und zur Verwendung der richtigen Launcher-Optionen für verteiltes Training
-
SMDDP
AllReduceund SMDDPAllGathersind derzeit nicht miteinander kompatibel. -
SMDDP
AllReduceist standardmäßig aktiviert, wenn diempirun-basierten Launchersmdistributedoderpytorchddpund NCCLAllGatherverwendet werden. -
SMDDP
AllGatherist standardmäßig aktiviert, wenn dertorch_distributed-Launcher verwendet wird undAllReduceauf NCCL zurückgreift. -
SMDDP
AllGatherkann 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 TensorFlow eingestellt und ist in DLCs für TensorFlow ab Version 2.11.0 nicht mehr verfügbar. Frühere 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.pySageMakerRole", 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.16xlargeinstance_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")