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á.
Use os estimadores da PyTorch estrutura no SDK do Python SageMaker
Você pode iniciar o treinamento distribuído adicionando o distribution
argumento aos estimadores da estrutura de SageMaker IA ou. PyTorch
TensorFlow
- PyTorch
-
As seguintes opções de lançador estão disponíveis para iniciar o treinamento PyTorch distribuído.
-
pytorchddp
— Essa opção executampirun
e configura as variáveis de ambiente necessárias para executar o treinamento PyTorch distribuído em SageMaker IA. Para usar essa opção, transfira o seguinte dicionário para o parâmetrodistribution
:{ "pytorchddp": { "enabled": True } }
-
torch_distributed
— Essa opção executatorchrun
e configura as variáveis de ambiente necessárias para executar o treinamento PyTorch distribuído em SageMaker IA. Para usar essa opção, transfira o seguinte dicionário para o parâmetrodistribution
:{ "torch_distributed": { "enabled": True } }
-
smdistributed
— Essa opção também é executadampirun
, mas comsmddprun
isso configura as variáveis de ambiente necessárias para executar o treinamento PyTorch distribuído em SageMaker IA.{ "smdistributed": { "dataparallel": { "enabled": True } } }
Se você optar por substituir o NCCL
AllGather
pelo SMDDPAllGather
, poderá usar todas as três opções. Escolha uma opção que seja mais adequada ao caso de uso.Se você optar por substituir o NCCL
AllReduce
pelo SMDDPAllReduce
, deverá escolher uma das opções encontradas emmpirun
:smdistributed
oupytorchddp
. Você também pode adicionar outras opções de MPI da seguinte forma:{ "pytorchddp": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } }
{ "smdistributed": { "dataparallel": { "enabled": True, "custom_mpi_options": "-verbose -x NCCL_DEBUG=VERSION" } } }
O exemplo de código a seguir mostra a estrutura básica de um PyTorch estimador com opções de treinamento distribuídas.
from sagemaker.pytorch import PyTorch pt_estimator = PyTorch( base_job_name="
training_job_name_prefix
", source_dir="subdirectory-to-your-code
", entry_point="adapted-training-script.py
", role="SageMakerRole
", py_version="py310
", framework_version="2.0.1
", # For running a multi-node distributed training job, specify a value greater than 1 # Example: 2,3,4,..8 instance_count=2
, # Instance types supported by the SageMaker AI data parallel library: # ml.p4d.24xlarge, ml.p4de.24xlarge instance_type="ml.p4d.24xlarge
", # Activate distributed training with SMDDP distribution={ "pytorchddp": { "enabled": True } } # mpirun, activates SMDDP AllReduce OR AllGather # distribution={ "torch_distributed": { "enabled": True } } # torchrun, activates SMDDP AllGather # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } # mpirun, activates SMDDP AllReduce OR AllGather ) pt_estimator.fit("s3://bucket/path/to/training/data
")nota
PyTorch O Lightning e suas bibliotecas de utilitários, como o Lightning Bolts, não estão pré-instalados na IA. SageMaker PyTorch DLCs Crie o arquivo
requirements.txt
a seguir e salve no diretório de origem em que você salva o script de treinamento.# requirements.txt pytorch-lightning lightning-bolts
Por exemplo, o diretório de árvore estruturada deve ser semelhante ao seguinte:
├──
pytorch_training_launcher_jupyter_notebook.ipynb
└── sub-folder-for-your-code ├──adapted-training-script.py
└──requirements.txt
Para obter mais informações sobre como especificar o diretório de origem para colocar o
requirements.txt
arquivo junto com seu script de treinamento e o envio de um trabalho, consulte Uso de bibliotecas de terceirosna documentação do Amazon SageMaker AI Python SDK. Considerações para ativar as operações coletivas do SMDDP e usar as opções corretas de inicializador de treinamento distribuído
-
SMDDP
AllReduce
e SMDDPAllGather
não são mutuamente compatíveis no momento. -
O SMDDP
AllReduce
é ativado por padrão ao usarsmdistributed
oupytorchddp
, que são iniciadores encontrados nompirun
, e é usado o NCCLAllGather
. -
O SMDDP
AllGather
é ativado por padrão ao usar o iniciadortorch_distributed
eAllReduce
volta para o NCCL. -
O SMDDP
AllGather
pode ser ativado também com o uso dos iniciadores encontrados emmpirun
com uma variável de ambiente adicional definida da seguinte forma:export SMDATAPARALLEL_OPTIMIZE_SDP=true
-
- TensorFlow
-
Importante
A biblioteca SMDDP interrompeu o suporte TensorFlow e não está mais disponível para versões TensorFlow posteriores à DLCs v2.11.0. Para saber mais sobre TensorFlow DLCs a biblioteca SMDDP instalada, consulte. TensorFlow (obsoleto)
from sagemaker.tensorflow import TensorFlow tf_estimator = TensorFlow( base_job_name = "
training_job_name_prefix
", entry_point="
", role="adapted-training-script.py
SageMakerRole
", framework_version="2.11.0
", py_version="py38
", # For running a multi-node distributed training job, specify a value greater than 1 # Example: 2,3,4,..8 instance_count=2
, # Instance types supported by the SageMaker AI data parallel library: #ml.p4d.24xlarge
,ml.p3dn.24xlarge
, andml.p3.16xlarge
instance_type="ml.p3.16xlarge
", # Training using the SageMaker AI data parallel distributed training strategy distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } ) tf_estimator.fit("s3://bucket/path/to/training/data
")