![]()
这项由伦敦大学学院(UCL)统计科学系、UCL人工智能中心、阿里巴巴集团、英国帝国理工学院及韩国蔚山科学技术院(UNIST)联合推进的研究,以预印本形式于2026年5月28日公开,论文编号为arXiv:2605.29398。有兴趣深入了解的读者可以通过该编号在arXiv平台查阅完整论文。
**一个问题,一道裂缝**
如果有一位助手,他的工作方式不是从左到右逐字说话,而是先在脑子里同时"想"出一整句话的大致框架,然后一遍遍地把模糊的地方填清晰——这就是所谓的扩散语言大模型(dLLM)的工作方式。与我们熟悉的ChatGPT那种一个字一个字往外蹦的自回归模型不同,这类模型一次生成多个词,推理速度更快,甚至在某些场合能够突破"从左写到右"的思维限制,理论上更灵活。
近年来,这类模型发展迅猛。开源版本的扩散语言大模型,从最初的80亿参数规模,已经一路扩展到了1000亿参数的LLaDA 2.0,推理速度据称比同等规模的传统模型快3倍以上。闭源商业产品Mercury甚至宣称比传统模型快10倍。然而,尽管速度令人印象深刻,这类模型在生成质量上,与当前最好的传统模型相比仍有明显差距。
要让模型更聪明,工程师们通常会在预训练之后进行"强化学习微调"——简单来说,就是给模型出题、让它作答、再根据答案好坏给它打分,让它从反复练习中学会产出更高质量的回答。这在传统语言模型上已经是成熟技术,但放到扩散语言大模型上,就遇到了一道非常棘手的裂缝。
裂缝的根源在于:强化学习需要知道"模型输出某个答案的可能性有多大",也就是所谓的策略概率。然而,扩散模型的策略概率根本算不出来——它不是一步生成的,而是经过许多轮去噪演变而来,整个过程的联合概率极其复杂,直接计算在计算上几乎不可能。
面对这道裂缝,研究人员们想出了两条路。第一条路是追踪模型生成过程中每一步的概率,把它们相乘,最终得到一个近似的精确概率。这条路理论上更准确,但计算代价极其高昂,而且和预训练用的目标函数格格不入,实用性受限。第二条路,也是目前更主流的做法,是用一个叫做"证据下界"(ELBO,Evidence Lower BOund)的东西来充当概率的替代品。
ELBO可以用一句话来理解:它是真实概率的一个偏低的近似估算。预训练模型本身就是靠优化ELBO来训练的,所以用ELBO来做强化学习,在方向上似乎很自然。具体操作是:从完整的句子里随机遮掉一些词,让模型猜被遮住的词,把猜中的概率加起来,就得到ELBO的估算值。计算便宜,与预训练目标一致,一时间成为多个主流方法的基础,包括ESPO、UniGRPO、wd1、SPG等。
然而,这条路有一个隐患,而且这个隐患足以让训练过程崩溃。
**一、用近似值来纠偏,反而越纠越偏**
强化学习里有一个叫做"重要性采样比"的核心机制,可以用一个日常比喻来理解。假设你想估算一家餐厅的平均评分,但你手头的数据全是某个美食博主的评测,而那个博主偏爱川菜。为了让评估更公正,你需要对博主的评测进行修正——低估他对川菜的夸奖,同时放大他对其他菜系的评价。这个修正系数,就是重要性采样比,其核心是"博主的口味偏好"除以"真实的大众口味偏好"。
在强化学习中,类似的修正是必须的:模型用旧版本生成答案,但用新版本来学习,两者之间有差距,就需要用概率之比来校正这个差距。问题出在哪里?用ELBO来计算这个比值,就好比你用一个不精确的体重秤来称量两个人的体重差——秤本身有误差,体重差就更不准确了。ELBO与真实概率之间存在不可忽视的差距,而且这个差距会随着模型的更新而积累,最终导致修正系数严重失真,训练可能因此陷入崩溃。
更雪上加霜的是,扩散模型生成文本时,用的是一套叫做"迭代遮盖再预测"的解码方式——粗略来说,模型先生成一个模糊版本,然后反复擦掉一些词重新猜,直到整句话稳定下来。这套解码过程产生的概率分布,与ELBO描述的那个训练概率分布根本不是同一件事。就像一个厨师在考场上做菜的方式,和他在培训学校里练习的方式完全不同——考场有时间限制、有特定食材,而培训是在理想条件下进行的。用培训时的评估标准来判断考场表现,天然就存在偏差。
这个问题有一个正式的名字,叫做"训练-推理不匹配偏差"(Training-Inference Mismatch,简称TIM)。有研究已经证明,哪怕是浮点数运算时微小的舍入误差,都可能通过这种机制被放大,最终导致训练彻底崩溃。
正是在这样的背景下,这篇论文的研究团队提出了一个完全不同的思路:既然问题根源在于"用近似概率来做比值修正",为什么不直接绕开概率,换一种完全不需要计算概率的训练方式?
**二、从"纠偏"到"模仿老师":强化学习的全新视角**
研究团队重新审视了强化学习的本质目标,并从一个不同的角度重新推导了问题。他们的出发点是一个叫做"反向KL正则化强化学习"的框架。用日常语言来说,这个框架的意思是:在最大化模型的答题得分的同时,确保新模型不要和旧模型跑得太远,也不要和原始参考模型差异太大——有点像给一个学生设定学习目标:"争取考高分,但别为了考高分就完全变成另一个人。"
这个优化问题有一个漂亮的数学解析解——也就是说,最优的策略长什么样,可以直接用公式写出来,不需要反复迭代求解。公式显示,最优策略是旧模型与参考模型的混合,再乘以一个由得分高低决定的权重因子,答案质量越高,权重越大。
但更关键的一步发生在这里:研究团队发现,如果再对"预训练时使用相同的随机遮掩过程"这一条件加以利用,最优策略对应的扩散模型的去噪器(也就是模型在看到一段被遮掉的文字时,猜测原文是什么的那部分),可以被精确地写成一个有显式表达式的东西。
这个东西,他们把它叫做"引导去噪分布",或者更形象地说,叫做"自我教师"。这个教师不是另一个独立的模型,而是当前模型自己的旧版本,加上得分信息之后的加强版。得分高的答案,在教师眼里显得更可能;得分低的答案,显得更不可能。
有了这位"自我教师",原本复杂的强化学习问题就变成了一件简单得多的事情:让当前模型去模仿这位老师。这是一种叫做"知识蒸馏"的技术——用一个更好的模型来指导一个学生模型学习。在这里,"老师"和"学生"恰好是同一个模型在不同时刻的版本,所以叫做"自蒸馏"(Self-Distillation)。整个训练过程完全不需要计算策略概率,更不需要ELBO,TIM偏差从源头上就被彻底切断了。
这套方法被命名为"引导去噪器自蒸馏",英文缩写为GDSD(Guided Denoiser Self-Distillation)。
**三、如何让"模仿老师"变得高效可行**
思路确定之后,工程实现上还有一道难关。要让学生模型模仿老师,需要知道老师在每个可能答案上的打分——用专业语言说,是老师的"对数概率"。但老师的概率需要一个归一化常数(分母)来确保所有答案的概率之和等于1,而这个分母需要对整个指数级大的答案空间求和,根本算不出来。
研究团队用了一个非常巧妙的技巧绕开了这个问题。这个技巧的灵感来自神经网络里广泛使用的Softmax函数的一个特性:给所有输入值同时加上同一个常数,Softmax的输出结果完全不变。用日常语言说,就是"打分的绝对值不重要,相对差距才重要"。
既然如此,只要能把那个讨厌的归一化常数变成一个对所有答案都一样的常数,它就自动消失了。研究团队提出的方案叫做"词元级对数值中心化"(Token-level Logit Centralization,TLC):对每个模型的输出分数,减去它在整个词表上的平均分,使得打分在数值上以零为中心。这样一来,归一化常数在中心化之后与具体答案无关,因此在损失函数里直接消去,无需计算。
此外,由于得分也经过了减均值的标准化处理(零均值化),整个训练过程中各项数值的尺度被很好地控制住,不会随着迭代而越来越偏,保证了训练的稳定性。
最终得到的实际训练目标非常简洁:一部分是让当前模型相对旧模型的输出差距尽量接近当前答案的得分,另一部分是让当前模型与参考模型不要差太远。前者对应利用得分信号改进模型,后者对应防止模型跑偏。两者加权求和,就是GDSD的完整训练目标。
**四、这套框架与以往方法的关系**
研究团队不只是提出了自己的方法,还花了相当大的篇幅来分析:如果换用不同的"模仿方式"(不同的散度函数),会得到什么结果?这种分析揭示了现有方法与GDSD之间深层的内在联系。
如果用"正向KL散度"来衡量学生和老师之间的差距,也就是让学生在老师认为重要的地方尽量贴近老师,推导下去会得到一种叫做"优势加权ELBO"的训练目标。这恰好就是wd1和DMPO这两个现有方法的核心目标。这类方法的问题在于:得分低的答案,其权重会以指数速度缩小,实际上对训练几乎没有贡献,造成了严重的数据浪费。wd1为了弥补这一点,额外引入了一个惩罚机制来处理差答案,但这个额外机制本身又带来了训练不稳定的问题。
如果用"反向KL散度"来衡量差距,也就是让学生在自己认为重要的地方尽量贴近老师,推导下去会得到一种类似策略梯度的训练目标,也就是SPG、UniGRPO、ESPO这类方法的形式。但这类方法离不开概率之比,也就是离不开ELBO,TIM偏差因此无法回避。
GDSD选择的是"平方L2距离"——直接量对数分值的差的平方,既不是正向KL也不是反向KL。这种选择既避免了加权方法的数据浪费,也避免了策略梯度方法的TIM偏差,在理论上处于两类方法之间的一个更优的位置。
**五、实验结果:新方法的表现到底如何**
为了验证这套方法是否真的有效,研究团队在两个主流的扩散语言大模型上进行了大规模测试,分别是LLaDA-8B-Instruct(80亿参数)和Dream-v0-Instruct-7B(70亿参数),并覆盖了六个不同类型的任务:数学推理(GSM8K和MATH500)、逻辑规划(数独Sudoku和倒计时Countdown),以及代码生成(HumanEval和MBPP)。
在Dream-7B上,GDSD的表现尤为突出。以数独任务为例,在不同输出长度下的平均准确率,原始模型只有8.5%,之前最好的ESPO方法达到了71.8%,而GDSD直接跳到了81.3%,加上词元级对数值中心化之后更是冲到了91.4%,相比最强基线提升了近20个百分点。倒计时任务也呈现类似趋势,GDSD加TLC达到83.5%,比ESPO的66.8%高出近17个百分点。
在LLaDA-8B上,GDSD同样在几乎所有测试项目上超过了所有基线方法。数独平均准确率从ESPO的86.0%提升到89.4%(加TLC后91.0%),倒计时从81.0%提升到83.1%,数学GSM8K从82.4%提升到85.4%,MATH500从39.5%提升到40.6%,代码生成HumanEval-Plus从34.6%提升到38.6%,MBPP从42.7%提升到42.0%(加TLC后43.3%)。
除了最终测试准确率,训练过程本身也值得关注。研究团队绘制了不同方法在训练过程中奖励值随步数变化的曲线,发现GDSD的奖励曲线整体更平稳,而部分基线方法(如SPG在倒计时任务上、ESPO在代码任务上)则表现出明显的震荡甚至下滑迹象。这从侧面验证了TIM偏差确实会影响训练稳定性,而GDSD绕开了这个问题。
研究团队还专门测试了"引导强度"参数ψ的影响。这个参数控制的是"教师"在多大程度上偏向高分答案。实验发现,随着ψ的增大,模型在训练中获得的奖励也更高,这说明GDSD的引导去噪器机制确实在有效地将得分信号转化为训练信号,而不仅仅是一个形式上的改进。
**六、训练过程中那些值得关注的细节**
在工程实现层面,GDSD与现有的强化学习训练流程高度兼容,只需要做少量改动。采样阶段与其他方法完全相同:用旧版本的模型通过迭代去噪生成一批答案,计算每个答案的得分,然后以组内平均分为基准算出相对得分(优势值)。
训练阶段的主要区别在于:其他方法在得到去噪概率之后,用它们来估算ELBO,再把ELBO当作概率代入强化学习的目标函数;而GDSD直接用去噪概率来计算训练损失,不经过ELBO这个中间步骤。对应地,计算时引入了词元级对数值中心化,把每个模型的输出减去对应词表上的均值,然后用中心化后的对数差与优势值的平方差作为损失。
实现上还有几个提升效率和稳定性的设计。其一,将不同时间步的遮掩序列批量化,合并为单次模型推理,避免为每个时间步单独调用模型,大幅降低计算开销。其二,采用"互补遮掩耦合采样"——对同一句话生成一个遮掩版本和它的互补遮掩版本,合并两次的去噪对数值,以减少估算方差。其三,对不同时间步的对数值施加1/t的重加权,强调更接近原始答案的那些时间步,在实验中带来了一致的性能提升。
**七、局限与开放问题**
研究团队对词元级对数值中心化的效果做了系统的消融实验,结果呈现出一个值得深思的现象:在Dream-7B上,加入TLC的版本在规划任务上显著优于不加TLC的版本;但在LLaDA-8B的某些任务上,加入TLC的版本有时反而不如不加TLC的版本,尽管训练奖励曲线更稳定。
研究团队对此的解释是,TLC通过自我中心化,使模型更专注于相对的对数值差异,这种更强的约束可能导致模型更好地拟合训练时的奖励信号,但同时也可能放大了对特定训练集信号的过拟合,导致在测试集上的泛化能力略有下降。这是一个开放性的问题,也预示着未来可以在"训练稳定性"与"泛化能力"之间寻找更好的平衡点。
此外,这篇工作聚焦于"序列级概率"家族的强化学习方法。基于"轨迹级概率"的方法虽然在理论上不存在TIM偏差,但计算成本高昂、与预训练目标不兼容,本文并未涉及两者的直接比较,这也是未来工作可以深入的方向。
**归根结底,一道裂缝被重新焊上了**
说到底,这项研究做的事情可以用一句话概括:找到了扩散语言大模型强化学习中的一道根本性裂缝,并用一种更干净的方式把它补上。
裂缝的名字叫做训练-推理不匹配,根源在于用不精确的ELBO估算来充当不可计算的策略概率。补丁的名字叫做引导去噪器自蒸馏,做法是把强化学习直接转化为去噪器的自我模仿,彻底绕开概率计算这个环节。
这对普通用户意味着什么?未来的AI助手、代码助手、数学辅导工具,如果其底层模型是扩散语言大模型,就有望通过这种更稳定、更高效的训练方式变得更聪明,同时在推理速度上保持原有的优势。在某些任务上,准确率提升接近20个百分点,这在实际应用中是相当可观的改善。
当然,这还只是学术研究的一步,从实验室到产品落地还有很长的路。扩散语言大模型本身还在快速演进,更大规模的验证、与其他训练技术的结合、安全性与偏见方面的评估,都是后续必须面对的课题。
有兴趣了解技术细节的读者,可以在arXiv上通过编号2605.29398找到完整论文,代码也已在GitHub上以GDSD为关键词公开。
Q&A
Q1:扩散语言大模型和ChatGPT那种模型有什么区别?
A:ChatGPT那类模型是一个字一个字按顺序生成的,就像打字一样从左到右。扩散语言大模型则是先生成一个模糊的整体框架,再反复把模糊的地方填清楚,有点像用橡皮泥先捏出大轮廓再细化细节。这种方式理论上速度更快,也不必严格按照从左到右的顺序思考,但目前在生成质量上还不如传统模型,所以需要更好的训练方法来提升。
Q2:GDSD方法为什么比以前的方法更稳定?
A:以前的方法需要用一个叫ELBO的近似估算来代替真实的概率,再用这个近似值做修正,误差会不断积累,最终可能导致训练崩溃。GDSD完全绕开了概率计算,改为让模型直接模仿一个由得分信息加强过的"自我教师",训练目标变成了更简单的对数值匹配,不存在概率估算误差的积累问题,所以训练过程更稳定。
Q3:词元级对数值中心化(TLC)到底解决了什么问题?
A:GDSD的教师模型有一个无法直接计算的归一化常数,就像计算"所有可能答案的概率之和",对于语言模型来说答案空间天文数字般庞大,根本算不出来。TLC的做法是把每个词的分数都减去平均分,这样那个讨厌的常数在数学上会自动消掉,同时让所有分数以零为中心,防止训练过程中数值越跑越偏。





京公网安备 11011402013531号