微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 北京大学与浙江大学联手:让小模型"继承"大模型的智慧,扩散语言模型的压缩新突破

北京大学与浙江大学联手:让小模型"继承"大模型的智慧,扩散语言模型的压缩新突破

2026-05-07 11:19
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-05-07 11:19 科技行者

这项由北京大学与浙江大学联合开展的研究以预印本形式发布于2026年4月,论文编号为arXiv:2604.26951,有兴趣深入了解的读者可通过该编号查询完整论文。

**语言模型界的"传承难题"**

近几年,AI语言模型变得越来越能干,但随之而来的代价是它们变得越来越"庞大"。部分顶尖模型需要数百亿个参数才能流畅运转,就像一座装满藏书的超级图书馆,功能强大,却根本塞不进普通人的口袋。另一类更新颖的模型——"扩散语言模型"(简称dLLM)——同样面临这个困境。这类模型的工作方式与我们熟悉的ChatGPT等不同:它不是一个字一个字地往外"吐"文字,而是先把整段文字都盖上马赛克,再像冲洗照片一样,一步步把清晰的内容还原出来。这种方式能让模型同时看到整句话的前后文,在某些任务(尤其是写代码)上表现出色。然而,要让扩散语言模型达到竞争力水平,同样需要80亿乃至160亿个参数,对普通硬件来说完全是天方夜谭。

解决思路其实早就有了,那就是"知识蒸馏"——让大模型把自己的"智慧"传授给小模型。就像一位经验丰富的老师,不仅告诉学生标准答案,还把自己对每道题的直觉和把握程度一并传递过去,让学生即便是小脑袋也能吸收到大量精华。这个方法在传统语言模型领域已经被证明很有效,但在扩散语言模型身上,却遇到了三道几乎没人尝试跨越的门槛。

北京大学与浙江大学的研究团队就是冲着这三道门槛去的。他们提出了一套名为TIDE(意为"转动潮水")的框架,首次实现了跨架构的扩散语言模型知识蒸馏——也就是说,老师和学生不仅体型悬殊,连"语言系统"和"思维方式"都截然不同,但知识依然能有效传递。最终,他们把一个160亿参数的MoE(混合专家)模型和一个80亿参数的密集模型的知识,同时压缩进一个仅有6亿参数的学生模型,内存占用缩小了22倍,推理速度提升了5倍,而在代码生成这项测试中,蒸馏后的小模型甚至超过了同等体量的传统语言模型整整16.5分。

---

**一、为什么"传道"这么难——三道几乎无解的门槛**

要理解这项研究的价值,得先摸清楚扩散语言模型的知识蒸馏到底难在哪里。

先说第一道门槛:老师的"靠谱程度"随时在变。在传统语言模型里,老师模型每次回答问题时,都能看到完整的上文,预测下一个词的依据充分,因此它的每一个"建议"都相当可信。但扩散语言模型不是这样工作的——它的训练过程中,每次会随机决定把原文中多少比例的词语换成马赛克。当马赛克比例很低时,老师只需要填补少数几个空白,背景信息充足,答案自然靠谱。可当马赛克比例很高时,整段文字几乎被遮住,老师也只能"猜",给出的建议参考价值极低。如果学生一视同仁地把老师在各种马赛克程度下的回答都当作金标准来学,就相当于同时跟着一位时而清醒时而胡言乱语的老师学习,效果可想而知。

第二道门槛:马赛克太多时,老师自己也"瞎了"。扩散模型的独特优势在于它能看到双向的上下文,但当大量词语被遮住时,这个优势就大打折扣。即使是一位真正博学的老师,在几乎所有信息都被遮掩的情况下,也很难给出有意义的指导。这意味着在训练的某些时刻,老师传递给学生的信号本质上就是噪音,学生不但学不到东西,还可能被带偏。

第三道门槛:老师和学生说的不是同一种"语言"。这里的"语言"指的是分词方式——不同的语言模型会用不同的规则把一段文字切分成若干个基本单元。比如同一句英文"I don't wanna",有的模型会切成["I", "don", "'t", "wanna"] 四个单元,有的则切成["I", "do", "n't", "wan", "na"] 五个单元。当老师和学生的切分方式完全不同时,它们对同一段文字的预测结果根本没有办法直接比较,就像一个用汉字打分的老师想把分数换算给一个用拼音答题的学生,换算本身就是个难题。

