Skip to content
Guides1 min read

3D 物体、时间片段和智能体轨迹上的标注者间一致性

把结构化标注简化为标签名,会让所有标注者都显得一致。应按 IoU 匹配 3D 框和时间片段,并逐步为智能体轨迹打分。

Potato Team

要衡量结构化标注上的一致性,就要比较结构本身。按 IoU 把一位标注者的 3D 框或时间片段与另一位的相匹配,把未匹配的对象计为不一致,并逐步为智能体轨迹打分,让每一步都成为计算 kappa 或 alpha 的一个单元。

当每个条目只得到一个标签时,标注者间一致性很容易定义。而如今的许多任务给一个条目标出的是一组东西,例如激光雷达扫描中围住每辆车的长方体、标明每位说话人何时说话的片段,或者对智能体每一步的判定。为“每个条目一个标签”设计的度量,必须把这些结构简化为它能比较的东西,而最省事的简化方式,也就是简化为标签名,会让任意两位标注者都显得一致。

标签名带来的完全一致

这种简化保留标签名,丢掉其余一切。两位标注者在同一次激光雷达扫描上各画了三个标为“car”的框,简化后都变成“car”,即使他们的框位置各不相同,也会显得完全一致。

在 2.11 版之前,Potato 的逐方案一致性接口 /admin/api/agreement 就是这样处理结构化方案的,结果在智能体轨迹、片段、区域和 3D 物体上,任意两位标注者都显示为完全一致。在一项困难的空间或时间任务上得到满分,通常意味着度量丢掉了结构。在 2.11 中,这个接口不再报告结构化方案,而是指向位于 /admin/iaa 的完整一致性报告,后者会比较结构本身。

匹配 3D 物体和时间片段

一组对象上的一致性从匹配开始。用一种重叠度量,把一位标注者的每个对象与另一位的至多一个对象配对,只有重叠高于阈值时,这一对才算同一个对象。时间片段用时间 IoU(交并比),即重叠部分的长度除以并集的长度;3D 物体用 3D IoU,即同样的比值,只是换成体积。Potato 对片段的匹配阈值是 0.5,对 3D 物体是 0.25,因为同样的小偏移在三维中损失的 IoU 比在二维中更多。一个沿每条轴各偏移自身尺寸 10% 的框,2D IoU 约为 0.68,而 3D IoU 只有约 0.57。

匹配之后,每个匹配对贡献它的 IoU,标签不同的匹配对贡献其 IoU 的一半,任何一方每个未匹配的对象都贡献零。条目的一致性是总分除以对象数,匹配对只计一次。因此,漏标一半对象的标注者,即使标出的对象完美无缺,得分也会很低;而两位都什么也没标的标注者则算作一致。

对于 3D 物体(spatial_annotation)以及 temporal_grounding 和 tiered_annotation 下的时间片段,/admin/iaa 为每个方案报告两个数字:

  • mean_agreement,即在每个有两位或以上标注者的条目上,对每一对标注者计算的上述条目级得分的平均值;以及
  • mean_object_count_diff,即两位标注者所标对象数量之差的平均值。

数量差区分了一组对象可能出现不一致的两种方式。一致性低而数量差接近零,意味着人们找到了相同的对象,只是位置放得不同。数量差大,则意味着一位标注者找到了另一位漏掉的对象,这指向的是标注指南把什么算作一个对象。

这两个数字都没有做机会校正。空间一致性的机会基线需要一个模型来描述标注者随机不一致时对象会落在哪里,而 Potato 只为 2D 框和多边形构建了这样的模型,详见几何形状上的一致性。对时间片段,同样的方法行不通,因为当各段剪辑长度不同时,取自另一段剪辑的片段并不是有意义的随机比较,时间维度上的一致性解释了这一点。请在同一任务的不同试点轮次之间比较这些数字,因为在同一任务里,放置一个对象的难度是固定的。

2.11 中有一个边界情况发生了变化。两个相同的零长度片段,也就是两位标注者在同一时刻标出的一个瞬间,其 IoU 是 0 除以 0。它们过去被计为完全不一致,现在算作一致。

智能体轨迹的步骤级一致性

智能体轨迹是一串步骤,各种轨迹方案(process_reward、trajectory_eval、tool_call_review、failure_attribution、gui_trajectory)要求为每一步给出一个标签。按标签集合为轨迹打分,会重蹈标签名的覆辙;按整体判定打分,又会丢掉步骤。

/admin/iaa 把每条轨迹的每一步都当作一个独立单元。两位标注者为第 12 条轨迹的第 4 步打分,就贡献一对数据,然后在所有这样的单元上计算名义尺度的 Krippendorff's alpha 和 Cohen's kappa,以及百分比一致率。与上面的集合度量不同,这两个系数都做了机会校正,所以过程奖励任务上 0.6 的步骤级 alpha,与任何分类任务上的 alpha 处在同一尺度上。标注引擎在拿 LLM 评审与人对比打分时,也用同样的方式解析步骤标签,它的得分是双方都标注过的步骤中标签不同的比例。

为每个条目分配两位标注者

/admin/iaa 不需要任何配置。它会为每个有两位或以上标注者作答的条目打分,所以功夫在分配上。要让每个条目都有两位标注者,就把每个条目的标注者数设为两位,并优先发放标注次数最少的条目:

yaml
assignment_strategy: least_annotated
num_annotators_per_item: 2

每个条目两位标注者是这份报告所需的最低数量。在一个较小的重叠集上,一条不寻常的轨迹或一次激光雷达扫描,就可能让平均值变动到足以改变你结论的程度,所以请在标注开始之前而不是之后规划好重叠。较早的 agreement_metrics 配置块用于设置面板上的逐方案数字,从 2.11 起,这些数字会跳过上述方案并指向 /admin/iaa。

各试点轮次之间的一致性与数量差

请把 mean_agreement 与 /admin/iaa 在它旁边报告的数量差和标注者对数一起解读。如果两轮试点之间一致性下降而数量差稳定,问题出在位置上,所以关于框的松紧或片段边界的指南需要改进。如果数量差上升,问题出在什么算作一个对象或一个事件上。对于智能体轨迹,请把步骤级 alpha 与同一批标注者在同一研究中一个更简单的分类问题上达到的 alpha 作比较,这有助于把难标的步骤标签与不可靠的标注者区分开来。

延伸阅读