算法调优对比用户信号的算法演化

DiffuCoder: Understanding and Improving Masked Diffusion Models fo...

DiffuCoder 是一个针对代码生成任务提出的基于掩码扩散的大型语言模型,通过引入局部/全局AR-ness度量、配套采样降低方差的Coupled-GRPO算法,解决了扩散模型训练与解码机制不透明及缺乏原生强化学习方法的问题,并在多项基准测试中显著提升性能。一、核心创新点非顺序生成机制与传统自回归模型(AR)严格从左到右生成不同,DiffuCoder支持多位置并行修改,模拟程序员实际编程中来回调整代码的行为。例如:子图(a) 显示模型可灵活选择掩码恢复位置,突破顺序限制。子图(b) 对比基础版本与指令调优版本在基准测试中的表现差异。子图(c) 展示不同训练策略带来的性能提升。Coupled-GRPO强化学习算法问题:传统强化学习在扩散模型中因蒙特卡洛采样导致方差大,估算不稳定。解决方案:引入“配套采样”(coupled-sampling)机制,设计互补掩码对(Mt, Mt^),满足条件:每个词在配对采样周期中被精确评估一次,且通过“对偶变量”技术数学证明可降低方差。奖励函数:结合代码功能正确性(运行结果)与格式规范性(代码风格)。AR-ness行为分析工具局部AR-ness@k:衡量模型生成小段文本(如k个词)时的顺序连贯性,值越高越接近传统AR模型。全局AR-ness@k:衡量模型填充大段文本时的顺序偏好,值越高越倾向于从头到尾生成。发现:扩散模型解码灵活性显著高于AR模型。从AR模型改造的扩散模型(如DiffuCoder)保留部分顺序生成倾向。“熵池”现象:模型对输入提示后邻近词信心最高,优先生成这些词。二、方案架构与训练流程DiffuCoder为70亿参数模型,训练分四阶段:适应性预训练使用4000亿词混合语料库(编程代码、普通文本、数学内容),650亿词时提前停止以避免低质量数据影响。中期训练利用OpenCoder的160亿词“退火”代码数据优化模型,达到与同规模先进模型相当的性能。指令调优采集43.6万条OpenCoder监督微调样本,采用无分类器指导方法提升指令理解能力。Coupled-GRPO强化学习从Acecoder-87K中筛选2.1万道高难度题目及测试用例,通过配套采样策略降低方差,提升代码生成准确度。三、实验结果与启示性能提升在EvalPlus基准上提升4.4%,仅用2.1万高质量样本,显著优于普通指令微调。温度参数新作用扩散模型中温度不仅影响选词,还决定生成顺序,为强化学习提供更丰富的探索空间。AR-ness演化低质量数据过度训练导致模型死板(AR-ness升高),高质量数据训练则降低AR-ness并提升性能。并行生成能力增强解码步数减半时性能下降更小,表明模型内在并行生成能力提升。训练稳定性与收敛性Coupled-GRPO的奖励信号稳定,学习曲线平稳向上,优于传统方法。四、对代码生成的启示扩散模型天然适合代码生成:其迭代修改机制与编程过程高度契合。温度参数双重作用:调高温度可鼓励生成多样且正确的代码方案,为强化学习提供优质训练素材。解放扩散模型天性:通过Coupled-GRPO等设计,无需强迫模型模仿传统行为,可充分发挥其非顺序、并行优势。五、总结与展望扩散模型具备与先进自回归模型竞争的潜力,同时提供更强的并行生成能力和灵活生成模式。未来可沿此方向开发更高效的语言模型,助力复杂推理与规划任务。源链接:https://arxiv.org/abs/2506.20639


nginx