Organisez une formation distribuée sur un cluster hétérogène sur Amazon SageMaker - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Organisez une formation distribuée sur un cluster hétérogène sur Amazon SageMaker

Grâce à l'distributionargument de la classe d' SageMaker estimateur, vous pouvez attribuer un groupe d'instances spécifique pour exécuter une formation distribuée. Supposons, par exemple, que vous disposiez des deux groupes d'instances suivants et que vous souhaitiez exécuter un GPU entraînement multiple sur l'un d'entre eux.

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)

Vous pouvez définir la configuration d'entraînement distribuée pour l'un des groupes d'instances. Par exemple, les exemples de code suivants montrent comment attribuer training_group_2 avec deux instances ml.p3dn.24xlarge à la configuration d'entraînement distribuée.

Note

Actuellement, un seul groupe d'instances d'un cluster hétérogène peut être spécifié dans la configuration de distribution.

Avec 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] } )

Avec la bibliothèque SageMaker data parallel

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] } )
Note

Lorsque vous utilisez la bibliothèque SageMaker data parallel, assurez-vous que le groupe d'instances comprend les types d'instances pris en charge par la bibliothèque.

Pour plus d'informations sur la bibliothèque SageMaker Data Parallel, consultez SageMaker Data Parallel Training.

Avec la bibliothèque SageMaker model parallel

PyTorch
from sagemaker.pytorch import PyTorch estimator = PyTorch( ... instance_groups=[instance_group_1, instance_group_2], distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # SageMaker 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 model parallel parameters } } }, "instance_groups": [instance_group_2] } )

Pour plus d'informations sur la bibliothèque SageMaker Model Parallel, consultez SageMaker Model Parallel Training.