As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Execute treinamento distribuído em um cluster heterogêneo no Amazon AI SageMaker
Por meio do distribution argumento da ModelTrainer classe SageMaker AI, você pode designar um grupo de instâncias específico para executar o treinamento distribuído. Por exemplo, suponha que você tenha os dois grupos de instâncias a seguir e queira executar um treinamento com várias GPUs em um deles.
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)
Você pode definir a configuração de treinamento distribuído para um dos grupos de instâncias. Por exemplo, os exemplos de código a seguir mostram como atribuir training_group_2 com duas instâncias ml.p3dn.24xlarge à configuração de treinamento distribuído.
nota
Atualmente, somente um grupo de instâncias de um cluster heterogêneo pode ser especificado para a configuração de distribuição. No SageMaker AI Python SDK v3, a configuração Torchrun distribuída não aceita um parâmetro de grupo de instâncias e se aplica a todas as instâncias no trabalho de treinamento.
Com 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() )
Com a biblioteca paralela de dados de 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() )
nota
Ao usar a biblioteca paralela de dados da SageMaker IA, verifique se o grupo de instâncias consiste nos tipos de instância compatíveis com a biblioteca.
Para obter mais informações sobre a SageMaker biblioteca paralela de dados de SageMaker IA, consulte Treinamento paralelo de dados de IA.
Com a biblioteca paralela de modelos de 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() )
Para obter mais informações sobre a SageMaker biblioteca paralela de modelos de SageMaker IA, consulte Treinamento paralelo de modelos de IA.