代码优化的强化学习
摘要
本文针对使用强化学习进行代码优化时面临的挑战,提出了三个阶段:通过DMC-Optim改进测试方法;通过正确性与速度组合以及离线模拟器将执行时间转化为奖励;以及调整GRPO以适应含噪时序奖励。该方法在代码优化基准测试中取得了显著提升。
查看缓存全文
缓存时间: 2026/07/29 19:54
论文页面 - 面向代码优化的强化学习
来源:https://huggingface.co/papers/2607.25970
摘要
面向代码正确性的强化学习如今已得到确立:让模型生成程序,在隐藏测试用例上运行它,并对通过测试的解决方案给予奖励。将其扩展到代码优化似乎很直接:只需在执行时间上增加奖励即可。但在实践中,一旦执行时间驱动奖励,测量噪声、奖励稀疏性或 GRPO 不稳定等小问题就会淹没信号,导致强化学习失效:生成的解决方案几乎没有加速,并且更多方案可能失败。我们通过三个阶段使执行时间变得可学习:(1) 代码如何被测试,通过构建包含大型优化测试集和经过校准的沙盒的 DMC-Optim;(2) 速度如何转化为奖励,通过在强化学习环境中组合正确性与速度,并使用离线模拟器预测最有前景的配置;(3) 模型如何从该奖励中学习,通过调整 GRPO 和评估以适应更稀疏、更嘈杂的定时执行环境。在 DMC-Optim 上,最强的优化感知配置将严格 top-50% pass@1 从 Qwen2.5 7B 的 18.0% 提升至 31.3%,从 CWM 32B 的 30.7% 提升至 50.4%。这些增益在更严格的分位数(如 top-30%)进一步提升,CWM 32B 的相对改进达到 125%,同时保持纯正确性分数。当定时沙盒退化时,稳健的优化强化学习相对于标准 RLVR 可达到 100% 至 200% 的改进,具体取决于评估标准。在 LCB 上,CWM 32B 在基于中位数样本的速度比较中最高可赢过标准 RLVR 83% 的对局。相对于每个问题中人类最快正确提交,它在复杂度类改进方面达到了大约人类速率的一半(14% 对比 28%)。
查看 arXiv 页面 (https://arxiv.org/abs/2607.25970) 查看 PDF (https://arxiv.org/pdf/2607.25970) 添加到收藏 (https://huggingface.co/login?next=%2Fpapers%2F2607.25970)
引用此论文的模型 0
没有模型链接到此论文
在模型 README.md 中引用 arxiv.org/abs/2607.25970 以从此页面链接。
引用此论文的数据集 0
没有数据集链接到此论文
在数据集 README.md 中引用 arxiv.org/abs/2607.25970 以从此页面链接。
引用此论文的 Spaces 0
没有 Space 链接到此论文
在 Space README.md 中引用 arxiv.org/abs/2607.25970 以从此页面链接。
包含此论文的收藏集 0
没有收藏集包含此论文
将此论文添加到收藏集 (https://huggingface.co/new-collection) 以从此页面链接。
相似文章
@rohanpaul_ai:Meta 新论文。代码优化看起来像是强化学习的简单扩展:奖励正确的程序,然后……
Meta 的一篇论文分析了标准 RL 方法为何在代码优化上失败,并通过校准后的计时、问题相对排名以及 GRPO 改动重建了整个反馈流水线,将 Qwen 2.5 7B 的速度阈值从 18.0% 提升至 31.3%。
RLPF:面向代码生成的基于性能反馈的强化学习
RLPF 是一种强化学习方法,它在正确性之外还训练代码模型优化运行时间,使用基于执行进度和相对效率的分阶段奖励。在 PerfCodeBench 上使用 RLPF 微调 Qwen3-32B,将正确且可运行的解决方案从 11.1% 提高到 54.6%,并将相对效率从 8.1% 提高到 38.6%。
StarOR: 协同树搜索与测试时强化学习的优化建模
StarOR 提出了一种框架,将蒙特卡洛树搜索与测试时强化学习协同用于自动优化建模,在多个基准测试中取得了最先进的性能。
Learning from Failures: Correction-Oriented Policy Optimization with Verifiable Rewards
提出了面向纠正的策略优化(CIPO),这是对RLVR的一种扩展,它将失败轨迹转化为面向纠正的监督信号,从而在数学和代码基准测试中提升LLM的推理与纠错能力。
@rohanpaul_ai: 大语言模型可以从没有已知答案的问题中学习更好的编码行为。许多实际问题并没有现成的标准答案...
论文提出了一种名为 RiVER 的强化学习方法,该方法通过对程序在隐藏测试用例上进行排序并提供分级反馈,提升了大语言模型在没有已知标准答案的问题上的编码表现。