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

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

Ground Truth 流式标注作业

如果您想永久将新的数据对象发送到 Amazon G SageMaker round Truth 进行标记,请使用流式标签作业。流式标注作业允许您:

  • 使用持续运行的标注作业,实时向工作人员发送新的数据集对象。只要标注作业处于活动状态,并且有新的对象被发送给该作业,工作人员就会不断接收要标注的新数据对象。

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

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

Ground Truth 流式标注作业一直处于活动状态,直到手动停止或闲置超过 10 天。您可以在标注作业处于活动状态时,间歇性地向工作人员发送新数据对象。

如果您是 Ground Truth 流式标注作业的新用户,建议您查看工作方式

使用创建流式标注作业了解如何创建流式标注作业。

注意

Ground Truth 流媒体标签作业只能通过以下方式支持 SageMaker API。

工作方式

创建 Ground Truth 流式标注作业后,该作业会一直处于活动状态,直到手动停止、闲置超过 10 天或无法访问输入数据来源。您可以在该作业处于活动状态时,间歇性地向工作人员发送新数据对象。只要工作人员当前可用的任务总数少于 MaxConcurrentTaskCount 中的值,工作人员就可以继续实时接收新的数据对象。否则,数据对象将被发送到 Ground Truth 在亚马逊简单队列服务 (亚马逊SQS) 中代表您创建的队列以供日后处理。一旦工作人员当前可用的任务总数低于 MaxConcurrentTaskCount,这些任务就会立即发送给工作人员。如果一个数据对象在 14 天后没有发送给工作人员,则该数据对象将过期。您可以查看队列中待处理的任务数量,并调整发送到标注作业的对象数。例如,如果积压的待处理对象超过阈值,您可以降低将对象发送到标注作业的速度。

将数据发送到流式标注作业

使用输入清单文件创建流式标注作业时,您可以选择一次性向该作业提交输入数据。标签任务启动且状态为后InProgress,您可以使用 Amazon SNS 输入主题和 Amazon S3 事件通知实时向标签作业提交新的数据对象。

启动标注作业时提交数据对象(一次性):

  • 使用输入清单文件 — 在创建流式标签任务ManifestS3Uri时,您可以选择在其中指定 Amazon S3 URI 中的输入清单文件。在标注作业开始后,Ground Truth 会立即将清单文件中的每个数据对象发送给工作人员以进行标注。要了解更多信息,请参阅创建清单文件(可选)

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

实时提交数据对象:

  • 使用亚马逊SNS消息发送数据对象 — 您可以通过发送亚马逊消息来向 Ground Truth 发送要标记的新数据对象。SNS您将向您在创建流媒体标签任务时创建和指定的亚马逊SNS输入主题发送此消息。有关更多信息,请参阅 使用 Amazon 发送数据对象 SNS

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

    重要

    如果您使用 Amazon S3 配置,请不要将相同的 Amazon S3 位置用于输入数据配置和输出数据。在创建标注作业时,可以为输出数据指定 S3 前缀。

使用 Amazon 发送数据对象 SNS

您可以使用亚马逊简单通知服务 (AmazonSNS) 将数据对象发送到您的流媒体标签任务。Amazon SNS 是一项网络服务,用于协调和管理与终端节点(例如,电子邮件地址或 Amazon Lambda 函数)。Amazon SNS 主题充当两个或多个终端节点之间的通信渠道。您可以使用 Amazon SNS 向CreateLabelingJob参数SnsTopicArn中指定的主题发送或发布新的数据对象InputConfig。这些消息的格式与输入清单文件的单行格式相同。

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

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

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

{"source-ref": "s3://amzn-s3-demo-bucket/example-image.jpg"}
注意

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

当 Ground Truth 创建你的直播标签任务时,它会订阅你的亚马逊SNS输入主题。

使用 Amazon S3 发送数据对象

您可以将一个或多个新数据对象放入配置有 Amazon SNS 事件通知的 Amazon S3 存储桶中,将它们发送到流式标签任务。您可以设置一个事件,以便在您的存储桶中创建新对象时通知您的 Amazon SNS 输入主题。您必须在中的CreateLabelingJob参数SnsTopicArn中指定相同的 Amazon SNS 输入主题InputConfig

无论何时您将 Amazon S3 存储桶配置为向亚马逊发送通知SNS,Ground Truth 都会发布测试事件,以确保主题存在且指定的 Amazon S3 存储桶的所有者有权向指定主题发布消息。"s3:TestEvent"建议您在开始串流标签作业SNS之前,先设置 Amazon S3 与亚马逊的连接。如果不这样做,此测试事件可能会注册为数据对象,并发送到 Ground Truth 进行标注。

重要

如果您使用 Amazon S3 配置,请不要将相同的 Amazon S3 位置用于输入数据配置和输出数据。在创建标注作业时,可以为输出数据指定 S3 前缀。

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

配置 Amazon S3 存储桶并创建标签任务后,您可以向存储桶中添加对象,然后 Ground Truth 要么将该对象发送给工作人员,要么将其放到您的亚马逊SQS队列中。

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

重要

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

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

当 Ground Truth 创建你的流媒体标签任务时,它会在其中创建一个亚马逊SQS队列 Amazon 用于创建标注任务的帐户。队列名称是 GroundTruth-labeling_job_name,其中 labeling_job_name 是标注作业的名称,用小写字母表示。向标注作业发送数据对象时,Ground Truth 会将数据对象直接发送给工作人员,或将任务放入队列,稍后再处理。如果数据对象在 14 天后没有发送给工作人员,则该数据对象将过期并从队列中删除。您可以在 Amazon 中设置警报SQS以检测对象何时过期,并使用此机制控制发送给贴标任务的对象数量。

重要

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

从流式标注作业接收输出数据

使用流式标注作业的新输出数据定期更新 Amazon S3 输出存储桶。

或者,您可以指定 Amazon SNS 输出主题。每次工作人员提交已标注对象时,都会向该主题发送包含输出数据的通知。您可以为终端节点订阅SNS输出主题,以便在收到标注任务的输出数据时接收通知或触发事件。如果您想实时链接到另一个流媒体任务,并在每次工作人员提交数据对象时收到亚马逊SNS通知,请使用 Amazon SNS 输出主题。

要了解更多信息,请参阅 为端点订阅 Amazon SNS 输出主题

重复消息处理

对于实时发送的数据对象,Ground Truth 通过确保每个唯一对象只发送一次以进行标注来保证幂等性,即使多次接收到引用该对象的输入消息(重复消息)也是如此。为此,发送到流式标注作业的每个数据对象都会分配一个重复数据删除 ID,该 ID 由重复数据删除键标识。

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

如果您未提供自己的重复数据删除键,或者使用 Amazon S3 配置将数据对象发送到标注作业,则 Ground Truth 将使用以下重复数据删除 ID 之一:

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

  • 对于来自 Amazon S3 配置的消息,Ground Truth 通过将对象的 Amazon S3 URI 与消息中的排序器令牌相结合来创建重复数据删除 ID。

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

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

自带重复数据删除键和 ID

按如下方式配置您的 Amazon SNS 消息,创建您自己的重复数据删除密钥和重复数据删除 ID。将 byo-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",

如果未指定键,则可通过以下方式找到 Ground Truth 为数据对象分配的重复数据删除 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 sequencer。如果对象是SNS直接馈送到的,Ground Truth 将使用SNS消息 ID。

注意

不要在标签属性名称中使用 $ 字符。