创建人工审核工作流 - 亚马逊 SageMaker AI

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

创建人工审核工作流

使用 Amazon Augmented AI (Amazon A2I) 人工审核工作流(也称为流定义),指定以下内容:

  • 对于 Amazon Textract 和 Amazon Rekognition 内置任务类型,指定调用您人工循环的条件

  • 将任务发送到的人力

  • 您的人力将收到的一组说明,称为工作人员任务模板

  • 工作人员任务的配置,包括接收任务的工作人员数量和完成任务的时间限制

  • 存储输出数据的位置

您可以在 SageMaker AI 控制台中或使用 AI CreateFlowDefinition操作创建 SageMaker 人工审核工作流程。对于 Amazon Textract 和 Amazon Rekognition 任务类型,您可在创建流定义时,使用控制台构建工作人员任务模板。

重要

用于启动人工循环的人工循环激活条件(例如,置信度阈值),不可用于 Amazon A2I 自定义任务类型。使用控制台为自定义任务类型创建流定义时,您无法指定激活条件。使用 Amazon A2I API 为自定义任务类型创建流程定义时,您无法设置参数的HumanLoopActivationConditionsHumanLoopActivationConditionsConfig属性。要控制何时启动人工审核,请指定在自定义应用程序中调用 StartHumanLoop 的条件。在这种情况下,每次 StartHumanLoop 调用都会导致人工审核。有关更多信息,请参阅 将 Amazon Augmented AI 与自定义任务类型结合使用

先决条件

要创建人工审核工作流定义,您必须已完成使用 Augmented AI 的先决条件中所述的先决条件。

如果您使用API为任何任务类型创建流程定义,或者在控制台中创建流程定义时使用自定义任务类型,请先创建工作任务模板。有关更多信息,请参阅 创建和管理工作人员任务模板

如果您在控制台中为内置任务类型创建流定义时,希望预览工作人员任务模板,请确保使用类似于启用工作人员任务模板预览 中所述的策略,向您用于创建流定义的角色授予访问 Amazon S3 存储桶(其中包含您的模板构件)的权限。

创建人工审核工作流(控制台)

使用此过程使用 AI 控制台创建 Amazon Agumented AI(Amazon A2I) SageMaker 人工审核工作流程。如果您不熟悉 Amazon A2I,我们建议您使用组织中的人员创建私人工作团队,并在创建流程定义ARN时使用该工作团队。要了解如何设置私有人力和创建工作团队,请参阅创建私人员工(Amazon A SageMaker I 控制台)。如果您已设置私有人力,请参阅使用 SageMaker AI 控制台创建工作团队以了解如何将工作团队添加到该人力中。

如果您正在将 Amazon A2I 与某个内置任务类型结合使用,则在控制台中创建人工审核工作流时,可以使用 Augmented AI 提供的默认工作人员任务模板来创建工作人员说明。要查看 Augmented AI 提供的默认模板示例,请参阅使用 Amazon A2I 的使用场景和示例中的内置任务类型。

