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

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

创建和启动人工循环

人工循环 启动人工审核工作流,并将数据审核任务发送给工作人员。如果您使用 Amazon A2I 内置任务类型,则相应的任务类型之一,则会使用相应的Amazon服务会在满足流定义中指定的条件时代表您创建并启动人工循环。如果未在流定义中指定任何条件,则为每个对象创建一个人工循环。如果将 Amazon A2I 用于自定义任务,则应用程序调用时,人工循环将启动。StartHumanLoop

按照以下说明操作,使用亚马逊重新或 Amazon Textract 内置任务类型以及自定义任务类型配置人工循环。

先决条件

要创建和启动人工循环,必须将AmazonAugmentedAIFullAccess策略添加到Amazon Identity and Access Management(IAM) 用户或角色,用于配置或启动人工循环。这是您用于通过配置人工循环的身份。HumanLoopConfig的内置任务类型。对于自定义任务类型,这是您用来调用的身份。StartHumanLoop

此外,在使用内置任务类型时,您的 IAM 用户或角色必须有权调用Amazon服务。例如,如果您使用具有增强 AI 的 Amazon Rekognition 能,您必须附加调用所需的权限以调用的权限。DetectModerationLabels。有关可用于授予这些权限的基于身份的策略的示例,请参阅 Amazon Rekognition 基于身份的策略示例Amazon Textract 基于身份的策略示例。您还可以使用更一般的策略AmazonAugmentedAIIntegratedAPIAccess以授予这些权限。有关更多信息,请参阅 创建具有调用亚马逊 A2I、亚马逊 Textract 和亚马逊重新调用 API 操作权限的 IAM 用户

要创建和启动人工循环,您需要提供一个流定义 ARN。要了解如何创建流定义(或人工审核工作流),请参阅创建人工审核工作流

重要

Amazon A2I 要求所有包含人类循环输入图像数据的 S3 存储桶都附加 CORS 策略。要了解有关此更改的详细信息,请参阅CORS 权限要求

为内置任务类型创建和启动人工循环

要使用内置任务类型启动人工循环,请使用相应服务的 API 来提供输入数据并配置人工循环。对于 Amazon Textract,您可以使用AnalyzeDocumentAPI 操作。对于 Amazon Rekognition,您可以使用DetectModerationLabelsAPI 操作。可以使用Amazon CLI或特定于语言的开发工具包来使用这些 API 操作创建请求。

重要

当使用内置任务类型创建人工循环时,可以使用人工循环来使用人工循环DataAttributes来指定一组ContentClassifiers与提供给的输入相关的StartHumanLoopoperation. 使用内容分类器声明您的内容不含个人身份信息或成人内容。

要使用 Amazon Mechanical Turk,请确保您的数据不含个人身份信息,包括 HIPAA 规定的受保护的健康信息。加入FreeOfPersonallyIdentifiableInformation内容分类器。如果您不使用此内容分类器,SageMaker 不会将您的任务发送给 Mechanical Turk 其人。如果您的数据不含成人内容,也请包含'FreeOfAdultContent'分类器。如果您不使用这些内容分类器,则 SageMaker 可能会限制可以查看您的任务的 Mechanical Turk 工作人员。

在使用内置任务类型的Amazon服务 API,亚马逊 A2I 会监控该服务的推断结果。例如,在使用 Amazon Rekognition 运行作业时,Amazon A2I 会检核每个图像的推理置信度分数,并将其与流定义中指定的置信度阈值进行比较。如果满足启动人工审核任务的条件,或者如果您未在流定义中指定条件,则人工审核任务将发送到工作人员。

创建一个 Amazon Textract 人工循环

亚马逊 A2I 与 Amazon Textract 集成,以便您能够使用亚马逊 Textract API 配置和启动人工循环。要将文档文件发送到 Amazon Textract 进行文档分析,您可以使用亚马逊 Textract 文档文件文件分析AnalyzeDocumentAPI 操作。要将人工循环添加到此文档分析作业中,必须配置HumanLoopConfig

