谁来主导这一步解码?让扩散语言模型互相"接力",把错的拉回正轨

核心摘要

把多个大模型的知识揉到一起,这事在自回归模型上早就玩烂了——投票、加权平均 logits、router 路由,套路一大堆。但有一类模型偏偏吃不到这波红利:掩码扩散语言模型(Masked Diffusion Language Models,MDLM)。它不是从左往右一个词一个词吐出来的,而是像填字游戏一样,先随机解开几个位置,再一步步把剩下的 mask 填满。顺序是乱的,每个模型每一步处理的"半成品句子"都不一样,你压根没法定义一个跨模型共享的"下一个 token"。传统集成方法在这里直接失灵。

这篇来自 KAIST 和 AITRICS 的论文(arXiv:2606.16281)盯上了这个空白。作者发现一个挺有意思的现象:生成正确答案的那条解码轨迹,在答案相关位置上的置信度波动特别小、特别稳;而走偏的轨迹,往往能靠"注入"另一个模型的中间状态被拉回来。基于这个观察,他们提出 TIE(Trajectory-based Iterative Ensembling)——让多个 MDLM 各自解码几步,然后评估谁现在走在更靠谱的轨迹上,把那条轨迹"接力"给所有模型,从这个更可靠的中间态继续往下走。GSM8K 上从单模型的 78.77 / 78.39 直接干到 83.47,八个推理基准全面超过单模型。

说实话,这篇论文最打动我的不是涨点,而是它那个"领跑模型一直在换"的发现——没有哪个模型从头强到尾,不同模型在生成的不同阶段各自贡献长板。这个洞察本身就比方法更有价值。


论文信息

  • 标题:Who Should Lead Decoding Now? Tracking Reliable Trajectories for Ensembling Masked Diffusion Language Models
  • 作者:Heecheol Yun、Joonhyung Park、Joowon Kim、Eunho Yang
  • 机构:KAIST & AITRICS
  • arXiv:2606.16281(2026 年 6 月提交,cs.CL / cs.AI)
  • 链接:https://arxiv.org/abs/2606.16281

🤔 先搞清楚:扩散语言模型到底怎么解码

聊 TIE 之前,得先讲明白 MDLM 是个什么东西,不然后面的"轨迹""中继"全是空话。

你熟悉的 GPT 系列是自回归的:给定前面的词,预测下一个词,一个接一个往右吐。掩码扩散模型走的是另一条路。它的灵感来自图像扩散——先把一张完整的"句子"全部 mask 成噪声,然后反向去噪,每一步解开(unmask)一部分被遮住的 token,直到整个序列填满。

关键区别在于:解码顺序是灵活的、非从左到右的。模型可以先填句子中间的某个词,再填开头,再填结尾。每一步具体解开哪些位置,通常由置信度决定——哪个被 mask 的位置模型最有把握,就先解开哪个(low-confidence remasking 策略)。

它的训练目标是一个负 ELBO。前向加噪过程把 token 按噪声调度 \(\alpha_t\) 逐渐替换成 mask:

\[q(z_t|x) = \text{Cat}(z_t; \alpha_t \cdot x + (1-\alpha_t) \cdot m)\]

反向过程则学习从带 mask 的序列预测原始 token,训练损失只在那些被 mask 的位置上计算:

\[\mathcal{L}^{\text{ELBO}} = \int_0^1 \frac{\partial_t \alpha_t}{1-\alpha_t} \, \mathbb{E}\Big[\sum_{l: z_t^{(l)}=m} x^{(l)} \log f_\theta^{(l)}(z_t, t)\Big] dt\]

公式不用死磕,记住一件事就行:MDLM 在解码的每一步,对每个还被 mask 的位置都有一个完整的概率分布。这个分布会随着解码推进不断变化——而 TIE 的全部精髓,就藏在"这个分布怎么变"里面。

现在问题来了。我手上有 LLaDA、有 Dream、有 DreamCoder,它们各有所长,我想把它们的知识合起来用。自回归模型我直接 ensemble logits 就行,但这几个 MDLM 每一步解开的位置都不一样,处理的半成品句子各不相同,根本没有一个对齐的"下一个 token"让我去平均。这就是论文要解决的核心难题。


📖 一个反直觉的观察:稳定的轨迹更可能是对的

作者没有上来就设计方法,而是先做了一组观察实验——我挺欣赏这种做法的,先理解现象,再对症下药。

他们盯着 answer-related tokens(答案相关的那些位置)看,统计这些位置上的置信度指标随解码步骤怎么变化,然后按"最终答对"和"最终答错"两组分开画。

图1:正确与错误样本的置信度动态对比

图1:三个置信度指标(top-1 概率、概率边际、熵)在答案 token 上随解码步骤的演变,按正确/错误样本分组并在答案位置上做了平均。结论很清楚——正确样本在三个指标上始终更"自信":top-1 概率更高、概率边际更大、熵更低。

