把标注员的分歧当噪声抹平,等于给模型灌一个不存在的共识——同一套安全标准,暴力内容上一致率 0.96,私人话题上只剩 0.25
Thinking about High-Quality Human Data
这个专栏收 Lilian Weng 的文章已经收到第八篇,但这一篇的题目最不性感、也最少被人认真读完:人工标注的数据该怎么收。写于 2024 年 2 月,讲的全是 RLHF 之前的那一步——人是怎么打标签的,打出来的标签凭什么能信。它的核心主张只有一句:模型的上限不是模型给的,是那批打标签的人给的。而这件事长期没人正视的原因,Weng 引了一篇 CHI 2021 论文的标题当注脚——「人人都想做模型的活,没人想做数据的活」。
值得读的地方,是它把「数据质量」拆成方法论完全不搭界的两半:一半在人这端——任务怎么设计、标注员怎么挑和训、多个人的标签怎么合成一个;另一半在模型这端——数据已经收完了,用训练过程中的动态把疑似标错的样本自动指认出来。而全文最要紧的一节夹在中间:标注员的分歧不一定是噪声。把分歧当成需要抹平的误差,等于把一个真实存在的分布,压成一个不存在的共识。
众包这件事,一百年前就有人算过账
起点是 1907 年《自然》上的一篇短文《Vox populi》(民众之声):集市上人们竞猜一头公牛的重量,取所有猜测的中位数,结果非常接近真值。将近一百年后,Callison-Burch 在 2009 年把同一件事搬上亚马逊 Mechanical Turk——给非专家看原文和五个机器翻译系统的输出,请他们排序,每题五人。结论是非专家群体确实能逼近专家,但有个前提:先按一致率把刷量的水军降权。
从这里长出来的是一整套聚合方法:多数投票;raw agreement,数「有多少人跟你打得一样」当能力分;Cohen's Kappa,它在原始一致率上扣掉「瞎猜也能对上」的那部分,但某个标签占比过高时这个修正会扣过头;再往上是概率图模型。其中 MACE(2013)最直白——直接给每个标注员建一个「是不是在乱填」的隐变量,用可信度参数 θ 表示他不乱填的概率,拿 EM 或变分贝叶斯估出来,最后按 θ 加权投票。但这一整套的前提写在门口:存在唯一正确答案。
描述性还是规定性,你必须先选一个
问题是在安全、社会、文化这些话题上,人的分歧常常是正当的。Aroyo 与 Welty 2015 年列过一串「人工标注的迷思」:不少样本本来就有不止一种正确解释;分歧不总是坏事,流程缺陷造成的要修,源于立场的那部分是信息;专家未必判得更准,但在「什么重要」上与外行差距很大;真值本身还会随时间变。
Röttger 等人(2021 年提出,2022 年 NAACL)把这件事逼成一道二选一。描述性范式鼓励标注员的主观性,目标是建模多种信念,好处是能识别哪些样本本身有争议,代价是分歧率从此不能再当质量指标,也没法拿来训一个只输出单一预设行为的模型。规定性范式压制主观性,要求所有人执行同一套信念,好处是契合标准流程、质检容易,代价是指南永远写不完美、培训也难。
撑住这一节的数据来自 Wang 等人 2023 年的一项对照:拿 Trust & Safety 专业审核员的标签与众包标注员比,一致率按话题从暴力血腥的 0.96 一路掉到私人话题的 0.25;按良性、可争议、中等、极端四档看,两头一致率高,中间最糊。同一批人、同一份指南,一致率差出近四倍——这个数字本身就否掉了「一致率是一个全局质量分」的想法。对应的技术路线也已经有:Davani 等人 2021 年把「预测每一个标注员的标签」当成多任务学习的子任务,比直接学多数票的 F1 更高,还顺带给出一个与真实分歧相关的不确定度。
数据收完之后,让训练过程指认错标
后半篇换了战场:数据已经躺在那儿了,怎么把标错的挑出来。先解释一个术语:影响函数(influence function)源自稳健统计,Koh 与 Liang 2017 年引进深度网络,作用是不必真的重训,就能闭式估出「删掉某个样本,模型会怎么变」。作用在样本自己身上,就近似得到「这条数据被移走后它自己的预测误差」,值大的可疑。瓶颈是逆 Hessian 算不起,Grosse 等人 2023 年换上 EK-FAC 近似才推到大模型。
更便宜的一路是盯训练动态。Data Maps(2020)只记两个量:置信度(各轮里给真标签的平均概率)和波动度(这个概率的标准差);低置信加低波动的「难学」样本最可能是错标——在 WinoGrande 上人为翻转 1% 的标签,它们果然搬进了那个角落。但原论文同时按住一句:别把难学一概当成标错。高波动的「模糊」样本对分布外泛化反而更有用,拿它们训出的结果比用 100% 训练集还好。
最讨巧的是 AUM(2020)。一张鸟的图被标成狗,梯度里会有一场拉锯:别的鸟图把它往鸟拽,狗这个标签往狗拽,于是它的 margin(真标签的 logit 减去次大的 logit)长期偏低。阈值怎么定是这篇的巧劲——随机抽 N/(C+1) 个样本,把标签统统改成一个根本不存在的第 C+1 类,拿这批假样本 AUM 的 99 分位数当门槛——用一批已知全错的数据,去校准「多低算错」这条线。
本文为 AKL AI Club 原创撰写的导读,不是原文翻译;著作权归原文作者所有。 篇目由编辑独立选取,来源均经人工核实。