代码优化的强化学习

Hugging Face Daily Papers 论文

摘要

本文针对使用强化学习进行代码优化时面临的挑战,提出了三个阶段:通过DMC-Optim改进测试方法;通过正确性与速度组合以及离线模拟器将执行时间转化为奖励;以及调整GRPO以适应含噪时序奖励。该方法在代码优化基准测试中取得了显著提升。

用于代码正确性的强化学习现已成熟:让模型生成程序,在隐藏测试用例上运行,并对通过的解决方案给予奖励。将其扩展到代码优化似乎很简单:只需在奖励中加入执行时间。但在实践中,一旦时间驱动奖励,测量噪声、奖励稀疏性或GRPO不稳定性等问题就会淹没信号,导致强化学习失败:生成的解决方案几乎不更快,且更多方案可能失败。我们通过三个阶段使执行时间变得可学习:(1) 代码测试方式,通过构建包含大型优化测试和校准沙箱的DMC-Optim;(2) 速度如何转化为奖励,通过在强化学习环境中组合正确性与速度,并使用离线模拟器预测最 promising 的配置;(3) 模型如何从该奖励中学习,通过调整GRPO和评估以适应更稀疏、含噪的定时执行环境。在DMC-Optim上,最强的优化感知配置将严格的top-50% pass@1从Qwen 2.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%)。
查看原文
查看缓存全文

缓存时间: 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) 以从此页面链接。

相似文章

RLPF:面向代码生成的基于性能反馈的强化学习

arXiv cs.LG

RLPF 是一种强化学习方法,它在正确性之外还训练代码模型优化运行时间,使用基于执行进度和相对效率的分阶段奖励。在 PerfCodeBench 上使用 RLPF 微调 Qwen3-32B,将正确且可运行的解决方案从 11.1% 提高到 54.6%,并将相对效率从 8.1% 提高到 38.6%。