View a markdown version of this page

在 AWS Clean Rooms ML 中创建和加入协作 - AWS Clean Rooms

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

在 AWS Clean Rooms ML 中创建和加入协作

协作创建者负责创建协作、邀请成员和分配他们的角色。受邀成员加入协作并指定结果设置、经过训练的模型工件目的地设置并承担付款责任,具体取决于协作设置方式。

为机器学习创建协作

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

Console
创建机器学习协作(控制台)
  1. 创建协作并邀请一个或多个成员加入协作

  2. 使用查询和作业分析分配以下成员能力

    • 运行查询分配给将开始模型训练的成员。

    • 将 “接收分析结果” 分配给将接收查询结果的成员。

  3. 使用专门构建的工作流程机器学习建模分配以下成员能力:

    • 将 “接收来自训练模型的输出” 分配给将接收经过训练的模型结果(包括模型构件和指标)的成员。

    • 将模型推断接收输出分配给将接收模型推理结果的成员。

  4. 对于配置付款,指定将为查询计算、模型训练、模型推理和合成数据集生成费用付费的成员。

    合成数据集具有与其所基于的原始数据集相似的统计特性,但不包含原始数据集中存在的真实世界观测值。通过使用隐私增强型合成数据集,您可以解锁以前防止出现数据隐私问题的新机器学习模型训练用例。有关更多信息,请参阅Privacy-enhanced合成数据生成

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

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

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

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

    3. ML 配置部分中,选择创建 ML 配置,然后指定 Amazon S3 上的模型输出目标以及访问该位置所需的服务访问角色。

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

API

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

  1. 创建协作并邀请一个或多个成员加入协作

  2. 为协作成员分配以下角色:

    • CAN_QUERY-分配给将开始模型训练和推理的成员。

    • CAN_RECEIVE_MODEL_OUTPUT-分配给将获得训练模型结果的成员。

    • CAN_RECEIVE_INFERENCE_OUTPUT-分配给将收到模型推理结果的成员。

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

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

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

    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 } } } )
  5. 然后,协作创建者必须设置 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" } } } )

加入协作

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

Console
创建成员资格并加入协作(控制台)
  1. 受邀成员创建成员资格并加入协作

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

  3. 受邀成员设置机器学习配置,该配置为 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' )
  2. 受邀成员设置机器学习配置,该配置为 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" } } } )