Scaling Agentic Verifier for Competitive Coding¶
中文结构化译文第一版,基于同目录
note.md整理;原文 PDF、解析文本和笔记均在本目录。 作者与组织见下方“元信息”;若原笔记未记录组织,后续精修时继续补齐。
元信息¶
- ID: arXiv:2602.04254
- 年份: 2026
- 作者: Zeyao Ma, Jing Zhang, Xiaokang Zhang, Jiaxi Yang, Zongmeng Zhang, Jiajun Zhang, Yuheng Jing, Lei Zhang, Mingze Li, Wenting Zhao, Junyang Lin, Binyuan Hui
- 本地 PDF:
paper.pdf - 解析文本:
main_en.md - 页数: 20
- 主题: coding verifier, execution-based reranking, discriminative test input generation, agentic RL
摘要翻译¶
论文提出 Agentic Verifier,用于竞技编程的 execution-based reranking。传统方法要么生成完整测试用例很难,要么随机生成输入效率低。Agentic Verifier 不盲目采样输入,而是通过多轮代码执行交互,推理候选程序行为并主动寻找能区分候选解的测试输入。训练流程结合大规模数据合成、rejection fine-tuning 和 agentic reinforcement learning。实验显示,在五个竞技编程 benchmark 上,Agentic Verifier 相比强 execution-based baseline 有稳定提升,Best@K 最高绝对增益约 +10 到 +15%。
定位¶
这是 verifier 从“读解答打分”转向“主动构造反例”的 coding 场景论文。它验证的对象是候选程序行为,核心能力是生成 discriminative inputs,而不是直接判断自然语言 reasoning trace。
动机¶
代码任务可以执行,因此 execution-based verification 很有吸引力。但生成带正确输出的完整 test case 接近重新解题,成本高且不稳。只生成输入再按输出一致性投票更便宜,但随机输入很难撞到 corner cases。论文提出训练一个 agent 来主动搜索能暴露候选程序差异的输入。
方法¶
测试时:
- policy model 对同一题采样
N个候选程序。 - verifier 随机抽候选程序对
(Ca, Cb),针对每个 pair 生成一个测试输入;在相同预算下,总共生成一组 input-only tests。 - 所有候选程序都在这些输入上执行,按输出聚类的一致性投票为候选解打分。
- 选择总分最高的程序作为 Best@K 输出。
输出一致性投票细节:
- 对每个测试输入
x_j,执行所有候选程序,得到o_{i,j}=Exec(C_i,x_j),runtime error 或 timeout 记为特殊输出。 - 将输出完全相同的候选程序放进同一 cluster。
- 对候选程序
C_i,它在该输入上的 agreement score 是自己所在输出 cluster 的大小。 - 只有达到该输入下最大 agreement score 的候选程序得 1 票,允许并列。
- 候选程序总分是它在所有测试输入上赢得的票数,最终选总分最高者。
因此 Agentic Verifier 给 policy 的主要信号不是训练梯度,而是 test-time selection signal:候选程序在 discriminative inputs 上越常落入多数输出簇,越可能被选为最终答案。若后续用于训练 policy,这个分数可转成 reward 或 preference signal,但本文主实验是 reranking / Best@K selection。
训练时:
- 大规模合成候选程序对和输入生成任务。
- 用 input validators 过滤不满足题目约束的输入。
- 对能成功区分候选程序的交互轨迹做 rejection fine-tuning。
- 再用 GRPO 做 400 steps agentic RL,训练 verifier 在多轮执行环境中寻找更强 counterexamples。
实验¶
评测覆盖 USACO、LiveCodeBench、OJBench、ICPC-Eval、CodeForces,并使用 Qwen3-30B-A3B-Thinking-2507 与 Qwen3-235B-A22B-Thinking-2507 作为 policy models。
主要结果来自 Table 1:
- Qwen3-30B policy 下,Agentic Verifier 在 USACO Best@64 达 74.5(+11.7),CodeForces Best@64 达 46.4(+13.2)。
- Qwen3-235B policy 下,Agentic Verifier 在 OJBench Best@64 达 48.6(+11.5),CodeForces Best@64 达 50.9(+11.2)。
- Table 3 显示训练过的 30B Agentic Verifier 在 LiveCodeBench/OJBench 上达到 82.4(+7.7)/47.3(+10.2),超过 zero-shot Qwen3-235B verifier 的 79.5(+4.8)/43.2(+6.1)。
- 难度分层分析显示,越难的问题上 discriminative input generation 的优势越明显。
Baselines¶
论文中的 execution-based baselines 包括:
- MBR-Exec hard / soft:用模型生成的测试输入执行候选程序,再基于输出差异做 reranking。
- CodeT:生成候选程序和 LLM-generated unit tests,用执行结果选择解。
- CodeRM:用 LLM-generated unit tests 作为监督信号评估候选程序。
- Random Generator:让模型生成 input generator programs,采样合法输入,然后用 input-only execution voting 选择程序。
其中最接近 Agentic Verifier 的强 baseline 通常是 Random Generator,因为它也不需要 ground-truth output,只生成输入并用输出一致性投票;Agentic Verifier 的核心改进是让输入生成面向候选程序对,主动寻找能制造行为差异的 discriminative input。Vanilla 随机选候选程序,Grading RM 用 Skywork-Reward-V2-Llama-3.1-8B 打分,这两者不是 execution-based baseline。
难度分层¶
OJBench 难度分层结果说明 verifier 的边际价值随任务难度上升而变大。以 Qwen3-235B policy 为例:
- Easy:Vanilla 92.1,Random Generator 99.4,Agentic Verifier 99.9,差距很小。
- Medium:Vanilla 48.6,Random Generator 71.9,Agentic Verifier 80.3,差距扩大。
- Hard:Vanilla 9.9,Random Generator 24.7,Agentic Verifier 44.0,差距巨大。
这说明 easy 题中候选程序错误较粗糙,随机输入已经能暴露很多问题;hard 题中错误更像 corner-case bug,随机输入很难命中,必须主动构造反例。这个结论具有跨论文意义:随着任务变难,verifier 的瓶颈从“检查数量”转向“能否生成高信息量检查”。
局限¶
论文主要验证了输入生成式 execution verifier,对非代码任务不能直接迁移。它需要可执行候选程序和沙箱环境,训练也依赖大量合成程序对、输入 validator 和交互轨迹。对于无法通过输入输出行为区分的语义问题,方法边界较明显。
ORM/Verifier 启发¶
- 在代码任务中,verifier 可以主动生成证据,而不只是被动打分。
- 随机 negative/随机输入的价值有限;最有效的是能区分候选解行为的 targeted counterexample。
- 训练 verifier 做工具交互时,rejection fine-tuning + RL 的组合比 zero-shot 大模型更稳定。
- 它提示 verifier 数据构造可以围绕“最大化候选间差异”设计,而不是只标注单条候选对错。
- 对困难任务,verifier 的核心能力可能不是“多检查几次”,而是提出更有信息量的检查;这和 Hard2Verify/Variation in Verification 中“强 generator 错误更隐蔽”的现象一致。
与其他论文关系¶
Agentic Verifier 与 Mirror-Critique 同样服务于 test-time selection,但证据信号不同:前者用执行反例,后者用文本 critique。它也补充了 Variation in Verification 的发现:当强 generator 错误更隐蔽时,需要更主动的验证机制来制造可观察差异。