论文链接:Entropy-Regularized Rank-Masked Policy Optimization for Test-Time Reinforcement Learning in Code Generation 发表时间:2026年9月 机构:Nanyang Technological University(新加坡南洋理工大学,Jiacheng Xu、Feng Chen、Bo An 等) 领域标签:cs.LG / Test-Time Reinforcement Learning / Code Generation / RLVR
一、论文背景
测试时强化学习(TTRL)是 2025 年以来兴起的一条路线:模型在推理阶段遇到无标签任务时,不依赖训练中的标注数据,而是当场构造奖励信号、对自身做小步策略更新。它最经典的实现是答案自投票:对同一道题采样多个解答,提取各自的最终答案,得票最多的答案当作伪标签,与伪标签一致的解答获得正奖励。
这套机制在数学推理上运转良好,因为它依赖一个隐含前提:输出可以归约为可精确比较的规范答案(canonical answer)。“x=42” 和 “答案:42” 提取后都能变成 “42”,可以投票。
代码生成打破了这个前提。程序是开放词表的输出——两段语义等价的代码在表面形式上可以毫无相似之处,“print(sum([1,2]))” 和 “print(3)” 都是对的,却无法按表面形式归约投票。没有可比较的答案,自投票机制直接失效;而没有可靠测试集(隐藏测试不对外)又不能走标准 RLVR 的执行验证路线。TTRL 与代码生成之间由此横着一道鸿沟。
同时,代码领域的 TTRL 还有一个数学任务上不突出的陷阱:现有 TTRL 目标函数偏重 pass@1(单次通过率),提升 pass@1 的常见手段是收缩输出分布——但这会降低解的多样性,损害 pass@k 前沿(k 次采样中至少一次正确的比率)。pass@k 是训练无关推理时扩展(多次采样+选择)的实际上限,牺牲它等于拆东墙补西墙。
二、论文定位和关联工作
脉络一:TTRL 的诞生与边界。 Zuo et al. 2025 等确立答案自投票的 TTRL 范式,Zhou et al. 2025 记录了 pass@1/pass@k 的权衡。本文定位:把 TTRL 从"可归约答案域"推进到"行为可观察域",并正面处理 pass@k 保护。
脉络二:训练无关的推理时搜索。 Shi et al. 2022(CODET)、Chen et al. 2023 等用执行轨迹或功能一致性在候选程序间比较——绕开了表面形式比较的困难。本文的关键借力:把这些"行为比较"思想改造成可训练的奖励信号,而不只是推理时筛选。
脉络三:RLVR 的奖励工程。 GRPO(组归一化优势)、NSR 等策略优化算法提供了更新机制。本文的 ERPO 在此之上做了两件算法级创新:负向 rank masking 与熵上限。
| 维度 | 数学 TTRL | 探针驱动 TTRL(本文) |
|---|---|---|
| 奖励来源 | 答案多数投票 | 探针输入上的行为一致性 |
| 前提 | 输出可归约为规范答案 | 程序可执行、行为可观察 |
| 主要信号方向 | 正向(多数=伪标签) | 负向为主(低共识=可疑) |
| pass@k | 常受损 | 显式保护(熵上限) |
定位结论:本文是 TTRL 从数学域向代码域迁移的第一块完整拼图——奖励构造、噪声分析、优化算法三层齐备。
三、问题定义
具体问题:在没有任何测试用例(无输入-输出对)的测试时条件下,如何为代码生成构造可用的 RL 奖励,且不牺牲 pass@k。
核心洞察(抽象):虽然没有 oracle 输出,但程序的行为是可观察的。模型可以从题面自构造一组"探针输入"(probe inputs)——只含输入、不含输出的测试用例——然后把候选程序都跑在这些探针上。在同一探针上行为一致(输出相同)的候选程序,彼此互证;行为离群者自证可疑。由此,开放词表的程序被转译成可比较的行为签名。
形式化:对每个问题 x,生成探针集 P(x) = {I₁,…,I_m}(模型自构造,无 oracle 输出)。采样 G 个候选程序 {C₁,…,C_G},定义 Probe Consensus Reward:
PCR(C_i) = (1/m) Σ_j |{C_k : Exec(C_i, I_j) = Exec(C_k, I_j)}| / G
即 C_i 在各探针上与其他候选输出一致的平均比例。约束:模型只能看到题面,看不到任何测试;更新使用 ERPO 目标(见下节)。
抽象的精妙:它识别出了 PCR 的不对称可靠性——低共识是"差程序"的强证据(多数程序在同一输入上输出不同,说明该程序行为怪异),高共识却不是"正确程序"的强证据(可能共享同一个 bug,或探针没覆盖决定性边界)。这个不对称性直接决定了下一节的算法形态:PCR 应当主要当负信号用。
四、问题解法
4.1 探针输入生成
模型读题面,构造一组互不相同、输出无关的探针输入。要求探针能触发问题的核心逻辑路径(如边界、典型值),但不指望它们完备——完备性正是"无 oracle"设定下不可能达到的,后面的算法设计专门容忍这一点。
4.2 PCR 的噪声分析与算法设计依据
论文分析确立两条:(1) 低共识 → 大概率差程序(其他程序在同一探针上输出各异,恰恰说明它走到了别人没走到的错误分支);(2) 高共识 → 不能认证正确(共识可能来自共同误解)。推论:把高 PCR 当正标签会强化虚假共识(reward hacking),把低 PCR 当负信号是稳健的。
4.3 ERPO:Entropy-Regularized Rank-Masked Policy Optimization
对每个候选组(同一题的 G 个采样):
- Rank masking:按 PCR 排序,屏蔽高排名的一半(GRPO 意义下它们通常有正优势)——给它们零梯度权重,既不强化也不抑制;对低排名一半施加标准策略梯度更新。由于组归一化优势的性质,被更新部分的平均优势为负——更新整体在做"降低低共识程序似然"的负向推动。
- 熵上限:固定一个熵上限正则,抑制策略熵的上升漂移。这是对负向更新的对冲——单纯惩罚负样本会让分布熵爆、采样行为失稳(NSR-PCR 基线正是死于此:pass@16 的表观提升来自熵爆炸带来的无意义多样性,随后策略崩溃)。
两者合起来:ERPO 是唯一同时管住"虚假共识强化"(mask 高半区)与"多样性坍缩/爆炸"(熵上限)两个失稳源的无标签代码 TTRL 方法。
五、评估指标与实验证据
设置:Qwen3-4B 与 Qwen3-8B;域内在 LiveCodeBench(LCB)适配,零样本迁移到 CodeContests(CC)、CodeForces(CF)、TACO。
主表(Table 1,pass@1 / pass@16):
| 模型 | 方法 | LCB | CC | CF | TACO | 迁移均值 |
|---|---|---|---|---|---|---|
| Qwen3-4B | Base | 26.0/34.4 | 25.1/42.3 | 9.8/21.8 | 6.4/13.1 | 13.8/25.7 |
| Qwen3-4B | GRPO Pub(可见公开测试) | 33.8/35.4 | 26.2/41.0 | 10.7/24.4 | 6.1/13.6 | 14.3/26.3 |
| Qwen3-4B | GRPO PCR(直接优化PCR) | 27.8/30.9 | 26.0/36.4 | 8.5/20.1 | 5.5/9.8 | 13.3/22.1 |
| Qwen3-4B | NSR PCR(负向惩罚) | 25.7/39.4 | 27.4/51.0 | 10.8/32.1 | 6.6/16.6 | 14.9/33.2 |
| Qwen3-4B | ERPO | 36.7/46.3 | 42.1/58.2 | 20.7/38.5 | 13.3/21.3 | 25.4/39.3 |
三个对照各自演示一种失败模式,ERPO 是唯一幸存者:
- GRPO PCR(把 PCR 当正奖励):LCB 上 pass@1 小涨、pass@16 大跌(30.9 < 34.4),迁移后增益消失——直接强化虚假共识的代价。
- GRPO Pub(有真值公开测试):pass@1 第二好,但 pass@16 增益微弱、8B 迁移增益几乎不延续——即使奖励可靠,直接正向优化仍在奖励源上过拟合。
- NSR PCR(纯负向惩罚):pass@16 表观大涨但 pass@1 几乎不动,且很快熵爆炸、策略崩溃——多样性来自失稳而非能力。
ERPO 的增量:4B 域内 pass@1 +10.7、pass@16 +11.9;CC 零样本 pass@1 +17.0——迁移增幅甚至大于域内,说明学到的是"利用行为共识自我纠偏"的元能力而非 LCB 题型过拟合。
证明力评估:所有方法同 rollout 预算同更新数;判据(pass@1 与 pass@16 同时提升)直接对应论文的核心主张(不牺牲前沿换单次精度);附录含掩码百分位与探针数量的敏感性分析。局限:探针质量依赖模型自身构造能力,极难题上探针可能系统性偏浅。
六、效果优势的根源解释
直接优化 PCR 为何崩坏:PCR 的高共识 ≠ 正确,把它当正奖励等于让学生优化"和多数采样行为一致"。模型的理性策略是收缩到自己的行为众数上——pass@1 短期小涨(众数被强化)、pass@16 下跌(分布收缩),并在迁移域继续强化这个虚假模式。这是奖励与目标错位的教科书案例。
负向信号的机制优势:行为离群在统计上更接近"差程序的充分条件"而非"好程序的必要条件"——利用一个信号更可靠的那一侧,是噪声环境下奖励工程的第一原则。rank masking 的具体设计(高半区零权重而非负权重)避免了把"可能正确"的样本往死里打,只移除它们对更新的贡献;低半区的负优势更新则系统性压低离群行为。
熵上限为何必要:负向更新天然推高熵(把概率质量从被罚样本上挪走必然摊薄分布)。无约束的熵上升让采样失焦——NSR-PCR 的"pass@16 提升"本质是熵爆炸的副产品,随后崩溃。熵上限把熵锚定在健康区间,保证负向推动转化为"离群行为减少"而非"采样失稳"。
因果链总结:探针行为观察(方法差异)→ 开放词表程序获得可比较签名+不对称可靠性被利用(机制变化)→ 虚假共识不被强化、离群行为被抑制、熵受控 → pass@1 与 pass@16 同升、迁移增益放大(指标体现)。
反事实验证:去掉 rank masking(GRPO PCR)→ pass@16 崩;去掉熵上限(NSR PCR)→ 策略崩溃;去掉探针执行(退化为表面投票)→ 方法不成立。每个组件的反事实都被基线天然覆盖。
七、必要知识反推
领域知识层:
- RLVR/GRPO 的组归一化优势机制——不理解组内归一化,就无法设计"屏蔽高半区=负向更新"的技巧;
- 代码评测的执行语义(沙箱、超时、输出比较);
- TTRL 的设定与已有自投票范式。
方法论知识层:
- 奖励噪声的不对称性分析思想(假阳率 vs 假阴率的利用策略);
- pass@k 作为多样性敏感指标的度量学(为什么它是推理时扩展的上限代理);
- 熵正则与策略稳定性(TRPO/PPO 一脉的熵_bonus 与本文的熵上限的差别——前者防坍缩,本文防爆炸)。
工程知识层:
- 探针生成的提示工程与去重策略;
- 代码沙箱的批量执行基建;
- rank masking 的实现(按组内 PCR 排序切分梯度掩码)。
知识融合的关键节点:融合发生在"行为一致性比较(CODET 一脉的推理时技术)“与”奖励不对称性分析(统计决策思想)“之间。前人把行为一致性当推理时筛选器,作者把它改造成训练信号——这一步跨越需要同时看到"行为可观察性可以充当弱监督"与"这个弱监督的误差结构是不对称的”。正是对误差结构的不对称判断,决定了算法形态(负向为主+熵上限),而不是简单套 GRPO。
八、论文中可以提取的通用性灵感
1. 无真值时,用"行为互证"构造弱监督。 核心思想:没有标准答案的领域,可以自构造观察条件(探针),让候选之间的行为一致性充当监督信号。 论文证据:探针一致性奖励让无标签代码 TTRL 成为可能(LCB pass@1 +10.7)。 推广场景:无标注数据的聚类质量自评估;多翻译引擎的无参考互证;多家医学 AI 的会诊一致性。
2. 弱信号要利用其可靠的一侧。 核心思想:噪声奖励的不对称性(哪类错误更可判)决定优化方向——负信号可靠就做负向优化。 论文证据:高共识不可靠/低共识可靠 → rank masking 只罚低半区。 推广场景:风控中"确定的好"难定义、“确定的坏"可枚举,反向准入;招聘中背调排除法;论文评审的"硬伤否决制”。
3. 多样性是资产,需要显式预算管理。 核心思想:提升单次精度的方法常以牺牲分布多样性为代价;pass@k 类"上限指标"应与均值指标同时监控。 论文证据:GRPO PCR 的 pass@16 崩、NSR 的熵爆炸、ERPO 的熵上限两者兼顾。 推广场景:推荐系统的探索-利用预算;药物筛选的化学多样性库管理;团队人才结构的多样性保护。
4. 域内训练增益小于迁移增益,是元能力的证据。 核心思想:当方法在未见域的提升超过训练域本身,说明学到的是可迁移的元技能而非题型拟合。 论文证据:CC 零样本 pass@1 +17.0 > LCB 域内 +10.7。 推广场景:培训效果评估(跨部门迁移优于本部门);基座模型选型(看跨领域泛化而非榜单)。
5. 把推理时技术改造成训练信号,是能力内化的通用路径。 核心思想:训练无关的搜索/筛选技术(投票、一致性、验证器)往往蕴含可训练的监督结构。 论文证据:推理时的行为一致性筛选 → 探针驱动 TTRL。 推广场景:把 self-consistency 解码改造为训练信号;把 RAG 的检索过滤规则蒸馏进 reranker;把人工审核规则转化为分类器训练标签。
本文基于 arXiv:2609.09135 全文精读撰写。数据与结论均引自原文。