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

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

创建人工审核工作流

使用 Amazon AAugmented AI(Amazon A2I)人工审核工作流,或者流定义,以指定以下内容:

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

  • 将任务发送到的员工

  • 您的工作人员收到的一套指令,称为工作人员任务模板

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

  • 存储输出数据的位置

您可以在 SageMaker 控制台中创建人工审核工作流程,也可以使用 SageMakerCreateFlowDefinitionoperation. 在创建流定义时,您可以使用 Amazon Texttract 和 Amazon Rekognition 任务类型的控制台构建工作人员任务模板。

重要

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

先决条件

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

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

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

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

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

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

创建流定义(控制台)

  1. 打开 SageMaker 控制台https://console.amazonaws.cn/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 任务,当特定表单密钥缺失或表单密钥检测置信度低时,您可以启动人工审核。如果在对文本中的所有表单密钥进行评估后,置信度低于任何表单密钥所需的阈值,您也可以启动人工审核。两个变量指定置信阈值:识别可信度资格审查信心。要了解有关这些变量的更多信息,请参阅将亚马逊 Augmented AI 与 Amazon Textract 结合使用

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

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

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

      1. 创建模板部分:

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

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

            • 提供一个模板名称这是独一无二的Amazon您所在的区域。

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

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

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

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

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

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

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

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

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

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

  9. 选择 Create (创建)

后续步骤

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

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

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

要使用 SageMaker API 创建流定义,您可以使用CreateFlowDefinitionoperation. 在您完成使用 Augmented AI 的先决条件,请使用以下过程了解如何使用此 API 操作。

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

创建流定义 (API)

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

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

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

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

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

  5. (可选)如果您使用内置任务类型,请在HumanLoopRequestSource参数。

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

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

Amazon Textract – Key-value pair extraction

以下是使用Amazon SDK for Python (Boto3)。您必须使用'AWS/Textract/AnalyzeDocument/Forms/V1'创建一个 Amazon Textract 人工循环。仅包含PublicWorkforceTaskPrice如果您使用的是 Mechanical Turk 工作人员。

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)。您必须使用'AWS/Rekognition/DetectModerationLabels/Image/V3'创建 Amazon Rekognition 流定义。仅包含PublicWorkforceTaskPrice如果您使用的是 Mechanical Turk 工作人员。

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来自流定义请求。您只需将包含PublicWorkforceTaskPrice如果您使用的是 Mechanical Turk 工作人员。

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 启动人工循环。要了解有关这些选项的更多信息,请参阅创建和启动人工循环