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à.
Usa gli stimatori del PyTorch framework nell'SDK SageMaker Python
Puoi avviare un corso di formazione distribuito aggiungendo l'distributionargomento agli estimatori del framework SageMaker AI oppure. PyTorchTensorFlow
- PyTorch
-
Le seguenti opzioni di avvio sono disponibili per avviare la formazione distribuita. PyTorch
-
pytorchddp— Questa opzione eseguempirune imposta le variabili di ambiente necessarie per eseguire la formazione PyTorch distribuita sull' SageMaker intelligenza artificiale. Per utilizzare questa opzione, passate il seguente dizionario aldistributionparametro.{ "pytorchddp": { "enabled": True } } -
torch_distributed— Questa opzione eseguetorchrune imposta le variabili di ambiente necessarie per eseguire l'addestramento PyTorch distribuito sull' SageMaker intelligenza artificiale. Per utilizzare questa opzione, passate il seguente dizionario aldistributionparametro.{ "torch_distributed": { "enabled": True } } -
smdistributed— Anche questa opzione funzionampirun, ma insieme asmddprunciò imposta le variabili di ambiente necessarie per eseguire l'addestramento PyTorch distribuito sull' SageMaker intelligenza artificiale.{ "smdistributed": { "dataparallel": { "enabled": True } } }
Se hai scelto di sostituire NCCL
AllGathercon SMDDPAllGather, puoi utilizzare tutte e tre le opzioni. Scegliete un'opzione adatta al vostro caso d'uso.Se avete scelto di sostituire NCCL
AllReducecon SMDDPAllReduce, dovreste scegliere una delle opzioni dimpirunbase: o.smdistributedpytorchddpÈ inoltre possibile 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 PyTorch stimatore con opzioni di formazione distribuite.
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 nell'IA. SageMaker PyTorch DLCs 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
requirements.txtfile insieme allo script di formazione e all'invio di un lavoro, consulta la sezione Utilizzo di librerie di terze parti nella documentazionedi Amazon AI SageMaker Python SDK. Considerazioni sull'attivazione delle operazioni collettive SMDDP e sull'utilizzo delle giuste opzioni di avvio della formazione distribuita
-
SMDDP
AllReduceeAllGatherSMDDP non sono attualmente compatibili tra loro. -
SMDDP
AllReduceè attivato per impostazione predefinita quando si utilizzanosmdistributedorpytorchddp, che sonompirunlanciatori basati su NCCL.AllGather -
SMDDP
AllGatherè attivato per impostazione predefinita quando si utilizzatorch_distributedil programma di avvio e ricorre a NCCL.AllReduce -
SMDDP
AllGatherpuò essere attivato anche quando si utilizzano i launchermpirunbasati su una variabile di ambiente aggiuntiva impostata come segue.export SMDATAPARALLEL_OPTIMIZE_SDP=true
-
- TensorFlow
-
Importante
La libreria SMDDP ha interrotto il supporto TensorFlow e non è più disponibile nelle versioni successive alla v2.11.0. DLCs TensorFlow Per trovare le versioni precedenti TensorFlow DLCs con la libreria SMDDP installata, vedere. TensorFlow (obsoleta)
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")