正是这三道门槛,让此前所有针对扩散语言模型的蒸馏研究都只能在"同一个模型结构、同一套分词规则"的前提下做小修小补,没有人敢真正跨越架构、跨越分词体系来做这件事。TIDE框架的目标,就是用三个各司其职的模块,分别拆解这三道难题。

---

**二、TIDAL:让学生知道"什么时候"该认真听讲**

TIDE的第一个模块叫做TIDAL(时间-迭代双轴lambda调制),解决的是老师可信度随时间波动的问题。

可以用这样一个场景来理解:一位经验丰富的大厨正在指导一位学徒做菜。当菜谱上大部分材料都摆在桌上时,大厨的建议自然精准可靠;但当桌上几乎什么都没有、大厨只能凭空猜测时,他的指导就未必靠谱了。聪明的学徒应该懂得区分两种状态,在大厨清醒时仔细聆听,在大厨"胡说"时自己拿主意。TIDAL做的就是这件事。

具体来说,TIDAL用一个叫做λt的数值来控制"学生应该多大程度上依赖老师的建议"。当马赛克比例高(接近1,也就是几乎全部被遮住)时,λt趋近于0,学生基本忽略老师的建议,主要靠自己;当马赛克比例低(接近0,上下文清晰)时,λt接近于当前基础值,学生充分吸收老师的指导。这是第一条轴——扩散时间步轴。

与此同时,TIDAL还引入了第二条轴——训练进度轴。这对应的是另一个直觉:在学徒刚开始学习的早期阶段,他自己的水平还很有限,如果老师一开始就给出太强烈的"建议",学生容易迷失自我,产生所谓的"表征崩溃"——简单说就是学生完全丧失了自己独立思考的能力,只会照着老师的说法鹦鹉学舌。因此,在训练初期,基础值λtrain从一个较小的数值出发,随着训练进行,按照余弦曲线平滑地攀升到较大值。这样一来,学生先在早期打好独立思考的基础,再在后期逐步加重对老师的参考权重。

将两条轴结合起来,每一个训练时刻的实际调节参数λt就等于当前基础值乘以(1减去马赛克比例)。这个公式直观而优雅:马赛克越多,参数越小,老师建议的影响越低;训练越深入,基础值越高,老师的参考价值整体提升。

在此基础上,TIDAL将老师和学生的预测按照λt加权混合成一个"参考答案",再用这个参考答案来指导学生的学习。研究团队还可以选择性地对中间范围的马赛克比例加以额外强调,因为那个区间的老师预测既不太嘈杂,也不太简单,是最有学习价值的时刻。

这种双轴调制的思路在传统语言模型蒸馏领域也有类似先例——麻省理工等机构提出的TAID方法就使用了按训练进度调节的插值策略。但TAID只有一条轴,没有考虑扩散模型特有的时间步可靠性问题。TIDAL在此基础上增加了对扩散时间步的感知,这一扩展正是扩散模型知识蒸馏独有的挑战所在。

---

**三、COMPDEMO:给老师"开外挂",让它在遮挡最严重时也能说出靠谱的话**

TIDAL解决了"什么时候听老师的",但它并没有从根本上改善老师在高马赛克情况下的预测质量。TIDE的第二个模块COMPDEMO(互补演示条件去噪)换了一个角度:既然老师在信息太少的情况下会"胡说",那能不能在不破坏规则的前提下,给老师多透露一点信息呢?

答案是肯定的。扩散语言模型的独特结构为此提供了一个巧妙的空间。当一段文字中有若干个位置被遮住时,COMPDEMO做的事情是:把这些被遮住的位置随机分成两个大小相近的子集,姑且叫A组和B组。然后对老师进行两次独立的推理——第一次推理时,把A组的真实内容"悄悄"露给老师看,让老师在只需要预测B组内容的情况下作答;第二次推理时,反过来,把B组的真实内容露给老师,让老师去预测A组。最后把两次推理的结果合并,得到对所有被遮住位置的完整预测。

