

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 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)。