

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

# Amazon SageMaker AI의 이기종 클러스터에서 분산 훈련 실행
<a name="train-heterogeneous-cluster-configure-distributed"></a>

SageMaker AI 예측기 클래스의 `distribution` 인수를 통해 분산 훈련을 실행할 특정 인스턴스 그룹을 할당할 수 있습니다. 예를 들어 다음과 같은 두 인스턴스 그룹이 있고 그 중 하나에서 다중 GPU 훈련을 실행하려고 한다고 가정해 보겠습니다.

```
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)
```

인스턴스 그룹 중 하나에 대해 분산 훈련 구성을 설정할 수 있습니다. 예를 들어, 다음 코드 예제는 분산 훈련 구성에 두 개의 `ml.p3dn.24xlarge` 인스턴스를 사용하여 `training_group_2`를 할당하는 방법을 보여줍니다.

**참고**  
현재는 이기종 클러스터의 인스턴스 그룹 하나만 배포 구성에 지정할 수 있습니다.

**MPI 사용 시**

------
#### [ PyTorch ]

```
from sagemaker.pytorch import PyTorch

estimator = PyTorch(
    ...
    instance_groups=[instance_group_1, instance_group_2],
    distribution={
        "mpi": {
            "enabled": True, "processes_per_host": 8
        },
        "instance_groups": [instance_group_2]
    }
)
```

------
#### [ TensorFlow ]

```
from sagemaker.tensorflow import TensorFlow

estimator = TensorFlow(
    ...
    instance_groups=[instance_group_1, instance_group_2],
    distribution={
        "mpi": {
            "enabled": True, "processes_per_host": 8
        },
        "instance_groups": [instance_group_2]
    }
)
```

------

**SageMaker AI 데이터 병렬 라이브러리 사용**

------
#### [ PyTorch ]

```
from sagemaker.pytorch import PyTorch

estimator = PyTorch(
    ...
    instance_groups=[instance_group_1, instance_group_2],
    distribution={
        "smdistributed": {
            "dataparallel": {
                "enabled": True
            }
        }, 
        "instance_groups": [instance_group_2]
    }
)
```

------
#### [ TensorFlow ]

```
from sagemaker.tensorflow import TensorFlow

estimator = TensorFlow(
    ...
    instance_groups=[instance_group_1, instance_group_2],
    distribution={
        "smdistributed": {
            "dataparallel": {
                "enabled": True
            }
        }, 
        "instance_groups": [instance_group_2]
    }
)
```

------

**참고**  
SageMaker AI 데이터 병렬 라이브러리를 사용하는 경우 인스턴스 그룹이 [라이브러리에서 지원하는 인스턴스 유형](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-instance-types)으로 구성되어 있는지 확인하세요.

SageMaker AI 데이터 병렬 라이브러리에 대한 자세한 내용은 [SageMaker AI 데이터 병렬 훈련](https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel.html)을 참조하세요.

**SageMaker AI 모델 병렬 라이브러리 사용**

------
#### [ PyTorch ]

```
from sagemaker.pytorch import PyTorch

estimator = PyTorch(
    ...
    instance_groups=[instance_group_1, instance_group_2],
    distribution={
        "smdistributed": {
            "modelparallel": {
                "enabled":True,
                "parameters": {
                    ...   # SageMaker AI model parallel parameters
                } 
            }
        }, 
        "instance_groups": [instance_group_2]
    }
)
```

------
#### [ TensorFlow ]

```
from sagemaker.tensorflow import TensorFlow

estimator = TensorFlow(
    ...
    instance_groups=[instance_group_1, instance_group_2],
    distribution={
        "smdistributed": {
            "modelparallel": {
                "enabled":True,
                "parameters": {
                    ...   # SageMaker AI model parallel parameters
                } 
            }
        }, 
        "instance_groups": [instance_group_2]
    }
)
```

------

SageMaker AI 모델 병렬 라이브러리에 대한 자세한 내용은 [SageMaker AI 모델 병렬 훈련](https://docs.aws.amazon.com/sagemaker/latest/dg/model-parallel.html)을 참조하세요.