博客进阶
思考高质量人类数据
Thinking about High-Quality Human Data
Lilian Weng 在个人博客 Lil'Log 上发布的文章,讨论高质量数据对深度学习模型训练的重要性,以及人类标注数据采集中的质量问题。文中从两个方向展开:人类标注者与数据质量,包括任务设计、标注者筛选与培训、群体智慧、标注者一致性与分歧及两种范式;数据质量与模型训练,包括影响函数、训练过程中的预测变化与带噪交叉验证。文末附引用文献,并致谢 Ian Kivlichan 提供线索与反馈。适合关注数据标注、RLHF 数据与模型训练数据质量的人阅读。
- 分级
- 值得看
- 收录时间
- 2026-10-29
中文精读
原文约 5,014 词 · 20 节
关于高质量人类数据的思考(引言)
- 高质量数据是深度学习模型训练的关键来源,任务相关的标注数据大多来自人工标注,例如分类任务或用于大模型对齐的 RLHF 标注(可构造成分类格式)。
- 文中提到的许多机器学习技术都有助于数据质量,但人类数据采集本质上依赖对细节的关注和严谨执行。
- 社区普遍知道高质量数据的价值,却有一种微妙印象:大家都愿意做模型工作,不愿意做数据工作(Sambasivan 等,2021)。
- 文章从两个方向切入高质量数据:标注者与数据质量的关系,以及数据质量与模型训练的关系。
标注者 ↔ 数据质量
- 人类数据采集包含一系列操作步骤,每一步都影响数据质量。
- 第一步是任务设计:设计工作流程以提高清晰度、降低复杂度;详细指南有帮助,但过于冗长复杂的指南需要相当多的培训才能用起来。
- 第二步是挑选并培训标注者池:选择技能与一致性匹配的标注者,培训必不可少,入职后还需要定期反馈与校准环节。
- 第三步是数据收集与聚合:这一阶段可应用较多机器学习技术来清洗、过滤并更聪明地聚合数据,以识别真实标签。
- 配图说明质量保证指依据质量模型中识别出的质量属性采取行动以提升质量的一系列操作(Daniel 等,2018)。
群体的智慧
- “Vox populi”(意为人民的声音)是拉丁短语,1907 年 Nature 的同名短文记录了一次博览会上的猜牛体重活动,取中间估计值作为“人民之声”,结果非常接近真实值。
- 该文作者认为这一结果对民主判断的可信度而言,比预期更值得称道;这大概是最早关于众包(“群体的智慧”)如何奏效的记载。
- 约一百年后,Callison-Burch(2009)早期研究了用 Amazon Mechanical Turk(AMT)做非专家人工评测机器翻译(MT),甚至依靠非专家创建新的黄金参考译文。
- 评测设置很简单:每名标注者看到源句、一个参考译文和来自 5 个 MT 系统的 5 个译文,要求从好到差排序,每个任务由 5 名标注者完成。
- 由于存在只追求数量的低质标注者,衡量专家与非专家一致性时需要加权方案:按在 10 个黄金样本上与专家的一致率加权,或按与其余标注者在全数据集上的一致率加权,以降低刷单者影响。
- 在更难的“创建新黄金参考译文”任务中,任务分两阶段:第一阶段参照 MT 输出创作新译文,第二阶段过滤掉看起来像机器生成的译文;专家译文与众包译文的相关系数高于专家译文与 MT 系统输出的相关系数。
标注者一致性
- 标注常被当作瞄准单一标准答案,用统一标准对照一个黄金答案评估质量;常见做法是从多个标注者处收集多个标签,并按熟练度分数做加权平均,该分数常用与其他人一致的比例来近似。
- 多数投票(majority voting)是最简单的聚合方式,等价于取标签的众数,此时每个标注者贡献相同。
- 原始一致率(raw agreement,Tratz & Hovy 2010)统计其他人同意某人的百分比,与多数投票间接相关,因为多数类的成员一致率会更高。
- Cohen’s Kappa(Landis & Koch 1977)以 κ = (p_o − p_e)/(1 − p_c) 度量标注者间一致性,其中 p_o 是原始一致率、p_e 是随机一致率;它带有对偶然一致的校正,但若某一标签更普遍,校正可能被高估。
- 还有一类工作用概率图模型(probabilistic graph modeling)对标注决策中的多种因素建模,如任务难度、任务潜在主题、标注者偏差与置信度,再据此推断真实标签;Zheng 等(2017)比较了 17 种众包真值推断算法,多数属于概率图模型。
- MACE(多标注者能力估计,Hovy 等 2013)是较早用图模型估计某人像“刷单者”一样给随机标签之概率的方法,目标是识别在激励错位时只求任务量的标注者。
标注者分歧与两种范式
- 上述聚合依赖“存在唯一潜在黄金答案”的假设,但在安全、社会、文化等话题上分歧常常是合理的,问题落到多大程度执行严格规则、多大程度拥抱多样性。
- Aroyo & Welty(2015)讨论人工标注实践中的一组“迷思”,发现都不太准确:有些样本不止一种正确解释,需通过多人评审等方式引入多元视角;另提到任务定义不清时应增强说明,但更细的指南并不能消除观点固有的多样性。
- 同一组迷思还包括:分歧并非总是坏事,错误或流程设计不佳造成的分歧应减少,其他分歧则提供丰富信息;专家未必总强于普通人,但在判断什么重要上差距明显;真值标注会随时间变化,尤其是时事或新闻相关标注。
- Rottger 等(2021)把主观 NLP 任务标注的差异归纳为两种对立范式。描述性范式鼓励标注者主观性、试图建模多种信念,优点是能识别更主观的条目并拥抱多样性,缺点是一致性等指标无法用于衡量数据质量或标注者表现,也不能用于训练只输出单一预设行为的模型。
- 规范性范式抑制主观性、一致地套用单一信念,优点是更契合标准 NLP 设置、便于通过分歧度量或标签聚合做质量控制,缺点是高质量标注指南昂贵且难以做到完美,培训标注者熟悉并正确使用指南同样困难,且无法捕捉可解释的信念多样性或一致地编码某一特定信念。
- 描述性范式揭示的效应:标注者身份(如非裔美国人、LGBTQ)在将身份相关内容标为有毒时是统计显著因素(Goyal 等 2022);主题也是观点多样性的主要驱动因素。
标注者分歧与两种范式(续)
- Wang 等(2023)比较信任与安全(T&S)专业人员与众包标注者对 AI 对话系统的安全标注,一致率随主题与严重程度差异很大,从暴力/血腥的 0.96 到个人主题的 0.25,在“极端”和“良性”对话上更高(四档为良性、有争议、中等至极端)。
数据质量 ↔ 模型训练
- 数据集构建完成后,许多方法可以依据训练动态识别错误标签。
- 此部分只关注找出并排除可能标签有误的数据点的方法,不涉及如何用噪声数据训练模型。
影响函数
- 影响函数(influence functions)出自稳健统计(Hampel, 1974),做法是描述把某个训练点权重提高一个无穷小量时模型参数如何变化,以此衡量该数据点的作用;Koh & Liang(2017)把它引入深度神经网络。
- 设训练集有 n 个样本 z_i = (x_i, y_i),参数 θ 通过最小化平均损失求得最优值 θ̂;去掉单个点 z 后的参数变化记为 θ̂_{−z} − θ̂,但逐样本精确计算代价过高。
- 近似办法是给 z 加一个小权重 ε:上权重影响为 I_up,params(z) = −H⁻¹_θ̂ ∇_θ L(z, θ̂),其中 θ̂_{ε,z} 是在平均损失上加 εL(z, θ) 后的最优参数,H 为经验 Hessian。
- 删除数据点 z 等价于把它上权重 ε = −1/n,因此 θ̂_{−z} − θ̂ ≈ −(1/n)·I_up,params(z)。
- 对测试点损失应用链式法则得到 I_up,loss(z, z_test) = −∇_θ L(z_test, θ̂)ᵀ H⁻¹_θ̂ ∇_θ L(z, θ̂),可用闭式度量单个数据点对参数和损失的影响,近似留一重训练而无需真的重训。
- 识别错误标签时可计算 I_up,loss(z_i, z_i),近似 z_i 被移出训练集时在 z_i 上的预测误差;在 10 类 MNIST 上,影响函数值与留一训练结果吻合。
影响函数(续)
- 即便有闭式解,影响函数仍难扩展,因为逆 Hessian 向量积难以计算;Grosse 等(2023)尝试改用 EK-FAC(特征值校正的 Kronecker 因子近似曲率)近似。
数据质量 ↔ 模型训练
- 原文把这一部分作为独立章节:数据集构建完成之后,可以借助训练动态(training dynamics)来识别错误标签。
- 原文明确说明该部分只讨论找出并排除可能标签有误的数据点的方法,不涉及如何用噪声数据训练模型(原文此处链接到另一篇关于 noisy data 训练的文章)。
影响函数
- 影响函数(influence functions)是稳健统计中的经典技术(Hampel, 1974),通过描述把某个训练点权重提高一个无穷小量时模型参数如何变化来衡量该数据点的作用;Koh & Liang(2017)将其引入深度神经网络。
- 设训练集有 n 个样本 z_i = (x_i, y_i),参数 θ 通过最小化平均损失优化;去掉单个点 z 后的参数变化为 θ̂_{−z} − θ̂,逐样本精确计算代价过高。
- 改为对 z 施加小权重 ε 来近似,得上权重影响 I_up,params(z) = −H⁻¹_θ̂ ∇_θ L(z, θ̂),其中 θ̂_{ε,z} 为在平均损失上加 εL(z, θ) 后的最优参数,H 为经验 Hessian。
- 删除数据点 z 等价于将其权重设为 ε = −1/n,所以 θ̂_{−z} − θ̂ ≈ −(1/n)·I_up,params(z)。
- 对测试点损失用链式法则可得 I_up,loss(z, z_test) = −∇_θ L(z_test, θ̂)ᵀ H⁻¹_θ̂ ∇_θ L(z, θ̂),据此以闭式度量单点对参数与损失的影响,近似留一重训练。
- 识别错误标签时计算 I_up,loss(z_i, z_i),近似 z_i 被移出训练集时在 z_i 上的预测误差;在 10 类 MNIST 上影响函数值与留一训练结果吻合;此外逆 Hessian 向量积难算导致扩展困难,Grosse 等(2023)改用 EK-FAC 近似(该内容见原文同节后半)。
影响函数(续)
- 即便有闭式解,影响函数仍难扩展,因为逆 Hessian 向量积难以计算;Grosse 等(2023)尝试改用 EK-FAC(特征值校正的 Kronecker 因子近似曲率)近似。
训练过程中的预测变化
- 这一类方法追踪训练过程中模型预测的变化,以找出看起来难以学习的样本。Data Maps(Swayamdipta 等,2020)追踪模型行为动态的两个属性来分析数据集质量。
- Confidence(置信度):真实标签上的模型概率在各个 epoch 上的均值;另用了更粗粒度的“correctness”,即模型在各 epoch 预测出正确标签的比例。
- Variability(变异性):置信度的变化,定义为真实标签模型概率在各个 epoch 上的标准差。原文配图给出基于 RoBERTa 分类器的 SNLI 训练集 data map。
- 难学样本(低置信度、低变异性)更可能是误标。在 WinoGrande 上翻转 1% 标签后重新训练,翻转样本移到低置信度、略高变异性区域,说明难学区域包含误标样本。
- 据此只用置信度分数,在等量翻转标签样本与干净样本上训练一个简单噪声分类器,再用于原始数据集识别可能误标的样本;原文表示不清楚论文为何不同时用置信度和变异性作特征。
- 不应把所有难学样本都视为错误。原论文假设有歧义(高变异性)与难学(低置信度、低变异性)样本对学习更有信息量;实验显示它们有利于 OOD 泛化,OOD 评测结果甚至优于使用 100% 训练集。
训练过程中的预测变化(续):遗忘事件与 AUM
- 为研究神经网络是否会遗忘已学信息,Toneva 等(2019)追踪每个样本在训练中的预测,统计其从分类正确变为错误或反向的转换次数。
- 据此分两类:可遗忘(冗余)样本,即标签在训练各 epoch 间发生改变;不可遗忘样本,即标签分配在各 epoch 一致、一旦学会便不再遗忘。
- 他们发现存在大量不可遗忘样本;带噪声标签的样本或具有“少见”特征(视觉上难以分类)的图像属于最常被遗忘的样本;实验验证删除不可遗忘样本不会损害性能。
- 实现上,遗忘事件只在样本被包含在当前训练批次时计数,即跨同一示例在后续小批次中出现的次数计算;每个样本的遗忘次数在不同随机种子下相当稳定,可遗忘样本略倾向于在训练更晚阶段首次学会;遗忘事件在训练期内和不同架构间可迁移。
- Pleiss 等(2020)提出 AUM(Area under the Margin)识别错误标签:若 BIRD 图被误标为 DOG,其他 BIRD 图带来的泛化鼓励向 BIRD 更新,而 DOG 标签给出错误监督信号推向另一方向,泛化与(错误)预测之间存在张力。
- 以 z_i^(t)(x) 表示第 t 个 epoch 中类别 i 的 logit,间隔为所分配 logit 与次大 logit 之差,AUM 为间隔在 T 个 epoch 上的均值;负间隔表示预测错误,较大正间隔表示对正确预测的高置信;假设误标样本间隔更小。
latexGiven a classification dataset $(\mathbf{x}, y) \in \mathcal{D}_\text{train}$, let $z^{(t)}_i(\mathbf{x}) \in \mathbb{R}$ be the logit corresponding to class $i$ at epoch $t$. The margin at epoch $t$ is the difference between the assigned logit and the next largest logit: $$ M^{(t)}(\mathbf{x}, y) = z_y^{(t)}(\mathbf{x}) - \max_{i \neq y} z^{(t)}_i(\mathbf{x}),\quad \text{AUM}(\mathbf{x}, y) = \frac{1}{T} \sum^T_{t=1} M^{(t)}(\mathbf{x}, y) $$训练过程中的预测变化(续):遗忘事件与 AUM(续)
- 为定阈值,他们插入“阈值样本”假数据:对 C 类的 N 个训练样本随机抽取 N/(C+1) 个并把标签换成新假类 C+1,合并为 D' 后训练并测量所有数据的 AUM,取阈值样本 AUM 的第 99 百分位数作为 α,原数据中 AUM ≤ α 的样本判为误标。
训练过程中的预测变化(续):阈值样本的作用与 CIFAR 实验结果
- 原文配图展示阈值样本的 AUM 如何帮助把误标样本分离出来(图源 Pleiss 等,2020);阈值本身(99 百分位、D' 构造与 AUM ≤ α 判定)在前一节已述,此处不重复。
- 另一张图给出在 CIFAR-10/100 上随机误标样本时,不同数据过滤或噪声数据训练方法的测试误差对比,用以说明该方法的识别效果(图源 Pleiss 等,2020)。
带噪交叉验证
- NCV(Noisy Cross-Validation,Chen 等,2019)把数据集随机分成两半。
- 若某样本的标签与仅在另一半数据上训练的模型所预测的标签一致,就把它判为“干净”样本;干净样本被认为更可信。
- INCV(Iterative Noisy Cross-Validation)迭代运行 NCV:更多干净样本被加入可信候选集 C,同时更多噪声样本被剔除。
- 原文以算法流程图展示 INCV 的过程(图源 Chen 等,2019)。
引用方式
- 原文给出的引用格式为:Weng, Lilian. (Feb 2024). "Thinking about High-Quality Human Data". Lil'Log. https://lilianweng.github.io/posts/2024-02-05-human-data-quality/。
- 另给出 BibTeX 条目,字段包括 title、author、journal(lilianweng.github.io)、year(2024)、month(Feb)与 url。
bibtex@article{weng2024humandata, title = "Thinking about High-Quality Human Data", author = "Weng, Lilian", journal = "lilianweng.github.io", year = "2024", month = "Feb", url = "https://lilianweng.github.io/posts/2024-02-05-human-data-quality/" }参考文献
- 原文按 [1]–[18] 逐条列出 18 条文献,每条含作者、标题、链接与发表出处。
- [1] Francis Galton "Vox populi",Nature 75, 450-451 (1907);[2] Sambasivan 等,Data Cascades in High-Stakes AI,CHI 2021;[3] Chris Callison-Burch,用 Amazon Mechanical Turk 评估翻译质量,EMNLP 2009。
- [4] Rottger 等,主观 NLP 任务的两种标注范式,NAACL 2022;[5] Aroyo & Welty,Crowd Truth 与人标注的七个误区,AI Magazine 36.1: 15-24 (2015);[6] Hovy 等,MACE,NAACL-HLT 2013。
- [7] Wang 等,All that Agrees Is Not Gold,2023;[8] Zhang 等,评分者分歧分类法,arXiv:2311.04345 (2023);[9] Davani 等,超越主观标注的多数投票,ACL 2022;[10] Gordon 等,Jury Learning,CHI 2022;
- [11] Gordon 等,The Disagreement Deconvolution,CHI 2021。
- [12] Daniel 等,众包质量控制综述,ACM Computing Surveys 51(1), 1-40 (2018);[13] Koh & Liang,影响函数,ICML 2017;[14] Grosse 等,用影响函数研究大语言模型泛化,arXiv:2308.03296 (2023)。
参考文献(续)
- [15] Swayamdipta 等,Dataset Cartography,EMNLP 2020;[16] Toneva 等,样本遗忘的实证研究,ICLR 2019;[17] Pleiss 等,用 Area Under the Margin 排序识别误标数据,NeurIPS 2020;[18] Chen 等,理解并利用带噪声标签训练的深度网络,ICML 2019。