让代码模型不只写对,还要写快:Meta 论文探索面向代码优化的强化学习
导语
过去一年,代码模型的强化学习大多围绕“写对”展开:模型生成程序,系统用隐藏测试用例验证,能通过就给奖励。但如果目标从“正确”升级为“正确且更快”,问题会立刻复杂很多。Meta 相关作者在论文《Reinforcement Learning for Code Optimization》中指出,把执行时间直接塞进奖励函数并不够,甚至可能让训练失效:计时噪声、奖励稀疏以及 GRPO 的不稳定性,会淹没真正的优化信号。
核心要点
- 代码优化不是简单加一个速度奖励。 论文强调,运行时间本身并不是一个稳定、干净的训练信号。小规模测试、沙箱波动或测量误差,都可能让模型学到错误方向,导致生成代码只是略快,甚至正确率下降。
- 研究构建了 DMC-Optim。 该基准包含更适合优化评估的大规模测试,并配合校准过的执行沙箱,目的是让“快”这件事更可测、更可信。
- 奖励需要同时处理正确性与速度。 作者在强化学习环境中组合正确性和执行速度,并使用离线模拟器预测更有希望的配置,减少盲目试验带来的训练成本和不稳定。
- GRPO 也要适配计时场景。 面对更稀疏、更嘈杂的 timed execution 奖励,论文对 GRPO 和评估流程做了调整,使模型更容易从速度差异中学习。
实验结果与意义
在 DMC-Optim 上,最强的优化感知配置把 Qwen 2.5 7B 的严格 top-50% pass@1 从 18.0% 提升到 31.3%,把 CWM 32B 从 30.7% 提升到 50.4%。在更严格的 top-30% 分位上,CWM 32B 的相对提升达到 125%,同时没有牺牲纯正确性得分。即便计时沙箱被降级,鲁棒优化 RL 相比标准 RLVR 仍能取得 100% 到 200% 的提升,具体取决于评估标准。
这项工作的价值在于,它把代码智能的评估从“能不能跑”推进到“能不能高效跑”。对开发者工具而言,这意味着未来的代码模型可能不只是补全函数或修 bug,还能主动改写复杂度、选择更合适的数据结构,并在接近真实运行环境的反馈中持续改进。当然,论文也显示,速度优化的训练门槛远高于正确性训练:没有可靠测试、稳定计时和谨慎奖励设计,强化学习很容易被噪声带偏。
评论
正在确认登录状态……
正在加载评论……