Use a SMDDP biblioteca em seu script PyTorch de treinamento - Amazon SageMaker

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 a SMDDP biblioteca em seu script PyTorch de treinamento

A partir da biblioteca de paralelismo de dados SageMaker distribuídos (SMDDP) v1.4.0, você pode usar a biblioteca como uma opção de back-end para o pacote distribuído. PyTorch Para usar as operações AllGather coletivas SMDDP AllReduce e as operações coletivas, você só precisa importar a SMDDP biblioteca no início do script de treinamento e defini-la SMDDP como back-end dos módulos PyTorch distribuídos durante a inicialização do grupo de processos. Com a única linha de especificação de back-end, você pode manter todos os módulos PyTorch distribuídos nativos e todo o script de treinamento inalterados. Os trechos de código a seguir mostram como usar a SMDDP biblioteca como back-end de pacotes de treinamento distribuídos PyTorch baseados: distributed PyTorch data parallel (DDP), PyTorch full sharded data paralelism (FSDP) e Megatron-. DeepSpeedDeepSpeed

Para PyTorch DDP ou FSDP

Inicialize o grupo de processos da seguinte maneira.

import torch.distributed as dist import smdistributed.dataparallel.torch.torch_smddp dist.init_process_group(backend="smddp")
nota

(Somente para PyTorch DDP trabalhos) Atualmente, o smddp back-end não oferece suporte à criação de grupos de subprocessos com o. torch.distributed.new_group() API Você também não pode usar o smddp back-end simultaneamente com outros back-ends de grupos de processos, como e. NCCL Gloo

Para DeepSpeed ou Megatron- DeepSpeed

Inicialize o grupo de processos da seguinte maneira.

import deepspeed import smdistributed.dataparallel.torch.torch_smddp deepspeed.init_distributed(dist_backend="smddp")
nota

Para usar SMDDP AllGather com os lançadores mpirun baseados (smdistributedepytorchddp) emLançamento de trabalhos de treinamento distribuídos com o SMDDP uso do SageMaker Python SDK, você também precisa definir a seguinte variável de ambiente em seu script de treinamento.

export SMDATAPARALLEL_OPTIMIZE_SDP=true

Para obter orientação geral sobre como escrever um script de PyTorch FSDP treinamento, consulte Treinamento avançado de modelos com dados paralelos totalmente fragmentados (FSDP) na PyTorch documentação.

Para obter orientação geral sobre como escrever um script de PyTorch DDP treinamento, consulte Getting started with distributed data parallel na PyTorch documentação.

Depois de concluir a adaptação do seu roteiro de treinamento, prossiga para Lançamento de trabalhos de treinamento distribuídos com o SMDDP uso do SageMaker Python SDK.