自动数据标记 - 亚马逊 SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

自动数据标记

如果您选择,Amazon SageMaker Ground Truth 可以使用主动学习来自动标记某些内置任务类型的输入数据。主动学习 是一种机器学习技术,可识别应由您的工作人员标记的数据。在 Ground Truth 中,此功能称为自动数据标记。自动数据标记与只用人工相比,有助于减少标记数据集所需的成本和时间。当您使用自动贴标时,您会承受 SageMaker 训练和推理成本。

我们推荐在大型数据集上使用自动标签,因为用于主动学习的神经网络对于每个新的数据集需要大量的数据。通常,随着您提供更多数据,进行高精度预测的可能性就会增加。只有在自动标记模型中使用的神经网络能够达到可接受的高精度时,数据才会被自动标记。因此,对于较大的数据集,能自动标记数据的可能性更大,因为神经网络可以实现自动标记所需的足够高的准确性。当您拥有数千个数据对象时,自动数据标记最为合适。自动数据标记允许的最小对象数量为 1,250,但我们强烈建议至少提供 5,000 个对象。

自动数据标签仅适用于以下 Ground Truth 内置任务类型:

流式处理标记作业不支持自动数据标记。

要了解如何使用您自己的模型创建自定义活动学习工作流程,请参阅使用自己的模型设置主动学习工作流程.

输入数据配额适用于自动数据标记作业。请参阅输入数据配额获取有关数据集大小、输入数据大小和分辨率限制的信息。

注意

在生产中使用自动标签模型之前,您需要对其进行微调或测试,或两者兼而有之。您可以针对由您的标记作业生成的数据集来优化模型(或创建并优化您选择的另一个监管式模型),以优化模型的架构和超参数。如果您决定使用模型进行推理而不对其进行微调,我们强烈建议您确保在标有 Ground Truth 的数据集的代表性(例如,随机选择的)子集上评估其准确性,并且该子集符合您的预期。

工作方式

在您创建标记作业时开启自动数据标记功能。以下是具体工作原理:

  1. 当 Ground Truth 启动自动数据标记作业时,它会选择输入数据对象的随机样本并将其发送给人类工作者。如果这些数据对象中有超过 10% 出现故障,则标记作业将失败。如果标签作业失败,除了查看 Ground Truth 返回的任何错误消息外,还要检查您的输入数据是否在工作器用户界面中正确显示,说明是否清晰,以及是否为工作人员提供了足够的时间来完成任务。

  2. 返回带标签的数据时,它用于创建训练集和验证集。Ground Truth 使用这些数据集来训练和验证用于自动标注的模型。

  3. Ground Truth 使用经过验证的模型对验证数据进行推断,运行批量转换作业。批量推理为验证数据中的每个对象生成置信度得分和质量指标。

  4. auto 标签组件将使用这些质量指标和置信度分数来创建置信分数阈值值这样可以确保标签的质量。

  5. Ground Truth 使用经过验证的相同模型对数据集中的未标记数据运行批量转换作业。这会为每个对象生成置信度分数。

  6. Ground Truth 自动标签组件确定在步骤 5 中为每个对象生成的置信度分数是否满足步骤 4 中确定的所需阈值。如果置信度分数达到阈值,则自动贴标的预期质量超过了要求的准确度级别,该对象将被视为自动标记。

  7. 步骤 6 生成带有置信度分数的未标记数据的数据集。Ground Truth 从该数据集中选择置信度分数较低的数据点并将其发送给人类工作者。

  8. Ground Truth 使用现有的人工标记数据和来自人类工作者的额外标记数据来更新模型。

  9. 该过程将重复执行,直到数据集被完全标记或者直到满足其他停止条件为止。例如,如果达到人工注释预算,自动标注就会停止。

前面的步骤是以迭代方式进行的。选择下表中的每个选项卡,查看对象检测自动标记作业每次迭代中发生的过程示例。这些图像中给定步骤中使用的数据对象的数量(例如 200)特定于此示例。如果要标记的对象少于 5,000 个,则验证集的大小为整个数据集的 20%。如果您的输入数据集中超过 5,000 个对象,则验证集的大小为整个数据集的 10%。您可以通过更改的值来控制每次主动学习迭代收集的人工标签的数量MaxConcurrentTaskCount使用 API 操作时CreateLabelingJob. 当您使用控制台创建标签任务时,此值设置为 1,000。在主动学习流程中,如下所示主动学习选项卡,此值设置为 200。

Model Training
Automated Labeling
Active Learning

自动标签的准确性

的定义准确性取决于您在自动标签中使用的内置任务类型。对于所有任务类型,这些精度要求由 Ground Truth 预先确定,无法手动配置。

  • 对于图像分类和文本分类,Ground Truth 使用逻辑来找到至少对应于 95% 标签精度的标签预测置信度。这意味着,与人工贴标机为这些示例提供的标签相比,Ground Truth 预计自动标签的准确度至少为95%。

  • 对于边界框,预期均值联盟之上的十字路口 (IOU)的自动贴标图像为 0.6。为了找出平均值 IoU,Ground Truth 会计算每个类的图像上所有预测和错过的方框的均值 IoU,然后将这些值求平均值。

  • 对于语义分割,自动标记图像的预期平均IOU为0.7。为了找到平均值 IoU,Ground Truth 采用图像中所有类(不包括背景)的 IoU 值的平均值。