如果您配置人工循环,则在中指定的流定义流定义FlowDefinitionArnHumanLoopConfig必须位于相同的Amazon区域作为中标识的存储桶BucketDocument参数。

下表显示了如何将此操作与Amazon CLI和Amazon SDK for Python (Boto3)。

Amazon SDK for Python (Boto3)

以下请求示例使用适用 SDK for Python (Boto3)。有关更多信息,请参阅 。分析文档中的Amazon适用于 Python 的开发工具包 (Boto) API 参考

import boto3 textract = boto3.client('textract', aws_region) response = textract.analyze_document( Document={'S3Object': {'Bucket': bucket_name, 'Name': document_name}}, FeatureTypes=["TABLES", "FORMS"], HumanLoopConfig={ 'FlowDefinitionArn': 'arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name', 'HumanLoopName': 'human_loop_name', 'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']} } )
Amazon CLI

以下请求示例使用 Amazon CLI。有关更多信息,请参阅 。分析文档文档中的Amazon CLI命令参考

$ aws textract analyze-document \ --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \ --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws-region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}' \ --feature-types '["TABLES", "FORMS"]'
$ aws textract analyze-document \ --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \ --human-loop-config \ '{"HumanLoopName":"human_loop_name","FlowDefinitionArn":"arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name","DataAttributes": {"ContentClassifiers":["FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent"]}}' \ --feature-types '["TABLES", "FORMS"]'

在您运行AnalyzeDocument配置了人工循环,Amazon A2I 会监控AnalyzeDocument并根据流定义的激活条件对其进行检查。如果一个或多个键-值对的 Amazon Textract 推理置信度分数满足审核条件,亚马逊 A2I 将启动人工审核循环,并将HumanLoopActivationOutput对象中的AnalyzeDocument响应.

创建亚 Amazon Rekognition 证人类循环

亚马逊 A2I 将与 Amazon Rekognition 核集成,以便您能够使用亚马逊重核 API 配置和启动人工循环。要将图片发送到 Amazon Rekognition 以进行内容审核,您可以使用 Amazon RekognitionDetectModerationLabelsAPI 操作。要配置人工循环,请在配置 DetectModerationLabels 时设置 HumanLoopConfig 参数。

如果您配置人工循环,则在中指定的流定义流定义FlowDefinitionArnHumanLoopConfig必须位于相同的Amazon区域作为在中标识的 S3 存储桶BucketImage参数。

下表显示了如何将此操作与Amazon CLI和Amazon SDK for Python (Boto3)。

Amazon SDK for Python (Boto3)

以下请求示例使用适用 SDK for Python (Boto3)。有关更多信息,请参阅 。检测 _ 审核 _ 标签中的Amazon适用于 Python 的开发工具包 (Boto) API 参考

import boto3 rekognition = boto3.client("rekognition", aws_region) response = rekognition.detect_moderation_labels( \ Image={'S3Object': {'Bucket': bucket_name, 'Name': image_name}}, \ HumanLoopConfig={ \ 'HumanLoopName': 'human_loop_name', \ 'FlowDefinitionArn': , "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name" \ 'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']} })
Amazon CLI

以下请求示例使用 Amazon CLI。有关更多信息,请参阅 。检测-审核标签中的Amazon CLI命令参考

$ aws rekognition detect-moderation-labels \ --image "S3Object={Bucket='bucket_name',Name='image_name'}" \ --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}'
$ aws rekognition detect-moderation-labels \ --image "S3Object={Bucket='bucket_name',Name='image_name'}" \ --human-loop-config \ '{"HumanLoopName": "human_loop_name", "FlowDefinitionArn": "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name", "DataAttributes": {"ContentClassifiers": ["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}}'

在您运行DetectModerationLabels配置了人工循环,Amazon A2I 会监控DetectModerationLabels并根据流定义的激活条件对其进行检查。如果一个图像的 Amazon Rekognition 核推理置信度分数满足审核条件,亚马逊 A2I 将启动人工审核循环,并包含响应元素HumanLoopActivationOutput中的DetectModerationLabels响应.