这样做的妙处在于:每次预测时,老师手上的上下文都比原来丰富得多,相当于把原本完全"摸黑"的情况变成了"在暗室里但有一半手电筒"的情况。用摄影的比喻来说,就是原本要求老师在一张几乎全黑的底片上辨认图案,现在把底片分成两半分别冲洗,每次只冲洗一半,另一半作为参照——这样洗出来的每张局部照片都会清晰得多。

当然,这样做有代价:老师需要进行两次前向推理,而不是一次。不过由于老师在训练过程中是完全冻结的(也就是说老师本身不需要计算梯度、不需要更新参数),额外的推理开销比想象中小得多,整体训练时间大约只增加50%,在研究团队看来是值得的。

从消融实验(也就是"拆掉某个零件看整体表现怎么变"的测试)来看,去掉COMPDEMO后,模型在代码生成基准HumanEval上的表现下降了2.44分,在知识理解基准MMLU上下降了0.34分。这说明它的贡献是真实且稳定的,并非统计噪音。

---

**四、Reverse CALM:在老师和学生"语言不通"时架起翻译桥梁**

当老师和学生使用不同的分词系统时,TIDAL和COMPDEMO生成的老师预测结果根本没有办法直接拿来和学生的预测比较——毕竟两边连基本单位都对不上。TIDE的第三个模块Reverse CALM(反向块级近似似然匹配)专门解决这个问题。

要理解这个模块,先要明白"块"(chunk)这个概念。研究团队借助一个叫做tokenkit的工具,把老师和学生各自的分词序列在字节层面对齐,找出两套分词系统都能够整除的最小文字段——这些最小段就叫做"块"。以"I don't wanna"为例,老师可能把它切成["I", "don", "'t", "wanna"],学生可能切成["I", "do", "n't", "wan", "na"],但不管怎么切,"I"、"don't"(含缩写)、"wanna"这样的自然语义单元是两套系统都认可的最小公约数。通过找到这些公共块,可以把双方对同一文字段的预测概率进行统一比较。

具体做法是:把老师和学生各自预测的每个词的概率,乘以一个对齐矩阵,把各自词级别的预测"折叠"成块级别的预测概率。得到的结果是一个介于0到1之间的标量——这个数字代表"模型认为这一块文字就应该是这样的可能性"。

有了块级别的预测概率,理论上就可以直接比较老师和学生的预测了。最直接的想法是用"正向交叉熵"——用老师的预测来指导学生,让学生的输出尽量匹配老师的输出。但研究团队发现这种做法存在一个严重的数值不稳定问题:当老师认为某个块的概率很高(接近1),而学生的预测概率很低(接近0)时,梯度(也就是训练信号的强度)会趋向于无穷大,引发所谓的"梯度爆炸",整个训练过程因此崩溃。

Reverse CALM的解决方案是把方向反过来——不是用老师的预测来"打分"学生,而是用学生的预测概率作为权重,来对老师的预测进行评估。这样一来,梯度中涉及的系数变成了老师概率的对数比值,这个值由于依赖固定的老师输出,是完全有界的、不会爆炸的。

更巧妙的是,这种反向设计自带"双端噪声过滤"的效果。当某个块的对齐质量很差(老师和学生对它的预测都很不确定,概率接近0.5)时,梯度系数自动趋近于零,相当于这个块的信号被自动过滤掉了;同时,当学生对某个块的预测概率本来就很低时,这个块对参数更新的贡献也会被压制。两重过滤机制让模型在面对不完美的跨分词对齐时,能自动屏蔽最嘈杂的学习信号,只关注最可靠的部分。

从信息论的角度来说,Reverse CALM等价于最小化一种叫做"伯努利KL散度"的量,这是一种在二值概率空间里追求"模式寻求"的目标——简单说就是学生会主动向老师最有把握的地方靠拢,而不是试图覆盖老师所有可能的预测。

