如何解决 Amazon SageMaker Ground Truth 标签错误?

2 分钟阅读
0

我想解决 Amazon SageMaker Ground Truth 标签错误。 -或者- 我的 SageMaker 的 Worker 无所事事。 -或者- 任务需要很长时间才能显示给我的 SageMaker 的 Worker。

解决方法

SageMaker Ground Truth 首先向您的 SageMaker 的 Worker 发送 10 个任务进行注释。此批用于检查并确保标签作业配置正确。然后,Ground Truth 根据 MaxConcurrentTaskCount 值向 Worker 发送更大批量的任务进行注释。

MaxConcurrentTaskCount 定义了人工 Worker 可以同时标记的最大数据对象数量。如果您使用控制台,则此参数设置为 1,000。如果您使用 CreateLabelingJob,则可以将此参数设置为 1 到 1,000(含)之间的任何整数。

Ground Truth 收到标签后,会使用合并 AWS Lambda 函数处理标签。使用此函数,最终注释将写入清单文件或 Amazon Simple Notification Service (Amazon SNS) 输出中。然后,Ground Truth 循环返回,根据输入清单文件或 Amazon SNS 主题中的 MaxConcurrentTaskCount 值读取另一批任务。

排除任务延迟和闲置 Worker 故障

  • 确保将 MaxConcurrentTaskCount 值设置为允许 Worker 在给定的 TaskAvailabilityLifetimeInSeconds 内完成整个批次的大小。此参数的最大值为 1000。
  • 确保将NumberOfHumanWorkersPerDataObject 设置为适合您的用例值。例如,如果将要标记的每个对象的 Worker 数量设置为 3,则每个对象需要由三个 Worker 标记。如果其中两个 Worker 完成了当前批次,则只有在第三个 Worker 完成其批次后,才会分配下一个批次。如果私人 Worker 注意到某个作业从门户中消失了,则该 Worker 可能已经完成了一个批次并在等待新批次可用时处于空闲状态。
  • 确保将 TaskAvailabilityLifetimeInSeconds 设置为适合您的用例值。该值表示 Worker 可以执行任务的总时间。您可以为此参数设置的最大值为 864,000 秒(10 天)。最佳做法是在以下条件下将输入数据集拆分为多个作业,并将其指向同一个工作团队:
  • 标签作业中的对象数量很多。
  • 作业失败,因为等待时间超过 TaskAvailabilityLifetimeInSeconds 值。
  • 确保将 TaskTimeLimitInSeconds 设置为适合您的用例值。如果您需要控制 Worker 完成任务所花费的时间,以确保对任务进行注释并分配下一批任务,请考虑为该时间限制设置适当的值。

对标签错误进行故障排除

检查权限

确保您拥有创建标签任务、访问输入数据和访问用于输出数据的 Amazon Simple Storage Service (Amazon S3) 存储桶的适当权限。有关更多信息,请参阅步骤 1:开始之前

确保满足以下条件:

  • Amazon S3 存储桶与 Ground Truth 标记任务位于同一个区域。
  • 该存储桶附带了 CORS 策略。有关更多信息,请参阅 CORS 权限要求

检查输出清单文件

检查您在 S3 存储桶中指定的输出清单文件以存储输出文件。在此输出数据集中,您可以看到任何可能导致标签作业失败的注解失败的元数据。

示例:

{"source-ref":"s3://sagemaker-output-labeling-bucket-example/example.jpeg","example-metadata":{"retry-count":1,"failure-reason":"ClientError: Annotation tasks expired.  Probable Reasons are 1) TaskAvailabilityLifetimeInSeconds parameter is too small.  2) Reward is too low for workers to work on the task.  3) If you use a custom html template, your template may be broken.  4) Data (image/video/text) sent for annotation is broken or too big, preventing completion.  5) All workers declined the tasks.","human-annotated":"true"}}

由于指令不清楚、输入数据损坏(显示不正确)或任务存在其他问题,Worker 可以拒绝任务。如果所有 Worker 都拒绝,则该对象将被标记为已过期,不会发送给任何其他 Worker。

您可以使用 Amazon CloudWatch Events 监控 Worker 是否拒绝、提交或返回任务。有关更多信息,请参阅监控标签作业状态

检查输入清单文件

确保输入清单文件满足所有列出的 JSON 对象要求。有关更多信息,请参阅使用输入清单文件


相关信息

创建标注作业

控制发送给 Worker 的数据对象的流量

监控标签作业

AWS 官方
AWS 官方已更新 2 年前