VeRPO: Verifiable Dense Reward Policy Optimization for Code Generation
作者: Longwen Wang, Xuan'er Wu, Xiaohui Hu, Yirui Liu, Yuankai Fan, Kaidong Yu, Qizhen Weng, Wei Xi, Xuelong Li
分类: cs.LG, cs.AI
发布日期: 2026-01-07
💡 一句话要点
VeRPO:一种用于代码生成的基于可验证稠密奖励的策略优化方法
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture)
关键词: 代码生成 强化学习 奖励设计 稠密奖励 策略优化
📋 核心要点
- 现有代码生成强化学习方法依赖稀疏的通过/失败奖励,限制了性能提升,而基于奖励模型的方法则存在奖励不一致和计算成本高昂的问题。
- VeRPO通过动态估计单元测试难度权重,并结合全局执行结果,构建完全基于可验证执行反馈的鲁棒且稠密的奖励信号。
- 实验结果表明,VeRPO在多个基准测试中始终优于现有方法,显著提升了代码生成性能,且计算开销极低。
📝 摘要(中文)
在代码生成的强化学习(RL)中,有效的奖励设计是一个核心挑战。主流的通过执行单元测试来强制执行功能正确性的通过/失败结果奖励,其稀疏性限制了潜在的性能提升。虽然最近的工作探索了外部奖励模型(RM)来生成更丰富、连续的奖励,但学习到的RM存在奖励不一致和过高的计算成本。本文介绍了一种新的代码生成RL框架 extbf{VeRPO}( extbf{V}erifiable D extbf{e}nse extbf{R}eward extbf{P}olicy extbf{O}ptimization,可验证稠密奖励策略优化),它综合了 extit{完全基于可验证执行反馈的鲁棒且稠密的奖励}。VeRPO的核心思想是从加权的部分成功构建稠密奖励:通过在训练期间基于执行统计动态估计每个单元测试的难度权重,从通过的单元测试的权重之和中得出稠密奖励。为了巩固部分成功与端到端功能正确性之间的一致性,VeRPO进一步将稠密信号与全局执行结果相结合,建立了一种完全依赖于可验证执行反馈的鲁棒且稠密的奖励范式。在各种基准和设置下进行的大量实验表明,VeRPO始终优于结果驱动和基于RM的基线,在pass@1中实现了高达+8.83%的增益,且时间成本可忽略不计(<0.02%),GPU内存开销为零。
🔬 方法详解
问题定义:论文旨在解决代码生成任务中,强化学习奖励信号稀疏或不准确的问题。现有的方法要么依赖于最终的通过/失败结果,导致奖励信号过于稀疏,难以有效指导模型学习;要么使用外部奖励模型,但这些模型可能与真实目标不一致,并且计算成本很高。
核心思路:VeRPO的核心思路是利用单元测试的中间结果,构建稠密的奖励信号。具体来说,它不是简单地根据最终结果给出奖励,而是根据通过的单元测试的数量和难度,给予不同的奖励。通过动态调整每个单元测试的权重,可以更准确地反映代码的质量,从而更有效地指导模型学习。
技术框架:VeRPO的整体框架包括以下几个主要步骤:1) 代码生成:使用策略网络生成代码。2) 单元测试执行:执行生成的代码,并记录每个单元测试的通过情况。3) 难度估计:根据执行统计信息,动态估计每个单元测试的难度权重。4) 奖励计算:根据通过的单元测试的权重之和,计算稠密的奖励信号。5) 策略优化:使用强化学习算法,根据奖励信号优化策略网络。
关键创新:VeRPO的关键创新在于它提出了一种基于可验证执行反馈的稠密奖励构建方法。与传统的稀疏奖励方法相比,VeRPO能够提供更丰富、更准确的奖励信号,从而更有效地指导模型学习。与基于奖励模型的方法相比,VeRPO不需要额外的奖励模型,避免了奖励不一致的问题,并且计算成本更低。
关键设计:VeRPO的关键设计包括:1) 动态难度估计:使用指数移动平均等方法,根据执行统计信息动态估计每个单元测试的难度权重。2) 奖励函数:使用加权和的方式,将通过的单元测试的权重之和作为奖励信号。3) 策略优化算法:可以使用任何标准的强化学习算法,如PPO等。
📊 实验亮点
VeRPO在多个代码生成基准测试中取得了显著的性能提升。例如,在pass@1指标上,VeRPO相比于基线方法提升了高达8.83%。此外,VeRPO的计算开销极低,时间成本小于0.02%,并且不需要额外的GPU内存。
🎯 应用场景
VeRPO具有广泛的应用前景,可以应用于各种代码生成任务,例如代码补全、代码修复、代码翻译等。该方法可以提高代码生成模型的性能和效率,降低开发成本,并促进软件开发的自动化。此外,VeRPO的思想也可以推广到其他需要奖励设计的强化学习任务中。
📄 摘要(原文)
Effective reward design is a central challenge in Reinforcement Learning (RL) for code generation. Mainstream pass/fail outcome rewards enforce functional correctness via executing unit tests, but the resulting sparsity limits potential performance gains. While recent work has explored external Reward Models (RM) to generate richer, continuous rewards, the learned RMs suffer from reward misalignment and prohibitive computational cost. In this paper, we introduce \textbf{VeRPO} (\textbf{V}erifiable D\textbf{e}nse \textbf{R}eward \textbf{P}olicy \textbf{O}ptimization), a novel RL framework for code generation that synthesizes \textit{robust and dense rewards fully grounded in verifiable execution feedback}. The core idea of VeRPO is constructing dense rewards from weighted partial success: by dynamically estimating the difficulty weight of each unit test based on the execution statistics during training, a dense reward is derived from the sum of weights of the passed unit tests. To solidify the consistency between partial success and end-to-end functional correctness, VeRPO further integrates the dense signal with global execution outcomes, establishing a robust and dense reward paradigm relying solely on verifiable execution feedback. Extensive experiments across diverse benchmarks and settings demonstrate that VeRPO consistently outperforms outcome-driven and RM-based baselines, achieving up to +8.83\% gain in pass@1 with negligible time cost (< 0.02\%) and zero GPU memory overhead.