此外,研究团队还注意到,TIDAL和Reverse CALM不应该混用。TIDAL的设计思路是在早期训练时让学生"先自己摸索,再逐渐参考老师",这对于正向训练目标是必要的稳定剂。但Reverse CALM本身已经不存在梯度爆炸问题,反而依赖学生自身的概率来作为信号强度的"阀门"。如果硬把TIDAL叠加上去,训练后期的梯度压制会破坏Reverse CALM的自选择机制,反而得不偿失。

---

**五、两条实验流水线:从160亿到6亿,两种路径都行得通**

有了三个模块,研究团队设计了两条完整的蒸馏流水线,对应两种不同的场景。

第一条流水线是跨分词器蒸馏,老师是LLaDA2.0-mini,一个拥有约163亿参数、采用MoE架构(也就是"混合专家"结构,每次只激活部分参数)的扩散语言模型,它使用来自Ling系列的独立分词系统。学生是Qwen3-0.6B-BD3LM,一个只有6亿参数的块扩散模型,使用Qwen3系列的分词系统。两套系统的分词方式完全不同,因此这条流水线的核心蒸馏工具是Reverse CALM。

第二条流水线是共享分词器蒸馏,老师是WeDLM-8B-Instruct,一个80亿参数的密集扩散语言模型,同样基于Qwen3分词系统,因此老师和学生的分词方式完全相同。在这条流水线中,可以直接在词级别进行KL散度比较,核心工具是TIDAL与COMPDEMO的组合。

训练数据方面,两条流水线都使用同一套四合一的SFT(监督微调)数据集,涵盖通用对话(Tulu-3 SFT Mixture、SmolTalk)和代码生成(OpenCoder OPC-SFT两个阶段)。训练时学习率统一设为5e-5,训练10个epoch,序列长度512词,块大小32。

评测在八个基准任务上展开,覆盖了推理(GSM8K数学应用题、MATH竞赛题、BBH综合推理)、知识(MMLU-Pro、MMLU)、常识理解(HellaSwag)和代码生成(HumanEval、MBPP)四个维度。

---

**六、实验结果:小模型究竟"继承"了多少?**

研究结果呈现在一张综合对比表中,对比对象包括:未经蒸馏的6亿参数BD3LM基准模型、同等体量的传统自回归模型Qwen3-0.6B-Base,以及各种蒸馏配置下的学生模型。

在八项基准的平均分上,跨分词器流水线的最佳配置(TIDE-Cross策略)达到了34.20分,相比未经蒸馏的基准模型32.67分提升了1.53分。共享分词器流水线的最佳配置(TIDE-Shared策略)达到33.55分,也有明显提升。即便是最简单的蒸馏基准(不加任何TIDE组件,只是直接用老师的预测来指导学生),也优于未经蒸馏的模型,说明跨架构的知识传递本身就是可行的。

代码生成这个方向的提升尤为突出。在HumanEval上,共享分词器流水线的TIDE-Shared配置达到48.78分,TIDE-Shared策略在跨分词器流水线中则达到了49.39分,而同等体量的传统自回归模型Qwen3-0.6B-Base只有32.30分——蒸馏后的扩散模型超出整整16分以上。MBPP基准上同样有类似趋势,最佳蒸馏模型达到38.60分,传统模型只有36.60分。研究团队认为,这种优势来自扩散模型的并行生成机制:当需要生成结构严密的代码时,能够同时看到整段输出的上下文,对维持语法和逻辑的一致性有天然的优势,这是逐字生成的传统模型所不具备的。

另一个有意思的发现是"各走各的路"规律:两条流水线各自在自己的原生策略下表现最好,换用对方的策略则会下降。跨分词器流水线用TIDE-Cross(Reverse CALM)比换用TIDE-Shared平均高出0.37分;共享分词器流水线用TIDE-Shared(TIDAL+COMPDEMO)比换用TIDE-Cross平均高出2.76分。这一结果印证了TIDE模块化设计的合理性:不同的对齐条件对应不同的最优策略,强行统一反而会损失效果。

---

**七、消融实验:拆掉哪个零件最痛?**

