View a markdown version of this page

Execute treinamento distribuído em um cluster heterogêneo no Amazon AI SageMaker - SageMaker IA da Amazon

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.train import ModelTrainer from 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.train import ModelTrainer from 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.train import ModelTrainer from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ... instance_groups=[instance_group_1, instance_group_2], distributed=Torchrun() )

TensorFlow

from sagemaker.train import ModelTrainer from 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.train import ModelTrainer from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ... instance_groups=[instance_group_1, instance_group_2], distributed=Torchrun() )

TensorFlow

from sagemaker.train import ModelTrainer from 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.