

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# PyTorch 훈련 스크립트에서 SMDDP 라이브러리 사용
<a name="data-parallel-modify-sdp-pt"></a>

SageMaker AI 분산형 데이터 병렬화(SMDDP) 라이브러리 v1.4.0부터 이 라이브러리를 [PyTorch 분산형 패키지](https://pytorch.org/tutorials/beginner/dist_overview.html)의 백엔드 옵션으로 사용할 수 있습니다. SMDDP `AllReduce` 및 `AllGather` 집합 작업을 사용하려면 훈련 스크립트 시작 시 SMDDP 라이브러리를 가져와서 프로세스 그룹 초기화 중에 SMDDP를 PyTorch 분산 모듈의 백엔드로 설정하기만 하면 됩니다. 한 줄의 백엔드 사양을 사용하면 모든 기본 PyTorch 분산 모듈과 전체 훈련 스크립트를 변경하지 않을 수 있습니다. 다음 코드 조각은 SMDDP 라이브러리를 [PyTorch 분산 데이터 병렬(DDP)](https://pytorch.org/docs/stable/notes/ddp.html), [PyTorch 완전 샤딩 데이터 병렬(FSDP)](https://pytorch.org/docs/stable/fsdp.html), [DeepSpeed](https://github.com/microsoft/DeepSpeed) 및 [Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed) 등 PyTorch 기반 분산 훈련 패키지의 백엔드로 사용하는 방법을 보여줍니다.

## PyTorch DDP 또는 FSDP의 경우
<a name="data-parallel-enable-for-ptddp-ptfsdp"></a>

다음과 같이 프로세스 그룹을 초기화합니다.

```
import torch.distributed as dist
import smdistributed.dataparallel.torch.torch_smddp

dist.init_process_group(backend="smddp")
```

**참고**  
(PyTorch DDP 작업에만 해당)`smddp` 백엔드는 현재 `torch.distributed.new_group()` API를 사용한 하위 프로세스 그룹 생성을 지원하지 않습니다. `smddp` 백엔드는 `NCCL` 및 `Gloo` 같은 다른 프로세스 그룹 백엔드와 동시에 사용할 수 없습니다.

## DeepSpeed 또는 Megatron-DeepSpeed의 경우
<a name="data-parallel-enable-for-deepspeed"></a>

다음과 같이 프로세스 그룹을 초기화합니다.

```
import deepspeed
import smdistributed.dataparallel.torch.torch_smddp

deepspeed.init_distributed(dist_backend="smddp")
```

**참고**  
[SageMaker Python SDK를 사용하여 SMDDP로 분산 훈련 작업 시작](data-parallel-use-api.md)의 `mpirun` 기반 런처(`smdistributed` 및 `pytorchddp`)와 함께 SMDDP `AllGather`를 사용하려면 훈련 스크립트에서 다음 환경 변수도 설정해야 합니다.  

```
export SMDATAPARALLEL_OPTIMIZE_SDP=true
```

PyTorch FSDP 훈련 스크립트 작성에 대한 일반적인 지침은 PyTorch 설명서의 [FSDP(Fully Sharded Data Parallel)를 사용한 고급 모델 훈련](https://pytorch.org/tutorials/intermediate/FSDP_adavnced_tutorial.html)을 참조하세요.

PyTorch DDP 훈련 스크립트 작성에 대한 일반 지침은 PyTorch 설명서의 [분산 데이터 병렬 시작하기](https://pytorch.org/tutorials/intermediate/ddp_tutorial.html)를 참조하세요.

훈련 스크립트 조정을 완료한 후 [SageMaker Python SDK를 사용하여 SMDDP로 분산 훈련 작업 시작](data-parallel-use-api.md) 섹션으로 넘어갑니다.