绘制遥测
一个框、多边形或掩码是如何产生的——每个图形的耗时、笔迹动态、修改次数,以及接受 AI 建议的延迟。这是唯一能把认真复核与走过场式盖章区分开的信号。
预标注让标注者更快,也让走过场式的"盖章通过"毫无阻力。 建议弹出,标注者点击接受,最终得到的数据集不过是一份模型与自己达成一致的记录。标注本身没有任何东西能把这与认真复核区分开:几何形状完全相同,而且所有质量指标看起来都更好,标注者间一致性也在其列。
唯一能显出差别的地方,是时间。
人无法在 300 毫秒内检视一条掩码边界并做出判断。偶尔一次也许可以,如果目标很明显的话。但作为跨大量条目的中位数,那就不是熟练,而是别的东西。
随着一键自动标注成为常态,这正是把认真复核与盖章通过区分开的信号。它是 2.8 版本中最被低估的能力。
事件流
一条事件包含时间戳、动作、几何类型,以及一个整数。
| 动作 | 含义 | 那个整数 |
|---|---|---|
shape_add | 提交了一个图形 | 顶点数:框为 4,多边形为 len(points),掩码为 0 |
shape_edit | 移动或改动了已有图形 | — |
shape_remove | 删除了一个图形 | — |
stroke | 完成了一次画笔或橡皮擦笔画 | 以图像像素计的笔画长度 |
fill | 应用了漫水填充 | 填充的像素数 |
zoom | 缩放级别发生变化 | 级别 × 100 |
pan | 完成了一次平移拖拽 | 以屏幕像素计的距离 |
tool、undo、redo | — | |
ai_suggest | 向标注者呈现了一条建议 | — |
ai_accept / ai_reject | — |
任何情况下都不会记录坐标。 事件流能还原一份标注是如何做出来的,但无法还原标注本身。这是事件记录的结构性属性,而非一条政策:根本没有可以放坐标的字段,并且有测试对此做了断言。
笔画长度以图像像素而非屏幕像素计,因此无论标注者当时是放大还是缩小,同一笔画量出的数值都相同。
配置
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 毫秒的中位数则是另一回事,而且这是你无论如何也无法从标注本身得出的结论。
这一信号的边界
这里报告的是过程信号。它不检测欺诈,也不给标注者下定论。一次标记是"值得去看看"的提示,而非结论,并且基准率很重要:在一个多数条目确实简单的语料中,快往往就是对的。
其在文本侧的对应物是击键记录,它报告一段自由文本答案是如何写出来的。两者合起来,才是对"你怎么知道你的众包标注者不是从大模型里粘贴过来的"这一问题的诚实回答——而诚实的回答是一组带有逐项目校准的过程信号,不是一个分类器。
标注者会看到录制提示。这正是研究工具与监控之间的分界,并且该提示默认开启。