

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

# 在 AWS Clean Rooms ML 中创建和加入合作
<a name="create-custom-ml-collaboration"></a>

协作创建者负责创建协作、邀请成员和分配其角色。根据协作的设置方式，受邀成员加入协作并指定结果设置、训练模型工件目的地设置并承担付款责任。

## 为机器学习创建协作模式
<a name="create-ml-collaboration"></a>

 以下过程演示如何创建机器学习协作、邀请一个或多个成员以及分配可以开始模型训练、接收结果、接收经过训练的模型结果（包括模型工件和指标）以及接收模型推理结果的成员。协作创建者还会分配一名成员，该成员将支付查询计算、模型训练和模型推理费用。

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

**为机器学习创建协作模式（控制台）**

1. [创建协作并邀请一个或多个成员加入协作](create-collaboration.md)

1. **使用查询和作业为分析****分配以下成员**权限：
   + 将 **Run 查询**分配给将开始模型训练的成员。
   + 将**接收分析结果**分配给将接收查询结果的成员。

1. **使用专门构建的工作流程为机器学习建模**分配以下**成员能力**：
   + 将**接收训练模型的输出**分配给将接收训练模型结果的成员，包括模型工件和指标。
   + 将**接收模型推理的输出**分配给将接收模型推理结果的成员。

1. 对于**配置付款**，请指定将支付查询计算、模型训练、模型推理和合成数据集生成成本的成员。

   合成数据集与其所基于的原始数据集具有相似的统计特性，但不包含原始数据集中存在的真实观测结果。通过使用隐私增强型合成数据集，您可以解锁以前数据隐私问题阻止的新机器学习模型训练用例。有关更多信息，请参阅[隐私增强型合成](synthetic-data-generation.md)数据生成。

   这些费用中的每一项都可以分配给相同或不同的成员。如果受邀成员是负责支付付款费用的会员，则他们必须在加入合作之前承担付款责任。

1. 对于**配置成员资格**，协作创建者可以决定立即加入成员资格或稍后创建成员资格。然后，协作创建者必须设置 ML 配置。

   1. 如果协作创建者也是结果接收者，则他们还必须在 “结果**” 设置默认值中指定查询结果**的目标和格式。

   1. 机器学习配置为 Clean Rooms ML 提供了向发布指标的角色 AWS 账户。如果协作创建者也在接收经过训练的模型项目，他们可以指定用于接收结果的 Amazon S3 存储桶。

   1. 在 “**机器学习配置**” 部分，选择 “**创建 ML 配置**”，然后在 **Amazon S3 上指定模型输出目标**以及**访问此位置所需的服务访问角色**。

   1. 如果协作创建者是负责支付费用的成员，则他们必须在创建协作之前接受自己的付款责任。

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

为机器学习 (API) 创建协作模式

1. [创建协作并邀请一个或多个成员加入协作](create-collaboration.md)

1. 为协作成员分配以下角色：
   + `CAN_QUERY`-分配给将开始模型训练和推理的成员。
   + `CAN_RECEIVE_MODEL_OUTPUT`-分配给将获得经过训练的模型结果的成员。
   + `CAN_RECEIVE_INFERENCE_OUTPUT`-分配给将接收模型推理结果的成员。

   如果协作创建者也是结果接收者，则他们还必须在创建协作期间指定查询结果的目标和格式。他们还为服务角色提供亚马逊资源名称 (ARN)，用于将结果写入查询结果目的地。

1. 指定将支付查询计算、模型训练和模型推理成本的成员。这些费用中的每一项都可以分配给相同或不同的成员。如果受邀成员是负责支付付款费用的会员，则他们必须在加入合作之前承担付款责任。

