← 返回 2026-02-13

dVoting:面向扩散大语言模型的快速投票推理增强方法 dVoting: Fast Voting for dLLMs

Sicheng Feng, Zigeng Chen, Xinyin Ma, Gongfan Fang, Xinchao Wang 📅 2026-02-12 👍 23 2026-07-13 08:35
免训练优化 扩散语言模型 投票策略 推理增强 测试时计算扩展

利用dLLM重掩码机制实现免训练高效投票推理

前置知识

扩散大语言模型(dLLM)

扩散大语言模型是一类基于去噪扩散原理的语言生成模型,与传统自回归模型不同,它通过迭代的「掩码-去噪」过程生成文本。具体来说,模型从一个部分被掩码([MASK])的序列出发,在每一步并行地预测所有被掩码位置的原始token,然后根据置信度选择性地保留已解码的token或重新掩码不确定的位置,继续下一轮去噪。代表模型包括 LLaDA、Dream、Mercury 等,参数规模已达数十亿级别,在性能上可与同规模自回归模型竞争。

dLLM 是本文的研究对象,理解其掩码-去噪-重掩码的迭代生成机制是理解 dVoting 方法的基础。

测试时计算扩展(Test-Time Scaling)

测试时计算扩展是指在推理阶段通过增加计算量来提升模型性能的技术路线。与训练时扩展(如增大模型参数、增加训练数据)相对,测试时扩展通过多次采样、投票、自我一致性检验等方式,在不修改模型权重的前提下提升输出质量。在自回归 LLM 中已有广泛研究(如 Best-of-N、Self-Consistency、CoT prompting),但在 dLLM 中仍处于早期探索阶段。

本文的核心目标就是提升 dLLM 测试时扩展的效率,因此这一概念是理解论文动机和技术定位的关键。

重掩码机制(Remasking Mechanism)

dLLM 在推理过程中可以将已经解码的token重新变为 [MASK],然后在后续的去噪步骤中重新生成这些位置的token。这是 dLLM 区别于自回归模型的关键特性——自回归模型一旦生成token就不可逆,而 dLLM 可以在任意位置进行「后悔」式的修正。这一机制使得 dLLM 天然适合迭代精炼策略。

dVoting 的核心设计正是利用了重掩码机制来只重新生成不确定的token,从而大幅降低计算冗余。

多数投票(Majority Voting)

多数投票是测试时扩展的经典策略:对同一个问题生成多个独立采样的答案,然后选择出现次数最多的答案作为最终输出。这种方法通过聚合多个样本来消除随机性,但代价是计算量与采样数量成正比——生成 N 个样本需要 N 倍的推理成本。在 dLLM 中,标准多数投票通常使用 5 个样本,每个样本都需要完整的去噪过程。

dVoting 的直接目标就是替代低效的标准多数投票,通过复用一致token来显著降低推理步数。

熵阈值并行解码(Entropy-Threshold Parallel Decoding)

在 dLLM 的每一步去噪中,模型为每个被掩码位置输出一个token概率分布。熵阈值解码策略的思路是:只在分布熵低于阈值 α 的位置提交token(即对该预测有信心),而熵高于阈值的位置保持掩码状态继续迭代。这使得模型能自适应地分配计算资源——简单的token快速解码,困难的token留到后续步骤处理。

dVoting 采用此策略作为基础解码方案,阈值 α=0.3 是其关键超参数之一。

NUPR@k(Non-Unique Position Rate at k)

这是本文提出的量化token级冗余程度的新指标。给定对同一问题的 K 个等长采样序列,NUPR@k 计算在所有token位置中,至少有 k 个样本共享相同token的位置比例。例如,NUPR@2 衡量的是「至少有2个样本在此位置输出相同token」的位置占比。实验表明 NUPR@2 在 GSM8K 上约为 50-60%,说明大量token在多次采样中保持一致,存在显著的冗余可利用。

该指标为 dVoting 的核心观察提供了量化证据,证明了只重新生成不一致token的合理性。

研究动机

扩散大语言模型(dLLM)虽然能并行生成任意位置的token,为测试时计算扩展提供了天然优势,但现有的测试时扩展方法效率极低。以标准多数投票为例,在 LLaDA-8B-Instruct 上使用 5 个样本对 GSM8K 进行投票推理时,每个样本需要 128-256 步去噪,5 个样本合计需要 320-640 步推理,计算量是单次推理的 5 倍。HEX 方法虽然性能更强,但需要 25 个样本,在 128 生成长度下需要 1600 步推理,是单次推理的 12.5 倍。已有的 HEX(通过变化 block size 激活隐式半自回归专家)和 RFG(通过额外微调模型在 logit 层面引导生成)虽然能提升推理性能,但要么计算开销巨大,要么需要额外的训练或微调模型,限制了实际部署的可行性。

