跳转至

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 来主动搜索能暴露候选程序差异的输入。

方法

测试时:

  1. policy model 对同一题采样 N 个候选程序。
  2. verifier 随机抽候选程序对 (Ca, Cb),针对每个 pair 生成一个测试输入;在相同预算下,总共生成一组 input-only tests。
  3. 所有候选程序都在这些输入上执行,按输出聚类的一致性投票为候选解打分。
  4. 选择总分最高的程序作为 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 错误更隐蔽时,需要更主动的验证机制来制造可观察差异。