这张图说的事其实很朴素:答对的那条轨迹,从中途开始就比答错的轨迹更笃定,而且这种笃定是稳定的。模型对答案位置反复横跳、犹豫不决,往往就是要翻车的前兆。

为了把这个直觉量化,作者定义了一个特别朴素但好用的指标——token change count(token 变化计数 𝒞)。意思是:在最近 n 步解码里,那些被 mask 的答案位置上,top-1 token 在相邻两步之间"改主意"了多少次。

\[\mathcal{C}^{(n)} = \sum_{t=T-n+1}^{T-1} \sum_{a \in \mathcal{A}^{(t)}} \mathbb{1}\big[\arg\max p_a^{(t)} \neq \arg\max p_a^{(t+1)}\big]\]

变化次数越少,说明这条轨迹越稳、越可靠。Table 1 给的数据很有说服力——错误样本的 token change count 大约是正确样本的两倍:

模型 任务 正确样本 𝒞 错误样本 𝒞
LLaDA MMLU 1.81 4.27
LLaDA GSM8K 32.29 51.48
Dream MMLU 2.32 6.19
Dream GSM8K 40.88 58.07

光有"识别可靠轨迹"还不够。作者还问了第二个问题:走偏的模型,能被救回来吗? 他们做了个注入实验——把一个模型走到一半的(正确的)部分轨迹,喂给另一个本来要答错的模型,让它从这个中间态接着解码。

任务 模型 注入 33% 后纠正率 注入 50% 后纠正率
MMLU LLaDA 56.43 65.22
MMLU Dream 68.84 76.57
GSM8K LLaDA 74.66 72.60
GSM8K Dream 78.63 80.92

注意第一列——哪怕只给三分之一的正确轨迹,就有过半的错误样本被纠正了。这个数字其实挺关键的,它说明 MDLM 的错误很多时候不是"知识缺失",而是"走错了路",给个正确的方向引子就能拐回来。这两个观察直接撑起了 TIE 的设计。


🏗️ TIE 的方法:解码、评估、接力,循环往复

理解了上面两个观察,TIE 的设计就顺理成章了。它是一个无需额外训练的框架,给定 M 个 MDLM,跑一个三步循环,直到生成结束。

图2:TIE 框架总览

图2:TIE 概览。每个 MDLM 先从当前状态独立生成一段部分解码轨迹;TIE 用答案位置上的置信度打分评估这些轨迹,把最可靠的那条中继给所有模型,再从这个更可靠的中间态继续解码。图中 (2-A) 的答案位置原本是被 mask 的,为了可视化才显示了它们的 top-1 token。

拆开看这三步:

第一步——轨迹生成(Trajectory Generation)。每个模型从自己当前的状态出发,独立解码 n 步。这个 n 叫 ensemble interval(集成间隔),是个关键超参。有个细节值得注意:解码时强制让所有推理位置(reasoning tokens)先解开,答案位置(answer tokens)最后才解。这样在评估阶段,答案位置还都是 mask 状态,正好可以观察模型对答案的"信心动态"。

第二步——轨迹评估(Trajectory Assessment)。这是 TIE 的大脑。作者试了四种打分指标,全都只在被 mask 的答案位置上算:token change count(取负,越稳越高分)、top-1 概率、负熵、概率边际(top-1 与 top-2 概率之差)。

但这里有个坑:不同模型的置信度校准不一样,A 模型天生就比 B 模型更"自信",直接比 logit 不公平。作者用了两种策略来应对:

  • 历史型打分(针对 token change count):累计统计这段时间内答案位置 top-1 token 的变化次数。由于不同模型、不同步骤的答案位置数量 \(|\mathcal{A}_m^{(t)}|\) 不同,必须做归一化,否则答案 token 多的模型会因为基数大而虚高变化次数:
\[\tilde{\mathcal{C}}_m^{(n)} = \sum_{t=T-n+1}^{T-1} \frac{1}{|\mathcal{A}_m^{(t)}|} \sum_{a \in \mathcal{A}_m^{(t)}} \mathbb{1}\big[\arg\max p_a^{(t)} \neq \arg\max p_a^{(t+1)}\big]\]
  • 跨模型打分(针对三个 logit 型指标):把每条候选轨迹 \(\mathcal{T}_m^{(n)}\) 前向喂给所有 M 个模型,用跨模型的平均分作为最终置信度:
\[\text{Score}(\mathcal{T}_m^{(n)}) = \frac{1}{M}\sum_{m'=1}^M f(\mathcal{T}_m^{(n)}; m')\]

这个设计我觉得是点睛之笔。它选出的是"在所有模型眼里都靠谱"的轨迹,而不是"只有它自己亲妈觉得好"的轨迹。避免了某个过度自信的模型把整个集成带沟里。

