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 en Python SageMaker SDK
Puede lanzar un entrenamiento distribuido añadiendo el distribution
argumento a los estimadores del SageMaker marco, PyTorch
TensorFlow
- PyTorch
-
Las siguientes opciones de inicio están disponibles para iniciar la formación distribuida. PyTorch
-
pytorchddp
— Esta opción ejecutampirun
y configura las variables de entorno necesarias para ejecutar la formación PyTorch distribuida. SageMaker Para usar esta opción, pase el siguiente diccionario aldistribution
parámetro.{ "pytorchddp": { "enabled": True } }
-
torch_distributed
— Esta opción ejecutatorchrun
y configura las variables de entorno necesarias para ejecutar el entrenamiento PyTorch distribuido SageMaker. Para usar esta opción, pase el siguiente diccionario aldistribution
parámetro.{ "torch_distributed": { "enabled": True } }
-
smdistributed
— Esta opción también se ejecutampirun
, pero consmddprun
ella se configuran las variables de entorno necesarias para ejecutar el entrenamiento PyTorch distribuido SageMaker.{ "smdistributed": { "dataparallel": { "enabled": True } } }
Si opta por sustituir NCCL
AllGather
a SMDDPAllGather
, puede utilizar las tres opciones. Elige una opción que se adapte a tu caso de uso.Si opta por NCCL
AllReduce
reemplazar por SMDDPAllReduce
, debe elegir una de las opcionesmpirun
basadas:smdistributed
opytorchddp
. También puede añadir MPI opciones 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 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 están preinstaladas en el. SageMaker PyTorch DLCs Cree el siguiente archivo
requirements.txt
y guárdelo en el directorio de origen donde guarda el script de entrenamiento.# requirements.txt pytorch-lightning lightning-bolts
Por 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.txt
Para obtener más información sobre cómo especificar el directorio de origen para colocar el
requirements.txt
archivo junto con el guion de formación y el envío de un trabajo, consulte Uso de bibliotecas de tercerosen la SDKdocumentación de Amazon SageMaker Python. Consideraciones para activar las operaciones SMDDP colectivas y utilizar las opciones adecuadas de un lanzador de formación distribuido
-
SMDDP
AllReduce
y no SMDDPAllGather
son compatibles entre sí en la actualidad. -
SMDDP
AllReduce
se activa por defecto cuando se utilizasmdistributed
opytorchddp
, que son lanzadoresmpirun
basados en, y NCCLAllGather
se utiliza. -
SMDDP
AllGather
se activa de forma predeterminada cuando se utiliza eltorch_distributed
lanzador y vuelveAllReduce
a. NCCL -
SMDDP
AllGather
también se puede activar cuando se utilizan los lanzadoresmpirun
basados con una variable de entorno adicional configurada de la siguiente manera.export SMDATAPARALLEL_OPTIMIZE_SDP=true
-
- TensorFlow
-
importante
La SMDDP biblioteca dejó de ser compatible con la TensorFlow versión 2.11.0 y ya no estará disponible a DLCs partir TensorFlow de esa fecha. Para buscar versiones anteriores TensorFlow DLCs con la SMDDP biblioteca 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.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 data parallel library: #ml.p4d.24xlarge
,ml.p3dn.24xlarge
, andml.p3.16xlarge
instance_type="ml.p3.16xlarge
", # Training using the SageMaker data parallel distributed training strategy distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } ) tf_estimator.fit("s3://bucket/path/to/training/data
")