首页 > 解决方案 > Amazon Sagemaker Groundtruth:无法让主动学习发挥作用

问题描述

我正在尝试测试 Sagemaker Groundtruth 的主动学习能力,但无法弄清楚如何让自动标记部分工作。我使用必须手动创建的初始模型开始了之前的标记工作。这使我可以检索模型的 ARN 作为下一个工作的起点。我上传了 1,758 个数据集对象并标记了其中的 40 个。我以为自动标签会从这里开始,但 Sagemaker 中的工作只是说“完成”并且只显示我创建的标签。如何使自动贴标机工作?

我是否必须手动标记 1,000 个数据集对象才能开始工作?我看到了这篇文章:关于 Amazon Sagemaker groundtruth的信息,代表说 1,000 个对象中的一些可以自动标记,但是如果它需要 1,000 个对象来开始自动标记,这怎么可能呢?

提前致谢。

标签: amazon-web-servicesamazon-sagemakerlabeling

解决方案


我是 AWS 的工程师。为了理解“主动学习”/“自动数据标记”功能,首先对 SageMaker Ground Truth 的工作原理进行更广泛的回顾会有所帮助。

首先,让我们考虑没有主动学习功能的工作流程。回想一下,Ground Truth 批量注释数据 [ https://docs.aws.amazon.com/sagemaker/latest/dg/sms-batching.html]。这意味着您的数据集已提交以用于“块”中的注释。这些批次的大小由 API 参数 MaxConcurrentTaskCount [ https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HumanTaskConfig.html#sagemaker-Type-HumanTaskConfig-MaxConcurrentTaskCount]控制。此参数的默认值为 1,000。当您使用 AWS 控制台时,您无法控制此值,因此将使用默认值,除非您通过 API 而不是控制台提交作业来更改它。

现在,让我们考虑一下主动学习如何融入这个工作流程。主动学习您的批量手动注释之间运行。另一个重要的细节是,Ground Truth 会将您的数据集划分为验证集和未标记集。对于小于 5,000 个对象的数据集,验证集将是总数据集的 20%;对于大于 5,000 个对象的数据集,验证集将是总数据集的 10%。一旦收集了验证集,随后手动注释的任何数据都将构成训练集。验证集和训练集的收集根据上一段中描述的批处理过程进行。关于主动学习的更长讨论见 [https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html]

最后一段有点拗口,所以我将使用您提供的数字提供一个示例。

示例 #1

  • 默认 MaxConcurrentTaskCount(“批量大小”)为 1,000
  • 数据集总大小:1,758 个对象
  • 计算验证集大小:0.2 * 1758 = 351 个对象

批 #

  1. 注释 351 个对象以填充验证集(剩余 1407 个)。
  2. 注释 1,000 个对象以填充训练集的第一次迭代(剩余 407 个)。
  3. 进行主动学习。根据该阶段模型的准确性,此步骤可能会导致对剩余 407 个对象中的零个、部分或全部进行注释。
  4. (假设在步骤 #3 中没有自动标记任何对象)注释 407 个对象。结束贴标作业。

示例 #2

  • 250 的非默认 MaxConcurrentTaskCount(“批量大小”)
  • 数据集总大小:1,758 个对象
  • 计算验证集大小:0.2 * 1758 = 351 个对象

批 #

  1. 注释 250 个对象以开始填充验证集(剩余 1508 个)。
  2. 注释 101 个对象以完成填充验证集(剩余 1407 个)。
  3. 注释 250 个对象以填充训练集的第一次迭代(剩余 1157 个)。
  4. 进行主动学习。根据该阶段模型的准确性,此步骤可能会导致对剩余 1157 个对象中的零个、部分或全部进行注释。在其他条件相同的情况下,我们希望该模型在此阶段不如示例 #1 中的模型准确,因为我们的训练集在这里只有 250 个对象。
  5. 重复注释批 250 个对象和运行主动学习的交替步骤。

希望这些示例说明了工作流程并帮助您更好地理解该过程。由于您的数据集包含 1,758 个对象,因此可以提供的自动标签数量的上限是 407 个对象(假设您使用默认的 MaxConcurrentTaskCount)。

最终,1,758 个对象仍然是一个相对较小的数据集。我们通常建议至少 5,000 个对象才能看到有意义的结果 [ https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html]。在不了解标签作业的任何其他详细信息的情况下,很难判断为什么您的作业没有产生更自动化的注释。一个有用的起点可能是检查您收到的注释,并确定在 Ground Truth 标记作业期间训练的模型的质量。

AWS 致以最诚挚的问候!


推荐阅读