创建人工审核工作流 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

创建人工审核工作流

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

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

  • 将任务发送到的人力

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

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

  • 存储输出数据的位置

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

重要

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

先决条件

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

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

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

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

使用此过程,通过 SageMaker 控制台创建 Amazon Augmented AI (Amazon A2I) 人工审核工作流。如果您刚开始使用 Amazon A2I,我们建议您使用部门中的人员创建一个私有工作团队,并在创建流定义时使用该工作团队的 ARN。要了解如何设置私有人力和创建工作团队,请参阅创建私有人力(Amazon SageMaker 控制台)。如果您已设置私有人力,请参阅使用 SageMaker 控制台创建工作团队以了解如何将工作团队添加到该人力中。

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

创建流定义(控制台)
  1. 通过 https://console.amazonaws.cn/sagemaker/ 打开 SageMaker 控制台。

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

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

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

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

    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 默认模板来为工作人员创建说明,请选择从默认模板构建

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

            • 提供在您所在 Amazon 区域中唯一的模板名

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

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

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

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

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

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

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

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

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

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

  9. 选择创建

后续步骤

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

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

创建人工审核工作流 (API)

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

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

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

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

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

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

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

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

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

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

Amazon Textract – Key-value pair extraction

以下请求示例使用 Amazon 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

以下请求示例使用 Amazon 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' }, ] )

后续步骤

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

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