Ground Truth 流标签作业 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Ground Truth 流标签作业

如果您想永久地向 Amazon SageMaker Ground Truth 发送新数据对象以进行标记,请使用流式传输标签作业。流式传输标签作业允许您:

  • 使用永久运行的标注作业将新数据集对象实时发送给工作人员。只要标注作业处于活动状态并向其发送新对象,Worker 就会持续接收要标记的新数据对象。

  • 了解已排队并等待标记的对象的数量。使用此信息可以控制发送到标注作业的数据对象的流。

  • 当工作人员完成对单个数据对象的标签时,实时接收它们的标签数据。

Ground Truth 流式传输标注作业一直处于活动状态,直到它们被手动停止或空闲超过 10 天。在标注作业处于活动状态时,您可以间歇性地将新数据对象发送到 Worker。

如果您是 Gategory 流式标记作业的新用户,建议您查阅工作方式.

使用创建流式标记 Job以了解如何创建流式传输标记作业。

注意

仅通过 SageMaker API 支持 Ground Truth 流式传输标注作业。

工作方式

创建 “Ground Truth” 流式传输标注作业时,作业将保持活动状态,直到手动停止,保持空闲状态超过 10 天,或者无法访问输入数据源。在 Worker 处于活动状态时,您可以间歇性地将新数据对象发送给 Worker。工作人员可以继续实时接收新的数据对象,只要工作人员当前可用的任务总数小于MaxConcurrentTaskCount. 否则,数据对象将被发送到 “Ground Truth” 代表您在Amazon Simple Queue Service(Amazon SQS)以便稍后处理。只要工作人员当前可用的任务总数低于,这些任务就会发送给工作人员MaxConcurrentTaskCount. 如果数据对象在 14 天后未发送给工作人员,则该数据对象将过期。您可以查看队列中待处理的任务数,并调整发送到标签作业的对象数。例如,如果待定对象的积压移动超过阈值,则可以降低将对象发送到标记作业的速度。

向流标记 Job 发送数据

在使用输入清单文件创建标注作业时,您可以选择将输入数据提交到流式标注作业一次。一旦标注作业开始并且状态为InProgress,您可以使用 Amazon SNS 输入主题和 Amazon S3 事件通知实时向标签作业提交新的数据对象。

启动标签 Job 时提交数据对象(一次):

  • 使用输入清单文件— 您可以选择指定输入清单文件 Amazon S3 URIManifestS3Uri创建流式传输标注作业时。在标注作业开始后,“Ground Truth” 将清单文件中的每个数据对象发送给 worker 以进行标记。要了解更多信息,请参阅“创建清单文件(可选)”。

    提交创建流式传输标注作业的请求后,其状态将为Initializing. 标注作业处于活动状态后,状态将更改为InProgress,您可以开始使用实时选项提交其他数据对象以进行标注。

实时提交数据对象:

  • 使用 Amazon SNS 消息发送数据对象— 您可以通过发送 Amazon SNS 消息将 Ground Truth 新数据对象发送标签。您将将此消息发送到您在创建流式传输贴标作业时创建并指定的 Amazon SNS 输入主题。有关更多信息,请参阅使用 Amazon SNS 发送数据对象

  • 将数据对象放在 Amazon S3 存储桶中,以发送这些对象— 每次将新数据对象添加到 Amazon S3 存储桶时,您都可以提示 Ground Truth 处理该对象以进行标记。要执行此操作,您需要向存储桶添加事件通知,以便每次将新数据元添加到(或在中创建)存储桶。有关更多信息,请参阅使用 Amazon S3 发送数据对象。此选项不适用于基于文本的标注作业,如文本分类和命名实体识别。

    重要

    如果您使用 Amazon S3 配置,请勿对输入数据配置和输出数据使用相同的 Amazon S3 位置。在您创建标记作业时,您可以指定输出数据的 S3 前缀。

使用 Amazon SNS 发送数据对象