为了精确衡量TIDAL每个组成部分的贡献,研究团队在共享分词器流水线上进行了系统的"拆零件"测试,每次只移除一个组件,观察整体表现的变化。

只去掉时间步轴(让λt不再随马赛克比例变化,只随训练进度变化)时,平均分下降了0.26分,其中HumanEval单项下滑高达3.05分,是所有消融条件里最大的单项损失。这说明时间步维度的调节对稳定蒸馏质量至关重要,尤其是在需要生成完整结构化代码的任务上,老师在高马赛克情况下给出的嘈杂信号如果不加抑制,就会严重干扰学生学习代码的整体逻辑。

只去掉COMPDEMO(老师只进行单次前向推理,不做互补遮罩分裂)时,平均分下降0.17分,HumanEval下滑2.44分,MMLU下滑0.34分。补充的上下文信息对于提升老师信号的质量有真实贡献,尤其对结构化生成任务。

相比之下,把"仅有时间步调节"的单轴版本作为基准(模拟此前文献中的做法),完整的TIDE框架(双轴TIDAL加COMPDEMO)比它高出0.08分,并且在GSM8K推理任务上防止了0.83分的额外下滑。这说明训练进度轴对于训练早期的稳定性有独立贡献,防止了"学生还没准备好就被老师强行灌输"导致的偏差。

---

**八、部署效率:小了22倍,快了5倍,质量还提升了**

研究团队在一块NVIDIA H100-80GB GPU上做了细致的推理效率测试,结果相当直观。

在控制变量(统一生成256个词)的测试条件下,蒸馏后的6亿参数学生模型峰值内存占用只有1.4GB,而16亿参数的LLaDA2.0-mini需要31.3GB,差距是22倍;与80亿参数的WeDLM-8B相比,也缩小了11倍。生成256个词的延迟是6.25秒,LLaDA2.0-mini需要32.55秒,速度差距超过5倍。蒸馏本身几乎不引入推理开销:蒸馏后的模型每秒处理41.0个词,未经蒸馏的同架构基准模型是42.1个词,差距仅有2.6%,内存完全相同。

跨八个评测任务的实际运行测速表明,学生模型的推理吞吐量在不同任务下非常稳定,始终保持在每秒40至42个词之间,体现了块扩散架构固定推理步数带来的吞吐稳定性。相比之下,LLaDA2.0-mini在不同任务上的吞吐波动明显,从5.6到10.3不等,反映了MoE架构在不同输入长度下的行为差异。

传统自回归小模型Qwen3-0.6B在相同条件下的吞吐是每秒51.3个词,高于学生模型。但这个速度优势换来的是代码生成上整整16分的劣势,以及在其他任务上普遍低于蒸馏扩散模型的整体表现。研究团队认为,对于部署在边缘设备或资源受限场景的应用,这个权衡是合算的。

---

**九、案例解剖:小模型到底"学到"了什么?**

为了超越枯燥的数字,研究团队还做了两类质性分析,帮助理解知识蒸馏的实质。

第一类分析是"暗知识迁移"测量。在共享分词器流水线中,研究团队测量了蒸馏前后学生模型与WeDLM教师模型之间的KL散度(一种衡量两个预测分布有多"相似"的指标)。结果显示,蒸馏后的学生模型与老师的预测分布KL散度为6.69,而未经蒸馏的基准模型是12.44,下降了整整46%。换句话说,蒸馏让学生真的"更像老师了",而不仅仅是在最终答案上碰巧跟老师一样。

第二类分析是具体案例对比,研究团队挑选了四道基准测试里的典型错误案例,这些案例有一个共同特点:未经蒸馏的基准模型全部答错,但两个蒸馏版本里各有一个答对了。

以GSM8K里的一道行程题为例,题目说"Dana跳绳的速度是她走路速度的一半,跑步是跳绳的两倍,她能以3英里/小时的速度跳绳,如果她花1/3的时间跑步、2/3的时间走路,六小时能走多远?"。未经蒸馏的基准模型正确算出了跑步速度6英里/小时,却在下一步把"花1/3时间"错误地理解成了"以1/3的速度",算出来的是速度而非距离,最终答案错误。蒸馏自LLaDA2的TIDE-Cross版本正确区分了时间和速度,分别计算了2小时跑步走12英里、2小时走路走6英里,给出正确答案18英里。而蒸馏自WeDLM的TIDE-Shared版本虽然也正确分配了时间,却误用了全程6小时而非分配的2小时来计算每段距离,同样答错。

