PLC-DPO:当AI学习"哪个回答更好"时,如何避免被错误标签带偏 Original en chino

训练大语言模型让它学会说人话,靠的是一堆"这个回答比那个好"的对比数据。但这些数据是人标注的,人会累、会看走眼、会被表面的自信语气骗过去。

**如果整个训练系统假设所有标签都是对的,那一旦标签错了,模型学到的方向也会跟着错。**

这就是这篇论文要解决的问题。研究者提出了一个叫PLC-DPO的方法,让模型自己判断每一条训练数据到底靠不靠谱,然后决定是该"照做"还是"反着来"还是"干脆别管"。

先说说这个问题到底有多麻烦。

**为什么"标签都对"这个假设会出问题**

DPO*:Direct Preference Optimization,直接偏好优化,是目前训练语言模型对齐人类偏好的主流方法。它跳过了传统强化学习里训练一个独立奖励模型的步骤,直接用"哪个回答更受欢迎"的数据来调整模型。

DPO的思路很简单:给模型看一对回答,一个被标为"更好"(chosen),一个被标为"更差"(rejected),模型学着让自己更倾向于生成"更好"的那个。这个方法因为不需要单独训练奖励模型,简单又好用,几乎成了行业标配。

但这里有个致命假设:每一条"更好/更差"的标签都是绝对可靠的。

现实世界的偏好数据从哪来?人工标注,或者用另一个AI模型来打分。这两种来源都不干净。人类标注员会累,会有偏见,会因为回答写得长、语气自信就觉得"这个更好",哪怕内容其实不如另一个。AI裁判模型同样有自己的偏好偏差,比如偏爱更长的回答。

更麻烦的是,有些情况根本没有绝对的"更好"。两个回答可能水平相当,也可能都很差,或者差距小到不足以支撑一个明确的方向判断。

DPO把这些情况全部当成"绝对可靠的二元对立"来处理,结果就是,当标签错了或者压根没有方向性的时候,DPO会把这个错误直接变成模型更新的方向,越训练越偏。

这就好比你请了个家教,家教手里的答案册其实有一部分是印刷错误,还有一部分题目本身就是"选A选B都算对"的开放题。如果家教死板地按照答案册一条条纠正你,遇到印错的题目,他会把你原本对的答案打成错的,逼你改成错的;遇到开放题,他会强迫你必须选一个方向,哪怕另一个同样合理。如果家教不做任何甄别,你的水平不但不会提高,反而会被系统性地带偏。这正是标准DPO面临的处境。

那之前的研究者是怎么应对这个问题的?

**已有的补救方法,为什么都差点意思**

论文里提到了几类已有的思路。

一类是"鲁棒损失函数",比如给标签加一点平滑处理,或者假设整个数据集里有一个固定的噪声比例,然后统一打个折扣。这种方法的问题在于它是"一刀切"的,不管这条数据到底有没有问题,都按同一个比例处理,无法针对性地纠正真正错误的那部分。

另一类是"数据过滤",就是把看起来可疑的数据直接扔掉。这个思路简单粗暴,但代价是把有用的信息也一起扔了。一条被反转的偏好数据,如果模型能意识到它反了,其实反过来用依然是有价值的训练信号,直接丢弃就是浪费。

还有一类是"隐式质量评估",试图单独给每个回答打一个绝对质量分,再从两个分数推出谁该赢。这个思路更细致,但它绕了个圈子,因为DPO本身要的从来不是"这个回答绝对值多少分",而是"这两个回答谁该排前面",用绝对分数去推相对排序,中间隔了一层没必要的转换。

**PLC-DPO的核心思路:把每条数据的标签当成一个需要猜测的"隐藏状态"**

论文提出的方法叫PLC-DPO,全称是Posterior Label Correction DPO(后验标签修正DPO)。

它的核心想法是:与其假设所有标签都对,不如承认每一条偏好数据背后其实有三种可能的真实状态,然后让模型自己去判断当前这条数据更可能属于哪一种。