您可以使用 Amazon Simple Notification Service (Amazon SNS) 将数据对象发送到流式传输标记作业。Amazon SNS 是一项 Web 服务,用于协调和管理传输到和发送的消息的过程。终端节点(例如电子邮件地址或Amazon Lambda函数)。Amazon SNS主题充当两个或多个端点之间的通信通道。您使用 Amazon SNS 发送,或者publish,将新数据对象添加到CreateLabelingJobparameterSnsTopicArnInputConfig. 这些消息的格式与输入清单文件.

例如,您可以通过将一段文本发布到输入主题,将其发送到活动文本分类标注作业。您发布的消息可能类似于以下内容:

{"source": "Lorem ipsum dolor sit amet"}

要将新图像对象发送到影像分类标注作业,您的消息可能类似于以下内容:

{"source-ref": "s3://awsexamplebucket/example-image.jpg"}
注意

您还可以在 Amazon SNS 消息中包含自定义重复数据删除 ID 和重复数据消除密钥。要了解更多信息,请参阅“ 重复消息处理”。

当 Ground Truth 创建您的流式传输标签作业时,它会订阅您的 Amazon SNS 输入主题。

使用 Amazon S3 发送数据对象

通过将一个或多个新数据对象放置在配置 Amazon SNS 事件通知的 Amazon S3 存储桶中,您可以将它们发送到流式传输标签作业。您可以设置一个事件,以便在存储桶中创建新数据元时通知您的 Amazon SNS 输入主题。Amazon SNS 必须在CreateLabelingJobparameterSnsTopicArnInputConfig.

每当您配置 Amazon S3 存储桶以向 Amazon SNS 发送通知时,Ground Truth 将发布测试事件,"s3:TestEvent",以确保该主题存在,并且指定 Amazon S3 存储桶的拥有者有权发布到指定主题。建议您在开始流式传输标签作业之前,先设置 Amazon S3 与 Amazon SNS 的连接。如果不这样做,此测试事件可能会注册为数据对象,并被发送到 Ground Truth 进行标记。

重要

如果您使用 Amazon S3 配置,请勿对输入数据配置和输出数据使用相同的 Amazon S3 位置。在您创建标记作业时,您可以指定输出数据的 S3 前缀。

对于基于映像的标签作业,“Ground Truth” 要求所有 S3 存储桶都附加 CORS 策略。要了解更多信息,请参阅“CORS 权限要求”。

配置了 Amazon S3 存储桶并创建 Ground Truth 标签任务后,您可以将对象添加到存储桶中,并且 Groud Thess 可以将该数据元发送给工作人员或将其放置在 Amazon SQS 队列中。

要了解更多信息,请参阅“设置 Amazon S3 存储桶事件通知”。

重要

此选项不适用于基于文本的标注作业,如文本分类和命名实体识别。

使用 Amazon SQS 队列管理贴标请求

当 Ground Truth 创建您的流式传输标签作业 Amazon SQS,它会在Amazon帐户用于创建标注作业。队列名称为GroundTruth-labeling_job_name其中labeling_job_name是标注作业的名称,以小写字母表示。将数据对象发送到标注作业时,“Ground Truth 理” 会将数据对象直接发送给 Worker,或将任务置于队列中,以便稍后处理。如果数据对象在 14 天后未发送给工作程序,则该数据对象将过期并从队列中删除。您可以在 Amazon SQS 中设置警报以检测对象何时过期,并使用此机制控制发送到标签作业的对象数量。

重要

修改、删除或直接将对象发送到与流式传输标签作业关联的 Amazon SQS 队列可能会导致作业失败。

从流式标注 Job 接收输出数据

您的 Amazon S3 输出存储桶会使用流式标签任务中的新输出数据定期更新。

