论文
StepCodeReasoner:通过强化学习将代码推理与逐步执行跟踪结合起来
StepCodeReasoner: Aligning Code Reasoning with Stepwise Execution Traces via Reinforcement Learning
摘要
现有的代码推理方法主要监督最终的代码输出,忽略中间状态,常常导致通过不一致的推理获得正确答案的奖励作弊。我们提出了 StepCodeReasoner,一个引入显式中间执行状态监督的框架。通过自动将基于打印的结构化执行跟踪锚插入代码中,模型被训练为预测每个步骤的运行时状态,将代码推理转换为可验证的逐步执行建模问题。基于这种执行感知方法,我们引入了 Bi-Level GRPO,这是一种用于两个级别结构化贡献分配的强化学习算法:轨迹间,比较替代执行路径,以及轨迹内,根据其对下游正确性的影响来奖励中间准确性。大量实验证明 StepCodeReasoner 在代码推理方面实现了 SOTA 性能。特别是,我们的 7B 模型在 CRUXEval 上达到 91.1\%,在 LiveCodeBench 上达到 86.5\%,优于 CodeReasoner-7B 基线(86.0\% 和 77.7\%)和 GPT-4o(85.6\% 和 75.1\%)。此外,在执行跟踪基准 REval 上,我们的模型得分为 82.9\%,优于基线 CodeReasoner-7B (72.3\%)、其 14B 对应项 (81.1\%) 和 GPT-4o (77.3\%)。此外,我们的方法还提高了代码生成性能,证明显式执行建模增强了代码推理和代码生成。