在 Amazon 中的異質叢集上執行分散式訓練 SageMaker - Amazon SageMaker

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

在 Amazon 中的異質叢集上執行分散式訓練 SageMaker

透過 SageMaker 估算器類別的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 資料平行程式庫

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 資料平行程式庫時,請確定執行個體群組由程式庫 支援的執行個體類型組成。

如需 SageMaker 資料平行程式庫的詳細資訊,請參閱SageMaker 資料平行訓練

使用 SageMaker 模型平行程式庫

PyTorch
from sagemaker.pytorch import PyTorch estimator = PyTorch( ... instance_groups=[instance_group_1, instance_group_2], distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # SageMaker 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 model parallel parameters } } }, "instance_groups": [instance_group_2] } )

如需 SageMaker 模型平行程式庫的詳細資訊,請參閱SageMaker 模型平行訓練