或者,您可以指定 Amazon SNS 输出主题。每次工作人员提交标记对象时,都会向该主题发送包含输出数据的通知。您可以将终端节点订阅 SNS 输出主题,以便在接收来自标签任务的输出数据时接收通知或触发事件。如果您希望实时链接到另一个流式作业,并在工作程序每次提交数据对象时收到 Amazon SNS 通知,请使用 Amazon SNS 输出主题。

要了解更多信息,请参阅“为终端节点订阅您的 Amazon SNS 输出主题”。

重复消息处理

对于实时发送的数据对象,Ground Truth 通过确保每个唯一对象仅发送一次标记,即使引用该对象的输入消息多次(重复消息),也可确保幂等性。为此,发送到流式标注作业的每个数据对象都会分配一个重复数据删除 ID,它被标识为重复数据删除密钥.

如果您使用 Amazon SNS 消息直接通过 Amazon SNS 输入主题发送标签数据对象的请求,则可以选择为数据元选择自定义重复数据消除密钥和重复数据消除 ID。有关更多信息,请参阅在 Amazon SNS 消息中指定重复数据消除密钥和 ID

如果您不提供自己的重复数据消除密钥,或者如果您使用 Amazon S3 配置将数据对象发送到您的标签作业,则 “Ground Truth” 将使用以下方法之一作为重复数据消除 ID:

  • 对于直接发送到您的 Amazon SNS 输入主题的消息,Ground Truth 使用 SNS 消息 ID。

  • 对于来自 Amazon S3 配置的消息,Ground Truth 会创建重复数据消除 ID,方法是将对象的 Amazon S3 URI 与序列器令牌在消息中。

在 Amazon SNS 消息中指定重复数据消除密钥和 ID

当您使用 Amazon SNS 消息向流式标签作业发送数据对象时,您可以选择通过以下方式之一指定重复数据消除密钥和重复数据消除 ID。在所有这些情况下,请使用dataset-objectid-attribute-name.

自带重复数据消除密钥和 ID

通过按如下方式配置 Amazon SNS 消息,创建您自己的重复数据消除密钥和重复数据消除 ID。Replacebyo-key使用您的密钥和UniqueId替换为该数据对象的重复数据消除 ID。

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"byo-key", "byo-key":"UniqueId" }

您的重复数据消除密钥最多 140 个字符。支持的模式包括:"^[$a-zA-Z0-9](-*[a-zA-Z0-9])*".

您的重复数据消除 ID 最多可以有 1024 个字符。支持的模式包括:^(https|s3)://([^/]+)/?(.*)$.

将现有密钥用于重复数据消除密钥

您可以使用邮件中的现有密钥作为重复数据消除密钥。在执行该操作时,与该键关联的值将用于重复数据消除 ID。

例如,您可以指定使用source-ref键作为重复数据消除密钥,方法是格式化消息,如下所示:

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"source-ref" }

在此示例中,“Ground Truth” 使用"s3://bucket/prefix/object1"作为重复数据消除 ID。

在输出数据中查找重复数据消除密钥和 ID

您可以在输出数据中看到重复数据消除密钥和 ID。重复数据消除密钥由dataset-objectid-attribute-name.

使用自己的自定义重复数据消除密钥时,输出中包含类似于以下内容的内容:

"dataset-objectid-attribute-name": "byo-key", "byo-key": "UniqueId",

如果不指定密钥,您可以按如下方式找到 Grade Thanth 分配给您的数据对象的重复数据消除 ID。这些区域有:$label-attribute-name-object-id参数标识您的重复数据消除 ID。

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"$label-attribute-name-object-id" "label-attribute-name" :0, "label-attribute-name-metadata": {...}, "$label-attribute-name-object-id":"<service-generated-key>" }

适用于<service-generated-key>,如果数据对象是通过 Amazon S3 配置来的,则 “Ground Truth” 会添加服务使用的唯一值,并发出一个由$sequencer,其中显示了使用的 Amazon S3 序列器。如果将对象直接馈送到 SNS,则接 Ground Truth 使用 SNS 消息 ID。

注意

请勿使用$字符在标注属性名称中。