用盲态条目衡量 LLM 建议对标注者的锚定作用
看到 LLM 标签的标注者,给出的标签与没看到的人不同。在一份随机样本上隐藏建议,再比较盲态一致性与显示建议时的一致性。
看到 LLM 建议标签的标注者往往会给出那个标签,所以建议显示在屏幕上时,人与模型之间的一致性要高于建议不显示时。在一份随机条目样本上隐藏建议,衡量这些盲态条目上的一致性,并用盲态一致性而不是总体一致性来决定在多大程度上信任模型。
*锚定效应*是指先看到的数字或答案会把之后的判断往它那边拉。在标注中,锚点就是预标注,也就是由标注者接受或修正的模型建议。锚定不同于走过场式的盖章,后者是指标注者不读建议就接受它。一个认真阅读每条建议的标注者仍然可能被锚定,因为在模棱两可的条目上,建议的答案已经摆在页面上了。计时信号能发现走过场式的盖章,正如一致性抓不出走过场式的盖章所述。然而,被锚定的标注者在条目上花的时间可能很正常,所以计时无法把锚定与独立判断区分开。
建议会改变标签的证据
一项预注册实验(Schroeder et al., 2025)从 350 名众包工作者那里收集了 7000 条主观任务标注,涵盖 4 种条件、2 个模型和 2 个数据集。显示 LLM 建议并没有让标注者更快,但提高了他们自我报告的信心。标注者采纳建议的频率高到足以让标签分布与没看到建议的标注者相比发生显著变化。当用这些在 LLM 协助下得到的标签去评估该 LLM 时,它报告出的性能显著上升。
因此,模型与看过其建议的审核者之间的一致性,部分是模型与它自己的一致。任何依赖这个数字的决定,例如一旦一致性超过 90% 就把剩余语料交给模型,都是在一个被抬高的数字上做出的。
盲态条目与锚定差距
在标注开始之前,随机选出一定比例的条目,让标注者在没有建议的情况下标注它们。在其余条目上,建议照常显示。比较这两部分会得到三个数字:
- 盲态一致性,即模型与没看到其建议时给出的标签之间的一致性,它估计模型正确的频率;
- 显示一致性,即模型与其建议显示在屏幕上时给出的标签之间的一致性;以及
- 锚定差距,即显示一致性减去盲态一致性,它估计建议把人拉动了多少。
盲态条目必须随机选出,并在整个研究中保持固定。挑选最难的条目,或让标注者自己决定何时查看建议,都会让盲态样本失去代表性,这时盲态一致性对语料的其余部分就什么也估计不了。另外,只有当标注者从未看到某个条目的建议时,这个标签才算盲态,所以出现分歧后重新给出的标签应归入显示建议的那一组。
盲态比例是在速度和证据之间的权衡。每个盲态条目都得不到建议所节省的时间,而盲态条目太少又会让盲态一致性噪声很大。Potato 的默认设置是 20% 的比例,下限为 20 个盲态条目。按这个比例,一项只有 20 个条目的研究只会产生大约 4 个盲态条目,所以请把下限设成语料实际能提供的数量。
Solo Mode 中的盲态建议
Solo Mode 是 Potato 为一位专家与一个 LLM 协作而设的模式。LLM 为语料打标签,专家在旁一起标注,一旦专家与 LLM 的一致性超过 end_human_annotation_agreement,Solo Mode 就把剩余条目交给 LLM。在 Potato 2.11 之前,这一一致性是在建议可见时给出的标签上测得的。从 2.11 起,solo_mode.suggestions 控制建议何时出现:
solo_mode:
suggestions:
display: blind_sample # before_label | after_label | blind_sample
blind_rate: 0.2
minimum_blind_sample: 20blind_sample 在固定的 20% 条目上隐藏建议,这些条目在研究开始时一次选定,所以重新加载或重启后,仍是同一批条目保持盲态。after_label 从不先显示建议;当专家与 LLM 意见不一致时,分歧处理页面会显示 LLM 的标签及其理由。一旦有了 20 次盲态比较,交接时就会拿盲态一致性而不是总体一致性去与阈值比较。
面板上的 Blind Agreement 卡片把盲态一致性和显示一致性并排列出,同时给出两者的差距,以及专家用 Accept 按钮采纳建议的频率。差距要等两边都至少有 5 次比较后才会报告。较大的正差距意味着专家在能看到 LLM 答案时更常与它一致。这种情况下,请让更多条目保持盲态,或者改用 after_label。
标注引擎中的盲态校准
同样在 2.11 中新增的 Potato 标注引擎,把同一条规则应用到它用作证据的每一个标签上。校准、认证和抽查请求都是随机抽取的,并记录了入选概率;当某人持有这样一个请求时,服务器会扣下该条目的所有机器答案。预标注、内联评审和 AI 助手全部关闭,而且这个人保存之后,条目对他仍保持盲态。引擎只用这些盲态标签来认证机器标签。
核验请求则是反过来的情况。它们会显示机器的答案,请人保留或修改它,并记录预填的答案,好让你衡量人们接受它的频率。引擎从不用核验答案来认证,因为它们从设计上就是被锚定的。设置 humans.verify_visibility: blind 后,核验请求也会在不显示答案的情况下提供,代价是失去建议所节省的时间。
盲态样本的局限
盲态样本衡量的是模型与没有辅助的人相比如何,只有当没有辅助的人在这项任务上可靠时,这才是正确的参照。在认真的标注者彼此也会有分歧的主观任务上,盲态一致性有一个低于 100% 的上限,而模型可能正好处在这个上限。在把较低的盲态一致性解读为模型较弱之前,请先按照 LLM 评审一致性所述,把模型与人的一致性同人与人之间的一致性作比较。
盲态样本也不会改变那些在显示建议时给出的标签。这些标签仍然是被锚定的,一个主要由它们构成的数据集会继承模型的偏好。请随数据集一起报告盲态一致性和锚定差距,并在标注第一个条目之前就设置 display: blind_sample,因为在建议可见时标注的条目,事后无法再变成盲态。
延伸阅读
- 一致性抓不出走过场式的盖章:针对不读就接受的标注者的计时信号
- LLM 预标注:审核预标注中的自动化偏差
- 用一份盲态人工样本认证 LLM 标签:对照盲态样本认证机器标签
参考文献
- Schroeder, H., Roy, D., and Kabbara, J. (2025). Just put a human in the loop? Investigating LLM-assisted annotation for subjective tasks. Findings of ACL 2025. https://doi.org/10.18653/v1/2025.findings-acl.1323