这三种状态分别是:clean(干净,标签是对的,应该强化这个方向)、flip(翻转,标签其实反了,应该反过来学)、tie(打平,这两个回答其实差不多好或者差不多差,不该产生强烈的方向性梯度)。

**这个三分类设计瞄准的不是"哪个回答质量高",而是"这个对比方向本身值不值得相信"。**

论文里特意强调了这一点:以往的方法喜欢单独评估每个回答的绝对质量,再推出偏好方向。PLC-DPO反过来,它不问"yw好不好",只问"yw比yl好这件事,靠不靠谱"。这个角度更贴近DPO本身在优化的东西。

那模型怎么判断一条数据属于哪种状态?

**用策略模型和参考模型的差距当"证据"**

策略模型(policy)*:正在被训练、不断更新的模型。

参考模型(reference)*:训练开始时的冻结版本模型,作为对照基准,不参与更新。

DPO本身会计算一个叫做"margin"(边际值)的量,简单说就是策略模型相对参考模型,在多大程度上更倾向于选择被标为"更好"的那个回答,减去它对"更差"回答的倾向程度。这个margin原本就是DPO用来算损失的核心数值。

PLC-DPO的聪明之处在于,它没有额外引入任何新信号,而是直接复用这个margin,把它拿去做"侦探工作"。

如果margin是正的且比较大,说明当前模型自己的判断和给出的标签方向一致,这条数据大概率是clean的。如果margin是负的且绝对值大,说明模型的判断和标签方向相反,这条数据很可能是被flip的。如果margin接近零,说明模型压根拿不准哪个更好,这条数据可能就是tie。

但margin这个数值在训练过程中会不断变化,同一个数值在训练初期和训练后期含义完全不同。为了解决这个问题,论文引入了EMA校准。

EMA*:Exponential Moving Average,指数移动平均,一种给近期数据更高权重、逐渐"遗忘"旧数据的平滑统计方法,常用来追踪一个不断变化的数值的大致水平。

具体做法是,系统实时追踪margin的均值和方差,用EMA的方式持续更新这两个统计量,然后把每条数据的margin减去均值、除以标准差,变成一个"相对于当前训练进度而言,这个margin算不算异常"的标准化分数,论文里叫它z值。

这一步就像开车时用的自适应巡航系统。如果你只设定一个固定车速,前面堵车了你还傻乎乎地往前冲,前面畅通了你反而开得太慢。自适应系统会实时根据路况调整参考标准,不看你的车速是不是恰好等于某个数字,而是看你相对于当前车流的正常水平是快还是慢。如果没有这套动态校准,PLC-DPO用来判断"标签靠不靠谱"的margin阈值会随着训练进程漂移,训练早期正常的margin范围,到了训练后期可能早就该被判定为异常了,系统会一直用错误的标尺去衡量数据,判断全乱套。

有了这个标准化后的z值,接下来要把它转换成三个状态各自的"打分",再归一化成概率分布。

论文用了一个能量函数的设计,clean的打分和z值正相关,z越大越支持clean;flip的打分和z值负相关,z越负越支持flip;tie的打分和z的绝对值负相关,z越接近零越支持tie。这三个打分经过softmax归一化,就得到了三个状态各自的权重,分别记作q_clean、q_flip、q_tie,加起来正好等于1。

这三个权重不是凭空捏造的标签,而是一种"路由信号",代表在当前模型状态下,把这条数据当作clean、flip、tie来处理,各自能获得多少支持。

有了这三个权重,接下来就是怎么用它们去修正训练。

**三种状态各自对应一种损失,混合起来做训练**

针对每一种可能的状态,论文设计了对应的损失函数。

clean状态用的是标准DPO损失,鼓励模型强化观察到的方向。flip状态用的是把margin符号反过来的DPO损失,鼓励模型反过来学。tie状态用的是一个叫softplus的函数作用在margin绝对值上,这个函数的效果是惩罚过大的margin,也就是说,如果这条数据被判定为tie,模型就不该在这个方向上产生太强的偏好。

最终这条数据的损失,就是三个状态各自的损失,按照q_clean、q_flip、q_tie三个权重加权求和。