创建流定义(控制台)
  1. 打开 SageMaker AI 控制台,网址为https://console.aws.amazon.com/sagemaker/

  2. 在导航窗格的 Augmented AI 部分中,选择人工审核工作流,然后选择创建人工审核工作流

  3. Overview (概述) 中,执行以下操作:

    1. 名称中,输入唯一工作流名称。该名称必须为小写字母,在您账户的 AWS 区域内是唯一的,并且最多可以包含 63 个字符。有效字符包括:a-z、0-9 和 -(连字符)。

    2. 输出的 S3 位置中,输入将人工审核结果存储到的 S3 存储桶。存储桶必须与工作流程位于同一 AWS 区域。

    3. 对于 IAM 角色,选择具有所需权限的角色。如果您选择内置任务类型并希望在控制台中预览工作人员模板,请提供附加了启用工作人员任务模板预览 中所描述策略类型的角色。

  4. 任务类型中,选择您希望人工执行的任务类型。

  5. 如果您选择 Amazon Rekognition 或 Amazon Textract 任务类型,请指定调用人工审核的条件。

    • 对于 Amazon Rekognition 图像监管任务,选择一个推理置信度分数阈值区间,在此区间将启动人工审核。

    • 对于 Amazon Textract 任务,当特定的表单键缺失或表单键检测置信度较低时,您可以启动人工审核。如果在对文本中的所有表单键进行评估后,任何表单键的置信度低于所需的阈值,您也可以启动人工审核。您可以使用两个变量来指定置信阈值:标识置信度资格置信度。要了解有关这些变量的更多信息,请参阅将 Amazon Augmented AI 与 Amazon Textract 结合使用

    • 对于这两种任务类型,您可以随机将一定比例的数据对象(图像或表单)及其标签发送给工作人员以供审查。

  6. 配置并指定工作人员任务模板:

    1. 如果您使用的是 Amazon Rekognition 或 Amazon Textract 任务类型:

      1. 创建模板部分:

        • 对于 Amazon Rekognition 和 Amazon Textract 任务类型,要使用 Amazon A2I 默认模板来为工作人员创建说明,请选择从默认模板构建

          • 如果您选择从默认模板构建,请在工作人员任务设计中创建您的说明。

            • 请提供在您 AWS 所在区域中唯一的模板名称

            • 说明部分中,提供有关如何完成您的任务的详细说明。为了帮助工作人员达到更好的准确性,请提供好示例和坏示例。

            • (可选)在其他说明中,向您的工作人员提供其他信息和说明。

              有关创建有效说明的信息,请参阅创建良好的工作人员说明

        • 要选择您已创建的自定义模板,请从模板菜单中选择该模板,并提供一个任务描述来简要描述工作人员的任务。要了解如何创建自定义模板,请参阅创建工作人员任务模板

    2. 使用自定义任务类型时:

      1. 工作人员任务模板部分中,从列表中选择您的模板。您在 SageMaker AI 控制台中创建的所有模板都显示在此列表中。要了解如何为自定义任务类型创建模板,请参阅创建和管理工作人员任务模板

  7. (可选)预览工作人员模板:

    对于 Amazon Rekognition 和 Amazon Textract 任务类型,您可以选择查看示例工作人员任务以预览工作人员任务 UI。

    如果要为自定义任务类型创建流定义,您可以使用 RenderUiTemplate 操作预览工作人员任务 UI。有关更多信息,请参阅 预览工作人员任务模板

  8. 工作人员中,选择人力类型。

  9. 选择创建

后续步骤

创建人工审核工作流后,该工作流将显示在控制台中的人工审核工作流下。要查看您的流程定义的 Amazon 资源名称 (ARN) 和配置详情,请通过选择其名称来选择工作流程。

如果您使用的是内置任务类型,则可以使用流程定义ARN使用该 AWS 服务API(例如 Amazon Textrac API t)启动人工循环。对于自定义任务类型,您可以使用使用 Amazon A ARN gumented AI 运行时启动人工循环API。要了解有关这两个选项的更多信息,请参阅创建和启动人工循环

创建人工审阅工作流程 (API)

要使用创建流程定义 SageMaker API,请使用CreateFlowDefinition操作。完成后使用 Augmented AI 的先决条件,请按照以下步骤学习如何使用此API操作。

有关 CreateFlowDefinition 操作的概览以及有关每个参数的详细信息,请参阅 CreateFlowDefinition

创建流程定义 (API)
  1. 对于 FlowDefinitionName,输入唯一名称。该名称在您账户的 AWS 区域内必须是唯一的,并且最多可以包含 63 个字符。有效字符包括:a-z、0-9 和 -(连字符)。

  2. 对于RoleArn,ARN输入您配置为授予数据源访问权限的角色。

  3. 对于 HumanLoopConfig,输入有关工作人员及其所见内容的信息。有关中每个参数的信息HumanLoopConfig,请参见HumanLoopConfig

  4. (可选)如果您使用内置任务类型,请在 HumanLoopActivationConfig 中提供启动人工循环的条件。要了解如何创建 HumanLoopActivationConfig 参数所需的输入,请参阅JSONAmazon 增强型 AI 中人环激活条件的架构。如果您未在此处指定条件,则当您为与内置任务类型(例如 Amazon Textract 或 Amazon Rekognition)关联的 AWS 服务提供流程定义时,该服务会将所有任务发送给人工工作人员进行审核。

    如果您使用自定义任务类型,则将禁用 HumanLoopActivationConfig。要了解如何使用自定义任务类型控制何时将任务发送给工作人员,请参阅将 Amazon Augmented AI 与自定义任务类型结合使用

  5. (可选)如果您使用的是内置任务类型,请在参数中指定集成源(例如 Amazon Rekognition 或 Amazon Textract)。HumanLoopRequestSource

  6. 对于 OutputConfig,指示 Amazon Simple Storage Service (Amazon S3) 中存储人工循环输出的位置。

  7. (可选)使用 Tags 输入键/值对以帮助您分类和组织流定义。每个标签都由键 和值组成,这两个参数都由您定义。

Amazon Textract – Key-value pair extraction

以下请求示例使用 AWS SDK for Python (Boto3)创建 Amazon Textract 人工审核工作流(流定义)。您必须使用 'AWS/Textract/AnalyzeDocument/Forms/V1' 来创建 Amazon Textract 人工循环。仅当您使用的是 Mechanical Turk 人力时才包括 PublicWorkforceTaskPrice

