知识卡片:强化学习用于代码优化
一句话结论
通过三阶段改造(优化测试集与校准沙箱、组合正确性与速度的奖励设计、适配稀疏噪声环境的GRPO训练),强化学习可成功从代码正确性扩展至代码优化,在DMC-Optim上使top‑50% pass@1提升约13个百分点,且保持纯正确性分数不变。
事件概述或研究问题
将强化学习从代码正确性(生成通过隐藏测试用例的程序)扩展到代码优化(同时追求更快的执行速度)看似简单——只需在奖励中加入执行时间。但实际中,测量噪声、奖励稀疏以及GRPO不稳定会淹没信号,导致生成的解速度提升极小且失败率升高。本文系统性地解决了这三个障碍,使执行时间变得可学习。
方法/产品要点
- 测试平台:构建DMC‑Optim,包含大规模优化测试用例和经过校准的沙箱(sandbox),确保执行时间测量可靠。
- 奖励设计:在RL环境中组合正确性奖励和速度奖励,并利用离线模拟器预测最有可能带来提速的配置,以缓解奖励稀疏。
- 训练适配:针对更稀疏、噪声更大的时序执行场景,调整GRPO(一种强化学习算法)及评估流程,提升训练稳定性与效率。
主要结果或产业意义
- 在DMC‑Optim上,优化感知配置将严格top‑50% pass@1从18.0%提升至31.3%(Qwen 2.5 7B),从30.7%提升至50.4%(CWM 32B)。
- 在更严格的top‑30%百分位上,CWM 32B获得125%的相对改进,同时保持纯正确性分数。
- 当时序沙箱被降级时,鲁棒优化RL比标准RLVR(标准强化学习验证奖励)提升100%~200%(取决于评估标准)。
- 在LCB基准上,CWM 32B与标准RLVR相比,在速度中位数比较中胜率高达83%。
- 相对每位问题的最快正确人类提交,该模型达到了人类复杂度类改进率的一半(14% vs. 28%)。
为什么重要
此前RL主要关注代码正确性,而实际应用中代码效率同样关键。本文首次系统展示了如何在实践中克服噪声与稀疏性问题,将RL有效用于代码优化,为自动化生成更快且正确的程序提供了可行路径,且实验结果显著优于简单添加速度奖励的基线。
局限与不确定性
- 文中未深入讨论不同沙箱噪声水平对泛化能力的影响,实际部署中沙箱质量可能波动(仅提供了降级测试)。
- 方法的计算开销(训练、离线模拟器推理)未见详细分析。
- 模型在更复杂的真实世界代码优化任务(如编译器优化、多目标权衡)上的表现待核实。
- 目前仅验证了7B和32B规模模型,更大参数量模型的行为尚待探索。
可用于图书/PPT/简报的角度
- 案例研究:展示从“代码正确性RL”到“代码优化RL”的演进,突出“看似简单实则困难”的工程教训。
- 方法框架:三阶段流程(测试→奖励→训练)可类比其他需要平衡多目标的RL场景(如机器人控制中的能耗与精度)。
- 数据可视化:展示DMC‑Optim上不同百分位的pass@1提升曲线、速度对比胜率、与人类提交的复杂度改进率对比。
- 格言引申:设计奖励函数时,信号质量(噪声、稀疏度)往往比奖励形式更重要。
原始材料
- 英文标题:Reinforcement Learning for Code Optimization
- 英文关键词:Reinforcement Learning, Code Optimization, DMC‑Optim, GRPO, Execution Time, Reward Design
- 来源:arXiv 2607.25970v1 (cs.LG, cs.AI)
- URL:https://arxiv.org/abs/2607.25970v1
- 作者:Pierre Chambon, Kunhao Zheng, Juliette Decugis, Benoit Sagot, Gabriel Synnaeve
- 发布时间:2026‑07‑28