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 des formations distribuées sur un cluster hétérogène dans Amazon AI SageMaker
Grâce à l'distributionargument de la ModelTrainer classe SageMaker AI, vous pouvez attribuer un groupe d'instances spécifique pour exécuter une formation distribuée. 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. Dans le SDK SageMaker AI Python v3, la configuration Torchrun distribuée n'accepte aucun paramètre de groupe d'instances et s'applique à toutes les instances de la tâche de formation.
Avec MPI
PyTorch
from sagemaker.trainimportModelTrainerfrom sagemaker.train.distributed import Torchrun # Note: In v3, Torchrun does not support scoping to a specific instance group. # It applies to all instances in the training job. Use instance_groups with # Channel/S3DataSource to control which group receives training data. model_trainer =ModelTrainer( ... instance_groups=[instance_group_1,instance_group_2], distributed=Torchrun() )
TensorFlow
from sagemaker.trainimportModelTrainerfrom sagemaker.train.distributed import Torchrun # Note: In v3, Torchrun does not support scoping to a specific instance group. # It applies to all instances in the training job. Use instance_groups with # Channel/S3DataSource to control which group receives training data. model_trainer =ModelTrainer( ... instance_groups=[instance_group_1,instance_group_2], distributed=Torchrun() )
Avec la bibliothèque parallèle de données SageMaker AI
PyTorch
from sagemaker.trainimportModelTrainerfrom sagemaker.train.distributed import Torchrun model_trainer =ModelTrainer( ... instance_groups=[instance_group_1,instance_group_2], distributed=Torchrun() )
TensorFlow
from sagemaker.trainimportModelTrainerfrom sagemaker.train.distributed import Torchrun model_trainer =ModelTrainer( ... instance_groups=[instance_group_1,instance_group_2], distributed=Torchrun() )
Note
Lorsque vous utilisez la bibliothèque parallèle de données SageMaker AI, 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 parallèle de données SageMaker AI, voir SageMaker AI Data Parallel Training.
Avec la bibliothèque parallèle de modèles d' SageMaker IA
PyTorch
from sagemaker.trainimportModelTrainerfrom sagemaker.train.distributed import Torchrun model_trainer =ModelTrainer( ... instance_groups=[instance_group_1,instance_group_2], distributed=Torchrun() )
TensorFlow
from sagemaker.trainimportModelTrainerfrom sagemaker.train.distributed import Torchrun model_trainer =ModelTrainer( ... instance_groups=[instance_group_1,instance_group_2], distributed=Torchrun() )
Pour plus d'informations sur la bibliothèque parallèle de modèles d' SageMaker IA, consultez la section Entraînement parallèle des modèles d'SageMaker IA.