1. 以下代码创建协作，邀请可以运行查询和接收结果的成员，并将协作创建者指定为模型构件接收者。

   ```
   import boto3 
   acr_client= boto3.client('cleanrooms')
    
   collaboration = a_acr_client.create_collaboration(
       members=[
           {
            'accountId': 'invited_member_accountId',
            'memberAbilities':["CAN_QUERY","CAN_RECEIVE_RESULTS"],
            'displayName': 'member_display_name'
           }
       ],
       name='collaboration_name',
       description=collaboration_description,
       creatorMLMemberAbilities= {
           'customMLMemberAbilities':["CAN_RECEIVE_MODEL_OUTPUT", "CAN_RECEIVE_INFERENCE_OUTPUT"],
       },
       creatorDisplayName='creator_display_name',
       queryLogStatus="ENABLED",
       analyticsEngine="SPARK",
       creatorPaymentConfiguration={
           "queryCompute": {
               "isResponsible": True
           },
           "machineLearning": {
               "modelTraining": {
                   "isResponsible": True
               },
               "modelInference": {
                   "isResponsible": True
               }
           }
       }
   )
    
   collaboration_id = collaboration['collaboration']['id']
   print("collaborationId: {collaboration_id}")
   
   member_membership = a_acr_client.create_membership(
       collaborationIdentifier = collaboration_id,
       queryLogStatus = 'ENABLED',
       paymentConfiguration={
           "queryCompute": {
               "isResponsible": True
           },
           "machineLearning": {
               "modelTraining": {
                   "isResponsible": True
               },
               "modelInference": {
                   "isResponsible": True
               }
           }
       }
   )
   ```

1. 然后，协作创建者必须设置 ML 配置。机器学习配置为 Clean Rooms ML 提供了一个向发布指标和日志的角色 AWS 账户。如果协作创建者也在接收结果（模型工件或推理结果），他们可以指定用于接收结果的 Amazon S3 存储桶。

   ```
   import boto3 
   acr_ml_client= boto3.client('cleanroomsml')
   
   acr_ml_client.put_ml_configuration(
           membershipIdentifier=membership_id,
           defaultOutputLocation={
              'roleArn':'arn:aws:iam::account:role/roleName',
              'destination':{
                   's3Destination':{
                       's3Uri':"s3://bucketName/prefix"
                   }
               }
           }
       )
   ```

------

## 加入协作
<a name="join-ml-collaboration"></a>

协作创建者完成任务后，受邀成员必须完成任务。

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

**创建成员资格并加入协作（控制台）**

1. 受邀成员[创建成员资格并加入协作](create-membership.md)。

1. 如果受邀成员是负责支付费用的成员，包括查询计算、模型训练和模型推理费用，则他们必须在加入协作之前接受自己的付款责任。

1. 受邀成员设置机器学习配置，该配置为 Clean Rooms ML 提供了向发布模型指标的角色 AWS 账户。如果他们也是接收经过训练的模型构件的成员，则他们必须提供一个用于存储经过训练的模型工件的 Amazon S3 存储桶。

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

创建成员资格并加入协作 (API)

1. 如果受邀成员也是可以接收结果的成员，则他们会指定查询结果的目标和格式。它们还提供服务角色 ARN，允许服务写入查询结果目标

   如果受邀成员是负责支付费用的成员，包括查询计算、模型训练和模型推理费用，则他们必须在加入协作之前接受自己的付款责任。

   如果受邀成员是负责为自定义建模支付模型训练和模型推理费用的成员，则他们必须在加入协作之前接受自己的付款责任。

   以下代码创建启用了查询日志记录的成员资格。

   ```
   import boto3 
   acr_client= boto3.client('cleanrooms')
   
   acr_client.create_membership(
       membershipIdentifier='membership_id',
       queryLogStatus='ENABLED'
   )
   ```

1. 受邀成员设置机器学习配置，该配置为 Clean Rooms ML 提供了向发布模型指标的角色 AWS 账户。如果他们也是接收经过训练的模型构件的成员，则他们必须提供用于存储经过训练的模型工件的 Amazon S3 存储桶。

   ```
   import boto3 
   acr_ml_client= boto3.client('cleanroomsml')
   
   acr_ml_client.put_ml_configuration(
           membershipIdentifier='membership_id',
           defaultOutputLocation={
              'roleArn':"arn:aws:iam::account:role/role_name",
              'destination':{
                   's3Destination':{
                       's3Uri':"s3://bucket_name/prefix"
                   }
               }
           }
       )
   ```

------