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

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

自动数据标记

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

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

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

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

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

注意

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

工作方式

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

  1. 当 Ground Truth 启动自动数据标记作业时,它会选择输入数据对象的随机样本并将其发送给工作人员。如果超过 10% 的数据对象失败,标记作业将失败。如果标记作业失败,除了查看任何错误消息Ground Truth返回,还要检查输入数据是否正确显示在工作人员 UI 中,说明是清晰的,并且您已为工作人员提供足够的时间来完成任务。

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

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

  4. 自动标记组件将使用这些质量指标和置信度得分来创建置信度得分阈值,以确保质量标签。

  5. Ground Truth 对数据集中未标记的数据运行批处理转换作业,同时使用相同的已验证模型进行推理。这将为每个对象生成置信度得分。

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

  7. 步骤 6 生成一个包含置信度得分的未标记数据的数据集。 从该数据集中Ground Truth选择置信度低的数据点,并将其发送给工作人员。

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

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

上述步骤在迭代中发生。选择下表中的每个选项卡以查看对象检测自动标记作业的每次迭代中发生的过程的示例。这些图像中的给定步骤中使用的数据对象数(例如,200)特定于此示例。如果要标记的对象少于 5000 个,则验证集大小为整个数据集的 20%。如果输入数据集中的对象数超过 5000 个,则验证集大小为整个数据集的 10%。通过使用 API 操作 MaxConcurrentTaskCount 时更改 的值,您可以控制每次主动学习迭代收集的人工标签数CreateLabelingJob。当您使用控制台创建标记作业时,此值设置为 1000。在 Active Learning (主动学习) 选项卡下所示的主动学习流程中,此值设置为 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 值的平均值(不包括背景)。

在主动学习的每次迭代中(上面列表中的步骤 3-6置信度阈值是使用人工注释的验证集找到的,以便自动标记对象的预期准确性满足特定预定义的准确度要求。

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

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

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

  1. 打开 Ground Truth 控制台的 Labeling jobs (标记作业SageMaker) 部分https://console.amazonaws.cn/sagemaker/groundtruth:。

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

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

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

  5. 使用 步骤 4:配置边界框工具 作为指南,在 部分中创建工作人员说明 Task Type 标记工具。例如,如果您选择了语义分割作为标记作业类型,则此部分称为语义分割标记工具

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

  7. 选择创建。这将创建并启动您的标记作业和自动标记过程。

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

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

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

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

自动数据标记作业完成后,Ground Truth 返回其用于自动数据标签作业的模型的 ARN。通过在 InitialActiveLearningModelArn 参数中以字符串格式提供 ARN,将此模型用作类似的自动标记作业类型的起始模型。要检索模型的 ARN,请使用类似于以下内容的 AWS Command Line Interface (AWS 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 计算实例的存储卷上的数据,请在 AWS Key Management Service 参数中包括一个 AWS KMS (VolumeKmsKeyId) 密钥。有关 AWS KMS 密钥的信息,请参阅 AWS Key Management Service 开发人员指南中的什么是 AWS Key Management Service

有关使用 CreateLabelingJob 操作创建自动数据标记作业的示例,请参阅笔记本实例的 SageMakerExamples, Ground Truth Labeling Jobs 部分中的 object_detection_tutorialSageMaker 示例。要了解如何创建和打开笔记本实例,请参阅创建笔记本实例。要了解如何访问 SageMaker 示例笔记本,请参阅示例笔记本

Amazon EC2自动数据标记所需的 实例

下表列出了为训练和批次推理作业运行自动数据标记所需的 Amazon Elastic Compute Cloud(Amazon EC2) 实例。

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

图像分类

ml.p3.2xlarge*

ml.c5.xlarge

对象检测(边界框)

ml.p3.2xlarge*

ml.c5.4large

文本分类

ml.c5.2xlarge

ml.m4.xlarge

语义分割

ml.p3.2xlarge*

ml.p3.2xlarge*

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

自动数据标记会产生两个单独的费用:每项目费用(请参阅 定价)和运行模型所需的 Amazon EC2 实例的费用(请参阅 Amazon EC2 定价)。

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

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

您可以使用自己的算法创建主动学习工作流程,以在该工作流程中运行训练和推理,从而自动标记您的数据。笔记本 bring_your_own_model_for_sagemaker_labeling_workflows_with_active_learning 使用SageMaker内置算法 BlazingText 对此进行演示。此笔记本提供了一个 堆栈,您可以使用该AWS CloudFormation堆栈通过 执行此工作流程AWS Step Functions。您可以在此 GitHub 存储库中找到笔记本和支持文件。

您还可以在 SageMaker Examples 存储库中找到此笔记本。请参阅使用示例笔记本以了解如何查找Amazon SageMaker示例笔记本。