Organisation de l’entraînement distribué sur un cluster hétérogène dans Amazon SageMaker AI - Amazon SageMaker AI

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.

Organisation de l’entraînement distribué sur un cluster hétérogène dans Amazon SageMaker AI

À travers l’argument distribution de la classe d’estimateur SageMaker AI, vous pouvez affecter un groupe d’instances spécifique pour exécuter des formations distribuées. Supposons, par exemple, que vous possédez les deux groupes d’instances suivants et que vous souhaitiez exécuter une formation sur multiple processeurs graphiques à 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 de données parallèles 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] } )
Note

Lorsque vous utilisez la bibliothèque de données parallèles de SageMaker AI, assurez-vous que le groupe d’instances est composé de types d’instances pris en charge par la bibliothèque.

Pour plus d’informations sur la bibliothèque de données parallèles de SageMaker AI, consultez Entraînement sur les données parallèles de SageMaker AI.

Avec la bibliothèque de modèles parallèles 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] } )

Pour plus d’informations sur la bibliothèque de modèles parallèles de SageMaker AI, consultez Entraînement de modèles parallèles SageMaker AI.