Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Usa los estimadores del PyTorch framework del SDK de Python SageMaker
Puede lanzar un entrenamiento distribuido añadiendo el distribution argumento a los estimadores del marco de SageMaker IA, PyTorchTensorFlow
- PyTorch
-
Las siguientes opciones de inicio están disponibles para iniciar la formación distribuida. PyTorch
-
pytorchddp— Esta opción ejecutampiruny configura las variables de entorno necesarias para ejecutar la formación PyTorch distribuida en SageMaker IA. Para usar esta opción, pase el siguiente diccionario al parámetrodistribution.{ "pytorchddp": { "enabled": True } } -
torch_distributed— Esta opción ejecutatorchruny configura las variables de entorno necesarias para ejecutar la formación PyTorch distribuida en SageMaker IA. Para usar esta opción, pase el siguiente diccionario al parámetrodistribution.{ "torch_distributed": { "enabled": True } } -
smdistributed— Esta opción también funcionampirun, pero con ellasmddprunse configuran las variables de entorno necesarias para ejecutar la formación PyTorch distribuida en SageMaker IA.{ "smdistributed": { "dataparallel": { "enabled": True } } }
Si opta por sustituir
AllGatherde NCCL porAllGatherde SMDDP, puede utilizar las tres opciones. Seleccione una opción que se adapte a su caso de uso.Si opta por sustituir
AllReducede NCCL porAllReducede SMDDP, debe elegir una de las opciones basadas enmpirun:smdistributedopytorchddp. También puede agregar opciones de MPI adicionales de la siguiente manera.{ "pytorchddp": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } }{ "smdistributed": { "dataparallel": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } } }El siguiente ejemplo de código muestra la estructura básica de un PyTorch estimador con opciones de entrenamiento distribuidas.
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 y sus bibliotecas de utilidades, como Lightning Bolts, no vienen preinstaladas en la IA. SageMaker PyTorch DLCs Cree el siguiente archivo
requirements.txty guárdelo en el directorio de origen donde guarda el script de entrenamiento.# requirements.txt pytorch-lightning lightning-boltsPor ejemplo, el directorio con estructura de árbol debería tener el siguiente aspecto.
├──pytorch_training_launcher_jupyter_notebook.ipynb└── sub-folder-for-your-code ├──adapted-training-script.py└──requirements.txtPara obtener más información sobre cómo especificar el directorio de origen para colocar el
requirements.txtarchivo junto con el guion de entrenamiento y el envío de un trabajo, consulte Uso de bibliotecas de tercerosen la documentación del SDK de Python de Amazon SageMaker AI. Consideraciones para activar las operaciones colectivas de SMDDP y utilizar las opciones del iniciador de entrenamiento distribuido adecuadas
-
Actualmente,
AllReducede SMDDP yAllGatherde SMDDP no son compatibles entre sí. -
AllReducede SMDDP se activa de forma predeterminada cuando se utilizasmdistributedopytorchddp, que son iniciadores basados enmpiruny se utilizaAllGatherde NCCL. -
AllGatherde SMDDP se activa de forma predeterminada cuando se utiliza el iniciador detorch_distributedyAllReducerecurre a NCCL. -
AllGatherde SMDDP también se puede activar cuando se utilizan los iniciadores basados enmpiruncon una variable de entorno adicional configurada de la siguiente manera.export SMDATAPARALLEL_OPTIMIZE_SDP=true
-
- TensorFlow
-
importante
La biblioteca SMDDP dejó de ser compatible con la versión TensorFlow 2.11.0 y ya no estará disponible a partir DLCs de TensorFlow esa fecha. Para encontrar versiones anteriores TensorFlow DLCs con la biblioteca SMDDP instalada, consulte. TensorFlow (no disponible)
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")