论文

用于代码优化的强化学习

Reinforcement Learning for Code Optimization

模型训练强化学习

摘要

现在已经建立了代码正确性的强化学习:让模型生成一个程序,针对隐藏的测试用例运行它,并奖励通过的解决方案。将其扩展到代码优化似乎很简单:只需将执行时间添加到奖励中即可。但在实践中,一旦时序驱动了奖励,测量噪声、奖励稀疏性或 GRPO 不稳定等小问题就会淹没信号并导致 RL 失败:生成的解决方案几乎没有更快,而且更多的解决方案可能会失败。我们通过三个阶段使执行时间变得可学习:(1)如何测试代码,通过构建具有大型优化测试和校准沙箱的 DMC-Optim; (2)如何将速度转化为奖励,通过在 RL 环境中组合正确性和速度,并使用离线模拟器来预测最有希望的配置; (3) 模型如何通过使 GRPO 和评估适应稀疏、噪声较大的定时执行设置来从奖励中学习。在 DMC-Optim 上,最强大的优化感知配置将 Qwen 2.5 7B 上的严格前 50% pass@1 从 18.0% 提高到 31.3%,将 CWM 32B 从 30.7% 提高到 50.4%。这些收益在更严格的百分位数(例如前 30%)中进一步增加,CWM 32B 的相对改进为 125%,同时保留纯粹正确性分数。当时序沙箱降级时,鲁棒优化 RL 比标准 RLVR 提高 100% 到 200%,具体取决于评估标准。在 LCB 上,与标准 RLVR 相比,CWM 32B 在中值样本速度比较中获胜高达 83%。相对于每个问题最快正确的人类提交速度,它达到了人类复杂性级别改进率的一半左右(14% vs. 28%)。