在 Active Learning 的每次迭代(上面列表中的步骤 3-6)中,使用人工注释的验证集找到置信度阈值,这样自动标记对象的预期精度就能满足某些预定义的精度要求。

创建自动数据标记作业(控制台)

在中创建使用自动标签的标签作业 SageMaker 控制台,使用以下过程。

创建自动数据标记作业(控制台)
  1. 打开Ground Truth标记作业部分 SageMaker控制台:https://console.amazonaws.cn/sagemaker/groundtruth.

  2. 使用创建标记作业(控制台)作为指南,完成 Job overview (作业概览)Task type (任务类型) 部分。请注意,自定义任务类型不支持auto 标记。

  3. Workers (工作人员) 下,选择您的人力类型。

  4. 在同一部分中,选择 Enable automated data labeling (启用自动数据标记)

  5. 使用第 4 步:配置定界框工具作为指南,在 Task Type labeling tool (任务类型标记工具) 部分中创建工作人员说明。例如,如果你选择了语义分割作为你的标签作业类型,这个部分叫做语义分段标签工具.

  6. 要预览工作人员说明和控制面板,请选择 Preview (预览)

  7. 选择Create(创建)。这将创建并启动您的标签作业和auto 贴标流程。

您可以看到您的标签作业显示在标记作业部分 SageMaker 控制台。您的输出数据显示在创建标签任务时指定的 Amazon S3 存储桶中。有关标记作业输出数据的格式和文件结构的更多信息,请参阅 输出数据

创建自动数据标记作业 (API)

要创建自动数据标记作业,请使用 SageMaker API,使用LabelingJobAlgorithmsConfig的参数CreateLabelingJob操作。要了解如何使用标记作业CreateLabelingJob操作,请参阅创建标记作业 (API).

在中指定您用于自动标记数据的 Amazon 资源名称 (ARN)。LabelingJobAlgorithmSpecificationArn参数。从自动标签支持的四个 Ground Truth 内置算法中选择一种:

当自动数据标记任务完成时,Ground Truth 会返回其用于自动数据标记任务的模型的 ARN。使用此模型作为类似自动标记任务类型的起始模型,方法是在中提供字符串格式的 ARNInitialActiveLearningModelArn参数。要检索模型的 ARN,请使用类似于以下内容的 Amazon Command Line Interface (Amazon CLI) 命令。

# Fetch the mARN of the model trained in the final iteration of the previous labeling job.Ground Truth pretrained_model_arn = sagemaker_client.describe_labeling_job(LabelingJobName=job_name)['LabelingJobOutput']['FinalActiveLearningModelArn']

要加密附加到用于自动标记的 ML 计算实例的存储卷上的数据,请在 VolumeKmsKeyId 参数中包括一个 Amazon Key Management Service (Amazon KMS) 密钥。有关信息AmazonKMS 密钥,请参阅什么是Amazon密钥管理服务?AmazonKey Mant Service.

举个例子,它使用CreateLabelingJob操作创建自动数据标记作业,请参阅object_detection_教程示例SageMaker 示例,Ground Truth 标记a 的一部分 SageMaker 笔记本实例。要了解如何创建和打开笔记本实例,请参阅创建笔记本实例。了解如何访问 SageMaker 示例笔记本,请参阅示例笔记本.

自动数据标签需要使用 Amazon EC2 实例

下表列出了您在训练和批量推断任务中运行自动数据标记所需的亚马逊Elastic Compute Compute Compute Compute Compute Compute Cloud (

自动数据标记作业类型 训练实例类型 推理实例类型

图像分类

ml.p3.2xlarge*

ml.c5.xlarge

对象检测(边界框)

ml.p3.2xlarge*

ml.c5.4xlarge

文本分类

ml.c5.2xlarge

ml.m4.xlarge

语义分割

ml.p3.2xlarge*

ml.p3.2xlarge*

* 在亚太地区(孟买)区域 (ap-south-1),请改用 ml.p2.8xlarge。

Ground Truth 管理您用于自动数据标记任务的实例。它根据需要创建、配置和终止实例以执行作业。这些实例不会出现在您的 Amazon EC2 实例控制面板中。

使用自己的模型设置主动学习工作流程

您可以使用自己的算法创建主动学习工作流程,在该工作流程中运行训练和推理,以自动标记您的数据。笔记本 bring_your_own_model_for_sagemaker_labeling_workflows_with_active_learning.ipynb 使用 SageMaker 内置算法,BlazingText. 这款笔记本提供了Amazon CloudFormation堆栈,你可以用它来执行这个工作流程Amazon Step Functions. 你可以在这里找到笔记本和支持文件GitHub 知识库.

您还可以在以下内容中找到该笔记本 SageMaker 示例存储库。请参阅使用示例笔记本学习如何找到亚马逊 SageMaker 示例笔记本。