跳到主要内容
返回时间线

首个面向代码生成的扩散大模型系统性实证研究:7个扩散模型在MBPP+上以79.1%超过最佳自回归基线的73.3%,但开源扩散模型整体仍未稳定追平强自回归模型

核心概要

该研究对7个代表性扩散大语言模型(含闭源Mercury-Coder-Small)与4个开源自回归基线在HumanEval/HumanEval+、MBPP/MBPP+、HumanEval-X、LiveCodeBench、RepoQA、RepoBench-C及SWE-Bench Verified上做了代码生成中心的实证评测,发现扩散模型能力有前景但不均衡:闭源扩散模型在多数基准上最强(如MBPP+ 79.1%对最佳自回归基线73.3%),代码专用开源扩散模型优于通用扩散模型,开源扩散模型整体尚未稳定追平最强自回归基线,但在若干函数级基准上已具竞争力,且所选扩散与自回归模型组解决的问题集合部分不重叠(3

Source-provided article image: Exploring the Potential of Diffusion Large Language Models in Code Generation
Figure 1a

model generates tokens strictly from left to right, as illustrated in Figure 1a. However, there is an open question of whether the mainstream autoregressive generation paradigm is always the best choice for code generation. In practice, current autoregressive LLMs (AR LLMs) reveal two important limitations that may restrict their use in some code generation scenarios. ❶Next-Token Prediction →Sequential-Decoding Cost. Most AR LLMs generate code strictly one token at a time, with each forward pass typically producing only a single token. Because each forward pass typically advances generation by one token, this sequential dependency can accumulate substantial computation and latency for long outputs. Such sequential latency can be particularly costly for repository-level generation [4, 31, 52] and can reduce responsiveness in interactive coding assistants [29, 46, 54]. ❷Left-to-Right Generation Order → Limited In-Sequence Revision. AR LLMs decode in a strictly left-to-right manner, with each new token conditioned on the preceding context. This process can be less flexible than the non-sequential refinement common in programming

· 第 2 页

深度剖析

扩散大模型在代码生成上呈现有前景但不均衡的能力,闭源扩散系统在多数评测基准上领先,代码专用开源扩散模型优于通用扩散模型。 此前缺乏以代码生成为中心、跨多个扩散模型家族与自回归基线的系统评测;该研究首次联合考察跨模型有效性、推理设置敏感性、效率权衡与长上下文行为。 在HumanEval/HumanEval+、MBPP/MBPP+、HumanEval-X、LiveCodeBench上以pass@1评测,随机设置重复五次报告均值与标准差;例如Mercury-Coder-Small在HumanEval 85.4%、MBPP 93.7%、MBPP+ 79.1%,Dream-Coder-v0-Instruct-7B较Dream-v0-Instruct-7B在HumanEval提升19.5个百分点。

所选扩散与自回归模型组解决的问题集合部分不重叠,提示两类范式在评测设置下具有互补的问题覆盖。 以往比较多聚焦总体准确率高低,该研究进一步用Venn图刻画模型组覆盖差异,并给出两个成功/失败模式不同的示例。 在HumanEval、MBPP与LiveCodeBench 2410–2504合并问题上,367个问题被两组共同解决,149个仅被所选自回归模型解决,105个仅被所选扩散模型解决;示例为个案说明,作者明确不据此断言范式因果。

在共同1k–8k输入范围内,三个被评测扩散模型在RepoQA与RepoBench-C上的退化比一个同量级自回归基线更平缓。 将长上下文代码理解纳入扩散模型评测,并同时用检索(RepoQA)与跨文件补全(RepoBench-C)两个角度考察。 Llama-2-7B-chat-hf在RepoQA从3k的46.2%降至4k的9.0%、8k的1.2%;RepoBench-C从4k到8k的EM由22.1%降至3.4%、ES由62.8%降至19.2%,而三个扩散模型在该区间保持相近分数;作者说明各模型名义上下文窗口不同,结论限于被评测模型。

扩散步数、重掩码策略、生成长度、块长度与温度对有效性和效率的影响呈配置依赖,置信度重掩码一致优于随机重掩码,步数与长度增加则降低效率。 系统扫描了扩散特有推理因素并给出可操作配置指引,同时用McNemar检验支撑重掩码结论。 置信度重掩码在HumanEval上使LLaDA-1.5与Dream-Coder-v0-Instruct-7B分别提升33.0与35.4个百分点,McNemar检验p<0.01;DiffuCoder-7B-cpGRPO步数从512降到256时FLOPs/token约减半(1.17×10^13到5.88×10^12),HumanEval平均解码时间从39.5s/题降到19.9s/题。

启示与展望

该研究面向使用扩散大模型进行代码生成的研究者与工程实践者,适用于函数级合成、多语言生成、近期竞赛题与仓库级长上下文理解等被评测设置;其配置指引(生成长度、扩散步数、重掩码策略、块长度、温度)针对被评测模型与基准,可作为调参起点而非通用常数。对希望评估或部署扩散代码模型、或设计混合自回归-扩散系统的团队,该研究提供了可对照的基线与效率-有效性权衡数据。

被评测模型几乎都小于10B参数,闭源Mercury-Coder-Small的规模与训练流程未公开,因此其领先无法归因于单一因素;长上下文比较未做上下文窗口匹配,结论限于被评测模型;SWE-Bench Verified上六个开源扩散模型在零样本设置下解决率均为0%,作者将其视为边界情形而非范式结论;设置扫描未覆盖所有模型-基准组合,趋势可能对具体配置敏感;HumanEval与MBPP等静态基准存在数据泄漏可能,需与LiveCodeBench等较新基准结合解读。

来源