

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

# 在 AWS Clean Rooms ML 中使用增量培训
<a name="use-incremental-training"></a>

先决条件：
+ 而且 AWS 账户 可以访问 AWS Clean Rooms
+ 合作中现有的经过训练的模型 
+ 用于增量训练的新数据集或更新的数据集 
+ 在协作中创建和管理 ML 模型的适当权限
+ 熟悉现有模型的超参数和配置 

通过增量训练，您可以使用现有模型的构件和更新的数据集来训练新模型。增量训练可节省时间和资源。

使用增量训练可以：
+ 使用扩展数据集训练新模型，该数据集具有先前训练中未考虑的潜在模式。
+ 训练模型的多个变体，要么使用不同的超参数，要么使用不同的数据集。

------
#### [ 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. 有关**经过训练的模型的详细信息**，请输入以下内容：

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

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

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

   1. 在**增量训练频道名称中**，输入增量训练频道的名称 
**注意**  
如果您在没有版本 ID ** 的情况下指定**增量训练频道名称，则系统将使用基本模型进行增量训练。

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. 对于**实例类型**，选择要运行的实例类型。

   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}}',
    resourceConfig={
        'instanceType': 'ml.m5.xlarge',
        'volumeSizeInGB': 1
    },
    incrementalTrainingDataChannels=[
        {
            'trainedModelArn': trained_model_arn,
            'channelName': '{{channel_name}}'
        },
    ]
    dataChannels=[
        {
            'mlInputChannelArn': channel_arn_1,
            'channelName': '{{channel_name}}'
        },
        {
            'mlInputChannelArn': channel_arn_2,
            'channelName': '{{channel_name}}'
        }
    ]
)
```

**注意**  
限制：总共最多 20 个频道（包括`dataChannels`和`incrementalTrainingDataChannels`）。

------

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