

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

# 在 AWS Clean Rooms ML 中使用分布式培训
<a name="use-distributed-training"></a>

先决条件：
+ 而且 AWS 账户 可以访问 AWS Clean Rooms
+ 合作建立于 AWS Clean Rooms
+ 支持分布式训练的配置模型算法
+ 适用于分布式处理的大型数据集 
+ 在协作中创建和管理 ML 模型的适当权限
+ 足够的 Amazon EC2 配额来运行多个实例进行分布式训练 

分布式训练利用许多并行工作的计算节点的强大功能来处理大量数据并有效地更新模型参数。

有关分布式训练的更多信息，请参阅 SageMaker A * mazon AI 开发者指南[中的](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html#distributed-training-basic-concepts)分布式训练概念*。

------
#### [ Console ]

**运行分布式训练作业（控制台）**

1. 登录 AWS 管理控制台 并打开 AWS Clean Rooms 控制台，地址为[https://console.aws.amazon.com/cleanrooms](https://console.aws.amazon.com/cleanrooms/home)。

1. 在左侧导航窗格中，选择**协作**。

1. 在**协作**页面上，选择要在其中创建训练模型的协作。

1. 协作打开后，选择 ** ML 模型**选项卡。

1. 在 “**自定义 ML 模型**” 下的 “**训练模型**” 部分中，选择**创建训练模型**。

1. 在 “**创建训练模型**” 页面上，为 “**关联模型算法**” 指定算法

1. 有关**经过训练的模型的详细信息**，请输入以下内容：

   1. 在 “**名称” 中**，输入协作中模型的唯一名称。

   1. （可选）在**描述中**，输入训练模型的描述。

   1. 对于**训练数据输入模式**，请选择以下选项之一：
      + **如果您的数据集较小，可以容纳 ML 存储量，并且您更喜欢使用传统文件系统访问训练脚本，请选择 ** “文件”。
      + **对于大型数据集，选择 ** Pipe 可以直接从 S3 流式传输数据，从而无需将所有内容下载到磁盘，这样可以提高训练速度并降低存储需求。
      + **FastFile**如果要将从 S3 流式传输的优势与文件系统访问相结合，尤其是顺序读取数据或处理较少文件以缩短启动时间时，请选择此选项。

1. 要了解**机器学习输入通道的详细信息**，请执行以下操作：

   1. 对于 ** ML 输入通道**，指定向模型算法提供数据的 ML 输入通道。

      要添加另一个通道，请选择**添加另一个 ML 输入通道**。您最多可以添加 19 个额外 ML 输入通道。

   1. 在**频道名称中**，输入 ML 输入通道的名称。

   1. 对于 ** Amazon S3 数据分配类型**，请选择以下选项之一：
      + 选择 “**完全**复制”，为每个训练实例提供数据集的完整副本。当您的数据集足够小以容纳内存时，或者当每个实例都需要访问所有数据时，这种方法最有效。
      + 选择 “**按 S3 密钥分片”**，根据 S3 密钥将数据集划分到训练实例中。每个实例接收 S3 对象总 1/n数的大约，其中 “n” 是实例的数量。这最适合您想要并行处理的大型数据集。
**注意**  
选择分布类型时，请考虑您的数据集大小和训练要求。**完全复制**可提供完整的数据访问权限，但需要更多存储空间，而 ** Sharded by S3 密钥**支持对大型数据集进行分布式处理。

1. 对于**最长训练持续时间**，请选择您想要训练模型的最大时间。

1. 对于**超参数**，请指定任何特定于算法的参数及其预期值。超参数特定于正在训练的模型，用于微调模型训练。

1. 对于**环境变量**，指定任何特定于算法的变量及其预期值。环境变量在 Docker 容器中设置。

1. 对于**加密**，要使用自定义 AWS KMS key，请选中使用自定义 KMS 密钥**加密密钥**复选框。

1. 对于 ** EC2 资源配置**，请指定有关用于模型训练的计算资源的信息。

   1. 对于**实例类型**，选择要运行的实例类型。

      分布式训练支持的实例类型有：
      + ml.m5.4xlarge
      + ml.m5.12xlarge 
      + ml.m5.2xlarge
      + ml.g5.12xlarge
      + ml.g5.24xlarge

   1. 在 “**实例数” 中**，输入实例数。

   1. 对于以 GB 为单位的**卷大小**，请输入 ML 存储卷大小。

1. 选择 “**创建经过训练的模型” **。

------
#### [ API ]

运行分布式训练作业 (API)

使用您的特定参数运行以下代码：

```
import boto3 
acr_ml_client= boto3.client('cleanroomsml')
 
acr_ml_client.create_trained_model(
    membershipIdentifier= '{{membership_id}}',
    configuredModelAlgorithmAssociationArn = 'arn:aws:cleanrooms-ml:{{region:account:membership}}/membershipIdentifier/configured-model-algorithm-association/{{identifier}}',
    name='{{trained_model_name}}',
    trainingInputMode: "File",
    resourceConfig={
        'instanceCount': "3"
        'instanceType': "ml.m5.xlarge",
        'volumeSizeInGB': 3
    },
    dataChannels=[
        {
            "mlInputChannelArn": channel_arn_1,
            "channelName": "{{channel_name}}", 
            "S3DataDistributionType:" "FullyReplicated"
        }
  
    ]
)
```

------

**注意**  
创建训练模型后，您无法对其进行编辑。要进行更改，请删除经过训练的模型并创建一个新模型。