本文的目标是本文的具体目标是设计一种免训练、计算高效的投票策略,在保持甚至提升推理性能的同时,大幅减少 dLLM 测试时扩展所需的推理步数。作者希望实现一个在性能-效率帕累托前沿上优于现有所有测试时扩展方法的方案,使 dLLM 的测试时扩展在资源受限场景下(如设备端推理、大规模推理服务)变得实际可行。

与已有工作不同的是,本文的独特切入角度来自一个关键的经验观察:在对同一问题的多次采样中,大量token位置保持完全一致,而性能差异仅由少数不一致的token决定。作者提出 NUPR@k 量化了这一现象——在 GSM8K 上 NUPR@2 约为 60%(128生成长度),说明超过一半的token位置在至少2个样本中完全相同。更进一步,作者发现简单问题的投票一致性集中在 4/5 或 5/5(84.58%),而困难问题集中在 1/5 或 2/5(66.07%)。这一观察自然地与 dLLM 的重掩码机制相契合:既然大部分token已经一致,为什么还要浪费计算去重新生成它们?dVoting 正是利用这一冗余,只对不确定的token进行重掩码和重新生成,从而将计算聚焦在真正需要精炼的位置。

核心方法

dVoting 的整体思路可以概括为「采样-分析-精炼-投票」四步循环。直觉上,标准投票浪费了大量计算在已经确定的token上,而 dLLM 的重掩码机制天然支持「只修改不确定位置」。因此,dVoting 首先生成初始样本,然后分析所有已有样本在每个token位置上的一致性,将高度一致的token固定下来(不再重新生成),只对不一致的token进行重掩码和重新采样。这个过程迭代进行,直到候选答案收敛(即多次采样得到相同答案),最后对所有候选答案进行多数投票得到最终结果。整体流程如论文 Algorithm 1 所述,实现简单,仅需标准 PyTorch 库即可完成。

dVoting 的核心创新在于将「token 级一致性分析」与「dLLM 重掩码机制」相结合,实现选择性精炼。与已有方法的本质区别在于:(1)HEX 需要 25 个完整样本来激活不同的半自回归专家,每个样本都是独立的完整推理过程,而 dVoting 通过重掩码复用之前的可靠token,样本之间存在信息共享;(2)RFG 需要额外微调一个指导模型在 logit 层面引导生成,引入了训练成本和模型依赖,而 dVoting 完全免训练;(3)标准多数投票对每个样本独立生成,没有利用样本间的一致性信息来减少冗余计算。dVoting 的独特之处在于它不仅聚合最终答案,还在生成过程中利用中间结果的一致性来指导下一步的生成策略,实现了「边生成边学习」的效果。

方法步骤详情

dVoting 的完整算法流程如下:(1)输入 prompt p、dLLM 模型、最大采样次数 n(默认设为5)和生成长度 L。初始化存储所有生成序列的集合。(2)对于第 i 次采样(i 从 1 到 n),初始化一个由 prompt token 和掩码生成位置组成的序列 x,以及一个布尔数组 m 表示每个位置是否需要重掩码。(3)如果已有之前的样本,则对每个生成位置 t 计算该位置在所有已有样本中的token一致性分数。如果一致性分数满足阈值(即大多数样本在此位置输出相同token),则固定该token;否则进行掩码。(4)评估全局token级一致性:如果所有位置的一致性分数都表明无需进一步重掩码,则固定所有token。(5)如果所有位置均已固定,说明所有token已收敛,提前终止采样。(6)否则,对仍被掩码的位置执行基于熵阈值的并行解码,采用半自回归策略(block size 根据生成长度设定:128对应8, 256对应16, 512对应32),熵阈值 α=0.3。(7)将完成的序列添加到样本集合。(8)循环结束后,对所有候选答案执行多数投票得到最终预测。

技术新颖性

dVoting 的技术新颖性体现在以下几个方面:首先,它是第一个专门为 dLLM 设计的高效投票策略,填补了 dLLM 测试时扩展效率优化的空白。其次,论文首次系统性地量化了 dLLM 多次采样中的token级冗余现象,提出了 NUPR@k 指标进行度量——NUPR@2 在 GSM8K/MATH500/ARC-C 上分别为 0.6077/0.4894/0.4612(128生成长度),证明了近半数token位置可安全固定。第三,将 token 级一致性分析与 dLLM 的重掩码能力自然结合,形成了一种「自适应计算分配」策略——简单问题快速收敛(如 GSM8K 中的一些问题仅需 2 次采样),困难问题则分配更多计算。第四,提出了 Benefits per Cost (BPC) 统一指标来量化测试时扩展的性能-效率权衡,为后续研究提供了标准化的评估框架。第五,dVoting 证明了免训练的测试时扩展可以达到与 RL 方法(如 d1、IGPO)相当的效果,为资源受限场景提供了实用替代方案。

