Skip to content

绘制遥测

一个框、多边形或掩码是如何产生的——每个图形的耗时、笔迹动态、修改次数,以及接受 AI 建议的延迟。这是唯一能把认真复核与走过场式盖章区分开的信号。

预标注让标注者更快,也让走过场式的"盖章通过"毫无阻力。 建议弹出,标注者点击接受,最终得到的数据集不过是一份模型与自己达成一致的记录。标注本身没有任何东西能把这与认真复核区分开:几何形状完全相同,而且所有质量指标看起来都更好,标注者间一致性也在其列。

唯一能显出差别的地方,是时间。

人无法在 300 毫秒内检视一条掩码边界并做出判断。偶尔一次也许可以,如果目标很明显的话。但作为跨大量条目的中位数,那就不是熟练,而是别的东西。

随着一键自动标注成为常态,这正是把认真复核与盖章通过区分开的信号。它是 2.8 版本中最被低估的能力。

事件流

一条事件包含时间戳、动作、几何类型,以及一个整数。

动作含义那个整数
shape_add提交了一个图形顶点数:框为 4,多边形为 len(points),掩码为 0
shape_edit移动或改动了已有图形
shape_remove删除了一个图形
stroke完成了一次画笔或橡皮擦笔画图像像素计的笔画长度
fill应用了漫水填充填充的像素数
zoom缩放级别发生变化级别 × 100
pan完成了一次平移拖拽以屏幕像素计的距离
toolundoredo
ai_suggest向标注者呈现了一条建议
ai_accept / ai_reject

任何情况下都不会记录坐标。 事件流能还原一份标注是如何做出来的,但无法还原标注本身。这是事件记录的结构性属性,而非一条政策:根本没有可以放坐标的字段,并且有测试对此做了断言。

笔画长度以图像像素而非屏幕像素计,因此无论标注者当时是放大还是缩小,同一笔画量出的数值都相同。

配置

yaml
annotation_telemetry:
  enabled: true
  fidelity: events           # off | summary | events
  store_events: true
  include_schemas: []        # 留空表示所有几何类模式
  exclude_schemas: []
  idle_ms: 120000            # 超过此长度的间隔算作空闲,而非活动
  flush_interval_ms: 10000

可运行示例:examples/advanced/annotation-telemetry/

真正会改变决策的信号

AI 接受延迟。 在大量条目上连续出现低于 500 毫秒的接受,就是盖章通过,而没有任何其他数字能把它与认真的认同区分开。

要把它当作分布来读,而不是当作阈值。一次快速接受说明目标简单;两百个条目上 300 毫秒的中位数则是另一回事,而且这是你无论如何也无法从标注本身得出的结论。

这一信号的边界

这里报告的是过程信号。它不检测欺诈,也不给标注者下定论。一次标记是"值得去看看"的提示,而非结论,并且基准率很重要:在一个多数条目确实简单的语料中,快往往就是对的。

其在文本侧的对应物是击键记录,它报告一段自由文本答案是如何写出来的。两者合起来,才是对"你怎么知道你的众包标注者不是从大模型里粘贴过来的"这一问题的诚实回答——而诚实的回答是一组带有逐项目校准的过程信号,不是一个分类器。

标注者会看到录制提示。这正是研究工具与监控之间的分界,并且该提示默认开启。

相关内容