文章类型技术长文 所属专栏Agent 算法 预计阅读84 分钟 文档状态已发布
返回

第 11 篇:ORM、PRM 与 Verifier——从结果监督、过程监督到可验证反馈

统一比较 ORM、PRM、Reward Model 与 Verifier,解释结果监督、过程监督、执行验证以及 Agent 轨迹评价如何进入训练和推理。

开始阅读全文16854 字 · 84 分钟 查看系列目录Agent 算法
关键词 AgentORMPRMVerifierReward Model过程监督
栏目 AgentAlgorithms;专栏 Agent 算法;标签 Agent、ORM、PRM、Verifier、Reward Model、过程监督

大语言模型负责生成候选答案、推理步骤或 Agent 轨迹,但“能够生成”不等于“能够判断生成结果是否可靠”。当训练从模仿数据走向偏好对齐、强化学习和测试时搜索时,系统还需要另一类能力:评价一个答案是否成功、定位一条轨迹从哪里开始出错,并在可能的情况下用规则、程序或环境状态给出可复核的判定。

Outcome Reward Model(ORM)、Process Reward Model(PRM)与 Verifier 都服务于这一目标,却不处在同一条分类轴上:

  • ORM 与 PRM 主要描述监督粒度:只监督完整结果,还是监督中间步骤。
  • 规则、执行与学习型评价器描述实现机制:判定来自程序规则、真实执行,还是一个训练得到的模型。
  • Verifier 描述系统角色:它接收候选答案或轨迹,输出判定、分数或证据;一个 ORM、PRM、编译器或 LLM Judge 都可能承担这一角色。

因此,“ORM、PRM 与 Verifier 三选一”不是准确的问题。更有用的问题是:评价对象是什么、标签语义是什么、信号来自哪里、分数如何进入训练或搜索,以及谁来验证评价器本身。


1. 从生成模型到评价模型#

评价器设计的四维空间

1.1 为什么模型训练需要独立的评价信号#

生成模型学习条件分布

πθ(yx),(1)\pi_\theta(y\mid x), \tag{1}

其中 xx 是 Prompt、问题或初始环境状态,yy 是回答、程序或动作轨迹。最大似然训练能够提高训练数据中目标序列的概率,却没有直接回答三个问题:

  1. 当前生成是否真正完成了任务;
  2. 多个候选中哪个更好;
  3. 一条多步轨迹从哪里开始偏离正确路径。

在封闭式数学题中,最终答案可能被精确匹配;在代码任务中,候选程序可以编译并运行测试;但在写作、开放问答和真实 Agent 任务中,“成功”通常同时涉及正确性、完整性、安全性、成本和用户约束。生成概率本身并不是这些属性的可靠代理:模型可以高概率生成流畅但错误的文本,也可以低概率生成少见但正确的解法。

独立评价信号的价值在于把“生成什么”与“怎样判断”解耦。评价器可以承担四类工作:

  • 数据选择:过滤伪标签、构造正负样本和拒绝采样数据;
  • 推理选择:Best-of-NN、重排序、Beam Search 或树搜索;
  • 训练奖励:为在线强化学习提供终局或过程奖励;
  • 系统守门:在部署时阻止格式错误、危险动作或未完成任务的输出。

偏好学习与 RLHF 的经典工作已经展示了独立反馈如何用于学习奖励、选择数据和优化策略。[3][4][7] 这并不意味着评价器天然比生成器可靠。评价器只是一个新的误差来源;系统性能的上限取决于它对目标的覆盖、校准、鲁棒性以及独立审计方式。Cobbe 等人的工作表明,训练 Verifier 再从多个数学解答中选优可以显著提高最终正确率;Lightman 等人的研究进一步显示,在其 MATH 实验设置中,步骤级过程监督比单纯结果监督更有效。[5][8]

1.2 ORM、PRM、Reward Model 与 Verifier 的概念边界#

这几个术语最好放在四条正交轴上理解:评价目标(正确性、偏好、价值或约束)、监督粒度(结果、步骤、前缀或轨迹)、实现机制(学习、规则或执行)以及使用角色(训练奖励、搜索启发、重排序或守门)。术语常常只指定其中一两维,不能据此推断其余维度。

术语核心含义典型输入典型输出它没有自动保证什么
Reward Model(RM)学习一个与偏好、质量或回报相关的评分函数Prompt 与回答/轨迹标量、类别或偏好概率不保证分数可执行验证,也不保证绝对校准
ORM用结果级标签训练的评价模型完整回答或完整轨迹最终成功/正确概率或结果分数不定位中间错误
PRM用步骤级或前缀级标签训练的评价模型问题与当前推理前缀每步正确性、前缀质量或可达性分数不天然等同于 RL Value Function
Verifier在系统中执行“验证候选”的组件或角色候选答案、轨迹、环境证据PASS/FAIL/UNKNOWN、分数和证据不限定必须是模型,也不限定监督粒度
LLM-as-a-Judge通过提示或微调让生成式 LLM 评价输出任务、候选、Rubric、可选参考答案判决、评分、排序和解释不保证无位置、长度或自偏好偏差
Value Model / Critic估计某策略下从状态继续执行的期望回报中间状态或前缀Vπ(s)V^\pi(s)Qπ(s,a)Q^\pi(s,a)不等于“当前步骤在逻辑上正确”

Reward Model 是一个广义的学习型评价器。ORM 和 PRM 可以被视为 Reward Model 在监督粒度上的两个常见实例;当它们在推理时负责接受、拒绝或排序候选时,也在承担 Verifier 的角色。反过来,编译器、JSON Schema 校验器和单元测试属于 Verifier,却不是 Reward Model。

PRM 与 Value Model 的区别尤其重要。若 PRM 标签表示“当前步骤在上下文中是否正确”,它学习的是局部或前缀有效性;而

Vπ(st)=Eτπ ⁣[Gtst](2)V^\pi(s_t)=\mathbb E_{\tau\sim\pi}\!\left[G_t\mid s_t\right] \tag{2}

表示从状态 sts_t 按策略 π\pi 继续执行的期望回报。一个完全正确但极难继续的前缀可以具有较高的逻辑正确性、较低的 VπV^\pi;一个包含可恢复小失误的前缀也可能在强策略下保持较高成功概率。只有当标签被明确构造成“从此前缀继续成功的概率”时,PRM 分数才具有 Value-like 语义。

Outcome-supervised Value Model 会专门对不完整前缀估计这种未来成功潜力;它与对完整轨迹打结果分的经典 ORM、判断可见步骤是否有效的经典 PRM 都有交叉,但目标函数并不相同。[14]

1.3 学习型评价器、规则评价器与执行型评价器#

按实现机制,评价器可分为三类。

学习型评价器从标注数据中归纳判定边界,例如:

fϕ(x,y)rRpϕ(c=1x,y).(3)f_\phi(x,y)\rightarrow r\in\mathbb R \quad\text{或}\quad p_\phi(c=1\mid x,y). \tag{3}

它能处理自然语言等难以完全形式化的目标,也能利用语义等价关系;代价是存在分布外失效、表面捷径、校准偏差和被优化策略利用的风险。

规则评价器由确定性程序实现,例如正则表达式、格式解析、Schema、约束检查、符号化等价判断和权限白名单。它便宜、可复现、可审计,但只验证规则实际编码的性质。规则未覆盖的正确表达可能被误拒,未被规则禁止的错误也可能通过。

执行型评价器让候选在受控环境中运行,再读取编译结果、测试结果、数据库状态或工具返回状态。它比纯文本匹配更接近任务语义,但仍不是完备证明:通过有限测试不等于程序在所有输入上正确,HTTP 200 不等于业务目标完成,真实服务返回错误也不等于 Agent 的决策本身错误。

三类机制不是按“可靠性从低到高”排列。更稳健的设计通常是:先用高精度、低成本规则处理确定部分;再执行可运行的候选;最后把开放语义与等价性问题交给学习型评价器,并为不确定样本保留 UNKNOWN 或人工复核出口。

1.4 结果监督、过程监督与环境监督的关系#

“结果/过程”描述标签落在轨迹的哪个位置,“人工/模型/环境”描述标签从哪里获得。二者不应混为一谈。

设轨迹为

τ=(s0,a1,o1,s1,,aT,oT,sT),(4)\tau=(s_0,a_1,o_1,s_1,\ldots,a_T,o_T,s_T), \tag{4}

其中 ata_t 是推理步骤或 Agent 动作,oto_t 是工具或环境观察。

  • 结果监督的标签只由完整轨迹的终局结果决定;实现上可只在终止位置计算损失,也可把同一结果标签广播到多个 Token 位置。
  • 过程监督对一个或多个中间步骤给出 CtC_t、进度、约束满足或错误位置。
  • 环境监督来自可观察状态、执行结果与副作用,可在中间或终局产生信号。

因此,环境监督既可能是结果监督,例如“最终数据库中已存在目标订单”;也可能是过程监督,例如“第 3 次工具调用参数非法”。人工也可以标注最终成功或逐步正确;学习型 Judge 同样可以提供结果级或过程级标签。工程上应同时记录:

label=(granularity,semantics,source,confidence).(5)\text{label}= (\text{granularity},\text{semantics},\text{source},\text{confidence}). \tag{5}

只记录一个 reward=1 会丢失最重要的标签血缘信息。


2. 评价问题的统一形式化#

同一条轨迹上的 ORM、PRM 与 Verifier

2.1 输入、输出、推理步骤与完整轨迹的表示#

对纯文本推理,可写成

τ=(x,z1,z2,,zK,y),(6)\tau=(x,z_1,z_2,\ldots,z_K,y), \tag{6}

其中 xx 是题目,zkz_k 是第 kk 个可观察推理步骤,yy 是最终答案。对 Agent,应保留动作与环境观察:

ht=(x,a1:t,o1:t),τ=(h0,a1,o1,,aT,oT).(7)h_t=(x,a_{1:t},o_{1:t}),\qquad \tau=(h_0,a_1,o_1,\ldots,a_T,o_T). \tag{7}

这里的“步骤”不是自然存在的原子。它可以是一行文字、一个逻辑命题、一次工具调用、一次“思考—动作—观察”回合,或一段具有单一语义功能的文本。步骤切分函数

S(τ)=(u1,,uK)(8)\mathcal S(\tau)=(u_1,\ldots,u_K) \tag{8}