DVOTING 方法概览
Figure 1: DVOTING 方法概览
案例可视化
Figure 5: 案例可视化

实验结果

dVoting 在多个基准测试和两个 dLLM 模型上实现了全面的性能提升,同时推理步数大幅减少。在 LLaDA-8B-Instruct 上,dVoting(128生成长度,n=5)在 GSM8K 上达到 78.24%(原始模型 70.58%,多数投票 76.72%),在 MATH500 上达到 34.80%(原始 31.40%,多数投票 33.00%),在 ARC-C 上达到 80.97%(原始 66.13%,多数投票 77.65%),在 MMLU 上达到 62.87%(原始 57.13%,多数投票 62.27%)。与多数投票相比,dVoting 仅需 170.4 步(GSM8K/128)而非 320 步,实现了 1.1-4.4 倍的加速。与 HEX 相比,dVoting 在 GSM8K/128 上以 170.4 步(HEX 需要 1600 步)达到 78.24%(HEX 为 80.14%),以 5.5-22.1 倍的加速换取了微小的性能差距,性价比极高。在 Dream-7B-Instruct 上,dVoting 同样表现优异:GSM8K/128 达到 75.44%(原始 68.92%),MATH500/128 达到 42.20%(原始 33.00%),ARC-C/128 达到 86.09%(原始 66.63%),MMLU/128 达到 69.80%(原始 64.83%),加速比为 1.0-2.7 倍超过多数投票、5.0-13.4 倍超过 HEX。在 RL 增强模型 LLaDA-1.5 上,dVoting 同样带来显著提升(GSM8K/128 从 72.48% 提升至 79.15%,ARC-C/128 从 68.52% 提升至 82.63%),证明了方法的泛化性。消融实验表明:增大采样上限 n 持续提升性能直至饱和;block size 在 4-64 范围内 dVoting 均优于基线;熵阈值 α 在 0.1-0.7 范围内性能稳健,仅在 α=0.9 时出现明显下降。

NUPR@k 指标结果
Table 1: NUPR@k 指标结果
LLaDA-8B-Instruct 数学推理基准结果
Table 2: LLaDA-8B-Instruct 数学推理基准结果
LLaDA-8B-Instruct 科学和通用推理基准结果
Table 3: LLaDA-8B-Instruct 科学和通用推理基准结果
Dream-7B-Instruct 结果
Table 4: Dream-7B-Instruct 结果
LLaDA-1.5(RL 增强模型)结果
Table 5: LLaDA-1.5(RL 增强模型)结果
采样上限 n 消融实验
Table 6: 采样上限 n 消融实验
Block Size 消融实验
Table 7: Block Size 消融实验
熵阈值 α 消融实验
Table 8: 熵阈值 α 消融实验
性能-效率帕累托前沿对比
Figure 4: 性能-效率帕累托前沿对比
查看结构化数据
任务指标本文基线提升
GSM8K 数学推理(LLaDA-8B-Instruct, 128生成长度) Pass@1 准确率 78.24%(170.4步) 原始 70.58%, 多数投票 76.72% (320步), HEX 80.14% (1600步) 比原始 +7.66%, 比多数投票 +1.52% 且步数减半, 比 HEX 步数减少 9.4 倍
MATH500 数学推理(LLaDA-8B-Instruct, 256生成长度) Pass@1 准确率 40.20%(473.7步) 原始 35.00%, 多数投票 36.80% (640步), HEX 43.60% (3200步) 比原始 +5.20%, 比多数投票 +3.40%, 比 HEX 步数减少 6.8 倍
ARC-C 科学推理(LLaDA-8B-Instruct, 256生成长度) Pass@1 准确率 83.36%(415.6步) 原始 74.66%, 多数投票 81.31% (640步), HEX 83.87% (3200步) 比原始 +8.70%, 比多数投票 +2.05%, 比 HEX 步数减少 7.7 倍
MMLU 通用推理(LLaDA-8B-Instruct, 256生成长度) Pass@1 准确率 62.87%(391.4步) 原始 58.04%, 多数投票 63.11% (640步), HEX 64.75% (3200步) 比原始 +4.83%, 步数效率优于多数投票(391.4 vs 640步)
GSM8K 数学推理(Dream-7B-Instruct, 256生成长度) Pass@1 准确率 86.96%(290.4步) 原始 81.80%, 多数投票 84.53% (640步), HEX 87.04% (3200步) 比原始 +5.16%, 比多数投票 +2.43%, 步数仅为 HEX 的 1/11
ARC-C 科学推理(LLaDA-1.5, 128生成长度) Pass@1 准确率 82.63%(267.7步) 原始 68.52%, 多数投票 79.69% (320步), HEX 86.69% (1600步) 比原始 +14.11%, 比 HEX 步数减少 6.0 倍

