Ejecución del entrenamiento distribuido en un clúster heterogéneo en Amazon SageMaker AI - Amazon SageMaker AI

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.

Ejecución del entrenamiento distribuido en un clúster heterogéneo en Amazon SageMaker AI

Mediante el argumento distribution de la clase de estimador de SageMaker AI, puede asignar un grupo de instancias específico para ejecutar un entrenamiento distribuido. Por ejemplo, supongamos que tiene los dos grupos de instancias siguientes y quiere ejecutar un entrenamiento con varias GPU en uno de ellos.

from sagemaker.instance_group import InstanceGroup instance_group_1 = InstanceGroup("instance_group_1", "ml.c5.18xlarge", 1) instance_group_2 = InstanceGroup("instance_group_2", "ml.p3dn.24xlarge", 2)

Puede establecer la configuración de entrenamiento distribuido para uno de los grupos de instancias. Por ejemplo, en los siguientes ejemplos de código se muestra cómo asignar training_group_2 con dos instancias de ml.p3dn.24xlarge a la configuración de entrenamiento distribuido.

nota

Actualmente, solo se puede especificar un grupo de instancias de un clúster heterogéneo en la configuración de distribución.

Con MPI

PyTorch
from sagemaker.pytorch import PyTorch estimator = PyTorch( ... instance_groups=[instance_group_1, instance_group_2], distribution={ "mpi": { "enabled": True, "processes_per_host": 8 }, "instance_groups": [instance_group_2] } )
TensorFlow
from sagemaker.tensorflow import TensorFlow estimator = TensorFlow( ... instance_groups=[instance_group_1, instance_group_2], distribution={ "mpi": { "enabled": True, "processes_per_host": 8 }, "instance_groups": [instance_group_2] } )

Con la biblioteca paralela de datos de SageMaker AI

PyTorch
from sagemaker.pytorch import PyTorch estimator = PyTorch( ... instance_groups=[instance_group_1, instance_group_2], distribution={ "smdistributed": { "dataparallel": { "enabled": True } }, "instance_groups": [instance_group_2] } )
TensorFlow
from sagemaker.tensorflow import TensorFlow estimator = TensorFlow( ... instance_groups=[instance_group_1, instance_group_2], distribution={ "smdistributed": { "dataparallel": { "enabled": True } }, "instance_groups": [instance_group_2] } )
nota

Cuando utilice la biblioteca paralela de datos de SageMaker AI, asegúrese de que el grupo de instancias esté formado por los tipos de instancias compatibles con la biblioteca.

Para obtener más información sobre la biblioteca paralela de datos de SageMaker AI, consulte SageMaker AI Data Parallel Training.

Con la biblioteca paralela de modelos de SageMaker AI

PyTorch
from sagemaker.pytorch import PyTorch estimator = PyTorch( ... instance_groups=[instance_group_1, instance_group_2], distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # SageMaker AI model parallel parameters } } }, "instance_groups": [instance_group_2] } )
TensorFlow
from sagemaker.tensorflow import TensorFlow estimator = TensorFlow( ... instance_groups=[instance_group_1, instance_group_2], distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # SageMaker AI model parallel parameters } } }, "instance_groups": [instance_group_2] } )

Para obtener más información sobre la biblioteca paralela de modelos de SageMaker AI, consulte SageMaker AI Model Parallel Training.