本身就是数据规范的一部分。相同轨迹使用换行、句号或语义解析切分,可能得到不同标签数量与难度。

完整评价对象至少应区分:

  • 答案级:只看最终输出 yy
  • 解答级:看完整推理文本 (z1:K,y)(z_{1:K},y)
  • 步骤级:判断 zkz_kata_t
  • 前缀级:判断 z1:kz_{1:k} 或历史 hth_t
  • 轨迹级:同时考虑动作、观察、成本、副作用和终局状态。

2.2 ORM:建模任务最终成功概率#

最直接的 ORM 形式为

qϕ(x,τ)=Pϕ(Y=1x,τ),(9)q_\phi(x,\tau) =P_\phi(Y=1\mid x,\tau), \tag{9}

其中 YY 表示最终成功。若标签来自答案匹配器,则更准确的语义是

Y=1[checker(y,y)=pass],(10)Y=\mathbf 1[\operatorname{checker}(y,y^\star)=\text{pass}], \tag{10}

而不是无条件的“任务真实正确”。例如,一个数学解答可能用错误过程碰巧得到正确答案;一个 Agent 可能最终到达目标状态,却同时产生了不允许的副作用。ORM 学到的是训练标签定义下的终局事件。

若模型输出 Logit gϕ(x,τ)g_\phi(x,\tau),则

qϕ=σ(gϕ).(11)q_\phi=\sigma(g_\phi). \tag{11}

这里的 qϕq_\phi 是对训练标签事件的学习型概率估计;当完整轨迹与确定性检查器都已给定时,真实 YY 本身是确定的。该分数可用于阈值判定或候选排序。若只需要同一 Prompt 内重排序,对所有候选应用同一个严格单调递增变换不改变排序;若要跨 Prompt 比较、组合多个评价器或设置统一阈值,则概率校准和标签基率都很重要。

2.3 PRM:建模每个中间步骤的正确性#

一个常见 PRM 写法是

pψ,k=Pψ(Ck=1x,z1:k),(12)p_{\psi,k} =P_\psi(C_k=1\mid x,z_{1:k}), \tag{12}

CkC_k 至少有三种不同定义:

  1. 局部有效性:在给定前缀的条件下,步骤 zkz_k 是否正确、合理;
  2. 前缀有效性:截至第 kk 步,整段前缀是否仍无错误;
  3. 补全策略条件成功概率:从此前缀由指定 Completer/Policy 继续生成,最终成功的概率;它是 Policy-conditioned Prefix Value,不是策略无关的“存在一条成功路径”。

第三类的真值必须先绑定一个续写策略 μ\mu;随后才能用 Monte Carlo Rollout 构造软标签或硬标签:

Vμ(hk)=Pτμ ⁣(Verify(hkτ)=passhk),v^k,Msoft=1Mm=1M1[Verify(hkτ(m))=pass],c^k,Many=1 ⁣[m=1M1[Verify(hkτ(m))=pass]>0].(13)\begin{aligned} V^\mu(h_k) &=P_{\tau'\sim\mu}\!\left( \operatorname{Verify}(h_k\oplus\tau')=\text{pass}\mid h_k \right),\\ \widehat v^{\,\text{soft}}_{k,M} &=\frac{1}{M}\sum_{m=1}^{M} \mathbf 1[\operatorname{Verify}(h_k\oplus\tau'^{(m)})=\text{pass}],\\ \widehat c^{\,\text{any}}_{k,M} &=\mathbf 1\!\left[ \sum_{m=1}^{M} \mathbf 1[\operatorname{Verify}(h_k\oplus\tau'^{(m)})=\text{pass}]>0 \right]. \end{aligned} \tag{13}

其中 τ(m)μ(hk)\tau'^{(m)}\sim\mu(\cdot\mid h_k)。真值 VμV^\mu 依赖当前前缀、续写策略(包括采样温度)和终局 Verifier,但不依赖 Rollout 数 MM;有限样本估计量及其方差依赖 MM。若 Rollout 条件独立且 Verifier 完美,则

P(c^k,Many=1hk)=1(1Vμ(hk))M.P(\widehat c^{\,\text{any}}_{k,M}=1\mid h_k) =1-\left(1-V^\mu(h_k)\right)^M.

因此 any-success 估计的不是 VμV^\mu:只要 Vμ>0V^\mu>0,其正标签概率就会随 MM 增大而趋近 1,不能与 v^soft\widehat v^{\,\text{soft}} 混用。Completer 还能“修复”此前错误,所以成功 Rollout 也不能证明当前步骤局部正确。OmegaPRM 的二分搜索定位的是有限采样下从 MC>0MC>0 变为 MC=0MC=0 的边界;其分析使用无假阳性/假阴性的理想假设,该边界不必等于人类定义的首个逻辑错误。它们都不是步骤的内在真值。Math-Shepherd 与 OmegaPRM 等工作使用自动 Rollout 构造过程监督,降低人工逐步标注成本,也暴露了 Completer 能力与终局检查器误差向过程标签传播的问题。[9][10][12]

2.4 Verifier:对候选答案或轨迹执行可验证判定#

Verifier 更适合形式化为带证据与弃权的判定器:

V(x,τ,e)(d,u,ρ,s,E),(14)\mathcal V(x,\tau,e) \rightarrow (d,\,u,\,\rho,\,s,\,\mathcal E), \tag{14}

其中

  • ee 是参考答案、Rubric、测试集或环境快照;
  • d{pass,fail,unknown}d\in\{\text{pass},\text{fail},\text{unknown}\}
  • u{valid,env_error}u\in\{\text{valid},\text{env\_error}\} 表示本次试验是否有效;
  • ρ{auto,review}\rho\in\{\text{auto},\text{review}\} 表示是否路由人工复核;
  • ss 是可选置信度或连续分数;
  • E\mathcal E 是证据,例如失败测试、状态差异、错误步骤或 Judge 理由。

核心语义判定始终使用 PASS/FAIL/UNKNOWN;工作流界面可以把 u=env_erroru=\text{env\_error} 展示为 ENV_ERROR,把 ρ=review\rho=\text{review} 展示为 REVIEW,但两者不应伪装成任务错误。UNKNOWN 不是实现失败,而是对开放世界最诚实的接口。二元 Verifier 往往把“无法解析”“无法复现”和“确定错误”压进同一个负类,导致训练策略把格式适配当成任务能力。

“可验证”也不是绝对属性,而是相对于验证规范:

pass under V⇏true under every intended requirement.(15)\text{pass under }\mathcal V \not\Rightarrow \text{true under every intended requirement}. \tag{15}

测试套件、规则集合和环境观察都只覆盖目标的一部分。Verifier 的正确设计应同时声明接受域、拒绝域、未知域与威胁模型。


3. ORM 的原理与训练方式#

3.1 正确—错误二分类与连续质量评分#

当结果标签为 Yi{0,1}Y_i\in\{0,1\} 时,ORM 可直接学习成功概率:

LBCE=1Ni=1N[Yilogqi+(1Yi)log(1qi)].(16)\mathcal L_{\text{BCE}} =-\frac{1}{N}\sum_{i=1}^{N} \left[ Y_i\log q_i+(1-Y_i)\log(1-q_i) \right]. \tag{16}

若任务有连续分数 rir_i^\star,例如测试通过比例、Rubric 总分或任务进度,可使用 MSE、Huber Loss 或有序分类:

LHuber=1NiHuber(rϕ(xi,τi)ri).(17)\mathcal L_{\text{Huber}} =\frac{1}{N}\sum_i \operatorname{Huber}(r_\phi(x_i,\tau_i)-r_i^\star). \tag{17}

但“连续”不等于“统一尺度”。测试通过率、人工 1–5 分和业务收益具有不同测量含义。把它们简单线性相加,会让尺度最大的标签主导模型。更稳健的做法是保留多任务 Head,或先将每一维映射到明确的效用函数,再组合:

R=wsuccessRsuccesswcostCwsafetyCsafety.(18)R=w_{\text{success}}R_{\text{success}} -w_{\text{cost}}C -w_{\text{safety}}C_{\text{safety}}. \tag{18}

对硬安全约束,应优先使用 Gate,而不是依赖一个很大的负权重。

3.2 Pointwise、Pairwise 与 Listwise 训练数据#

ORM/RM 数据可按比较结构分为三类。

Pointwise 样本为 (x,τ,y)(x,\tau,y),直接监督一个候选的标签或分数。它适合可获得绝对成功标签、需要概率校准或阈值拒绝的场景。

Pairwise 样本为 (x,τ+,τ)(x,\tau^+,\tau^-),只说明同一输入下 τ+τ\tau^+\succ\tau^-。它通常比绝对打分更容易让人稳定标注,也贴近候选重排序,但不能自动确定跨 Prompt 的绝对零点。

Listwise 样本为

(x,τπ1τπ2τπm),(19)(x,\tau_{\pi_1}\succ\tau_{\pi_2}\succ\cdots\succ\tau_{\pi_m}), \tag{19}

一次保留多个候选的完整或部分排序。基于 Plackett–Luce 的 ListMLE 可写成

Llist=j=1mlogexprπj=jmexprπ.(20)\mathcal L_{\text{list}} =-\sum_{j=1}^{m} \log \frac{\exp r_{\pi_j}} {\sum_{\ell=j}^{m}\exp r_{\pi_\ell}}. \tag{20}

Pointwise、Pairwise 与 Listwise 不是质量等级。应根据标签本来表达的结构选择损失,避免把一个含 Tie 的弱排序强行展开为大量相互矛盾的偏好对。[1][2]

3.3 Binary Cross-entropy 与 Bradley–Terry 排序损失#

Bradley–Terry 模型把偏好概率写成奖励差的 Logistic:

Pϕ(τ+τx)=σ ⁣(rϕ(x,τ+)rϕ(x,τ)β),β>0,(21)P_\phi(\tau^+\succ\tau^-\mid x) =\sigma\!\left( \frac{r_\phi(x,\tau^+)-r_\phi(x,\tau^-)}{\beta} \right), \qquad \beta>0, \tag{21}

对应损失为

LBT=Elogσ ⁣(r+rβ).(22)\mathcal L_{\text{BT}} =-\mathbb E \log\sigma\!\left( \frac{r^+-r^-}{\beta} \right). \tag{22}

梯度只依赖差值 r+rr^+-r^-。因此,对同一 Prompt 的所有候选同时加常数不会改变损失:

r(x,τ)=r(x,τ)+c(x).(23)r'(x,\tau)=r(x,\tau)+c(x). \tag{23}

这说明 Pairwise RM 的绝对零点未被偏好数据识别。β\beta 是噪声温度:越大,偏好概率曲线越平缓。若 β\beta 固定,任意缩放奖励会改变 Logistic 概率,不能声称尺度也无条件不可辨识;只有把噪声温度共同作为未知量时,奖励尺度与温度才发生联合不可辨识。

BCE 与 BT 解决的问题不同。BCE 让模型逼近“通过概率”;BT 让模型逼近“谁更可能被偏好”。一个回答可能有 0.4 的绝对成功概率,却仍显著优于同组 0.1 的候选。BT 差值可以在独立 Pairwise 数据上校准为偏好概率;但由于式(23)的 Prompt-dependent 平移不辨识性,对裸标量做一个全局 Temperature/Isotonic 映射不能恢复跨 Prompt 成功概率。若系统需要统一阈值,必须加入 Pointwise 锚点、单独的 Outcome Head,或拟合显式依赖 Prompt 的校准模型。

3.4 最终结果监督的低标注成本与粗粒度局限#

结果监督的最大优势是便宜。只要有参考答案、测试程序或清晰终态,就可以为大量完整轨迹自动赋标签。相比逐步阅读长推理,人类也更容易判断“最终是否完成”。

它的局限来自信息压缩:长度为 KK 的轨迹最终只得到一个标签 YY。失败轨迹中大量正确步骤与真正致错步骤被赋予相同终局结果;成功轨迹中的偶然正确、答案泄漏、无效冗余和危险副作用也可能被整体视为正样本。

结果标签尤其容易出现两类错配:

  • False Positive:错误过程碰巧得到正确答案,或弱测试未覆盖缺陷;
  • False Negative:答案语义正确,但解析器、格式或等价性规则未识别。

Uesato 等人的实验表明,纯结果监督在最终答案错误率上可以具有较低标注成本,但若关心“答案正确时推理过程也正确”,仍需要过程监督或能模拟过程反馈的学习型评价器。[6] 这不是“PRM 在所有任务上必然优于 ORM”的定理,而是说明评价目标必须与真正关心的失败类型一致。


4. PRM 的原理与过程监督#

PRM 轨迹分数聚合

4.1 推理步骤切分与步骤级标签定义#

PRM 数据构造首先要冻结 Step Parser。常见边界包括:

  • 换行、句号或显式 <step> 标记;
  • 数学推导中的等式变换或命题;
  • 代码 Agent 的一次编辑、编译或测试;
  • 工具 Agent 的一次 tool_call → observation 回合;
  • 语义解析器识别的“计划、动作、检查、修复”单元。

过粗切分会把正确与错误内容混入同一步;过细切分会产生大量缺乏独立语义的片段,并让长轨迹在 Loss 中获得不成比例的权重。步骤定义应满足:

  1. 标注者能在给定前缀下判断;
  2. 一步尽量只包含一个可归因的决策;
  3. 训练和部署使用相同解析器;
  4. 边界失败能够被监控,而不是静默改变样本数量。

Lightman 等人的 PRM800K 使用 Positive、Negative、Neutral 三类步骤标签:Positive 表示正确且推进解答,Negative 表示错误或不合理,Neutral 用于技术上有效但含糊、误导或没有明显进展的步骤。[8] 二分类实现可将 Neutral 合并到正类或负类,但这一选择必须与使用场景一起验证。后文式(24)的 Ck=0C_k=0 指经过这类明确二值投影后的负类;若保留三分类,首错应直接定义为首个 Negative

4.2 首个错误步骤、局部有效性与全局正确性#

设第一个错误位置为