这里有一个关键的技术细节:这三个路由权重在计算的时候会被"stop-gradient"(停止梯度),也就是说,模型不能通过调整这三个权重来偷懒降低损失,权重只能反映当前这一步的判断,不会被反向传播影响。

**如果不做这个停止梯度处理会怎样?**

模型可能会发现,只要把某条数据的路由权重全部推向tie,损失就会自动变小,因为tie损失整体上比较温和。这样一来模型就会学会"作弊",把所有难题都判定成tie来逃避学习,而不是真正去分辨哪些数据该反、哪些该忽略。停止梯度这个设计,就是把"判断"和"执行"这两件事分开,判断只服务于当前这一步该怎么做,不能被执行结果反过来操纵。

这也让我想起考试时的监考老师和阅卷老师必须是两拨人。如果判卷的人同时也能决定题目难度评级,他大可以把所有他答不好的题目都标成"送分题",分数照样好看,但你真实水平根本没提高。PLC-DPO把路由判断和梯度更新拆开,就是为了避免这种自我合理化的陷阱。

不过,光有这套机制还不够,因为训练刚开始的时候,模型还很生疏,这时候的margin信号根本不可靠。

**热身期和置信度门控:别让不成熟的判断捣乱**

论文观察到,训练刚起步时,策略模型和参考模型差别不大,margin信号本身很弱,EMA校准也还没稳定下来,这个阶段做出的路由判断基本是噪声。

为了应对这一点,PLC-DPO设计了一个热身阶段(warm-up),在训练的前一小段比例里,完全按标准DPO训练,不做任何修正,等模型和EMA都稳定之后,再逐渐引入修正机制,修正强度按一个预设的调度曲线慢慢提升到最大值。

除此之外,还有一个置信度门控机制。即使过了热身期,如果某条数据的三个路由权重非常接近,模型也说不清楚它到底该算哪种状态,这时候PLC-DPO宁可保守一点,还是偏向使用标准DPO损失,只有当路由判断足够"有把握"(某个状态的权重明显高于其他两个)时,才真正启用修正后的损失。

这套置信度门控用的是一个叫作最大权重置信度的公式,本质上是看三个权重里最大的那个偏离"三者均等"的程度有多大,偏离越大代表判断越自信,修正力度也就越大。

这套设计像极了新手司机上路前先要经过一段陪驾期。教练一开始不会完全放手,新手对路况的判断还不成熟,一旦提前放权,出了事故代价很大。等新手开得足够久、对各种路况都有了稳定的反应之后,教练才逐步减少干预。如果没有这个循序渐进的过程,一上来就让新手完全自主决策,风险会集中在最脆弱的起步阶段爆发出来。PLC-DPO的热身和门控机制,本质上就是不让一个还没学明白的模型,用它此刻还不靠谱的判断去左右训练方向。

说完了方法的设计逻辑,看看实际效果到底怎么样。

**实验结果:57个测试场景里,PLC-DPO赢面最大**

研究团队在三个不同大小的模型上做了主实验,分别是Qwen2.5-1.5B、Phi-2-2.7B和Qwen2.5-7B,对比的基准是标准的一轮DPO训练。

评测覆盖了七个不同的测试集,包括UltraFeedback、AlpacaEval、AlpacaEval 2、MT-Bench、Vicuna、Evol-Instruct和HH-RLHF,每个测试集都用胜率的方式和DPO基线对比。

结果显示,在Qwen2.5-7B这个规模上,PLC-DPO在大多数指标上都拿到了最高分,在AlpacaEval 2、Vicuna、Evol-Instruct、HH-RLHF上的提升尤其明显。在1.5B和2.7B这两个较小的模型上,PLC-DPO同样在多个测试集上领先,虽然在个别测试集上被ROPO或RE-PO反超。

论文里特别提到一个有意思的现象:模型越大,PLC-DPO的提升幅度越大。这背后的原因可能是,更强的基础模型能提供更精确的margin测量,路由判断因此更可靠。这也从侧面印证了PLC-DPO这套依赖模型自身信号做判断的机制,本身对模型能力是有一定要求的。