为自定义任务类型创建和启动人工循环

要为自定义人工审核任务配置人工循环,请在应用程序中使用 StartHumanLoop 操作。此部分提供了一个使用 Amazon SDK for Python (Boto3) 和 Amazon Command Line Interface (Amazon CLI) 的人工循环请求的示例。有关其他语言特定 SDK 的文档,支持StartHumanLoop,请使用另请参阅部分StartHumanLoop在亚马逊 Augmented AI 运行时 API 文档中。请参阅。使用 Amazon A2I 的使用案例和示例以查看演示如何将 Amazon A2I 与自定义任务类型一起使用的示例。

先决条件

要完成此过程,您需要:

  • 格式设置为 JSON 格式文件的字符串表示形式的输入数据的输入数据格式

  • 流定义的 Amazon 资源名称 (ARN)

配置人工循环

  1. 对于 DataAttributes,指定一组与提供给 StartHumanLoop 操作的输入相关的 ContentClassifiers。使用内容分类器声明您的内容不含个人身份信息或成人内容。

    要使用 Amazon Mechanical Turk,请确保您的数据不含个人身份信息,包括 HIPAA 下的受保护的健康信息,并包括FreeOfPersonallyIdentifiableInformation内容分类器。如果您不使用此内容分类器,SageMaker 不会将您的任务发送给 Mechanical Turk 其人。如果您的数据不含成人内容,也请包含'FreeOfAdultContent'分类器。如果您不使用这些内容分类器,则 SageMaker 可能会限制可以查看您的任务的 Mechanical Turk 工作人员。

  2. 对于 FlowDefinitionArn,输入流定义的 Amazon 资源名称 (ARN)。

  3. 对于 HumanLoopInput,以 JSON 格式文件的字符串表示形式输入您的输入数据。构建输入数据和自定义工作人员任务模板,以便在您启动人工循环时,向工作人员正确显示输入数据。请参阅预览工作人员任务模板以了解如何预览自定义工作人员任务模板。

  4. 对于 HumanLoopName,输入人工循环的名称。该名称在您账户所在的区域中必须唯一,并且最多可以包含 63 个字符。有效字符为 a-z、0-9 和-(连字符)。

启动人工循环

  • 要启动人工循环,请使用首选的特定于语言的开发工具包提交类似于以下示例的请求。

Amazon SDK for Python (Boto3)

以下请求示例使用适用 SDK for Python (Boto3)。有关更多信息,请参阅 。Boto 3 Augmented AI 运行时中的Amazon适用于 Python 的开发工具包 (Boto) API 参考

import boto3 a2i_runtime_client = boto3.client('sagemaker-a2i-runtime') response = a2i_runtime_client.start_human_loop( HumanLoopName='human_loop_name', FlowDefinitionArn='arn:aws:sagemaker:aws-region:xyz:flow-definition/flow_def_name', HumanLoopInput={ 'InputContent': '{"InputContent": "{\"prompt\":\"What is the answer?\"}"}' }, DataAttributes={ 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } )
Amazon CLI

以下请求示例使用 Amazon CLI。有关更多信息,请参阅 。開始人類循環中的Amazon CLI命令参考

$ aws sagemaker-a2i-runtime start-human-loop --flow-definition-arn 'arn:aws:sagemaker:aws_region:xyz:flow-definition/flow_def_name' \ --human-loop-name 'human_loop_name' \ --human-loop-input '{"InputContent": "{\"prompt\":\"What is the answer?\"}"}' \ --data-attributes ContentClassifiers="FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent" \

当你通过调用StartHumanLoop,响应包含一个HumanLoopARNHumanLoopActivationResults对象,设置为NULL。您可以使用此人工循环名称来监控和管理您的人工循环。

后续步骤:

启动人工循环后,您可以使用亚马逊 Augmented AI 运行时 API 和亚马 Amazon CloudWatch Events 管理和监控它。要了解更多信息,请参阅“监控和管理您的人工循环”。