

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 biblioteca SMDDP em seu PyTorch script de treinamento
<a name="data-parallel-modify-sdp-pt"></a>

[A partir da biblioteca SageMaker AI Distributed Data Parallelism (SMDDP) v1.4.0, você pode usar a biblioteca como uma opção de back-end para o pacote distribuído. PyTorch ](https://pytorch.org/tutorials/beginner/dist_overview.html) Para usar o SMDDP `AllReduce` e as operações `AllGather` coletivas, você só precisa importar a biblioteca SMDDP no início do script de treinamento e definir o SMDDP como o back-end dos módulos distribuídos durante a inicialização do grupo de PyTorch 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 biblioteca SMDDP como back-end de pacotes de treinamento distribuídos PyTorch baseados: distributed [PyTorch data parallel (DDP), full [sharded data paralelism (PyTorch FSDP](https://pytorch.org/docs/stable/fsdp.html))](https://pytorch.org/docs/stable/notes/ddp.html) e Megatron-. [DeepSpeed](https://github.com/microsoft/DeepSpeed)DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed)

## Para PyTorch DDP ou FSDP
<a name="data-parallel-enable-for-ptddp-ptfsdp"></a>

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 trabalhos do PyTorch DDP) Atualmente, o `smddp` back-end não oferece suporte à criação de grupos de subprocessos com a API. `torch.distributed.new_group()` Você não pode usar o backend `smddp` simultaneamente com outros backends de grupos de processos, como `NCCL` e `Gloo`.

## Para DeepSpeed ou Megatron- DeepSpeed
<a name="data-parallel-enable-for-deepspeed"></a>

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 o SMDDP `AllGather` com os iniciadores do `mpirun` (`smdistributed` e `pytorchddp`) em [Lançamento de trabalhos de treinamento distribuídos com SMDDP usando o Python SDK SageMaker](data-parallel-use-api.md), 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 treinamento de PyTorch FSDP, consulte [Treinamento avançado de modelos com dados paralelos totalmente fragmentados (FSDP](https://pytorch.org/tutorials/intermediate/FSDP_adavnced_tutorial.html)) na documentação. PyTorch

Para obter orientação geral sobre como escrever um script de treinamento de PyTorch DDP, consulte [Getting started with distributed data parallel](https://pytorch.org/tutorials/intermediate/ddp_tutorial.html) na PyTorch documentação.

Depois de concluir a adaptação do seu script de treinamento, prossiga para [Lançamento de trabalhos de treinamento distribuídos com SMDDP usando o Python SDK SageMaker](data-parallel-use-api.md).