除了主实验,研究团队还扩展到了57个"数据集-模型-测试集"组合,覆盖了UltraFeedback、HH-Golden、Nectar-60k、ORPO-mix-40k四个不同的偏好数据集,以及Qwen2.5-7B、Llama-3-8B、Mistral-7B三个基础模型。

结果是,PLC-DPO在这57个组合里拿到了最高的平均胜率60.5分,第二名是rDPO的55.5分,差了整整5个百分点。在最差表现的那个组合上,PLC-DPO是41.2分,虽然不是最好的(这项是γ-PO的42.5分),但也说明它没有为了追求平均分而在某些场景下彻底崩盘。

为了排除评测本身可能存在的偏差,研究团队还额外用了Claude Sonnet 4.6作为商业模型裁判,对Qwen2.5-7B生成的AlpacaEval 2和Vicuna回答重新打分。结果显示PLC-DPO依然领先,在Vicuna上的胜率达到61.25,明显高于ROPO的55.00。这一步交叉验证很重要,因为开源的裁判模型自己也可能带有偏见,用不同来源的裁判互相印证,结论才更可信。

**压力测试:故意注入错误标签,看谁扛得住**

光在干净数据上表现好还不够,论文接着做了一系列"压力测试",故意往训练数据里注入噪声,看各个方法的抗打击能力。

第一个测试是标签翻转噪声。研究团队以0.05、0.10、0.20、0.30四个比例,随机把训练数据里的"更好"和"更差"对调,制造出人为的错误标签,然后让各个方法在这份被污染的数据上训练。

结果显示,在Vicuna测试集上,Qwen2.5-1.5B模型下,PLC-DPO在所有噪声比例下都是表现最好的,包括最极端的30%翻转比例,此时PLC-DPO的胜率是61.88,而rDPO已经跌到26.88,ROPO作为最接近的对手也只有56.88。这说明PLC-DPO的"反转判断"机制确实在起作用,当数据里真的存在大量反向标签时,它能识别出来并主动反过来学,而不是被这些错误标签硬生生带偏。

第二个测试专门针对tie状态设计。研究团队把最多30%的UltraFeedback数据替换成"两个回答分数完全相等"的人造平局对,这种数据理论上不该有任何明确的方向性偏好。结果显示,随着注入的平局比例从0%提升到30%,PLC-DPO相对同数据训练的DPO的优势从8.3个百分点扩大到18.5个百分点,在30%平局比例下,PLC-DPO达到68.5分,而RE-PO只有51.6分。

第三个验证用的是一个完全独立的数据集叫MultiPref,这个数据集记录了多个人类标注员对同一对回答的真实分歧程度。研究团队把数据按标注员一致同意、有分歧、多数认为是平局这三类分组,发现PLC-DPO给出的tie权重(q_tie)在这三组里呈现出清晰的递增趋势:一致同意组是0.0811,有分歧组是0.0904,多数认为平局组是0.0997。这说明PLC-DPO学到的"这条数据是否该算平局"的判断,和真实人类的分歧程度是吻合的,人类标注员越不确定,模型给出的tie权重也越高。

这组结果挺打动人的,因为它证明了一件事:这套机制并不是在硬造一个"看起来合理"的信号,而是真的在某种程度上捕捉到了数据本身固有的模糊性。

**拆解每个组件,看看哪个部分最关键**

论文还做了一组消融实验,把PLC-DPO拆开,一次去掉一个部分,看效果掉多少。

去掉flip状态(也就是不允许模型反转任何标签方向)之后,平均胜率从58.97降到51.62,是所有消融里下降最明显的几项之一。去掉热身和置信度门控机制之后,胜率直接掉到48.93,是所有消融组合里表现最差的,这印证了前面说的,如果让一个还没学明白的模型草率行使判断权,代价确实很大。相比之下,去掉tie状态或者去掉EMA校准,胜率分别是57.56和57.52,下降幅度相对温和一些。

这组数据基本说明了一件事:flip机制和热身门控机制是这套系统里最不能省的两个部分,前者决定了系统能不能真正利用被反转的错误数据,后者决定了系统在判断还不成熟时会不会捅娄子。

