DiffuCoder:理解与改进用于代码生成的掩码扩散模型

发表
Shansan GongShansan Gong 提交
作者: Shansan GongShansan Gong, Ruixiang Zhang, Huangjie Zheng, Jiatao Gu, Navdeep Jaitly, Lingpeng Kong, Yizhe Zhang

摘要

扩散大语言模型(dLLMs)是自回归(AR)模型的有力替代品,因为它们的去噪模型对整个序列进行操作。dLLMs的全局规划和迭代细化特性对于代码生成特别有用。然而,目前针对编码领域的dLLMs训练和推理机制仍未得到充分探索。为了揭示dLLMs的解码行为并释放其在编码方面的潜力,我们系统地研究了它们的去噪过程和强化学习(RL)方法。我们训练了一个7B的dLLM,DiffuCoder,使用了130B代码token。以此模型作为测试平台,我们分析了它的解码行为,揭示了其与AR模型的不同之处:(1) dLLMs可以决定其生成应有多强的因果性,而无需依赖半AR解码;(2) 提高采样温度不仅使token选择多样化,也使其生成顺序多样化。这种多样性为RL展开创造了一个丰富的搜索空间。对于RL训练,为了减少token对数似然估计的方差并保持训练效率,我们提出了coupled-GRPO,这是一种新颖的采样方案,它为训练中使用的补全构建了互补的掩码噪声。在我们的实验中,coupled-GRPO显著提高了DiffuCoder在代码生成基准上的性能(EvalPlus上提升4.4%),并减少了解码时对AR因果性的依赖。我们的工作提供了对dLLM生成机制的更深入理解,并提供了一个有效的、扩散原生的RL训练框架。https://github.com/apple/ml-diffucoder
查看 arXiv 页面查看 PDF

评论

Shansan GongShansan Gong
论文作者
论文提交者

借助 DiffuCoder,我们探索它们如何解码,为什么温度🔥重要,以及如何通过结合了扩散的耦合-GRPO来改进它们!

🛜 X: https://x.com/sansa19739319/status/1940239513412120633

📑 Paper: https://arxiv.org/abs/2506.20639

🤗 Model: https://huggingface.co/apple/DiffuCoder-7B-cpGRPO

💻 Code: https://github.com/apple/ml-diffucoder