

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon A SageMaker I 中的异构集群上运行分布式训练
<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}}]
    }
)
```

------

**借助 A SageMaker I 数据 parallel 库**

------
#### [ 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.amazonaws.cn/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-instance-types)组成。

有关 SageMaker AI 数据并行库的更多信息，请参阅 [SageMaker AI 数据并行训练](https://docs.amazonaws.cn/sagemaker/latest/dg/data-parallel.html)。

**使用 A SageMaker I 模型并行库**

------
#### [ 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.amazonaws.cn/sagemaker/latest/dg/model-parallel.html)。