Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esegui un training distribuito su un cluster eterogeneo in Amazon AI SageMaker
Tramite l'distributionargomento della ModelTrainer classe SageMaker AI, puoi assegnare un gruppo di istanze specifico per eseguire la formazione distribuita. Ad esempio, supponiamo di avere i seguenti due gruppi di istanze e di voler eseguire un addestramento multi-GPU su uno di essi.
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)
Puoi impostare la configurazione di addestramento distribuito per uno dei gruppi di istanze. Ad esempio, i seguenti esempi di codice mostrano come assegnare training_group_2 con due istanze ml.p3dn.24xlarge alla configurazione di addestramento distribuito.
Nota
Attualmente, è possibile specificare solo un gruppo di istanze di un cluster eterogeneo per la configurazione di distribuzione. In SageMaker AI Python SDK v3, la configurazione Torchrun distribuita non accetta un parametro del gruppo di istanze e si applica a tutte le istanze del processo di formazione.
Con 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() )
Con la libreria parallela di dati AI SageMaker
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() )
Nota
Quando utilizzi la libreria parallela di dati SageMaker AI, assicurati che il gruppo di istanze sia costituito dai tipi di istanze supportati dalla libreria.
Per ulteriori informazioni sulla libreria parallela di dati SageMaker AI, consulta SageMaker AI Data Parallel Training.
Con la libreria parallela del modello 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() )
Per ulteriori informazioni sulla libreria parallela del modello SageMaker AI, vedi SageMaker AI Model Parallel Training.