我想解决 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 的数据对象的流量
监控标签作业