第三步——轨迹中继(Trajectory Relay)。选出得分最高的那个模型 \(m^* = \arg\max_m \text{Score}(\mathcal{T}_m^{(n)})\),把它的轨迹复制给所有模型,替换掉大家当前的解码状态:\(\mathcal{T}_m^{(n)} \leftarrow \mathcal{T}_{m^*}^{(n)}\)。中继之后,所有模型从这个统一的、更可靠的中间态出发,各自再独立解码 n 步,分数清零,循环重开。

就这样生成、评估、接力转圈,直到某个模型先解码完。最后从 M 个候选答案里,挑那个在整个过程中答案动态最稳(归一化 token change count 最低)的作为最终输出,平局就比 top-1 概率。

整个流程读下来,我最喜欢它"接力"这个隐喻——不是让模型们投票表决,也不是简单挑一个最强的从头跑到尾,而是像接力赛一样,谁这一棒状态好就谁先跑,下一棒可能换人。这跟传统集成的思路完全不同。


🧪 实验:八个基准全面超越单模型

作者用了四个 MDLM 来组队:LLaDA-1.5、Dream-7B-Instruct、DreamCoder-7B-Instruct、DiffuCoder-7B-Instruct。覆盖四类任务八个基准:通用推理(MMLU、ARC-Challenge、WinoGrande)、数学(GSM8K、MATH500)、编程(HumanEval、MBPP)、规划(Countdown)。

实现上用半自回归生成,block size 16,greedy decoding,集成间隔默认 16 步。硬件挺接地气——每个模型一张 RTX 3090,bfloat16。这里有个值得强调的工程点:集成期间所有模型并行生成,整体延迟跟单模型相当。这意味着 TIE 没有把推理时间成倍放大,实用性大大加分。

由于现有集成方法和 MDLM 不兼容,作者主要跟单模型比。Table 3 是 LLaDA + Dream 的主结果:

方法 MMLU MMLU*高分子集 ARC-C WinoGrande GSM8K MATH500 HumanEval MBPP Countdown
LLaDA 61.23 71.45 85.15 71.59 78.77 37.4 45.73 53.16 13.4
Dream 67.46 77.37 86.69 72.22 78.39 48.0 61.59 63.23 16.4
Post-gen 集成 67.26 77.92 88.57 73.72 80.29 43.0 55.49 62.53 19.2
TIE(token change count) 67.55 78.12 89.16 72.85 83.47 48.6 54.27 64.17 18.8
TIE(top-1 概率) 67.25 77.69 88.82 73.95 82.71 47.0 57.32 62.06 18.8
TIE(熵) 67.53 78.12 88.57 71.90 83.62 45.2 57.93 62.76 19.4
TIE(概率边际) 67.34 77.61 88.74 73.88 82.56 48.4 57.32 62.06 18.6

注意里面那个 Post-gen 集成——它其实就是 TIE 的一个特例:集成间隔等于整个生成长度,也就是说每个模型从头到尾各跑各的,最后才比一次。它能代表"生成后集成"这一类方法。TIE 在 GSM8K 上比它高了 3 个多点(80.29 到 83.47),这个差距恰恰证明了"生成过程中接力"比"生成完再挑"更有效。

token change count 这个最朴素的指标反而最稳健,八个基准里有四个拿到最佳。这点挺反直觉的——我本来以为算 entropy、probability margin 这种连续信号会更准,结果一个数"改了几次主意"的离散计数赢了。可能正是因为它直接捕捉了"犹豫"这个最本质的不可靠信号。

编程任务上 DreamCoder + DiffuCoder 的组合(Table 4)也有小幅提升,MBPP 从 75.88 涨到 76.58。

三个值得细品的发现

发现一,没有模型从头领跑到尾。 这是我觉得整篇论文最有意思的地方。Table 5 统计了"模型切换率"——相邻两次接力中,得分最高的模型发生变化的比例:

打分方法 MMLU ARC-C WinoGrande GSM8K MATH500 HumanEval MBPP Countdown
token change count 12.28 10.55 12.59 23.74 27.80 27.36 21.60 32.04
top-1 概率 34.25 30.31 40.99 44.80 47.32 28.29 22.83 44.43

越是难的任务(数学、规划),切换率越高,最高到 47%。这说明在复杂推理里,不同模型在不同解码阶段轮流贡献长板,没有谁能独占主导。这也从根上解释了为什么"过程中接力"会赢——因为最优的引领者本来就一直在变。

图3:集成领跑模型在解码过程中的切换情况

图3(a):MMLU 上集成领跑模型变化的可视化,纵轴是最高分模型发生切换的解码步骤比例。

图3b:GSM8K 上的领跑模型切换