k={min{k:Ck=0},k, Ck=0;K+1,C1==CK=1.(24)k^\star= \begin{cases} \min\{k:C_k=0\},&\exists k,\ C_k=0;\\ K+1,&C_1=\cdots=C_K=1. \end{cases} \tag{24}

对存在错误的轨迹,一旦 zkz_{k^\star} 引入错误,后续步骤可能在错误前提下进行完全合法的代数变换。此时有三种互不等价的标注策略:

策略kk^\star 之后如何处理学到的语义
局部正确性继续逐步判断局部推导“这一步相对当前前提是否有效”
前缀正确性将错误后的前缀视为持续无效“截至此处是否仍在全局正确路径上”
首错定位只监督到首错,之后 Mask“错误最早在哪里发生”

把首错之后的每一步无条件标成错误,会把“局部有效”与“全局已偏离”混成一个标签;把它们无条件标成正确,又会掩盖前缀已经不可接受。在 PRM800K 的首错式标注流程中,首个 Negative 之后的后缀不再继续标注,应视为右删失并 Mask,而不是自动负类。ProcessBench 同样把任务定义为定位最早错误,避免强行判定错误前提后的每一步。[8][11]

Agent 轨迹还存在恢复:一次错误工具调用可能被后续检测并撤销,最终任务成功。若目标是训练恢复能力,错误之后不应成为吸收态;若目标是安全守门,某些不可逆危险动作一旦发生,就应让整条轨迹失败。标签规范必须明确“可恢复错误”和“硬约束违规”。

4.3 步骤级交叉熵损失与轨迹级分数聚合#

对二分类步骤标签,带 Mask 的 PRM Loss 为

LPRM=i,kmik[ciklogpik+(1cik)log(1pik)]i,kmik,(25)\mathcal L_{\text{PRM}} =-\frac{ \sum_{i,k}m_{ik} \left[ c_{ik}\log p_{ik}+(1-c_{ik})\log(1-p_{ik}) \right]} {\sum_{i,k}m_{ik}}, \tag{25}

其中 mikm_{ik} 表示该步骤是否有可信标签;cikc_{ik} 既可取 {0,1}\{0,1\},也可取 [0,1][0,1] 表示软目标。若 Rollout 在给定前缀下条件独立同分布,且该前缀有 KikK_{ik} 次成功、MikM_{ik} 次 Rollout,则忽略与 pikp_{ik} 无关的组合常数后,二项负对数似然为

Kiklogpik(MikKik)log(1pik).-K_{ik}\log p_{ik} -(M_{ik}-K_{ik})\log(1-p_{ik}).

cik=Kik/Mikc_{ik}=K_{ik}/M_{ik} 并按前缀等权,会移除 MikM_{ik} 的置信权重;只有所有 MikM_{ik} 相同时,才与“每次 Rollout 等权”的二项似然仅差统一比例。实现必须明确采用哪种权重。三分类可改用

L3-class=1miki,kmiklogpψ(cikxi,zi,1:k).(26)\mathcal L_{\text{3-class}} =-\frac{1}{\sum m_{ik}} \sum_{i,k}m_{ik}\log p_\psi(c_{ik}\mid x_i,z_{i,1:k}). \tag{26}

不能把 Padding、被截断步骤、首错后的未定义步骤或自动标注低置信区域当作负类。若长轨迹的步骤更多,逐 Token/逐步骤平均会让它们主导 Batch;可先在轨迹内平均,再在轨迹间平均。

PRM 输出的是向量 (p1,,pK)(p_1,\ldots,p_K),而重排序通常需要一个轨迹分数

S(τ)=A(p1,,pK).(27)S(\tau)=A(p_1,\ldots,p_K). \tag{27}

聚合器 AA 实际编码了对“成功由什么决定”的假设,不是无关紧要的后处理。

4.4 求和、乘积、最小值与末步分数的差异#

常见聚合方式如下。

求和。 若对对数概率求和,

SΣlogp=k=1Klog ⁣(clip(pk,ε,1)),(28)S_{\Sigma\log p} =\sum_{k=1}^{K}\log\!\bigl(\operatorname{clip}(p_k,\varepsilon,1)\bigr), \tag{28}

它与使用同一裁剪规则的乘积严格单调等价,数值更稳定。若直接求 pk\sum p_k,长轨迹可能仅凭步骤多而得高分;若求平均 1Klogpk\frac1K\sum\log p_k,可降低长度惩罚,但会改变“每一步都必须正确”的联合概率解释。

乘积。

SΠ=k=1Kclip(pk,ε,1).(29)S_{\Pi} =\prod_{k=1}^{K}\operatorname{clip}(p_k,\varepsilon,1). \tag{29}

它把任一步低分传播到整条轨迹,并近似表达“所有步骤都通过”。只有当

pk=P(Ck=1C<k=1,x,z1:k)p_k=P(C_k=1\mid C_{<k}=1,x,z_{1:k})

具有校准后的“条件存活概率”语义时,乘积才可通过概率链式法则解释成所有步骤正确的联合概率;普通局部正确性分数或前缀 Value 通常不满足这一条件。简单相乘会重复使用高度相关的前缀信息。乘积还天然偏向步骤更少的轨迹,并容易数值下溢。Lightman 等人的实验使用步骤正类概率乘积,并明确观察到对更长解答的轻微不利偏差。[8]

最小值。

Smin=minkpk.(30)S_{\min}=\min_k p_k. \tag{30}

它把轨迹视为瓶颈系统,不像乘积那样累计每一步的长度惩罚,适合“一个严重错误即可否决”的任务;代价是排序对单个异常低分高度敏感。只有训练目标也经过 min 聚合时,才会出现梯度集中在当前最小步骤、切换点不可导等问题。

“较不敏感”也不表示没有长度效应:步骤越多,出现一个偶然极低预测值的机会通常越大。

末步分数。

Slast=pK.(31)S_{\text{last}}=p_K. \tag{31}

只有当每个 pkp_k 被训练为“截至当前的前缀有效性”或“从此前缀成功的概率”,末步才可能总结整条前缀。若 pkp_k 只代表局部步骤正确性,末步正确不能覆盖早先错误。

不存在脱离标签语义的最佳聚合器。实践中应在固定候选生成策略上比较至少四项:轨迹排序、首错定位、长度分层表现和概率校准;必要时学习一个独立 Aggregator,但要防止它再次退化成只看末尾答案的 ORM。


5. Verifier 的主要类型#

Agent 混合验证器级联

5.1 规则验证器:格式、约束与确定性规则#

规则 Verifier 把验证规范直接编码为程序。一个典型接口是

parse(candidate)
-> schema_check
-> constraint_check
-> canonicalize
-> compare_with_accept_set
-> PASS / FAIL / UNKNOWN + evidence

常见规则包括:

  • JSON、XML、函数调用参数和类型约束;
  • 必填字段、枚举范围、单位、日期和依赖关系;
  • 数学表达式规范化、数值容差与符号等价;
  • 禁止调用、权限范围、预算和速率限制;
  • 输出格式、引用字段/编号闭合、URL 语法和静态安全策略。

静态规则可以确认“引用字段存在”,却不能确认来源真实、引文蕴含论点或资料覆盖完整;后者需要检索、执行或语义判断。规则 Verifier 的优势是低成本、低延迟、易复现和易审计。若规则通过是充分条件,它通常具有很高精度。问题在于真实等价类往往比规则覆盖面大:π/2\pi/29090^\circ1.5708 rad 在特定上下文中等价,却可能因单位或解析方式被误判。数学 RLVR 工作展示了规则结果奖励的规模化价值,也促使后续研究系统检查其鲁棒性:常用开源规则 Verifier 可以保持很高精度,却因答案表示多样性产生明显 False Negative;能力更强的生成模型反而会产生更多长尾表达,使召回问题更突出。[20][21]

因此规则结果至少应区分:

PASS reason_code=NONE 规则检查表明满足已编码条件
FAIL reason_code=HARD_RULE 规则检查表明违反已编码条件
UNKNOWN reason_code=PARSE_ERROR 规则无法读取候选
UNKNOWN reason_code=UNSUPPORTED 候选超出规则语义范围

FAIL 可在规则确实覆盖目标时映射为任务负反馈;PARSE_ERRORUNSUPPORTEDUNKNOWNreason_code,表示验证器没有形成有效语义判定,应隔离或重试。把三类原因都压成同一种 0 reward,会训练模型迎合解析器,而不一定提高任务能力。

5.2 执行验证器:编译器、单元测试与工具返回状态#

执行 Verifier 让候选在环境中产生可观察效果。对代码可表示为

Vexec(p)=f(compile,tests,runtime,resources,side effects).(32)\mathcal V_{\text{exec}}(p) =f(\text{compile},\text{tests},\text{runtime},\text{resources},\text{side effects}). \tag{32}

对 Agent,则需要验证动作执行后的状态差异:

Δst=stst1,dt=CheckPostcondition(Δst,gt).(33)\Delta s_t=s_t\ominus s_{t-1}, \qquad d_t=\operatorname{CheckPostcondition}(\Delta s_t,g_t). \tag{33}

其中 gtg_t 是当前子目标。编译成功只说明语法和类型检查通过;有限测试只能说明候选在测试覆盖的输入上满足断言;工具返回成功状态只说明请求被服务接受。只有形式证明器配合可信内核与完整规范时,才能给出更强的规范级保证。稳健执行验证还应检查:

  • 进程退出码、标准输出、错误输出和超时;
  • 隐藏测试、性质测试、变形测试与回归测试;
  • 文件、数据库、浏览器或远端资源的真实状态变化;
  • 未授权副作用、资源消耗和残留进程;
  • 测试环境版本、依赖锁文件、随机种子和沙箱隔离。

SWE-bench 通过对真实代码库应用补丁并运行测试评估软件工程任务;InterCode 将代码作为动作、执行反馈作为观察,构建交互式环境。[26][27] 它们展示了执行反馈的价值,也提醒我们:环境、测试和任务实例必须可复现,否则分数混入基础设施噪声。

5.3 学习型验证器:分类模型、生成式 Judge 与多任务模型#

学习型 Verifier 主要有三种形态。

判别式分类器/标量模型

fϕ(x,τ){ppass,pfail,punknown}rϕR.(34)f_\phi(x,\tau)\rightarrow \{p_{\text{pass}},p_{\text{fail}},p_{\text{unknown}}\} \quad\text{或}\quad r_\phi\in\mathbb R. \tag{34}

对单个、未分块候选通常只需一次前向,适合高吞吐重排序与在线训练;Pairwise/Listwise 输入、长轨迹分块和多次采样 Judge 会增加调用次数。

生成式 Judge

pϕ(analysis,dx,τ,rubric,e).(35)p_\phi(\text{analysis},d\mid x,\tau,\text{rubric},e). \tag{35}

它可以先生成核查理由、错误位置与证据,再给出判决。Generative Verifier/GenRM 将验证改写为 Next-token Prediction,并可通过多次验证推理与投票投入更多测试时计算。[13] 代价是更高延迟、输出解析和理由—结论不一致风险。

多任务评价模型同时预测总体分数、细分 Rubric、步骤错误和置信度:

L=λoLoutcome+λpLprocess+λrLrationale+λuLuncertainty.(36)\mathcal L =\lambda_o\mathcal L_{\text{outcome}} +\lambda_p\mathcal L_{\text{process}} +\lambda_r\mathcal L_{\text{rationale}} +\lambda_u\mathcal L_{\text{uncertainty}}. \tag{36}

共享 Backbone 能提高特征复用,但任务间可能发生负迁移。尤其是“生成参考答案”和“评价候选”共享模型时,要防止自偏好与答案泄漏。

LLM-as-a-Judge 既可以是零样本提示,也可以是专门微调的学习型 Verifier。MT-Bench 相关研究记录了位置偏好、冗长偏好和自增强偏好等系统性偏差。[15] 常用缓解方式包括交换候选顺序、隐藏模型身份、给出细化 Rubric、使用参考答案、要求证据、重复采样和引入人工锚点;这些方法降低偏差,但不能证明 Judge 无偏。

5.4 混合验证器:规则过滤、执行判定与模型评分串联#

混合 Verifier 的核心不是把三个分数相加,而是先定义每一层的权限:

  1. 规则 Gate:解析、硬格式、权限与确定性约束;
  2. 执行 Gate:在沙箱中运行,验证测试和后置条件;
  3. 学习型 Judge:处理开放语义、等价表达和软质量;
  4. 聚合与弃权:按风险、置信度和证据决定 PASS/FAIL/UNKNOWN/ENV_ERROR/REVIEW

一种保守策略为

w={env_error,环境无法形成有效试验;fail,任一硬约束明确失败;pass,执行证据覆盖完整声明规范并通过;judge(τ),确定性层无法覆盖;review,Judge 不确定或评价器冲突.(37)w= \begin{cases} \text{env\_error},&\text{环境无法形成有效试验};\\ \text{fail},&\text{任一硬约束明确失败};\\ \text{pass},&\text{执行证据覆盖完整声明规范并通过};\\ \text{judge}(\tau),&\text{确定性层无法覆盖};\\ \text{review},&\text{Judge 不确定或评价器冲突}. \end{cases} \tag{37}

另一种高召回策略会先接受规则明确通过的样本,再让模型复核因软格式、答案等价性或规则覆盖不足而被拒的样本。Judge 不得覆盖权限、账户、金额、资源 ID 等权威状态,不能越过硬安全规则,也不能把无效解析、明确执行失败或环境故障改判为成功。Huang 等人的数学实验采用规则优先、模型补充的混合方案,在其设置中提高了召回并保持较高精度,但也观察到某些模型 Verifier 在 RL 优化中被利用。[21] 这说明静态验证准确率不是动态训练安全性的充分条件。

混合系统应保存完整证据链,而不是只落一个最终标量:

{
"decision": "fail",
"hard_rule": {"name": "permission_scope", "status": "pass"},
"execution": {"exit_code": 1, "failed_tests": ["test_refund_idempotency"]},
"judge": {"status": "not_called"},
"verifier_version": "agent-verifier-2026-07-30"
}

6. 训练数据的构造与标注#

6.1 正确答案、错误答案与部分正确答案的采集#

高质量评价器不能只看到“明显正确”和“明显错误”。建议从多个维度构造候选池:

  • 多个生成模型、Checkpoint、温度和解码策略;
  • 同一问题的短答案、长推理和多种等价解法;
  • 答案正确但过程错误、过程大体正确但末步错误;
  • Agent 最终成功但经历恢复、局部动作合理但最终失败;
  • 不可解析、超时、工具异常和环境冲突;
  • 与正样本表面高度相似的困难负样本。

Pointwise 数据要控制类比例和来源分布;Pairwise 数据应尽量在同一 Prompt、相近长度和相近风格内比较,减少模型用无关特征取巧。训练、验证、测试应按问题或任务模板分组切分,而不是随机拆散同一问题的多个候选,否则评价器可能记住题目或参考答案。

“部分正确”应被拆成可解释维度。一个 Agent 轨迹可以有:

tool_selection = correct
arguments = partially_correct
execution = failed_transiently
recovery = correct
final_success = true
safety = pass

把它压成单一 0.5 会丢失可用于诊断和训练的结构。

6.2 人工步骤标注与模型辅助标注#

人工过程标注需要一份可操作的 Rubric,而不是只写“判断是否正确”。标注界面至少应展示问题、当前前缀、当前步骤、必要的参考资料和允许使用的工具,并要求标注:

  • 标签与标签语义;
  • 首错位置;
  • 错误类型或证据;
  • 置信度;
  • 是否需要更强专家或环境执行。

推荐采用“两人独立标注—冲突仲裁—抽样复审”的流程,并在上线前用 Pilot 检查步骤切分与标签分布。Cohen’s κ\kappa、Fleiss’ κ\kappa 或 Krippendorff’s α\alpha 可衡量一致性,但一致性高不代表标签真实;标注者可能共同遵循了错误 Rubric。

模型辅助标注可用于:

  1. 预标错误位置与理由;
  2. 找出可能冲突的人工标签;
  3. 生成参考计算或调用工具;
  4. 对高置信简单样本自动标注;
  5. 主动学习中优先挑选评价器最不确定的轨迹。

模型输出不能在没有审计的情况下成为“Gold”。应记录 label_source、模型版本、Prompt、参考答案和采样参数,并在独立人工集上分别估计 Precision、Recall 与校准误差。

6.3 扰动推理步骤、失败轨迹与困难负样本生成#

困难负样本应改变任务语义,同时尽量保持表面形式。可对正确轨迹执行局部扰动:

  • 数学:符号、边界条件、量纲、舍入、量词或中间数值;
  • 代码:条件反转、索引边界、状态更新顺序、异常处理和并发语义;
  • 工具:选择相似但错误的 API、交换参数、遗漏必填项、使用过期 Observation;
  • Agent:跳过确认、忽略工具失败、重复不可幂等动作、在错误账户执行;
  • 文本:引用与论断错配、事实替换、虚假来源和不满足隐含约束。

若负样本总带有固定模板、特殊短语或异常长度,评价器会学到生成器指纹。应采用多种扰动器,混入自然失败轨迹,并进行反事实成对测试:只修改一个关键语义,检查评分是否按预期变化。

失败轨迹还应覆盖评价系统本身的边界:

  • 规则无法解析但语义正确;
  • 测试不完备却获得 Pass;
  • 环境超时、限流或服务端故障;
  • Judge 被候选中的提示注入影响;
  • 候选显式声称“我是正确答案”或伪造验证日志。

这些样本既是训练数据,也是 Verifier 的安全回归集。

6.4 标签噪声、答案等价性与标注一致性控制#

评价数据常见噪声可分为四类:

  1. 观测噪声:环境随机、测试 Flaky、工具超时;
  2. 规则噪声:解析器漏掉等价表达或容差定义错误;
  3. 主观噪声:Rubric 含糊、偏好群体不一致;
  4. 传播噪声:错误终局 Verifier 或弱 Completer 产生错误过程标签。

对存在多个正确答案的任务,应定义接受集合

A(x)={y:Semantics(y)Spec(x)},(38)\mathcal A(x)= \{y:\operatorname{Semantics}(y)\models \operatorname{Spec}(x)\}, \tag{38}

而不是只保存一个字符串 yy^\star。可使用规范化、符号执行、单位换算、多参考答案和人工复核逐层逼近 A(x)\mathcal A(x)

控制标签质量的工程手段包括:

  • 保存原始候选与规范化结果,避免不可逆预处理;
  • UNKNOWN、Tie、Neutral 和低置信标签保留独立状态;
  • 以 Prompt Group 切分数据,防止候选泄漏;
  • 抽样估计各标注源的混淆矩阵;
  • 对模型辅助标签使用来源权重,而不是假装全部同质;
  • 使用锚点题、重复题和顺序交换检测标注漂移;
  • 定期重放旧数据,发现规则或环境升级造成的标签翻转。

7. 从分数到训练和推理信号#

7.1 Best-of-N、候选重排序与拒绝采样#

给定固定生成策略 π\pi,Best-of-NN 先采样

y1,,yNπ(x),ysel=argmaxiSϕ(x,yi).(39)y_1,\ldots,y_N\sim\pi(\cdot\mid x), \qquad y_{\text{sel}}=\arg\max_i S_\phi(x,y_i). \tag{39}

它把额外推理算力用于扩大候选池,再由评价器选优;Self-consistency 与更一般的 Test-time Compute 研究都体现了“多生成—再聚合/选择”的收益。[24][36] 对二元正确性、每个 Prompt 最终只选一个候选的场景,候选质量上限可由 Oracle@NN 表示,选优质量由评价器决定。至少应同时报告:

Oracle@N=P(i:Yi=1),(40)\operatorname{Oracle@N} =P(\exists i:Y_i=1), \tag{40}BoN@N=P(YargmaxSi=1),(41)\operatorname{BoN@N} =P(Y_{\arg\max S_i}=1), \tag{41}

若真实质量是连续值,更合适的 Oracle 是 E[maxiQi]\mathbb E[\max_i Q_i],而不是式(40)。还可把下面的选择效率作为本文定义的可选归一化诊断指标:

SE@N=BoN@NPass@1Oracle@NPass@1.(42)\operatorname{SE@N} =\frac{\operatorname{BoN@N}-\operatorname{Pass@1}} {\operatorname{Oracle@N}-\operatorname{Pass@1}}. \tag{42}

当分母为零时该指标不定义。只报告评价器最高分会产生循环论证;被选答案必须由独立人类、规则、执行器,或不仅未参与选择、而且在训练数据、模型族或构造流程上具有隔离性的 Shadow Verifier 判定。随着 NN 增大,选中样本进入代理分数的尾部,代理最高分可以继续上升,而独立真实质量反而下降,因此必须画完整的 NN 曲线。

推理时的阈值接受只决定当前候选是否返回;只有把通过筛选的样本再次用于更新生成模型时,才是 Rejection-sampling Fine-tuning。后者通常使用阈值

Daccept={(x,y):Sϕ(x,y)ηaccept}(43)\mathcal D_{\text{accept}} =\{(x,y):S_\phi(x,y)\ge \eta_{\text{accept}}\} \tag{43}

构造 SFT 数据。阈值需要在目标分布上校准,并监控接受率、样本多样性和来源覆盖。阈值过高会只保留评价器偏好的表面模式,造成覆盖收缩与多样性下降;过低则放大标签噪声。

7.2 ORM 分数作为强化学习终局奖励#

ORM 可在轨迹结束时提供

RT=rϕ(x,τ),Rt=0 (t<T).(44)R_T=r_\phi(x,\tau), \qquad R_t=0\ (t<T). \tag{44}

这保留了任务“最终成功”的简单语义,却带来长时程 Credit Assignment。策略无法直接知道哪个早期动作导致终局失败。若 Token/步骤 MDP 使用 γ<1\gamma<1,早期 Return 会变成 γTtRT\gamma^{T-t}R_T,额外偏好更短的轨迹;LLM 的终局成功奖励常取 γ=1\gamma=1,否则必须把这种时间折扣作为目标的一部分显式评估。若 ORM 是 Pairwise 偏好模型,其分数还可能没有跨 Prompt 的绝对校准;Prompt-dependent 常数在固定 Prompt 的期望优化中会抵消,但奖励尺度会与 KL 系数共同决定实际权衡。在线 RL 通常还需要按 Batch 归一化、裁剪,或与成本和安全项组合。

更重要的是,策略训练会改变候选分布:

πθ0πθ1,(45)\pi_{\theta_0}\rightarrow\pi_{\theta_1} \rightarrow\cdots, \tag{45}

而 ORM 仍在旧策略数据上训练。即使静态 Accuracy 很高,优化也可能把策略推向评价器缺乏数据的区域。应使用策略分层测试、在线审计、保留独立 Gold Verifier,并限制单轮更新幅度。

7.3 PRM 分数作为过程奖励与搜索启发函数#

最简单的做法是把步骤分数直接当作奖励:

rt=pψ,t.(46)r_t=p_{\psi,t}. \tag{46}

但它会重复奖励“保持正确”,并可能鼓励模型拆出更多容易获得正分的冗余步骤。若 ptp_t 具有前缀势函数语义,可采用 Potential-based Shaping:

rt=rtenv+γΦ(st+1)Φ(st),(47)r'_t=r_t^{\text{env}} +\gamma\Phi(s_{t+1})-\Phi(s_t), \tag{47}

在势函数定义于 Markov 状态、训练与目标使用同一折扣因子,且有限 Episode 令终止势为 0(或使用等价吸收状态)时,Potential-based Shaping 保持最优策略不变,而不只是“降低风险”。[42] 若分数只是局部正确概率,不能直接把它解释为到终局的 Value。

若自动标签本身是某个续写策略 μ\mu 下的成功概率

Vtμ=Pτμ(Y=1ht),(48)V_t^\mu=P_{\tau'\sim\mu}(Y=1\mid h_t), \tag{48}

则在 γ=1\gamma=1、中间环境奖励为零的成功概率语义下,更自然的“进展”信号是 Value 差。一般折扣情形的势函数差,以及真正与同一折扣因子匹配的 TD Residual,应分别写成:

FtΦ=γΦ(ht)Φ(ht1),δtμ=rtenv+γVγ,tμVγ,t1μ,ΔVtμ=VtμVt1μ when γ=1, rtenv=0.(49)\begin{aligned} F_t^\Phi &=\gamma\Phi(h_t)-\Phi(h_{t-1}),\\ \delta_t^\mu &=r_t^{\text{env}} +\gamma V_{\gamma,t}^\mu-V_{\gamma,t-1}^\mu, \end{aligned} \qquad \Delta V_t^\mu=V_t^\mu-V_{t-1}^\mu \ \text{when }\gamma=1,\ r_t^{\text{env}}=0. \tag{49}

这里 VγμV_{\gamma}^\mu 必须另行定义为同一 γ\gamma 下的折扣回报 Value;不能把式(48)的未折扣成功概率在 γ<1\gamma<1 时直接称为 TD Value。上述差分避免把一串高度重叠的 VtμV_t^\mu 反复相加。在随机 Agent 环境中,更干净的动作进展量是 Aμ(st,at)=Qμ(st,at)Vμ(st)A^\mu(s_t,a_t)=Q^\mu(s_t,a_t)-V^\mu(s_t);单次实现的 V(st+1)V(st)V(s_{t+1})-V(s_t) 还混入环境运气。需要注意:VμV^\mu 依赖 μ\mu、采样温度和终局 Verifier;只有其 Monte Carlo 估计误差依赖 Rollout 预算。它不是策略无关的步骤真值。相关工作将这种 Value 差分用于刻画步骤带来的进展。[39]

作为搜索启发函数,PRM 可定义路径分数

H(ht)=λpktlog ⁣(clip(pk,ε,1))+λvV^(ht)λcC(ht),(50)H(h_t) =\lambda_p\sum_{k\le t}\log\!\bigl(\operatorname{clip}(p_k,\varepsilon,1)\bigr) +\lambda_v\widehat V(h_t) -\lambda_c C(h_t), \tag{50}

它只是一个需要验证集调参的启发式:累计 Log-score、[0,1][0,1] Value 和成本量纲不同,组合前应分别标准化或校准;若 pkp_k 本身就是 Prefix Value,第一、二项还可能重复计入前缀信息。纯粹按当前 PRM 分数贪心扩展,会过早剪掉暂时不确定但最终可解的分支。可通过 Top-kk 扩展、置信上界、随机探索和分数不确定性保持搜索多样性。

7.4 Verifier 与 Beam Search、树搜索和轨迹筛选的结合#

在 Beam Search 中,只有专门在未完成前缀上训练并校准过的 PRM/Value Model 才适合在语义步骤边界重评分;终局 ORM 不能默认外推到中间前缀:

Bt=TopBhExpand(Bt1)[logπθ(hx)+λHϕ(h)].(51)\mathcal B_t =\operatorname{TopB}_{h\in\operatorname{Expand}(\mathcal B_{t-1})} \left[ \log\pi_\theta(h\mid x)+\lambda H_\phi(h) \right]. \tag{51}

式(51)中的生成分数与评价分数应在相同的步骤边界比较,并显式规定 Token/步骤长度归一化,否则不同长度前缀不可公平排序。在树搜索中,PRM/Value Model 为节点提供启发值,执行 Verifier 为终局或可验证中间状态提供相对于声明规范、测试集和环境快照的可复现证据,而不是无条件“真实回报”;MCTS 还需要探索项,避免始终选择估计最高的节点。Tree of Thoughts、ReST-MCTS*、OmegaPRM 与 LATS 分别展示了模型评价、过程奖励、Rollout 估计和环境反馈进入树搜索的不同方式。[10][22][23][35]

一个可复现的轨迹筛选流程应固定:

  1. 生成策略与采样参数;
  2. 步骤解析器;
  3. 评价器版本与聚合器;
  4. 搜索预算的计量单位;
  5. Tie 与 UNKNOWN 的处理;
  6. 最终独立评价协议。

比较 Best-of-NN、Beam 和树搜索时,应预先声明一个主要预算约束,并同时报告总生成 Token、评价器调用次数、墙钟时间与总计算量;这些量通常无法同时严格相等。只统一 NN 而忽略每种方法的分支深度和 Verifier 成本,不是公平比较。


8. Agent 场景中的评价器设计#

8.1 工具选择、参数生成与执行结果的分层判定#

Agent 的一次动作可写成

at=(toolt,argst).(52)a_t=(\text{tool}_t,\text{args}_t). \tag{52}

一个完整评价器不应只比较函数名和参数字符串,而应逐层判定:

层级核心问题适合的评价方式
是否调用当前应调用工具、追问、拒绝还是直接回答Rubric、状态机、学习型 Judge
工具选择所选工具能否完成当前子目标规则候选集、语义 Judge
参数结构类型、必填项、枚举和 JSON 是否有效Schema、AST、静态规则
参数语义ID、金额、单位、时区、跨字段约束是否正确权威状态查询、规则;Judge 只解释语言歧义
权限与前置条件是否获得授权、确认与必要上下文Policy Gate、状态断言
执行状态请求是否发出、是否超时、是否返回错误执行日志
业务后置条件环境是否发生预期变化状态 Diff、数据库断言

可以分别定义

Vschema(at),Vcall(ht,at),Vtransition(st,at,ot+1,st+1).(53)V_{\text{schema}}(a_t),\quad V_{\text{call}}(h_t,a_t),\quad V_{\text{transition}}(s_t,a_t,o_{t+1},s_{t+1}). \tag{53}

结构正确不等于语义正确:transfer(amount=100, currency="USD") 可以通过 Schema,却可能转给错误账户;工具返回 status=success 也不表示用户目标已完成。权限、账户、对象 ID、金额、时间与库存必须由权威状态查询和确定性约束决定,Judge 不能授权或覆盖这些结果。BFCL、ToolLLM 等工具评估,以及 WebArena、AgentBench、AgentBoard 等交互基准,从函数调用、环境执行和多轮进度等不同层面反映了这种分层需求。[25][28][29][30][31]

8.2 多步轨迹中的中间状态与环境反馈验证#

对状态型 Agent,最可靠的证据通常不是“是否复现参考轨迹”,而是状态谓词。因为同一目标可能存在多条合法路径。可定义:

Goal(sT)=1,Invariant(st)=1 t,Minefield(st)=0 t.(54)\text{Goal}(s_T)=1, \qquad \text{Invariant}(s_t)=1\ \forall t, \qquad \text{Minefield}(s_t)=0\ \forall t. \tag{54}

此外记录原始状态差分,并按预期、允许与意外变化进行分类:

Δst=stst1,CexpectΔstCexpectCallow,Cunexpected=Δst(CexpectCallow).(55)\Delta s_t=s_t\ominus s_{t-1}, \qquad C_{\text{expect}}\subseteq \Delta s_t \subseteq C_{\text{expect}}\cup C_{\text{allow}}, \qquad C_{\text{unexpected}} =\Delta s_t\setminus (C_{\text{expect}}\cup C_{\text{allow}}). \tag{55}

中间反馈可用于确认 Milestone,例如“已找到正确工单”“已创建草稿但尚未发送”;Minefield 则表示任何时候都不能发生的事件,例如“向错误收件人发送”“未经确认扣款”。ToolSandbox 使用 Milestone 与 Minefield 描述多条合法路径及禁止事件;AppWorld 使用数据库状态变化检查预期修改与 Collateral Damage。[32][33]

评价器应同时验证最终文本是否忠实反映环境:Agent 不能在工具失败后仍声称“已经完成”。先定义试验有效性 Vtrial=1V_{\text{trial}}=1:环境与基础设施足以完成预先声明的验证;ENV_ERROR 对应 Vtrial=0V_{\text{trial}}=0,位于策略成功/失败判定之外。只有有效试验才计算终局成功:

Vsuccess(τ)=Vpolicy(τ)Vgoal(sT)Vresponse(x,τ,y).(56)V_{\text{success}}(\tau) = V_{\text{policy}}(\tau) \land V_{\text{goal}}(s_T) \land V_{\text{response}}(x,\tau,y). \tag{56}

8.3 最终任务成功与局部动作正确之间的冲突#

局部动作与全局结果存在四种组合:

局部动作最终结果可能原因评价策略
必要动作正确且全程满足硬约束成功正常完成正样本
有错误成功检测、重试、回滚后恢复保留错误与恢复标签
多数局部合理失败计划方向错误、缺少关键最后一步终局负、过程部分正
有违规表面成功未授权、泄露、破坏副作用硬失败,不被成功抵消

这说明“所有局部动作分数的平均值”不能替代最终任务成功,“最终成功”也不能抹去过程安全问题。工程上应采用多维标签,再由明确的业务规则聚合:

R(τ)=RgoalλcCcostλrCrisk,s.t. Vhard-policy(τ)=1.(57)R(\tau) =R_{\text{goal}} -\lambda_c C_{\text{cost}} -\lambda_r C_{\text{risk}}, \qquad \text{s.t. }V_{\text{hard-policy}}(\tau)=1. \tag{57}

硬约束使用可行域;软目标才使用权衡权重。否则足够高的任务分可能“抵消”一次不允许的操作。

PRM 也不应把所有非参考动作标成错。多步环境通常存在等价顺序、并行动作、信息获取和恢复操作。应标注动作相对当前状态是否合理、是否推进目标,以及是否违反不变量,而不是要求复现唯一演示。

8.4 工具异常、环境随机性与不可重复结果#

真实状态转移常带随机性:

st+1P(st,at).(58)s_{t+1}\sim P(\cdot\mid s_t,a_t). \tag{58}

网络超时、限流、并发修改、搜索结果变化和时间敏感数据都可能让同一策略获得不同结果。评价接口应至少区分:

PASS 候选满足验证规范
FAIL 候选明确违反验证规范
UNKNOWN 当前证据不足
ENV_ERROR 环境或基础设施无法提供有效试验

UNKNOWN 表示有效试验中的语义证据不足;ENV_ERROR 表示基础设施使本次试验无效。后者不应直接成为策略负奖励;应在预先声明的预算内重试或隔离,并单独报告环境可用率/错误率,不能观察结果后选择性删除失败 Episode。若环境故障本来就是部署系统的一部分,则应进入端到端系统可靠性指标,但仍应与策略正确率分开。一次工具失败也不一定说明动作选择错误,应进一步判断重试、降级或停止是否符合策略。

为保证可复现性,应记录:

  • Agent 采样种子与环境随机种子;
  • 初始数据库/文件系统快照与虚拟时间;
  • 工具 Schema、服务版本、依赖和容器镜像;
  • 请求 ID、响应、异常、重试与超时;
  • 每一步前后状态 Diff;
  • 评价器、Parser 和聚合器版本。

对随机环境应重复运行并报告均值与置信区间。若任务 iinin_i 次有效运行、其中 cic_i 次成功,τ-bench 的一致成功估计为

passk^=1Mi=1M(cik)(nik),nik.(59)\widehat{\operatorname{pass}^{k}} =\frac1M\sum_{i=1}^{M} \frac{\binom{c_i}{k}}{\binom{n_i}{k}}, \qquad n_i\ge k. \tag{59}

当每项任务恰好预先运行 kk 次时,它退化为“这 kk 次是否全部成功”的指示量平均。它衡量一致成功,含义与“kk 次中至少一次成功”的 pass@kk 相反。该指标本身不能区分 Agent 随机性与环境随机性,应分别控制两类 Seed 或采用配对设计。τ-bench 使用环境状态与必要回复评估对话式工具 Agent,并用 passk\operatorname{pass}^{k} 观察一致性。[34]


9. 实现与训练工程#

9.1 数据格式、步骤边界与特殊标记设计#

一个可审计的 JSONL 样本可以设计为:

{
"sample_id": "task_0187__rollout_004",
"prompt_id": "task_0187",
"prompt": "...",
"policy_version": "generator-v3",
"step_parser_version": "semantic-step-v2",
"steps": [
{
"step_id": 0,
"span": [0, 74],
"text": "...",
"action": null,
"observation": null,
"label": "positive",
"label_semantics": "local_validity",
"label_source": "human",
"confidence": 0.96,
"evidence": "..."
}
],
"final_answer": "...",
"outcome_label": "pass",
"environment_version": null,
"verifier_version": "math-hybrid-v5"
}

训练时可在每个步骤结束处插入 <STEP_END>,只在这些位置读取分类 Head:

hk=Transformer(x,z1:k)<STEP_END>,pk=softmax(Whk+b).(60)h_k=\operatorname{Transformer}(x,z_{1:k})_{\texttt{<STEP\_END>}}, \qquad p_k=\operatorname{softmax}(W h_k+b). \tag{60}

特殊标记必须加入 Tokenizer 并与步骤边界一一对应。若在普通换行 Token 上读取,代码块、列表和排版换行会混入虚假步骤。对工具轨迹,建议使用显式角色标记:

<ACTION> ... </ACTION>
<OBSERVATION> ... </OBSERVATION>
<STEP_END>

训练代码还应断言:标签数等于有效 <STEP_END> 数,末尾截断没有伪造终局,Packing 后标签不会跨样本。

9.2 长轨迹截断、样本打包与类别不平衡处理#

长轨迹不能简单保留最后 LL 个 Token。这样可能丢失问题、约束和错误前因。可采用:

  • 保留 Prompt,加首错附近或目标步骤附近的上下文窗口;
  • 按语义步骤分块,使用重叠 Prefix Window;
  • 为每个 Chunk 记录 is_terminal,仅真正终局 Chunk 使用结果标签;
  • 对跨块依赖较强的步骤标为 unknown/masked
  • 在支持长上下文时优先完整训练,短窗口作为增广而非替代。

Packing 多个样本时需要同时隔离 Attention、Position、Step Mask 与 Loss Mask。概念伪代码如下:

for packed_batch in loader:
hidden = model(
input_ids=packed_batch.input_ids,
attention_mask=packed_batch.block_diagonal_mask,
)
step_hidden = hidden[packed_batch.step_end_positions]
logits = classifier(step_hidden)
loss = cross_entropy(
logits[packed_batch.label_mask],
packed_batch.labels[packed_batch.label_mask],
reduction="none",
)
loss = mean_per_trajectory_then_batch(loss, packed_batch.trajectory_ids)
loss.backward()

正确步骤通常远多于首错步骤,普通 Accuracy 会被多数类淹没。可使用困难负样本采样、类权重、Focal Loss 或每轨迹均衡采样,但这些操作会改变训练先验并影响概率校准。训练后应在保留自然基率的验证集重新校准,不能用重采样训练集直接选择阈值。

9.3 分数归一化、概率校准与阈值选择#

以下四类输出需要分开处理:

  1. Pointwise ORM 的成功概率;
  2. PRM 的步骤级概率;
  3. Bradley–Terry 的成对偏好概率;
  4. 没有概率语义的裸 Scalar Reward。

对二分类 Logit zz,带偏置的 Logit Scaling 可写为

p^=σ(z/T+b),T>0,(T,b)=argminT,bNLLcalib(T,b).(61)\widehat p=\sigma(z/T+b),\qquad T>0, \qquad (T^\star,b^\star) =\arg\min_{T,b}\operatorname{NLL}_{\text{calib}}(T,b). \tag{61}

标准 Temperature Scaling 是 b=0b=0 的特例;它保持 0.5 决策边界,不能修正类权重、Focal Loss 或重采样带来的 Prior Shift。已知先验时可做显式先验修正,也可拟合 bb;三分类 PRM 则应使用 Multiclass Temperature/Vector Scaling,而不是二分类 Sigmoid。还可使用 Isotonic Regression,但数据较少时容易过拟合。所有校准器都应在独立、与目标部署分布匹配的 Calibration Set 上拟合,并分别检查不同领域、长度、生成模型与难度桶。Guo 等人的工作系统讨论了 Reliability Diagram、ECE 与 Temperature Scaling。[17]

Expected Calibration Error 可写为

ECE=b=1BIbn1IbiIbyi1IbiIbp^i.(62)\operatorname{ECE} =\sum_{b=1}^{B}\frac{|I_b|}{n} \left| \frac{1}{|I_b|}\sum_{i\in I_b}y_i -\frac{1}{|I_b|}\sum_{i\in I_b}\widehat p_i \right|. \tag{62}

这里使用的是正类发生率与预测正类概率的口径;若改用“预测类别置信度”,就必须相应改成分箱准确率,不能混写。ECE 依赖分箱,不能单独报告;应同时给出 NLL、Brier Score 和 Reliability Diagram。min、乘积或式(50)的启发分本身不是概率,必须先在独立轨迹级结果标签上拟合 g(S)P(Y=1S)g(S)\approx P(Y=1\mid S),才能对轨迹分数报告 ECE/Brier。首错后右删失的 PRM,步骤校准只对“尚未出现已知错误”的风险集成立,不能直接外推到被 Mask 的后缀。

判定阈值 η\eta 应按误判成本选择:

η=argminη[cFAP(Y=0)FAR(η)+cFRP(Y=1)FRR(η)].(63)\eta^\star =\arg\min_\eta \left[ c_{\text{FA}}P(Y=0)\operatorname{FAR}(\eta) +c_{\text{FR}}P(Y=1)\operatorname{FRR}(\eta) \right]. \tag{63}

其中 FAR=P(Y^=1Y=0)\operatorname{FAR}=P(\widehat Y=1\mid Y=0) 是 False Accept Rate,FRR=P(Y^=0Y=1)\operatorname{FRR}=P(\widehat Y=0\mid Y=1) 是 False Reject Rate;若成本已吸收类先验,应显式声明。高风险执行任务通常更重视 False Accept;数据筛选可能更重视保留多样性。可设置双阈值:

p^ηpasspass,p^ηfailfail,(64)\widehat p\ge\eta_{\text{pass}}\Rightarrow\text{pass},\quad \widehat p\le\eta_{\text{fail}}\Rightarrow\text{fail}, \tag{64}

中间区域输出 UNKNOWN/REVIEW

9.4 评价器版本管理与生成策略同步#

评价器不是一个孤立权重文件。最小可复现实验单元应包含:

(Policy,Dataset,Tokenizer,Step Parser,Rubric,Verifier,Aggregator,Environment).(65)( \text{Policy}, \text{Dataset}, \text{Tokenizer}, \text{Step Parser}, \text{Rubric}, \text{Verifier}, \text{Aggregator}, \text{Environment} ). \tag{65}

每次发布记录:

  • 模型权重、配置和代码 Commit;
  • 数据快照、Prompt Group 切分与标签源;
  • Tokenizer、模板和特殊标记;
  • Step Parser 与聚合规则;
  • 校准参数、阈值和目标成本;
  • 工具、测试、容器与环境版本;
  • 评价器适用域、已知失败和对抗集结果。

生成策略升级后,评价器会遭遇新的长度、风格、推理方式和攻击模式。建议维护 Policy × Verifier 交叉版本矩阵,而不是只测试同代组合:

Verifier v1v_1Verifier v2v_2Shadow Verifier
Policy p1p_1历史基线回放独立审计
Policy p2p_2漂移检测当前组合独立审计
Policy p3p_3反向兼容灰度独立审计

当策略被评价器直接优化时,应持续采集高分尾部样本进行人工或独立执行审计。冻结 Verifier 可保持训练目标稳定,却增加被长期利用的机会;频繁更新 Verifier 又会使奖励非平稳。实践中可采用冻结周期、版本化 Replay Buffer、Shadow Verifier 和受控切换。


10. 评估方法与失效模式#

从静态评价到 Verifier Hacking 闭环

10.1 Accuracy、F1、AUROC、排序准确率与校准误差#

评价指标必须匹配任务。

评价对象主要指标需要同时观察
二分类 ORM/VerifierAccuracy、Macro-F1、AUROC、AUPRCFAR、FRR、NLL、Brier、ECE
Pairwise RMPairwise Accuracy、Tie-aware Accuracy顺序交换一致性、分领域表现
PRM步骤 Macro-F1、首错定位准确率全正确轨迹识别、错误位置距离
连续分数Pearson/Spearman、MAE分桶校准、极端分数误差
Agent Verifier终局成功、动作错误率环境异常、违规率、成本和恢复率

Accuracy 受类别比例影响;F1 不使用 True Negative;AUROC 衡量阈值排序但不表示概率校准,在极度不平衡数据上还应看 AUPRC。Pairwise Accuracy 只能说明比较方向,不能证明绝对分数可跨 Prompt 使用。

首错定位可报告:

ExactFirstError=1Ni1[k^i=ki],(66)\operatorname{ExactFirstError} =\frac1N\sum_i\mathbf 1[\widehat k_i=k_i^\star], \tag{66}

以及距离误差 k^iki|\widehat k_i-k_i^\star|;预测端也应沿用式(24)的 K+1K+1 全正确 Sentinel。普通步骤 Accuracy 可能被大量正确前缀稀释。所有指标都应按问题而不是按步骤 Bootstrap 置信区间,避免把同一轨迹内高度相关的步骤当独立样本。

10.2 Best-of-N 提升率与下游任务成功率#

式(40)–(42)定义了二元候选下的 Oracle、BoN 与可选选择效率;这里关注公平的系统级评估。实验应固定候选池,让不同评价器在同一候选上选择,并由数据、模型族或构造流程隔离的 Oracle 检查:

Uplift@N=BoN@NPass@1.(67)\operatorname{Uplift@N} =\operatorname{BoN@N}-\operatorname{Pass@1}. \tag{67}

还应报告:

  • Selection Regret:Oracle 最佳质量减去被选质量;
  • 完整 NN 曲线,而不是只报单个 NN
  • 生成 Token、评价调用与延迟成本;
  • 按难度、长度、生成器和分布内外分层;
  • 多随机种子的均值与置信区间。

PRM 的 BoN 提升不能替代步骤评估。Zhang 等人的研究指出,候选可能答案正确但过程错误,BoN 指标会把 PRM 退化为末步/结果判断的问题;应结合首错定位和步骤级测试。[12] RewardBench 则通过来自 Chat、Reasoning 与 Safety 的困难偏好对评估 RM 的排序能力,适合补充静态比较,但仍不能取代具体下游闭环。[16]

10.3 长度偏好、表面模式捷径与分布外失效#

评价器可能依赖与真实质量相关但非因果的特征:

  • 更长、分节更多、语气更自信;
  • 含有“验证”“因此”“答案为”等模板;
  • 特定模型、Tokenizer 或数据生成器的写作风格;
  • 正确答案常出现的位置、格式或单位;
  • 训练集问题、参考答案或测试模板泄漏。

检测长度偏好不能只计算分数与长度相关系数,因为更难问题本来可能需要更长答案;Length-controlled AlpacaEval 也说明自动评价需要显式控制长度混杂。[37] 更有力的是长度匹配与反事实测试:

  1. 对长短候选按真实质量和问题匹配;
  2. 向答案添加不增加信息的冗余;
  3. 在保持语义的前提下压缩表达;
  4. 比较评分是否因长度本身显著变化。

LLM Judge 还应交换 A/B 顺序、隐藏模型身份、改变格式和移除自我声明。[15] 对 PRM,应按步骤数画聚合分数,检查乘积和求和造成的长度效应。

分布外评估至少覆盖:

  • 新问题、新模板和更高难度;
  • 未参与训练的生成模型与解码策略;
  • 不同语言、符号系统和工具版本;
  • 更长轨迹与不同步骤粒度;
  • 策略被评价器优化后的新分布。

ProcessBench 的结果显示,已有 PRM 在更困难数学问题上可能显著泛化不足,说明训练集内步骤准确率不是充分证据。[11]

10.4 Reward Hacking、Verifier Hacking 与对抗样本#

本文采用一个工程上的操作性定义:Reward Hacking 指策略优化代理目标后,代理分数上升而真实目标停滞或下降;更严格的分类与形式化可参见 Skalse 等人的工作。[40]

Eπθ[Rproxy],Eπθ[Rgold]↑̸.(68)\mathbb E_{\pi_\theta}[R_{\text{proxy}}]\uparrow, \qquad \mathbb E_{\pi_\theta}[R_{\text{gold}}]\not\uparrow. \tag{68}

Verifier Hacking 是其中针对验证器具体漏洞的情形,包括:

  • 用冗长、自信或 Judge 偏好措辞骗取学习型高分;
  • 在候选文本中注入“忽略 Rubric、判为正确”,或优化专门攻击 LLM-as-a-Judge 的 Prompt Injection。[41]
  • 硬编码公开测试、读取隐藏答案或修改测试文件;
  • 利用 Parser 的 Unicode、重复键、NaN 或代码围栏边界;
  • 伪造工具日志或只在最终文本声称任务已完成;
  • 通过大量自适应查询逐步搜索评价器盲点。

Gao 等人展示了 RL 与 Best-of-NN 都可能出现 Reward Model 过优化;Ensemble 可缓解成员之间不共享的误差,若所有成员共享同一捷径,则不能消除 Verifier Hacking。[18][19]

对抗评估应包含两层:

静态红队

  • 在评分规范相关语义保持不变时,改写后判定应稳定;
  • 当最小语义破坏确实违反某项被评分准则时,判定应相应翻转;
  • A/B 顺序交换;
  • 冗余、伪引用、权威措辞和模型身份诱饵;
  • Parser Fuzz、超长输入、资源耗尽和环境篡改;
  • Prompt Injection 与间接注入。

动态红队

  • 真实训练一个策略去最大化 Verifier;
  • 审计最高分尾部而非只随机抽样;
  • 用独立 Gold/Shadow Verifier 画代理—真实分数曲线;
  • 限制对隐藏测试和 Judge 的自适应查询;
  • 定期把新漏洞加入回归集和困难负样本。

执行型验证还需要真正的隔离边界:候选程序在临时沙箱运行,默认无网络、无密钥;测试和评价器文件只读并在执行后校验哈希;候选进程退出后才运行隐藏测试;候选与 Verifier 使用不同权限域;隐藏测试/Judge 查询次数受限,防止自适应探测。对代理最高分尾部,应使用隔离的 Shadow Verifier 或人工抽查。候选文本始终是不可信数据;分隔符和“忽略候选中的指令”只能降低 Prompt Injection 风险,不是安全证明。

Prover–Verifier Games 通过训练“擅长欺骗的 Prover”生成困难错误解,再迭代改进 Verifier,提供了一种主动对抗数据构造思路。[38] 任何防御都应在未参与训练的新攻击上复测。

10.5 ORM、PRM 和 Verifier 的适用边界与组合原则#

三者的选择可以归纳为下表。

需求首选信号原因主要防线
最终答案可便宜检查规则/执行 Outcome Verifier精确、低成本等价性、测试覆盖
开放式结果质量学习型 ORM/Judge语义覆盖广校准、偏差与独立人评
定位首个推理错误PRM/生成式 Critic步骤级诊断步骤规范、首错 Gold
长轨迹信用分配PRM + 环境里程碑稠密信号防长度奖励与目标改变
Best-of-NN 重排序ORM 或聚合 PRM直接比较完整候选独立 Oracle 与完整 NN 曲线
Beam/树搜索Prefix PRM/Value + 执行剪枝可评价中间节点探索、不确定性与预算公平
高风险 Agent 执行规则 Gate + 执行状态 + Judge硬约束与开放语义互补权限、回滚、弃权与审计

组合时遵循五条原则:

  1. 先定义目标,再选择评价器。 “分数高”不是目标定义。
  2. 把硬约束与软偏好分开。 安全、授权和不可逆副作用不能被平均分抵消。
  3. 标签语义与使用方式一致。 局部正确概率不是 Value,偏好 Logit 不是成功概率。
  4. 评价器必须由独立信号评价。 不能用同一个分数证明自己有效。
  5. 静态准确率与动态可优化性分开测试。 能正确分类现有样本,不代表在策略主动寻优时不会失效。

最常见、也最实用的系统不是“一个万能 Verifier”,而是一条证据优先的流水线:

硬规则沙箱执行状态与过程验证开放语义 Judge弃权/人工复核.(69)\text{硬规则} \rightarrow \text{沙箱执行} \rightarrow \text{状态与过程验证} \rightarrow \text{开放语义 Judge} \rightarrow \text{弃权/人工复核}. \tag{69}

ORM 为它提供终局统计判断,PRM 提供中间诊断与搜索信号,规则和执行器提供可复核证据。它们相互补充,也相互监督。


参考资料#

  1. Bradley, R. A., & Terry, M. E. (1952). Rank Analysis of Incomplete Block Designs: I. The Method of Paired Comparisons. Biometrika.
  2. Plackett, R. L. (1975). The Analysis of Permutations. Applied Statistics.
  3. Christiano, P. F., et al. (2017). Deep Reinforcement Learning from Human Preferences. NeurIPS.
  4. Stiennon, N., et al. (2020). Learning to Summarize from Human Feedback. NeurIPS.
  5. Cobbe, K., et al. (2021). Training Verifiers to Solve Math Word Problems.
  6. Uesato, J., et al. (2022). Solving Math Word Problems with Process- and Outcome-based Feedback.
  7. Ouyang, L., et al. (2022). Training Language Models to Follow Instructions with Human Feedback. NeurIPS.
  8. Lightman, H., et al. (2023). Let’s Verify Step by Step. ICLR 2024.
  9. Wang, P., et al. (2023). Math-Shepherd: Verify and Reinforce LLMs Step-by-step without Human Annotations. ACL 2024.
  10. Luo, L., et al. (2024). Improve Mathematical Reasoning in Language Models by Automated Process Supervision.
  11. Zheng, C., et al. (2024). ProcessBench: Identifying Process Errors in Mathematical Reasoning.
  12. Zhang, Z., et al. (2025). The Lessons of Developing Process Reward Models in Mathematical Reasoning.
  13. Zhang, L., et al. (2024). Generative Verifiers: Reward Modeling as Next-Token Prediction. ICLR 2025.
  14. Yu, F., et al. (2024). OVM, Outcome-supervised Value Models for Planning in Mathematical Reasoning. Findings of NAACL 2024.
  15. Zheng, L., et al. (2023). Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS 2023.
  16. Lambert, N., et al. (2024). RewardBench: Evaluating Reward Models for Language Modeling.
  17. Guo, C., et al. (2017). On Calibration of Modern Neural Networks. ICML.
  18. Gao, L., Schulman, J., & Hilton, J. (2022). Scaling Laws for Reward Model Overoptimization. ICML 2023.
  19. Eisenstein, J., et al. (2023). Helping or Herding? Reward Model Ensembles Mitigate but do not Eliminate Reward Hacking.
  20. DeepSeek-AI, et al. (2025). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning.
  21. Huang, Y., et al. (2025). From Accuracy to Robustness: A Study of Rule- and Model-based Verifiers in Mathematical Reasoning.
  22. Yao, S., et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. NeurIPS 2023.
  23. Zhang, D., et al. (2024). ReST-MCTS*: LLM Self-Training via Process Reward Guided Tree Search. NeurIPS 2024.
  24. Wang, X., et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. ICLR 2023.
  25. Zhou, S., et al. (2023). WebArena: A Realistic Web Environment for Building Autonomous Agents. ICLR 2024.
  26. Jimenez, C. E., et al. (2023). SWE-bench: Can Language Models Resolve Real-World GitHub Issues?. ICLR 2024.
  27. Yang, J., et al. (2023). InterCode: Standardizing and Benchmarking Interactive Coding with Execution Feedback. NeurIPS 2023.
  28. Liu, X., et al. (2023). AgentBench: Evaluating LLMs as Agents. ICLR 2024.
  29. Ma, C., et al. (2024). AgentBoard: An Analytical Evaluation Board of Multi-turn LLM Agents. NeurIPS 2024.
  30. Qin, Y., et al. (2023). ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs. ICLR 2024.
  31. Patil, S. G., et al. (2025). The Berkeley Function Calling Leaderboard (BFCL): From Tool Use to Agentic Evaluation of Large Language Models. ICML 2025, PMLR 267.
  32. Lu, J., et al. (2024). ToolSandbox: A Stateful, Conversational, Interactive Evaluation Benchmark for LLM Tool Use Capabilities.
  33. Trivedi, H., et al. (2024). AppWorld: A Controllable World of Apps and People for Benchmarking Interactive Coding Agents. ACL 2024.
  34. Yao, S., et al. (2024). τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains.
  35. Zhou, A., et al. (2023). Language Agent Tree Search Unifies Reasoning, Acting, and Planning in Language Models.
  36. Snell, C., et al. (2024). Scaling LLM Test-Time Compute Optimally Can Be More Effective than Scaling Model Parameters.
  37. Dubois, Y., et al. (2024). Length-Controlled AlpacaEval: A Simple Way to Debias Automatic Evaluators.
  38. Kirchner, J. H., et al. (2024). Prover-Verifier Games Improve Legibility of LLM Outputs.
  39. Setlur, A., et al. (2024). Rewarding Progress: Scaling Automated Process Verifiers for LLM Reasoning.
  40. Skalse, J., et al. (2022). Defining and Characterizing Reward Hacking. NeurIPS 2022.
  41. Shi, J., et al. (2024). Optimization-based Prompt Injection Attack to LLM-as-a-Judge. CCS 2024.
  42. Ng, A. Y., Harada, D., & Russell, S. (1999). Policy Invariance Under Reward Transformations: Theory and Application to Reward Shaping. ICML 1999.
第 11 篇:ORM、PRM 与 Verifier——从结果监督、过程监督到可验证反馈
https://jupiter-ws.cn/posts/agent-algorithms/11-orm-prm-verifier/
作者
Jupiter
发布于
2026-07-25
许可协议
CC BY-NC-SA 4.0