代码生成的案例同样有启发性。HumanEval第50题要求写一个"解码"函数,把一个把字母向后移5位的"编码"操作逆向还原。未经蒸馏的基准模型直接返回了编码函数,等于不解码地再编码一次。蒸馏自LLaDA2的版本虽然输出了同样错误的代码,但额外生成了500字的解释,试图论证"再编码一次等于解码"——这说明这个版本的模型具备了一定的元认知能力(知道自己需要解释),但对逆运算的逻辑仍然理解不到位。蒸馏自WeDLM的版本则正确写出了减去5个字母位移的逻辑,通过了测试。这些案例生动地说明,不同的老师把不同类型的知识传给了学生:来自LLaDA2的老师更擅长修正多步算术中的细节遗漏,来自WeDLM的老师则更擅长传递算法逆向操作的能力。

---

归根结底,这项研究做的事情可以用一句话来概括:把一个占据整个机柜才能运行的超级大脑里的知识,安安稳稳地转移到一个普通笔记本也能跑的小脑袋里。更难得的是,这个转移过程跨越了"语言不通"、"可信度飘忽"、"上下文匮乏"三道理论上的壁垒,同时把每一道壁垒都用专门设计的工具逐一化解。

当然,这项研究也留下了若干有待继续探索的问题。目前学生模型的体量上限是6亿参数,是否能进一步扩展到13亿或30亿、是否能推广到连续状态扩散模型或纯编码器架构,以及是否能同时接收多个老师的指导而非按流水线分开处理,都是团队在论文里明确提出的未来方向。COMPDEMO带来的50%训练时间增加,以及Reverse CALM与TIDAL的组合禁忌,也是在未来工程实践中需要权衡的实际约束。

对于普通用户来说,这项研究最直接的意义或许在于:未来在手机或轻薄笔记本上用到的AI助手,尤其是那些擅长写代码或处理结构化内容的功能,背后可能正是类似这种蒸馏路线造就的小而精的模型。有兴趣深入了解的读者可以通过arXiv编号2604.26951查阅完整论文。

---

Q&A

Q1:扩散语言模型和ChatGPT那种语言模型有什么区别?

A:ChatGPT这类自回归模型是一个字一个字地从左往右生成文字,每次只看已经生成的部分。扩散语言模型的思路完全不同——它先把整段文字都盖上马赛克,再像冲洗照片一样逐步还原出清晰内容,整个生成过程中可以同时参考前后文的信息。这个特性让它在写代码这类需要全局一致性的任务上有天然优势,但代价是运算更复杂,目前主流的扩散语言模型体量也相当庞大。

Q2:TIDE框架的跨分词器蒸馏为什么不能直接比较老师和学生的预测?

A:不同模型会用不同规则把文字切成基本单元,比如同一个词,老师可能切成两块,学生可能切成三块。两边的"词表"不一样,概率分布的维度和含义就完全对不上,就像两个人一个用人民币报价、一个用日元报价,单纯比数字是没有意义的。TIDE通过在字节层面找到双方都认可的最小公共单元"块",把两边的预测统一折算成块级别的概率再比较,才解决了这个对齐问题。

Q3:TIDE蒸馏出来的小模型代码能力为什么比同等大小的传统语言模型还强?

A:这主要来自扩散模型本身的结构优势。传统模型生成代码时是逐行逐字往下写,写到某一行时看不到后面,容易出现前后逻辑不一致的情况。扩散模型生成时可以同时"考虑"整段代码的全貌,对维持变量命名、函数调用、逻辑结构的整体一致性更有帮助。蒸馏进一步让小模型吸收了大模型在代码逻辑上的"直觉",两者叠加使得蒸馏后的小扩散模型在HumanEval上比传统小模型高出超过16分。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-