sagemaker_client = boto3.client('sagemaker', aws_region) response = sagemaker_client.create_flow_definition( FlowDefinitionName='ExampleFlowDefinition', HumanLoopRequestSource={ 'AwsManagedHumanLoopRequestSource': 'AWS/Textract/AnalyzeDocument/Forms/V1' }, HumanLoopActivationConfig={ 'HumanLoopActivationConditionsConfig': { 'HumanLoopActivationConditions': '{...}' } }, HumanLoopConfig={ 'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name', 'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_account_number:human-task-ui/template_name', 'TaskTitle': 'Example task title', 'TaskDescription': 'Example task description.', 'TaskCount': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'TaskTimeLimitInSeconds': 123, 'TaskKeywords': [ 'Keyword1','Keyword2' ], 'PublicWorkforceTaskPrice': { 'AmountInUsd': { 'Dollars': 123, 'Cents': 123, 'TenthFractionsOfACent': 123 } } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/', 'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab' }, RoleArn='arn:aws:iam::aws_account_number:role/role_name', Tags=[ { 'Key': 'KeyName', 'Value': 'ValueName' }, ] )
Amazon Rekognition – Image moderation

以下请求示例使用 AWS SDK for Python (Boto3)创建 Amazon Rekognition 人工审核工作流(流定义)。您必须使用 'AWS/Rekognition/DetectModerationLabels/Image/V3' 以创建 Amazon Rekognition 流定义。仅当您使用的是 Mechanical Turk 人力时才包括 PublicWorkforceTaskPrice

sagemaker_client = boto3.client('sagemaker', aws_region) response = sagemaker_client.create_flow_definition( FlowDefinitionName='ExampleFlowDefinition', HumanLoopRequestSource={ 'AwsManagedHumanLoopRequestSource': 'AWS/Rekognition/DetectModerationLabels/Image/V3' }, HumanLoopActivationConfig={ 'HumanLoopActivationConditionsConfig': { 'HumanLoopActivationConditions': '{...}' } }, HumanLoopConfig={ 'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name', 'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_account_number:human-task-ui/template_name', 'TaskTitle': 'Example task title', 'TaskDescription': 'Example task description.', 'TaskCount': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'TaskTimeLimitInSeconds': 123, 'TaskKeywords': [ 'Keyword1','Keyword2' ], 'PublicWorkforceTaskPrice': { 'AmountInUsd': { 'Dollars': 123, 'Cents': 123, 'TenthFractionsOfACent': 123 } } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/', 'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab' }, RoleArn='arn:aws:iam::aws_account_number:role/role_name', Tags=[ { 'Key': 'KeyName', 'Value': 'ValueName' }, ] )
Custom Workflow

以下请求示例为自定义集成创建人工审核工作流(流定义)。要创建这种类型的人工审核工作流,请忽略流定义请求中的 HumanLoopRequestSource。只有当您使用的是 Mechanical Turk 人力时,才需要包括 PublicWorkforceTaskPrice

sagemaker_client = boto3.client('sagemaker', aws_region) response = sagemaker_client.create_flow_definition( FlowDefinitionName='ExampleFlowDefinition', HumanLoopActivationConfig={ 'HumanLoopActivationConditionsConfig': { 'HumanLoopActivationConditions': '{...}' } }, HumanLoopConfig={ 'WorkteamArn': 'arn:aws:sagemaker:aws_region:aws_account_number:workteam/private-crowd/workteam_name', 'HumanTaskUiArn': 'arn:aws:sagemaker:aws_region:aws_acount_number:human-task-ui/template_name', 'TaskTitle': 'Example task title', 'TaskDescription': 'Example task description.', 'TaskCount': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'TaskTimeLimitInSeconds': 123, 'TaskKeywords': [ 'Keyword1','Keyword2' ], 'PublicWorkforceTaskPrice': { 'AmountInUsd': { 'Dollars': 123, 'Cents': 123, 'TenthFractionsOfACent': 123 } } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/', 'KmsKeyId': '1234abcd-12ab-34cd-56ef-1234567890ab' }, RoleArn='arn:aws:iam::account_number:role/role_name', Tags=[ { 'Key': 'KeyName', 'Value': 'ValueName' }, ] )

后续步骤

成功调用该CreateFlowDefinitionAPI操作的返回值是流程定义 Amazon 资源名称 (ARN)。

如果您使用的是内置任务类型,则可以使用流程定义ARN使用该 AWS 服务API(即 Amazon Textrac API t)启动人工循环。对于自定义任务类型,您可以使用使用 Amazon A ARN gumented AI 运行时启动人工循环API。要了解有关这些选项的更多信息,请参阅创建和启动人工循环