局限与改进

论文存在以下局限性:首先,dVoting 的性能提升在简单问题上更为显著(如 GSM8K),而在更复杂的推理任务(如 GPQA)上提升幅度有限(GPQA 上仅提升 3.57%-4.73%),这可能是因为困难问题中token不确定性过高,一致性分析难以有效识别可固定的token。其次,dVoting 依赖于多次采样的答案一致性来判断收敛,这在答案格式不统一的开放性任务中可能失效——如果模型以不同方式表达同一答案,投票机制会将其视为不同答案。第三,虽然 dVoting 相比标准多数投票大幅减少了推理步数,但每次迭代仍需要完整的前向传播,在绝对计算时间上仍有优化空间。第四,消融实验显示当采样上限 n 增大到 13 或 17 时,性能提升趋于饱和(如 GSM8K/128 从 n=9 的 79.68% 到 n=17 的 80.89%),说明方法存在性能天花板。第五,作者仅在 LLaDA 和 Dream 两个模型系列上进行了验证,未在闭源 dLLM(如 Gemini-Diffusion、Mercury)上测试,泛化性有待进一步确认。此外,论文主要聚焦于选择题和数学推理任务,在代码生成、长文本生成等场景下的适用性未被探索。

独立分析的弱点

dVoting 存在以下可改进的弱点:(1)token 一致性分析采用简单的多数一致策略,未考虑token的语义等价性。例如「18」和「eighteen」或「boxed{18}」在语义上等价但会被视为不同token,这在数学推理中尤为突出。改进方向是引入语义层面的一致性判断,如基于答案解析后的比较而非原始token比较。(2)熵阈值 α 和采样上限 n 是固定的全局超参数,未根据问题难度自适应调整。对于简单问题可能过采样(浪费计算),对于困难问题可能欠采样(性能不足)。可以设计自适应停止策略,如基于投票熵的动态终止条件。(3)当前方法在每轮迭代中对所有不一致位置统一重掩码,未区分「略有分歧」和「完全随机」的token。可以设计更细粒度的不确定性度量,如基于 token 概率分布的熵或 JS 散度,来区分不同类型的不确定性。(4)dVoting 未利用问题的结构信息——例如数学推理中的计算步骤间存在依赖关系,当前一步出错时后续步骤也会受影响。可以引入链式依赖分析,优先精炼关键步骤的token。

未来方向

作者和基于本文成果可延伸的未来研究方向包括:(1)将 dVoting 扩展到多模态 dLLM(如 LLaDA-V、MMaDA),在视觉问答和图文推理等场景中探索并行测试时扩展。(2)将 dVoting 应用于代码生成任务,利用代码的结构化特性(语法树、类型约束)来改进一致性分析。(3)设计自适应的采样分配策略,根据问题难度动态调整采样次数和计算预算,实现更精细的计算资源分配。(4)探索 dVoting 与 RL 方法的结合——dVoting 作为免训练的推理时优化,可以与训练时的 RL 增强(如 d1、IGPO)互补,在 RL 模型上进一步提升性能(论文已在 LLaDA-1.5 上验证了这一方向的可行性)。(5)将 token 级一致性分析的方法论推广到其他需要测试时扩展的生成任务,如文本到图像、文本到音频等扩散模型。(6)研究 dVoting 与推测性解码(Speculative Decoding)的结合,利用小模型快速生成草稿再用大模型验证,进一步降低计算成本。(7)在资源受限场景(如设备端推理、大规模推理服务)中部署 dVoting,验证其实用价值。

复现评估

论文的复现条件良好。作者已在 GitHub 上开源了完整代码(https://github.com/fscdc/dVoting),使用标准 PyTorch 库实现,无需额外的特殊依赖。论文基于公开可用的 LLaDA-8B-Instruct、LLaDA-1.5 和 Dream-7B-Instruct 模型,这些模型权重均可从 HuggingFace 下载。评估使用的数据集(GSM8K、MATH500、ARC-C、MMLU、GPQA)均为标准公开基准。推理参数明确:温度 0.6、熵阈值 α=0.3、采样上限 n=5、block size 与生成长度对应(128对应8, 256对应16, 512对应32)。计算需求方面,dVoting 在 128 生成长度下约需 170-270 步推理(以 LLaDA-8B 为例),相比多数投票的 320 步节省约 50% 的计算,相比 HEX 的 1600 步节省约 85%。对于资源受限的团队,建议先在 128 生成长度上验证,再逐步扩展到 256 和 512。总体而言,复现难度较低,代码清晰、参数明确、数据公开。