Amazon Sagemaker Groundtruth:无法让主动学习发挥作用

Amazon Sagemaker Groundtruth: Cannot get active learning to work

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

我是否必须手动标记 1,000 个数据集对象才能开始工作?我看到这个post: Information regarding Amazon Sagemaker groundtruth,代表说1000个对象中的一些可以自动标记,但是如果需要1000个对象开始自动标记怎么可能呢?

提前致谢。

我是 AWS 的一名工程师。为了理解 "active learning"/"automated data labeling" 功能,从更广泛地回顾 SageMaker Ground Truth 的工作原理开始会很有帮助。

首先,让我们考虑没有主动学习功能的工作流程。回想一下,Ground Truth 批量注释数据 [https://docs.aws.amazon.com/sagemaker/latest/dg/sms-batching.html]. This means that your dataset is submitted for annotation in "chunks." The size of these batches is controlled by the API parameter 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 ("batch size") 为 1,000
  • 数据集总大小:1,758 个对象
  • 计算出的验证集大小:0.2 * 1758 = 351 个对象

批次#

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

示例 #2

  • 非默认 MaxConcurrentTaskCount ("batch size") 为 250
  • 数据集总大小: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 向您致以最诚挚的问候!