Gagar × SWE-MILE × CRR:代码智能体强化学习的细粒度信用分配三重奏 精读
训练一个会修仓库级 bug 的智能体,最顺手的奖励信号只有一句话:「测试过了没有」。这个终态二值信号足够客观、可验证、免人工,撑起了整个 RLVR(可验证奖励强化学习)范式;但它也足够粗糙——一条五十轮交互的轨迹里,正确锁定问题文件的决策、画蛇添足的越界改动、最后误删的一行,全部被同一个「1」或「0」打包记分。**信用分配(credit assignment)问的就是:这一分该怎么拆到每一步头上。**今天精读的三篇论文对这个问题给出了三条机制迥异的路线:Gagar 用「组内质量对比」拆分轨迹级信用,SWE-MILE 用「运行时势函数」把信用落到单步动作,CRR 用「真实执行反事实」直接测量单步动作的价值差。三篇都出自在 2026 年 9 月下旬挂上 arXiv,恰好构成一幅「代码 Agent RL 信用分配」的路线图。
一、题目区:三篇论文与团队
| 论文 | 链接 | 机构与合作模式 |
|---|---|---|
| Gagar:Groupwise Agentic Grading and Advantage Redistribution for Code Agent RL | arXiv:2609.32577 | 企业主导 + 多高校挂靠:小米 LLM Core(第一单位,主导)+ 中国人民大学 + 北京大学 + 香港大学;训练对象 MiMo-V2.6-Flash/Pro 为小米工业级 MoE,实验含工业级混合任务 RL |
| SWE-MILE:Asynchronous Potential-Induced Milestone Credit Assignment for Long-Horizon Software Engineering Agents | arXiv:2609.32631 | 科研院所学术主导 + 企业工程支持:中科院自动化所 MAIS(一作与通讯)+ 国科大人工智能学院 + 腾讯(工程与数据侧,二三四作) |
| CRR:Counterfactual Rollout Replay: Forkable Environments as Free Process Rewards for Software Engineering Agents | arXiv:2609.33875 | 纯高校合作,无企业:北京邮电大学网络与交换技术全国重点实验室(主导,通讯王洪波)+ 卢森堡大学(一人参与);已被 NeurIPS 2026 接收 |
三篇论文的合作模式梯度耐人寻味(此为阅读者观察,非论文结论):企业深度介入的两篇分别押注「学习式评分」(Gagar,可复用企业已有的 SFT 与评审基础设施)与「运行时工程信号」(SWE-MILE,依托腾讯的沙箱与测试管线工程能力),而纯学术团队的 CRR 选择了理论刻画最干净、机制最简洁的反事实路线,并以无偏性定理与方差分解立身。合作模式与路线选择之间的这种相关性,或许反映了不同资源禀赋下「哪个信号最便宜」的答案不同。
二、背景:什么是信用分配,结果奖励卡在哪里
先把「是什么」讲清楚。强化学习的目标函数是「最大化期望累积回报」,但优化要落到每个动作上:策略梯度里的每一个决策,需要知道「自己做对了多少」。**把终端回报的功劳与责任拆分到中间决策,就是信用分配问题。**它是 RL 的经典难题——Sutton 与 Barto 教科书里的蒙特卡洛回报、TD 误差、资格迹(eligibility trace),本质上都是信用分配的不同实现。
LLM 后训练把这个老问题变成了新瓶颈。GRPO 及其变体(RLOO、DAPO)的流行配方是:同一个 prompt 采一组(group)轨迹,跑测试拿二值奖励,组内减均值除标准差算出每条轨迹的优势(advantage),整条轨迹内的所有 token 共享这个轨迹级优势。这套「组相对」设计免去了 critic 模型、训练稳定,在数学推理这类短程任务上大获成功。但把它搬进代码智能体场景,两个结构性的坑就暴露了:
- **粒度坑:轨迹内无区分。**一条轨迹几十轮工具调用、上万 token,无论中间决策好坏,全部共享同一个轨迹级优势。Gagar 引用的典型错误模式与 CRR 的错误分析都指向同一件事:模型可能前三十轮精确定位了问题文件,最后一轮改坏了补丁——「正确 localize」与「后段改坏」在轨迹级优势里是同一个分数。CRR 的统计很直白:GRPO 训练后的失败中,partial-fix(部分修对但没修全)占 39.7%、regression(改出新问题)占 19.4%——这两类失败恰恰是「部分决策正确」的失败,最需要步级信号来纠偏,而结果奖励对此完全无感。
- **偏好坑:通过即最优。**GRPO 的二值奖励只认「测试过了没有」。同一个问题,一份精准的五行补丁和一份附带越界改动、绕过边界条件的投机补丁,只要都过了测试,就拿到完全相同的优势。Gagar 的观察是:策略于是学会「任何能过测试的写法」——包括冗余、副作用、破坏代码库一致性——而且这并非小病,小米的基线训练在 step 20 后从 58.5% 一路崩到 50.2%,被迫终止,策略退化与信号粗糙直接挂钩。
一句话概括背景:RLVR 用可验证的终态信号换掉了不可验证的人工奖励,代价是把信用分配问题从「奖励设计」原样推给了「优势构造」。三篇论文分别从这个接口切进去。
三、定位与关联工作:过程奖励谱系与三条路线
「给中间步骤打分」的研究谱系里,最大的一支是过程奖励模型(PRM):训练一个模型对每步推理打分(OpenAI 的 Let’s Verify Step by Step 开端),在数学推理上验证了过程监督优于结果监督。搬到 Agent 场景遇到两个困难:一是过程标签昂贵且难以定义(什么算「一步好决策」?),二是学习式 PRM 会被策略当奖励来 hack。
针对 Agent 长程场景,近一年出现了几条代表性路线(以下 GiGPO 有公开论文可核验;SWE-TRACE、GraphGPO、G-RA、RLEF、MURPHY、TSR 等以本文两篇论文内的引用与对比描述为准,未逐一检索原文,如实说明):
- 状态分组派(GiGPO,arXiv:2505.10978,NeurIPS 2025,NTU+Skywork):利用同一任务多条轨迹中「重复出现的环境状态」,把从同一锚点状态出发的动作追认成一个步级小组,做微观相对优势估计——把 GRPO 的组思想从轨迹级下沉到步级。**它对状态空间有个隐含要求:状态要能重复出现且可精确匹配。**SWE-MILE 论文正是从这里切入反驳:SWE 场景状态空间高维且部分可观测,状态匹配极度稀疏,GiGPO 类方法拿不到足够的步级组。GraphGPO 是同思路的图扩展。
- rubric PRM 派(SWE-TRACE):为 SWE 轨迹定义评审 rubric 的过程奖励模型,是 SWE-MILE 与 CRR 共同的最强过程基线(Verified 上 60.5 与 39.1)。仍属学习式评分,需构造训练数据。
- 评审智能体派(Agent-as-a-Judge、GRRM、PAPO):用 LLM/智能体评审轨迹质量。Gagar 的组内评审承袭此脉,但前人多做孤立评估或用评审直接给奖励,Gagar 的增量在「组内横向对比 + 保和重分配」的公式化(后详)。
- 运行时反馈派(RLEF、MURPHY、TSR):把中间工具执行结果(测试输出、编译错误)作为信号注入训练。CRR 论文复现的 RLEF 33.5、MURPHY 35.2、TSR+GRPO 38.0 都属此类。
把三篇论文放进这张谱系,路线分野一目了然:
| 路线 | 代表 | 信号来源 | 需要学习组件? | 需要额外执行? | 防奖励作弊机制 |
|---|---|---|---|---|---|
| 质量对比 | Gagar | 评审智能体读代码+跑检查,组内横向排序 | 是(SFT 训练的 grader) | 否(在共享工作区检查已有产物) | 五维度 rubric + 盲评验证;保和约束防训练失衡 |
| 运行时势函数 | SWE-MILE | 势差:文件暴露变化 + 测试修复/回归变化 | 否 | 是(影子沙箱跑验证器) | PBRS 差分形式 + 历史最大值防重复刷分 |
| 反事实执行 | CRR | 真实续走反事实终局与原终局的回报差 | 否 | 是(fork 沙箱续走到终局) | 环境真值无学习偏差;确定性过滤保证对照可信 |
**三条路线分别把「步级信号」锚定在三个不同的本体上:评审者的质量判断、环境的运行时状态变化、环境的反事实终局。**这个选择决定了各自的一切工程细节与失效模式。
四、问题定义:终态稀疏奖励 → 步级信号
三篇论文可以用同一个抽象盖住。设任务 x、轨迹 τ = (s₁,a₁,…,s_T,a_T)、终态二值奖励 R(τ)∈{0,1}(测试通过与否),GRPO 组相对优势把整条轨迹的所有决策记同一个分 A(τ)。目标是构造每步信号 r_t 或步级优势 A_t,满足:
- 可区分:能对「同样通过测试的轨迹」或「同一轨迹内的不同决策」给出不同分数;
- 不引入偏差/作弊面:新信号不能被策略用「取悦信号本身」的方式 hack(刷评审、刷势能、选反事实友好的动作);
- 支付得起:额外计算/执行开销不吞掉增益(SWE 沙箱执行本来就很贵)。
三条路线对约束 2 的回答是本文最精彩的部分,先各用一句话剧透:Gagar 说「注入质量偏好时必须保持正负信用平衡,否则训练崩溃」;SWE-MILE 说「信号必须取差分形式,且取历史最大值,刷分无利可图」;CRR 说「让环境自己执行对照,没有学习组件就没有学习偏差」。
五、解法
5.1 Gagar:组内质量评分与保和重分配
Gagar(名字即 Groupwise Agentic Grading and Advantage Redistribution)建立在 GRPO/DAPO 之上,动的是优势构造这一环。流程四步:
- 组构造:保留 GRPO 的 prompt 组,经 dynamic sampling 保留「混合结果组」——组内既有通过也有失败轨迹(这是 GRPO 信号最富的组型)。
- 组内 agentic 评审:一个 SFT 训练的评审智能体在共享工作区里联合检查整组轨迹——补丁、仓库、测试输出都在案,它能读代码、能跑针对性的检查。按五个维度给每条轨迹评分:方案合理性、精确性、最小改动、副作用、代码库一致性,最后把组内轨迹排出质量层级 T1/T2/T3,映射为折扣因子 f_i。关键设计是「横向对比」而非「逐条孤立评估」:评审者对比组内多条解法时,才能看见孤立评估看不到的质量差异——哪条更简洁、哪条引入了不必要的复杂度、哪条在走捷径。
- 保和重分配:不能直接把 A_i 乘上 f_i 了事(这是论文最核心的教训),而是 A★_i = λ·f_i·A_i,其中 λ 选得恰好恢复组内正优势的总和,同时满足:失败轨迹的优势原封不动、组内零和性质保持。
- 训练照常进行,其余组件不动。
一个必须强调的机制细节:为什么「只降权、不重分配」不行?直觉上给低质量轨迹降权似乎无害,但代数上它只砍正信用、不动负信用,组内优势总和从 0 变成负数——负优势相对膨胀,策略更新方向被系统性拉向「远离一切」,后果见第七节的因果链(PG loss 差 14 倍、熵爆炸、轨迹膨胀、性能崩溃)。Gagar 的全部公式化就是为「在注入质量偏好的同时保住信用守恒」服务的。
5.2 SWE-MILE:势函数塑形——导航势与验证势
SWE-MILE 的名字里藏着方法(Milestone),理论根基是 Ng et al. 1999 的势基奖励塑形(potential-based reward shaping,PBRS):定义状态势函数 Φ(s),把塑形奖励写成相邻状态的势差 F = γΦ(s′) − Φ(s),则最优策略集合不变——塑形只加速学习、不改答案。SWE-MILE 的问题是:**SWE 场景里 Φ 该定义成什么?**论文的答案是两个可验证的「里程碑」:
- 导航势 Φ_navi:度量任务相关文件在 agent 上下文中的暴露程度——文件路径出现计 0.2 分、文件内容被读取计 1.0 分,聚合时取历史最大值。取 max 而非求和是防 hack 的关键:重复读同一个文件刷不到新分,势能只奖励「新暴露的关键文件」。
- 验证势 Φ_veri:度量修复进度——F2P(fail-to-pass)测试的修复比例 p_t,减去回归惩罚 β_any·1[b_t>0] + β_frac·b_t(β_any=0.1,β_frac=0.5),即「任何回归扣 0.1,回归比例再乘 0.5 扣」。全仓生成任务(后述)改用非归一化的通过数差,并做不对称裁剪(c⁻=6 / c⁺=3,罚重于赏)。
步级过程奖励 = 相邻步势差 + 折扣后向信用(λ=0.2,γ=0.9,把势差往后传几步)+ 格式奖励,作为修正项加到 RLOO 的结果优势上,且刻意不做跨轨迹的步级归一化(避免引入长度偏置)。
势函数要能在线评估,就要在每一步知道「现在修复了多少测试」——这需要每步跑测试,而 SWE 沙箱执行极贵。SWE-MILE 的工程答案是异步影子沙箱(shadow probing):主交互照常进行,影子沙箱按序重放所有改库动作、并行运行验证器,探测本身 7.31s 的耗时被主交互掩盖,9600 条 rollout 的平均尾延迟只有 2.07 秒。配套的 Codeflow 脚手架把 agent 动作约束为五个结构化工具(search / read_file / edit_file / execute_bash / submit),配合静态 shell 分析把势差精确归因到单步动作。
5.3 CRR:环境执行反事实作为免费过程奖励
CRR 的出发点是一个物理事实:SWE 环境是容器,容器可以快照、恢复、fork。这个性质此前只被用来做确定性验证,CRR 把它变成奖励机器:
- 选决策点:在 on-policy 轨迹上按「熵 × (1+λ·工具类型权重)」选出至多 k=4 个决策点——熵高意味着策略在这里犹豫(动作选择的信息量大),工具类型权重偏向更可能影响结果的动作。事后验证这个选择器有效:选中步对金补丁文件的首次触碰率 41%,随机选只有 13%(3.2 倍)。
- 执行反事实:快照选中步的沙箱状态 s_t,从「排除已实现动作」的温度化提议(T_cf=0.7)中采一个替代动作,然后让当前策略从替代动作出发续走到终局,得到反事实轨迹 τ̃_t 与回报 R(τ̃_t)。
- 替换优势:原轨迹照常用于训练,只是选中步的优势替换为 R(τ) − R(τ̃_t)(原终局回报减反事实终局回报),其余步仍用 GRPO 组相对优势,插入裁剪代理目标。
- 确定性保障:反事实对照只有在环境确定时才有意义,论文用三次重跑一致性过滤(SWE-Gym 弃 6.8%、SWE-Rebench 弃 9.4%)、确定性包镜像、HTTP 重放层三重保障。
理论侧有两个命题撑腰:命题 1(无偏性)——固定决策点索引时,R(τ) − R(τ̃_t) 是「动作条件对比」(这个动作换成别的,值多少)的无偏估计;命题 2(方差分解)——给出该对照量相对 outcome 基线的条件方差分解,并经验性地发现前缀桶协方差恒正(0.044→0.128 随训练上升),满足方差缩减的充分条件,实测优势信噪比约为 GRPO 的 2 倍。
论文给了一个极具说服力的案例:反事实对照揭示「第 3 轮读测试文件」这个早期 localize 决策值 +1 优势,而「错误信息里写错字」得 −1 惩罚——前者是任何 outcome-only 方法都看不见的「正确但无直接回报」的决策,后者是终态奖励无法区分的「无害但低质」的决策。恰好分别命中粒度坑与偏好坑。
5.4 全景对比表
| 维度 | Gagar | SWE-MILE | CRR |
|---|---|---|---|
| 信号本体 | 评审者的组内质量排序 | 运行时势差(文件暴露+测试修复) | 反事实终局回报差 |
| 信号粒度 | 轨迹级(组内重排序) | 步级(势差归因到动作) | 步级(选中步 ≤4 个) |
| 学习组件 | SFT 训练的 agentic grader | 无(势函数是规则定义) | 无 |
| 额外执行 | 无(检查已有产物) | 影子沙箱重放+跑测试(尾延迟 2.07s) | fork 续走到终局(等墙钟对照已全额计入) |
| 改动的接口 | 优势重分配(GRPO 之上) | RLOO 优势加修正项 | 选中步优势替换(GRPO 之上) |
| 防作弊 | 保和约束+五维 rubric | 势差 telescoping+历史 max | 环境真值+确定性过滤 |
| 理论性质 | 信用守恒(保和代数) | PBRS 策略不变性(Ng 1999) | 无偏性+方差分解(命题 1/2) |
六、评估证据
6.1 Gagar:+12pt 与「崩掉才显真」的基线
设置:MiMo-V2.6-Flash(310B)code-only RL,DeepSWE v1.1 avg@3、SWE-bench Pro。
| 对比 | 结果 |
|---|---|
| vs 二元奖励 GRPO(同 step 28,DeepSWE) | 62.2% vs 50.2%(+12pt);基线 step 20 后从 58.5% 崩到 50.2% 被迫停止,Gagar 训练稳定,峰值 63.4%(step 44) |
| SWE-bench Pro | Gagar 62.5%(step 52)vs 基线平台期约 59% |
| 效率(同 step) | 平均轮数 132.3→111.6(−15.6%),token 191.9k→172.9k(−9.9%)——分数更高的同时轨迹更短 |
| 质量盲评(30 任务,Claude Opus 5 评审) | 质量分 4.03 vs 3.70,胜率 69.8%,T1(最优层级)占比 25.4%→34.3% |
| 消融:只降权不重分配 | PG loss 0.0304 vs 0.0021(约 14 倍),策略熵 0.905 vs 0.513,轨迹 114.1k vs 69.9k token,step 20 性能 56.5%→48.8% 崩溃,完整法 62.2% |
| 工业级混合任务 RL | Flash/Pro:DeepSWE 67.9/71.9,SWE-bench Pro 60.9/62.7;Pro(1.02T)DeepSWE 71.9% 超 Kimi K3(69.0%,2.8T 参数),SWE-bench Pro 62.7% 超 GPT-5.6 Sol(60.5%) |
证据链的亮点是那个「崩掉」的基线:基线的崩溃不是干扰,而是论文论点的直接证据——二值奖励下策略确实滑向退化,而 Gagar 稳住了;「只降权」消融的崩溃则把保和重分配从「锦上添花」钉死为「必要条件」。
6.2 SWE-MILE:全面超越五条过程基线,同时更省轮数
设置:Qwen3.5-9B,SWE-rebench V2 1952 任务训练,avg@4;全仓生成用 Qwen3.5-35B-A3B + DeNovoSWE 3675 任务。
| 基准 | SWE-MILE | 对照 |
|---|---|---|
| SWE-bench Verified | 63.8 | GRPO 58.2 / G-RA 57.9 / GiGPO 58.4 / GraphGPO 59.9 / SWE-TRACE 60.5 / Base 53.6 |
| SWE-bench Pro | 39.3 | 最强过程基线 GraphGPO 35.1(+2.7) |
| Doc2Repo | 54.7 | GraphGPO 52.4 / GRPO 51.3 / Base 48.4 |
| NL2Repo-Bench | 33.1 | SWE-TRACE 30.9(+2.2),其余 28.0–30.9 |
| 效率 | 响应长度 25825、轮数 81.8 | 全部基线中最低(Base 47426 token、GRPO 113.5 轮)——成功率更高的同时交互更少 |
| 消融(Verified) | 去全部里程碑信用 63.8→59.4(最大退化);去验证势 →60.7 > 去导航势 →62.0;去后向信用 →61.4;换 GRPO 优势 →62.7;仅 Bash →62.2 |
消融的层次很有信息量:验证势比导航势贡献更大(去掉分别掉 3.1 与 1.8),说明「测试修复进度」是更强的信号源;全消融也只回到 59.4(仍高于 GRPO 的 58.2,因为格式奖励与训练管线本身有贡献),各组件的贡献近乎可加。
6.3 CRR:+5.3pp、4 倍样本效率与「同 fork 数」机制对照
设置:Qwen3-14B + LoRA rank-128(SKYRL-AGENT + SWE-MiniSandbox,8×H100,三种子)。
| 对比 | 结果 |
|---|---|
| SWE-bench Verified | 41.7±0.6 vs GRPO 36.4±0.8(+5.3pp);SWE-bench Live 35.9 vs 31.1;held-out SWE-rebench 32.6 vs 27.9 |
| 等墙钟对照(40.125h 同节点,fork 开销全额计入) | 41.7% vs 延长训练的 GRPO 36.7%(+5.0pp)——增益不是靠多花算力 |
| 样本效率 | 6000 条 on-policy 轨迹追平 GRPO 24000 条的预算表现(4 倍轨迹缩减);pass@8 57.7 vs 53.8,all-8 全对率 23.9 vs 18.7(+5.2pp) |
| 基线横评(同底座同脚手架) | SWE-agent 22.6 / OpenHands 23.4 / SWE-Gym SFT 28.1 / SWE-Fixer 30.7 / RLEF 33.5 / MURPHY 35.2 / GRPO 36.4 / TSR+GRPO 38.0 / SWE-TRACE 39.1 / CRR 41.7 |
| 机制对照(等 48 H100-h,同 fork 数) | Search-Select-GRPO(用 fork 选更优分支训练)34.4 vs CRR 36.2(三配对种子全胜,+1.8pp)——同样的 fork 预算,用于「给已实现动作记分」优于「挑选更好分支」,证明增益来自更准的信用而非数据筛拣 |
| 组合可加 | CRR+TSR 43.6、CRR+SWE-TRACE 44.9、CRR+TSR+PRM 45.6% |
机制对照实验值得单独强调:它排除了「CRR 只是多花了执行算力」与「CRR 只是隐式做了 best-of-n 数据筛选」两个替代解释,把增益归因钉在信用分配本身。错误模式的变化同样印证机制:GRPO 的 partial-fix 39.7% 与 regression 19.4% 条件份额,在 CRR 下降至 24.2% 与 11.3%——正是步级信号最该治的两类病。
6.4 主结果汇总(注意:三篇模型与训练设置不同,不可横向比名次)
| 方法 | 模型/设置 | 基准 | 主结果 | 关键基线 | 增益 |
|---|---|---|---|---|---|
| Gagar | MiMo-V2.6-Flash 310B,code-only RL | DeepSWE v1.1(avg@3) | 62.2%(step 28) | 二值 GRPO 50.2% | +12pt |
| Gagar | 同上 | SWE-bench Pro | 62.5%(step 52) | 基线 ~59% | ~+3.5pt |
| SWE-MILE | Qwen3.5-9B | SWE-bench Verified(avg@4) | 63.8 | SWE-TRACE 60.5 / Base 53.6 | +3.3 / +10.2 |
| SWE-MILE | Qwen3.5-35B-A3B | Doc2Repo | 54.7 | GraphGPO 52.4 / Base 48.4 | +2.3 |
| CRR | Qwen3-14B+LoRA | SWE-bench Verified | 41.7±0.6 | GRPO 36.4±0.8 | +5.3pp |
七、优势根源:三条因果链与一个比较
7.1 Gagar:为什么质量对比必须「保和」
因果链:二值奖励下通过轨迹同优势 → 策略收敛到「任何能过测试的写法」(含冗余、越界、捷径)→ 组内横向对比+仓库级证据(能读代码、能跑检查)暴露孤立评估看不到的质量差异 → 质量折扣 f_i 向优势注入偏好。但只降权不重分配在代数上不可接受:Ã_i = f_i·A_i 使正优势缩小、负优势不动,ΣÃ = −D < 0,负信用相对膨胀 → 每次更新都在「惩罚一切」→ 策略熵爆炸(0.359→0.905)、轨迹膨胀(47.1k→114.1k token)、PG loss 崩到 1/14、性能从 56.5% 掉到 48.8%。保和重分配 A★_i = λ·f_i·A_i 恢复正信用总量、保持 f_i/f_j 比值与失败侧优势不变 → 质量偏好在「信用收支平衡」的约束下传导,性能、效率、稳定性同时改善。
推广判断:这不是 Gagar 的私货,而是组相对训练的通律——组内优势的零和性质是 GRPO 稳定性的隐含前提,任何往优势里注入偏好的操作都必须审计它对正负信用平衡的扰动。
7.2 SWE-MILE:势函数为什么防 hack(含外部交叉验证)
外部验证(WebSearch,Ng et al. 1999 及后续综述):PBRS 定理指出,塑形奖励取 F = γΦ(s′) − Φ(s) 的差分形式时,沿任何轨迹的塑形项逐项相消(telescoping),折扣塑形总和 = γ^TΦ(s_T) − Φ(s₀),只依赖端点、不依赖路径——因此没有策略能靠「绕路刷势能奖金」获利,最优策略集合不变(策略不变性定理,且该条件是充要的)。这正是 SWE-MILE 防御「刷势能」攻击的数学根基:重复读同一文件不产生新势差,绕路提高 Φ 不改变终局回报的排序。在此基础上,SWE-MILE 的「历史最大值」设计直接堵死了重复刷分(Φ 只增不减按 max 记),不对称裁剪(罚 6 赏 3)让「先制造回归再修复」无利可图。
诚实的辨析(阅读者分析):严格的 PBRS 要求 Φ 定义在环境状态上、塑形项加在奖励通道。SWE-MILE 的势函数定义在「agent 上下文暴露 + 测试通过状态」这类可观测运行时量上,且以修正项形式加在 RLOO 优势上、还叠了折扣后向信用——这偏离了纯 PBRS 形式,策略不变性不再严格成立,论文实际上是把 PBRS 当设计原则而非定理用。消融(去全部里程碑掉 4.4pt)与训练动力学(KL 与熵更稳定)是经验层面的背书。结论:防 hack 的核心保证来自差分+max 的组合,理论最优性是启发式借用——这在工程上完全站得住,但读论文时应清楚边界。
此外,GiGPO 的失败假设被 SWE-MILE 机制性地绕开:SWE 状态高维部分可观测 → 状态等价匹配极度稀疏 → 步级组构造失败;势函数不依赖状态匹配,直接消费可验证的运行时事件。
7.3 CRR:反事实对照为什么无偏
因果链:轨迹级优势把 50 轮决策打同一个分 → partial-fix/regression 型失败无法归因 → 容器可快照/恢复(forkable)使「执行反事实」成为物理可行 → 选中步获得环境真实执行出的回报差 R(τ) − R(τ̃_t) 作对照 → 命题 1 保证固定索引下这是动作条件对比的无偏估计(没有学习组件引入系统性偏差)→ 方差层面前缀桶协方差恒正满足命题 2 充分条件 → 优势 SNR 翻倍 → 同等算力下样本效率 4 倍。
两个边界条件要如实说明:其一,反事实动作是从温度化提议(T_cf=0.7)采的单个样本,估计无偏但每次对照方差不小,且每条轨迹只有 ≤4 步被覆盖,其余步仍是 GRPO——CRR 是「少数关键步的精确信用 + 多数步的粗糙信用」的混合体;其二,无偏性以环境确定性为前提,论文用三重工程保障(一致性过滤弃 6.8–9.4%、确定性镜像、HTTP 重放)换取对照可信,这是用工程成本换统计性质。Search-Select 机制对照进一步证明:同样的 fork 预算拿来做信用分配优于做分支选择——「知道为什么好」比「多试几条」更值钱。
7.4 三条路线的深层比较
把三条因果链并置,可以看到一个漂亮的对偶:
- Gagar 解决「偏好坑」(通过≠最优),靠引入外部质量判断,代价是引入学习组件——grader 本身可能被策略 hack(论文用五维 rubric 与盲评缓解,但这是学习式评分路线的固有暴露面);
- CRR 解决「粒度坑」(整条轨迹一个分),靠环境真值对照,几乎无偏差暴露面,代价是每条轨迹只覆盖 4 步、且要付 fork 执行的钱;
- SWE-MILE 同时啃两个坑(势差既给步级信号、验证势又带质量信息),靠规则定义的势函数避免学习组件,代价是势函数设计本身是领域知识的手工注入(文件暴露怎么计分、回归怎么罚,都拍自经验)。
**没有一个信号来源同时满足「免学习、全覆盖、零执行开销」——三者各占其二。**这也解释了为什么 CRR+TSR+PRM 组合能加到 45.6%:不同来源的信号近似正交,组合是拼图而非冗余。
八、必要知识反推
要做这三项研究,作者最少必须知道:
- Gagar 团队:GRPO/DAPO 的组相对优势代数(零和性质、dynamic sampling 的组型过滤);训练病理的诊断能力——能从熵曲线、PG loss、轨迹长度三件套读出「负信用膨胀」;评审智能体的 SFT 训练(Agent-as-a-Judge 谱系)与 rubric 设计;工业级 MoE 的 RL 基础设施(这是小米团队能在 310B/1.02T 模型上做实验的前提)。知识融合的关键节点:把「信用守恒」这个训练稳定性约束与「质量排序」这个偏好注入目标写成同一个公式 A★_i = λf_iA_i。
- SWE-MILE 团队:PBRS 理论(Ng 1999 的 telescoping 与策略不变性);SWE-bench 系的 F2P/P2P 测试语义与沙箱容器工程;异步系统设计(影子沙箱把 7.31s 的探测掩盖到 2.07s 尾延迟);RLOO 优势构造。关键融合点:意识到「SWE 状态匹配不可行」之后,把 GiGPO 的状态分组问题转译为「势函数定义」问题——同一理论工具(组相对/势差)换一个本体。
- CRR 团队:GRPO 与策略梯度理论;反事实估计的统计性质(无偏性、方差分解、对照实验设计);容器快照/copy-on-write fork 的系统工程;基于熵的不确定性度量。关键融合点:把「沙箱可 fork」这个基础设施性质识别为奖励信号源——大多数人看容器只看到隔离与复现,CRR 看到了反事实机器。
三篇共用的底层知识:终态二值奖励下的 GRPO 组结构、SWE 沙箱的执行模型、以及「信用分配是优势构造问题」这个共同的问题转译。
九、论文中可以提取的通用性灵感
- **注入偏好必须审计「信用收支」。**Gagar 的教训是:往组相对优势里加任何偏好(质量、长度、风格),都会打破正负信用的隐含平衡;只减不加的系统会教模型「什么都别做」。推广:任何基于相对估计的训练信号修改,先问一句——改完之后,正信用总量守恒吗?证据:只降权消融的 PG loss 掉 14 倍、熵 0.359→0.905、性能 56.5→48.8%。
- **免费信号藏在环境的物理性质里。**CRR 的全部前提是「容器可以 fork」,SWE-MILE 的前提是「沙箱可以影子重放」。推广:设计奖励前先盘点环境的不变量与可操作性(可快照?可重放?可并行?),环境的物理性质决定了哪类监督是免费的。证据:影子沙箱 2.07s 尾延迟、CRR 等墙钟对照仍 +5.0pp。
- **差分形式是防刷分的数学保险。**势函数取相邻差分、沿轨迹 telescoping 后总分只依赖端点——绕路无利可图;SWE-MILE 再叠历史 max 直接封死重复刷分。推广:任何「进度类」奖励(覆盖率、完成度、评分)都应优先考虑差分/增量形式而非存量形式。证据:Ng 1999 策略不变性定理(充要条件),SWE-MILE 的 max 设计。
- **横向对比暴露纵向不可见的质量。**Gagar 让评审智能体在共享工作区里对比整组解法,才看见孤立评估看不到的捷径与冗余;CRR 的反事实本质也是「同一状态下的横向对照」。推广:评估(模型、方案、人员)尽量构造受控的对照环境,「比较」产生的信息多于「逐个打分」。证据:Gagar 盲评胜率 69.8%、T1 占比 +8.9pt;CRR 的 Search-Select 对照。
- **信用分配信号先问来源,再谈组合。**质量判断、运行时信号、反事实执行是三个正交来源,各有固有代价(学习偏差/领域知识注入/执行开销);CRR+TSR+PRM 加到 45.6% 说明正交信号可叠加。推广:搭建 Agent 训练管线时,先列「可用信号源清单」及其偏差-开销剖面,再决定组合,而不是在单一来源里卷精度。
**结语。**三篇论文在同一个接口(GRPO 的优势构造)上做出了三种性格的手术:Gagar 像会计师,坚持质量偏好入账时信用必须收支平衡;SWE-MILE 像工程师,把「离目标还有多远」翻译成可验证的势差;CRR 像实验科学家,坚持让环境自己回答「如果当初换一步会怎样」。它们共同确认了一件事:在可验证奖励的时代,信用分配不再是 RL 理论里的陈年旧题,而是代码智能体训练管线里最值得工程化的那一层——而且答案大概率不止一个,是一组可组合的正交信号。