EVIDENCE REPORT · CODE GENERATION

让代码 Agent
从执行反馈中学习

从四步计划 SFT,到 K=16 Monte Carlo rollout、过程奖励模型与 veRL GRPO。 这是一份基于幸存文件重建的工程报告:展示真实完成的工作,也清楚标出证据无法覆盖的部分。

01 · PIPELINE

四个阶段,一条可追溯主链

每个阶段都保留输入、输出或工程证据;历史计划与实际执行严格分开。

  1. 01

    LoRA SFT

    将题目转成“四步计划 + Python 代码”的监督样本,建立结构化推理起点。

    • 948 条训练样本
    • LoRA rank 16
    • 3 epochs · seed 42
  2. 02

    Monte Carlo

    固定计划前缀,对每个 reasoning step 执行 K=16 次续写,用测试通过率构造过程监督。

    • 947 tasks × 4 steps
    • 训练集缺 HumanEval/36
    • validation MC 完整
  3. 03

    PRM

    以 step 成功率训练 value head,后期不让 PRM 独立主导,而是通过 ORM gate 限制其影响。

    • 四步加权聚合
    • value head 已保留
    • LoRA 权重不完整
  4. 04

    veRL GRPO

    将可执行代码测试作为 ORM,叠加 gated PRM 与安全门控,完成至少一次有效训练。

    • 训练记录到 step 150
    • step 20 有完整评测
    • 最终 adapter 无法恢复

02 · REWARD

ORM 主导,PRM 受控参与

最终实现不是历史配置里的简单线性加权,而是一套带质量门控与安全门控的组合。

PROCESS AGGREGATION

PRM = 0.1·s₁ + 0.2·s₂ + 0.3·s₃ + 0.4·s₄

GATED REWARD

prm_gate = 0.4 + 0.6·ORM safety_gate = safety > 0 ? 1.0 : 0.25 R = 0.8·ORM + 0.2·PRM·prm_gate·safety_gate
80%

执行结果优先

真实测试通过率是主信号,直接约束代码正确性。

GATE

抑制奖励投机

ORM 较低时,PRM 贡献同步下降,避免漂亮过程掩盖错误答案。

SAFE

格式与安全折扣

安全检查失败时,过程奖励通路被降至四分之一。

03 · VERIFIED RESULTS

提升发生在哪里,证据就写到哪里

三份评测均为 32 个 HumanEval 与 500 个 MBPP;总体指标不支持夸大结论。

SFT baseline

54.14%总体 · 288 / 532
HumanEval 71.88%MBPP 53.00%

Unknown candidate

53.95%总体 · 287 / 532
HumanEval 78.13%MBPP 52.40%

可支持的结论

GRPO step 20 在 HumanEval 子集上由 71.88% 提升到 75.00%;完整 532 题总体通过率没有超过 SFT baseline。

不可支持的结论

未完成 A/B/C/D 多组、多 seed 正式消融;未知候选模型没有 checkpoint 身份,不能作为归因结果。

04 · ARTIFACTS

公开产物与缺失边界

MODEL

SFT LoRA adapter

Qwen2.5-Coder-7B · rank 16 · 约 154 MiB

打开仓库 ↗
DATASET

Process artifacts

splits、SFT、MC、GRPO Parquet、评测与 reward debug

打开仓库 ↗
MISSING

不可恢复权重

最终 GRPO adapter、合并模型,以及 PRM 的 adapter_model.safetensors。

已保留路径与日志证据