

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

# 在 AWS Clean Rooms ML 中创建机器学习输入通道
<a name="create-ml-input-channel"></a>

**先决条件：**
+ 可以 AWS 账户 访问的 AWS Clean Rooms
+ 您要在 AWS Clean Rooms 其中创建 ML 输入通道的协作设置
+ 在协作中查询数据和创建机器学习输入通道的权限。
+ （可选）用于与 ML 输入通道关联的现有模型算法，或创建新模型的权限
+ （可选）包含可以针对您的指定模型运行的分析规则的表。
+ （可选）用于生成数据集的现有 SQL 查询或分析模板
+ （可选）具有相应权限的现有服务角色，或创建新服务角色的权限
+ （可选）如果您想使用自己的加密 AWS KMS 密钥，请使用自定义密钥
+ 在协作中创建和管理机器学习模型的适当权限

*机器学习输入通道*是根据特定数据查询创建的数据集。能够查询数据的成员可以通过创建 ML 输入通道为训练和推理做好数据准备。创建 ML 输入通道允许在同一个协作中将这些数据用于不同的训练模型。您应该为训练和推理创建单独的 ML 输入通道。

要创建 ML 输入通道，必须指定用于查询输入数据和创建 ML 输入通道的 SQL 查询。此查询的结果永远不会与任何成员共享，并且保持在 Clean Rooms ML 的范围内。在接下来的步骤中，将使用引用 Amazon 资源名称 (ARN) 来训练模型或运行推理。

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

**创建 ML 输入频道（控制台）**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/clean](https://console.aws.amazon.com/cleanrooms/home) room AWS Clean Rooms s 上打开控制台。

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

1. 在**协作**页面上，选择要在其中创建机器学习输入渠道的协作。

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

1. 在 “**自定义 ML 模型**” 下的 “**机器学习输入通道**” 部分中，选择 “**创建 ML 输入通道**”。

1. 在 “**创建 ML 输入频道**” 页面上，要获**取 ML 输入频道的详细信息**，请执行以下操作：

   1. 在 “**名称**” 中，输入频道的唯一名称。

   1. （可选）在**描述**中，输入您的频道的描述。

   1. 在 “**关联模型算法**” 中，选择要使用的算法。

      选择 “**关联模型算法**” 以添加新算法。

1. 对于**数据集**，选择一种生成训练数据集的方法：
   + 选择 **SQL 查询**可将 SQL 查询的结果用作训练数据集。

     如果您选择了 **SQL 查询**，请在 **SQL 查询**字段中输入您的查询。

     （可选）要导入您最近使用的查询，请选择**从最近的查询中导入**。
   + 选择**分析模板**以使用分析模板的结果作为训练数据集。
**警告**  
合成数据生成可以防止推断出个人属性，无论特定个体存在于原始数据集中，还是存在这些个体的学习属性。但是，它并不能阻止原始数据集中的文字值，包括个人身份信息 (PII) 出现在合成数据集中。  
我们建议避免输入数据集中仅与一个数据主体关联的值，因为这些值可能会重新识别数据主体。例如，如果只有一个用户居住在邮政编码中，则合成数据集中存在该邮政编码将确认该用户位于原始数据集中。诸如截断高精度值或用*其他*目录替换不常见的目录之类的技术可以用来降低这种风险。这些转换可以是用于创建 ML 输入通道的查询的一部分。

   1. 如果没有关联表，请选择 “**关联表**” 以添加具有可针对指定模型运行的分析规则的表。

   1. 选择创建此数据通道时要使用**的工作器类型**。默认的工作器类型为 **CR.1X。**指定要使用的**员工人数**。默认工作人员编号为 **16**。要指定**火花属性，请执行**以下操作：

      1. 展开 **Spark 属性**。

      1. 选择 “**添加 Spark 属性**”。

      1. 在 **Spark 属性**对话框中，从下拉列表中选择**属性名称**并输入**值**。

      下表提供了每个属性的定义。

      有关 Spark 属性的更多信息，请参阅 Apache [Spark 文档中的 Spark 属性](https://spark.apache.org/docs/latest/configuration.html#spark-properties)。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/clean-rooms/latest/userguide/create-ml-input-channel.html)

   1. 对于**以天为单位的数据保留**，请输入数据的保留天数。

   1. 对于**结果格式，**选择 **CSV** 或 Par **q** uet 作为 ML 输入通道应使用的数据格式。

1. 对于**服务访问权限**，请选择将用于访问此表的**现有服务角色名称**，或者选择**创建并使用新的服务角色**。

1. 对于**加密**，选择使用**自定义 KMS 密钥加密密钥**以指定您自己的 KMS 密钥和相关信息。否则，Clean Rooms ML 将管理加密。

1. 选择 “**创建 ML 输入通道**”。

   创建 ML 输入通道需要几分钟。您可以在 “机器学习**模型” 选项卡上查看机器学习**输入通道列表。

**注意**  
创建 ML 输入通道后，您无法对其进行编辑。

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

创建 ML 输入频道 (API)

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

```
import boto3 
acr_client = boto3.client('cleanroomsml')

acr_client.create_ml_input_channel(
    name="ml_input_channel_name",
    membershipIdentifier='membership_id',
    configuredModelAlgorithmAssociations=[configured_model_algorithm_association_arn],
    retentionInDays=1,
    inputChannel={
        "dataSource": {
            "protectedQueryInputParameters": {
                "sqlParameters": {
                    "queryString": "select * from table",
                    "computeConfiguration": {
                        "worker": {
                            "type": "CR.1X",
                            "number": 16,
                            "properties": {
                                "spark": {
                                    "spark configuration key": "spark configuration value",
                                }
                            }   
                        }
                    },
                    "resultFormat": "PARQUET"
                }
            }
        },
        "roleArn": "arn:aws:iam::111122223333:role/role_name"
    }
)
channel_arn = resp['ML Input Channel ARN']
```

------