文章核心观点 - 华中科技大学与字节跳动联合推出的Stable-DiffCoder,证明了扩散训练范式本身是一种强大的数据增强和表征学习手段,能够有效提升代码大模型的能力上限,并在多项基准测试中超越了同规模的自回归模型[1] - 该研究打破了“扩散模型只能做并行加速”的刻板印象,提出了一种新的模型演进路径:将自回归模型作为高效的知识压缩器,再利用扩散训练作为“强化剂”,进一步提升模型性能[31] 模型性能表现 - 在Base模型评测中,Stable-DiffCoder-8B-Base在HumanEval上得分为79.3,在HumanEval+上得分为73.8,在MBPP上得分为83.6,在MBPP+上得分为67.7,超越了包括Qwen2.5-Coder-7B、DeepSeek-Coder-6.7B-Base在内的多个8B规模开源模型[23] - 在代码推理任务CRUXEval上,Stable-DiffCoder-8B-Base在Input-CoT和Output-CoT上分别取得53.8和60.0的分数,表现优于多数同规模模型[24] - 在Instruct模型评测中,Stable-DiffCoder-8B-Instruct在HumanEval上得分为86.6,在HumanEval+上得分为82.3,在MBPP上得分为85.7,在MBPP+上得分为72.8,超越了其自回归原型Seed-Coder-8B-Instruct及其他8B规模的DLLM模型[26] - 在多语言代码生成任务(涵盖Python、Java、C++等13种语言)上,Stable-DiffCoder-8B-Instruct平均得分为75.3,与Seed-Coder-8B-Instruct持平,并显著超越其他同规模模型[27] - 在更具挑战性的代码基准测试中,Stable-DiffCoder-8B-Instruct在MHPP上达到42.4 pass@1,在BigCodeBench Full和Hard上分别达到54.8和31.8,在LiveCodeBench上达到23.5 pass@1,表现优异[27] - 在代码编辑任务CanItEdit上,Stable-DiffCoder-8B-Instruct取得了60.0 pass@1的分数,显著优于其他同规模模型,展现了惊艳的代码编辑能力[29] 技术创新与方法 - 研究揭示了纯双向扩散过程在高效学习样本知识上的缺陷:当掩码比例较大时,模型难以映射到清晰的规则,且会引入噪声和错误知识[4][5][11] - 通过实验证明,采用“自回归预训练 -> 扩散持续预训练”的课程学习方案(AR->BiDLLM)效果最佳,优于纯双向扩散训练,说明自回归结构更适合作为知识压缩的先验[11][13][14][15] - 最终训练流程设计为:先用自回归方式压缩知识,再用其检查点通过持续预训练转换为小块的块扩散模型,以探索扩散过程的数据增强能力[16] - 团队设计了一种稳定的持续预训练预热策略,通过逐步增加掩码比例上限和移除损失函数中的加权系数,解决了训练不稳定的问题[18][20] - 针对块扩散,团队设计了块级截断的噪声调度,通过设置噪声采样下界为1/B(B为块大小),确保每个块都能产生有效的损失信号,避免了小块时信号丢失的问题[21][22] 行业影响与意义 - 该研究证明了扩散训练范式在代码理解和生成质量上可以超越传统的自回归模型,为大型语言模型的演进提示了一条新路径[1][31] - 模型在预训练数据较少的稀疏代码语言(如C、PHP)上,相比自回归基线获得了大幅增强,验证了扩散训练过程起到了数据增强的效果[24] - Stable-DiffCoder-8B-Instruct在多项综合评测中表现优越,在闭源测试集MHPP上达到了Qwen2.5-Coder-32B-Instruct的水平,在BigCodeBench上仅次于DeepSeek-Coder-V2-Instruct (21B/236B)[25][27]
Stable-DiffCoder超越自回归模型!扩散模型在代码生成取得新突破
机器之心·2026-02-06 07:45