**这套机制会不会自我强化错误判断?**

一个很自然的担忧是:路由判断依赖的是模型自己当前的margin,如果模型一开始就学偏了,它会不会用自己错误的判断去"确认"自己的偏见,越训练越固执?

论文专门做了这方面的检验。在20%标签污染的场景下,用q_flip去预测哪些数据是真正被污染的,得到的AUROC(一种衡量分类准确程度的指标,越接近1越好)是0.731,说明路由判断和实际污染情况有相当程度的吻合,不是随机乱猜。同时在完全干净的数据上,q_flip预测"这条数据的标签是否和一个独立奖励模型的判断不一致",AUROC达到0.779,说明这套机制捕捉到的信号确实有一定的普遍性,不只是针对人为注入的噪声起作用。

研究团队还试着把热身比例从7%延长到30%,发现最终的判断准确度基本没变化(AUROC从0.731变成0.734),但三个测试集的平均表现却从71.0提升到73.6。这说明拉长热身期主要是提升了最终效果的稳定性,而不是改变了判断本身的准确率。

写在后面

读完这篇论文,最让我觉得有意思的一点,是它对"稳健性"这个词的重新定义。

很多处理噪声数据的方法,思路本质上是"防御性"的,想办法降低错误标签的伤害,能过滤就过滤,能打折就打折。PLC-DPO的野心更大一点,它想的是"能不能把错误标签也变成有用的信号"。一条被标反的数据,扔掉是浪费,硬吃下去是中毒,PLC-DPO选择的是把它反过来用。这个思路的转变,其实和很多领域里"把噪声当信息"的思想是相通的,比如统计学里的异常值检测有时候不是为了剔除异常值,而是为了搞清楚异常值本身在说什么。

另一个让我反复琢磨的细节是tie状态的设计。大部分做偏好优化的研究默认每一对比较都必须分出胜负,这其实是一个挺大胆的简化假设。现实里"两个回答差不多好"或者"两个回答差不多烂"的情况可能一点都不少见,PLC-DPO专门给这种情况留了一个出口,不强迫模型在模糊地带硬做二选一。这让我想到,很多分类问题里默认的"非黑即白"框架,可能都值得重新审视一下,是不是漏掉了"说不清楚"这第三种真实存在的状态。

论文里没有解决的一个问题是,当策略模型和参考模型犯了同样的系统性错误时,margin这个信号本身可能会失真,毕竟两个模型都在同一个方向上判断错了,差值反而看起来很"正常"。这种情况下PLC-DPO大概率也会判断失误。这算是这套方法的一个盲区,作者自己在文章最后也提到了这一点。

如果一个系统的判断力,完全建立在自己此刻的认知水平之上,那它能纠正的,始终只是它已经能看见的那部分错误。看不见的那部分,谁来纠正?

Q&A

Q1:PLC-DPO是什么?

A:PLC-DPO全称Posterior Label Correction DPO,是一种改进版的偏好优化训练方法,它把每条训练数据的标签当成一个需要判断的隐藏状态,自动识别数据是干净、被反转还是模糊不清,然后针对性地调整训练方式,而不是像标准DPO那样把所有标签都当成绝对正确的。

Q2:PLC-DPO和标准DPO相比有什么优势?

A:在57个数据集与模型组合的测试中,PLC-DPO平均胜率达到60.5分,比第二名高出5个百分点。在人为注入错误标签或模糊平局数据的压力测试中,PLC-DPO的表现优势会随着噪声比例增加而进一步扩大,说明它能更好地识别并纠正有问题的训练数据。

Q3:PLC-DPO怎么判断一条数据是不是有问题?

A:它复用了DPO训练中本来就会计算的策略模型和参考模型之间的差值,也就是margin,通过实时统计校准这个数值,判断当前数据更像是标签正确、标签反了、还是压根没有明确方向,再据此决定用什么方式去训练模型。

作者声明:作品含AI生成内容
举报/反馈
Compartir en: Weibo Qzone
¿Interesado en colaborar a partir de este artículo?
Le responderemos dentro de 1 día hábil
Dejar un mensaje