

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

# 在 AWS Clean Rooms ML 中创建经过训练的模型
<a name="create-trained-model"></a>

先决条件：
+ 可以 AWS 账户 访问的 AWS Clean Rooms
+ 合作建立在 AWS Clean Rooms
+ 与协作相关的已配置模型算法
+ 至少有一个已配置的 ML 输入通道
+ 在协作中创建和管理机器学习模型的适当权限

将配置的模型算法与协作关联，然后创建并配置机器学习输入通道后，就可以创建经过训练的模型了。协作成员使用*经过训练的模型*来共同分析其数据。

您可以使用以下步骤创建经过训练的模型。

或者，您可以使用增量训练使用新数据改进现有模型，或者使用分布式训练来跨多个计算实例训练模型。

**Topics**
+ [在 AWS Clean Rooms ML 中使用增量训练](use-incremental-training.md)
+ [在 AWS Clean Rooms ML 中使用分布式培训](use-distributed-training.md)

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

**创建经过训练的模型（控制台）**

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

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

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

1. 协作打开后，选择**机器学习模型**选项卡。

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

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

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

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

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

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

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

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

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

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

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

1. 在**最长训练持续**时间中，选择要训练模型的最大时间。

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

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

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

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

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

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

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

1. （可选）对于**模型训练付款人**，请选择支付模型训练费用的协作成员。
**注意**  
如果协作中只有一个候选付款人进行模型训练，则默认为该付款人。

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

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

创建经过训练的模型 (API)

能够训练模型的成员通过选择 ML 输入通道和模型算法开始训练。

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

```
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
    },
    dataChannels=[
        {
            "mlInputChannelArn": channel_arn_1,
            "channelName": "{{channel_name}}"
        },
        {
            "mlInputChannelArn": channel_arn_2,
            "channelName": "{{channel_name}}"
        }
    ]
)
```

------

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