图3(b):GSM8K 上的同类可视化。可以看到领跑模型在解码早期切换得更频繁——这正是早期路线未定、各模型互相纠偏最活跃的阶段。

发现二,组队的两个模型势均力敌且都强时,TIE 效果最好。 当一个模型明显拖后腿时,集成反而帮倒忙。比如 HumanEval 上 LLaDA 和 Dream 差了 15 个点以上,TIE 就追不上 Dream 单干。反过来在 MMLU*(高分子集)上两个模型都强,增益就比完整 MMLU 大。这其实是集成方法的通病,作者没回避,挺诚实。

发现三,错的能被救回来。 Table 11 和 Table 12 给了两个定性例子。比如一道珠宝 vs 电子产品利润题,正确答案 125:LLaDA 答 71(算成了两者未来值之差),Dream 答 96(只算了电子产品利润),而 TIE 把两条轨迹接力融合后答出了正确的 125。两个都错的模型,合起来反而对了——这才是集成真正的魅力。


📊 消融实验:每个设计都站得住脚

作者的消融做得相当扎实,几个关键设计都验证了。

集成间隔 n(Table 6):试了 8、16、32 步。间隔太小,部分轨迹信息不够,评估不可靠;间隔太大,接力频率降低,知识融合受限。16 步综合最优,GSM8K 在 16 步时拿到 83.47。

集成间隔 MMLU* ARC-C GSM8K MATH500
8 78.21 89.33 82.34 46.0
16 78.17 89.51 83.47 48.6
32 78.12 89.16 82.49 46.0

归一化的作用(Table 8):去掉对答案位置数量的归一化,GSM8K 从 83.47 掉到 82.64。归一化确实在补偿不同模型答案位置数量差异这件事上起了作用。

跨模型打分的作用(Table 9):只用源模型自己打分的话,MATH500 从 47.0 掉到 42.4,差了快 5 个点。这验证了"在所有模型眼里都靠谱"比"只有自己觉得好"要可靠得多。

与推理加速策略兼容(Table 7):TIE 跟 threshold 解码(τ=0.9,一次解开所有超过阈值的 token)和 top-k 解码(每步解开最自信的 k 个)都能叠加,依然有效。这对实际部署很重要——你不用在"加速"和"集成"之间二选一。

最终答案选择策略(Table 10):对比了三种挑最终答案的方式——最低 token change count、直接选最强的单模型、选被接力次数最多的模型。三种都不差。在模型能力差距大的领域,直接选最强单模型反而更好;势均力敌时,最低 TCC 更优。


💡 我的判断:洞察比方法更值钱

读完这篇论文,我的整体感受是——它的方法不算特别复杂,但背后的观察特别扎实

先说亮点。TIE 真正解决了一个被忽视的真问题:MDLM 的集成。自回归模型的集成方案没法直接搬过来,这是硬约束,不是作者硬造出来的伪命题。而它给出的解法——追踪答案位置的置信度动态、用 token change count 这种朴素指标识别可靠轨迹、周期性接力——逻辑链条非常清晰,每一步都有前面的观察实验撑着。尤其是"领跑模型一直在换"这个发现,我觉得它的价值超过了方法本身:它告诉我们,模型的能力不是一个标量,而是在生成的不同阶段分布不均的,这对未来怎么组合模型有更普遍的启发。

无需训练、并行生成不增加延迟、跟加速策略兼容——这几个工程属性也让它有真正落地的可能,不是那种"实验室刷榜专用"的方法。

但也有得泼点冷水的地方。

第一,增益的天花板取决于模型间的能力匹配。作者自己也承认,一旦组队的模型实力悬殊,集成就帮倒忙。这意味着 TIE 不是万能药,你得先有两个势均力敌且各有所长的强模型,它才能发挥。而现实中能凑出这种组合的场景有多少,要打个问号。

第二,涨点幅度其实比较温和。除了 GSM8K 那 3 个多点比较亮眼,多数基准的提升都在 1-2 个点甚至更小,部分任务(比如 HumanEval)还退步了。考虑到要同时跑多个模型(哪怕并行,显存和算力是实打实翻倍的),这个性价比见仁见智。

第三,token change count 为什么比连续的置信度信号更好用,论文给了实验结果但没给特别深入的理论解释。我个人猜测是离散的"改主意"信号对噪声更鲁棒,但这块作者讲得不够透。

总的来说,如果你正在做扩散语言模型,手上又有多个互补的 MDLM 想榨干它们的联合能力,TIE 这套思路绝对值得一试,实现也不复杂。如果你只是想了解"扩散模型集成该怎么做",光是 Figure 1 那个"稳定轨迹更可靠"的观察和"领跑模型动态切换"的发现,就够你琢磨一阵子了。

这是一篇观察驱动的好论文——不华丽,但扎实。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我