Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzare gli strumenti di stima del framework PyTorch in SageMaker Python SDK
È possibile avviare l’addestramento distribuito aggiungendo l’argomento distribution agli strumenti di stima del framework di SageMaker AI, PyTorchTensorFlow
- PyTorch
-
Le seguenti opzioni di avvio sono disponibili per avviare l’addestramento distribuito PyTorch.
-
pytorchddp- Questa opzione eseguempirune imposta le variabili di ambiente necessarie per eseguire l’addestramento distribuito PyTorch su SageMaker AI. Per utilizzare questa opzione, passa il seguente dizionario al parametrodistribution.{ "pytorchddp": { "enabled": True } } -
torch_distributed- Questa opzione eseguetorchrune imposta le variabili di ambiente necessarie per eseguire l’addestramento distribuito PyTorch su SageMaker AI. Per utilizzare questa opzione, passa il seguente dizionario al parametrodistribution.{ "torch_distributed": { "enabled": True } } -
smdistributed- Anche questa opzione eseguempirun, ma consmddprunche imposta le variabili di ambiente necessarie per eseguire l’addestramento distribuito PyTorch su SageMaker AI.{ "smdistributed": { "dataparallel": { "enabled": True } } }
Se si sceglie di sostituire
AllGatherNCCL conAllGatherSMDDP, è possibile utilizzare tutte le tre opzioni. Scegli un’opzione adatta al tuo caso d’uso.Se hai scelto di sostituire
AllReduceNCCL conAllReduceSMDDP, devi scegliere una delle opzioni basate sumpirun:smdistributedopytorchddp. Puoi anche aggiungere ulteriori opzioni MPI come segue.{ "pytorchddp": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } }{ "smdistributed": { "dataparallel": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } } }Il seguente esempio di codice mostra la struttura di base di uno strumento di stima PyTorch con opzioni di addestramento distribuito.
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")Nota
PyTorch Lightning e le sue librerie di utilità come Lightning Bolts non sono preinstallate nei Container DL PyTorch di SageMaker AI. Crea il seguente file
requirements.txte salvalo nella directory di origine in cui salvi lo script di addestramento.# requirements.txt pytorch-lightning lightning-boltsAd esempio, la struttura di directory deve essere simile alla seguente:
├──pytorch_training_launcher_jupyter_notebook.ipynb└── sub-folder-for-your-code ├──adapted-training-script.py└──requirements.txtPer ulteriori informazioni su come specificare la directory di origine in cui inserire il file
requirements.txtinsieme allo script di addestramento e all’invio di un processo, consulta Using third-party librariesnella documentazione di Amazon SageMaker AI Python SDK. Considerazioni sull’attivazione delle operazioni collettive SMDDP e sull’utilizzo delle opzioni idonee di avvio dell’addestramento distribuito
-
AllReduceeAllGatherSMDDP non sono attualmente compatibili tra loro. -
AllReduceSMDDP è attivato per impostazione predefinita in caso di utilizzo dismdistributedopytorchddp, ovvero programmi di avvio basati sumpirun, e viene utilizzata l’operazioneAllGatherNCCL. -
L’operazione
AllGatherSMDDP è attivata per impostazione predefinita in caso di utilizzo del programma di avviotorch_distributedeAllReducericorre a NCCL. -
È possibile attivare
AllGatherSMDDP anche in caso di utilizzo dei programmi di avvio basati sumpiruncon una variabile di ambiente aggiuntiva impostata come segue.export SMDATAPARALLEL_OPTIMIZE_SDP=true
-
- TensorFlow
-
Importante
La libreria SMDDP ha interrotto il supporto per TensorFlow e non è più disponibile nei Container DL per le versioni di TensorFlow successive alla 2.11.0. Per trovare i precedenti Container DL TensorFlow con la libreria SMDDP installata, consulta TensorFlow (obsoleto).
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")