Skip to content
Guides2 min read

不用黄金标签的质量控制

黄金标准造起来贵、会泄露,而且只能测到你当初想得到要埋的那些条目。另有两条路,同伴预测打分和反事实边界探针,一个埋点都不用,就能揪出不认真的标注者和有问题的指南。

Potato Team

检查标注质量的标准做法,是埋进一些你早就知道答案的条目,看谁做错。这招管用,但造起来贵,只能测到你当初想得到要埋的那些情形,而且老练的标注者会学会认出埋点。有两种技术能让你在完全没有黄金条目的情况下拿到质量信号:同伴预测打分,让标注者预测别人会怎么答;以及反事实探查,问一个标签在小幅改动之后还成不成立。 这两样 Potato 都有,分别叫 Truth Serum边界实验室

黄金标准与注意力检查是“我怎么知道标注者有没有在认真做”这个问题的默认答案,它们也配得上这个位置。但它们有三项实打实的成本。

你得先把它们造出来,这意味着专家的时间要花在标注一些你本来就懂的条目上。它们只覆盖你预想到的失效模式。而在任何跑得久一点的任务上,标注者最终都会认出它们。一条被反复使用的黄金条目,就是一条不再测量任何东西的黄金条目。

下面两种技术把这三点都绕开了,而且都不需要 LLM。

同伴预测:问问别人会怎么答

标注者选完标签之后,Truth Serum 会再问一件事:

你选的是 Sarcastic。你觉得有多大比例的其他标注者会和你选一样的标签?

一个滑块,一次点击。就这么一个额外的数字,干的活出人意料地多。

同伴预测打分:“有多大比例的其他标注者会选同一个标签?”Truth Serum 的预测卡片

这个预测为什么有信息量

方法来自意外流行(surprisingly popular)原则(Prelec、Seung 与 McCoy 2017Nature;建立在 Prelec 的贝叶斯真话血清之上,2004)。它的主张是:对真相的最佳估计不是最流行的那个答案,而是比人们预测的还要流行的那个答案。

推理是这样的。持有正确少数派观点的人,通常知道自己是少数派。他们看得出为什么大多数人会答得不一样,你让他们预测的时候他们也会照实说。反过来,抱着某种常见误解的人,往往会假定所有人都跟自己想的一样。所以当一个答案的实际流行度超过了它自己被预测的流行度,这个差值就是证据:选它的人知道一些大众不知道的东西。

多数投票失效得最厉害的地方,恰恰是自信的多数人错了、知情的少数人对了。意外流行打分就是为这种情形造的。

yaml
truth_serum:
  enabled: true
  schema: sarcasm
  min_annotators: 5

据我们所知,Potato 是第一个提供同伴预测打分的标注工具。

你能拿到什么

三样东西,没有一样需要标准答案。

一份“多数可能出错的地方”队列。 所有意外流行标签与多数标签不一致的条目。这些才是值得专家花时间看的条目,而且数量通常远比你担心的少。

每位标注者的校准分数。 每个人预测的一致度,和他们实际拿到的一致度差了多远。一个人如果总预测 90% 的其他人会同意自己,实际却总只拿到 55%,这就透露了他的自我认知水平。而你不用埋任何东西就学到了这一点。

SP 对齐度。 每位标注者的标签与意外流行判定一致的频率,这是“是否真的知情”而非“是否只是随大流”的一个粗略代理指标。

引用它之前先看一条提醒:这是简化的自答预测变体,每位标注者只预测自己所选标签的流行度,而不是给出所有标签上的完整分布。另外 min_annotators: 3 是下限,不是推荐值。到五个以上,判定才不再那么嘈杂。

反事实探针:问这个标签扛不扛得住一次改动

Truth Serum 找的是多数人做错的条目。边界实验室找的是另一样东西:你的标注手册在哪里有歧义,以及哪些标注者其实没在读。

标签一提交,Potato 就展示对文本的一处最小改动,问这个标签还成不成立。

你说的是 Polite。这处改动之后它还成立吗?

标注后在带颜色的差异对比上进行反事实探查:“它还成立吗?”一个边界实验室探针

回答只需一次点击。但因为你问了这一句,普通的标注流程现在能产出三样纯标签导出拿不到的东西。

对比集,顺带就有了

每个回答过的探针都是一对带标签的 (原文, 反事实) 数据。这就是对比集:一种被证明能提升模型鲁棒性的反事实增强数据(Gardner et al. 2020Evaluating Models' Local Decision Boundaries via Contrast SetsKaushik et al. 2020)。

构建对比集通常是一项单独且昂贵的标注工作。在这里,它从你本来就要做的标注里掉出来。

yaml
boundary_probing:
  enabled: true
  schema: politeness
  probes_per_item: 3
  include_invariance: true
  sources: [precomputed, llm, rules]

sources 列表是一条回退链。你可以随数据提供人工整理好的反事实样本,用 LLM 生成它们,或者让基于规则的那一层用否定翻转、程度词替换、礼貌标记之类的词汇变换造出来。最后这一层就是边界实验室在完全不配置 LLM 的情况下也能工作的原因,也是这个功能在没人设 API key 时会优雅降级而不是直接罢工的原因。

无形的质量控制

有些探针是不变性探针:保持语义的改写。“会前把幻灯片发给我”(Send me the slides before the meeting)变成“在会议开始前,把幻灯片发给我”(Before the meeting, send me the slides)。

一致的标注者绝不会在这类探针上翻转。翻转的人要么没在仔细读,要么对这个标签的含义没有稳定的理解。不管是哪种你都想知道,而你不用埋一条假条目就知道了。这个探针和普通工作完全无法区分,因为它就是普通工作。

仪表板会把不变性探针保持率低于 60% 的标注者标出来。

边界理由

标签真的发生翻转时,标注者要说出是什么越过了那条线:“please 让这条命令变得柔和了。”这些理由累积起来,就成了一张地图,精确指出你的指南在哪里说得不够清楚,而这正是写出更好指南的输入。

仪表板还会报告按标签的边界敏感度:针对每个标签的最小改动中,实际发生翻转的比例。翻转率 90% 的标签处在刀刃上,多半需要一个更清楚的定义。10% 的标签则很稳健。

该用哪一个?

它们回答的是不同的问题,而且可以叠加使用。

Truth Serum边界实验室
找出什么多数人可能做错的条目有歧义的指南;不认真的标注者
标注者的成本每条一个滑块每个探针一次点击
产出什么更好的判定、校准分数对比集、边界理由
需要 LLM 吗不需要不需要(有基于规则的层)

如果你担心的是*“在难题上共识标签可能是错的”,先上 Truth Serum。如果是“我觉得我的标注手册不够精确,也不确定大家都在认真读”*,先上边界实验室。

这两者都不能替代心理测量学,后者告诉你每个标签该有多少信心、哪些标注者该加多少权重。三者合在一起,你得到的研究是质量被持续测量而不是抽查的,而且所有测量都不依赖一份你得先造出来的标准答案。

延伸阅读