L大语言模型从理论到实践
阅读 PDF ↗
CHAPTER 26

可验证推理训练

一个回答是否正确、生成它的步骤是否可靠,以及训练能否增加这种回答的概率,是三个需要分别回答的问题。最终数值正确可能来自偶然抵消;流畅的推导可能包含错误前提;奖励上升也可能只是策略找到了验证器的漏洞。可验证推理训练的目标,是将任务定义、反馈证据与策略更新连接起来,并明确这种连接能够支持多强的结论。

第24章《强化学习基础》已经解释回报、策略梯度与信用分配,第25章《人类反馈学习》讨论学习型奖励和离线偏好。本章集中研究程序或环境能够核验的反馈,并以组相对策略优化为例,推导从候选生成到参数更新的具体计算。训练改变模型参数,测试时计算改变一次求解投入的资源;二者可以结合,但评估时必须分别记录。

26.1可验证任务及监督对象

可验证对象

可验证奖励强化学习(Reinforcement Learning with Verifiable Rewards,RLVR)利用答案检查、程序测试、形式化证明检查或环境状态等产生奖励。可验证性始终相对于任务规范和检查器成立。程序通过有限测试,表示满足这些测试,而不自动证明对所有输入正确;一个形式证明被内核接受,仍以形式化命题准确表达原问题、所用公理与实现可信为前提。

设问题为 \(x\),模型输出为 \(y=(z,a)\),其中 \(z\) 是生成的中间步骤文本或结构化轨迹,\(a\) 是最终答案。验证器可写为

\[ V_\nu(x,y,e)\longrightarrow(v,\mathcal E), \tag{26.1}\]

其中 \(\nu\) 标记解析器与验证规则版本,\(e\) 是环境状态,\(v\) 是判定,\(\mathcal E\) 是可复核证据。判定至少应能区分通过、不通过和无法判定;超时、解析失败与逻辑错误是不同事件,即使训练中最终映射成相同标量,也应分别保存原因。

验证器(Verifier)可以是确定性规则,也可以是具有误差的学习模型。确定性只意味着在相同输入与环境下行为可复现,不意味着规则覆盖完备。数学答案检查需要定义等价关系、定义域、单位和数值容差;代码检查需要约束执行环境、测试输入、超时和副作用;工具任务需要检查真实状态转移,而非仅检查模型声称“操作成功”的文字。

本章策略推导

对固定问题 \(x\),回答由有限长度的离散词元组成,结束符及截断规则固定。除特别说明外,同组候选在给定 \(x\) 后从同一冻结行为策略独立同分布采样。验证奖励不对模型参数直接求导。重要性采样要求目标策略在行为策略支持集之外没有待估计的概率质量;涉及 KL 时,参考分布在目标分布支持集上为正。

符号 含义与形状
\(x,y_i,T_i\) 问题、第 \(i\) 条回答及其有效生成词元数。
\(G,B,V,T_{\max}\) 每题候选数、问题批量、词表大小、填充后最大长度。
\(h_{it}\) 回答第 \(t\) 个生成词元之前的可见历史 \((x,y_{i,<t})\)
\(\pi_\theta,\pi_{\mathrm{old}},\pi_{\mathrm{ref}}\) 当前策略、冻结行为策略和冻结参考策略。
\(r_i,\bar r,s_r,A_i\) 标量奖励、组均值、组标准差与组内相对优势。
\(\rho_{it},w_i\) 词元条件概率比与完整序列概率比。
\(M_{bit}\) 生成位置掩码,形状 \(B\times G\times T_{\max}\);有效位置为1。
\(\ell_{bit}\) 已选词元对数概率,与掩码同形;完整 logits 为 \(B\times G\times T_{\max}\times V\)
\(\delta,\beta,\varepsilon\) 裁剪宽度、KL 系数与标准差分母稳定项。

提示和工具观察可以影响后续生成,但通常不作为模型采样动作计入策略损失。结束符是否计入、超长回答如何截断、分布式批量如何归约,都属于目标定义;填充长度不得进入有效词元分母。

结果及过程监督

结果监督(Outcome Supervision)根据最终答案或整条完成的结果给出反馈,过程监督(Process Supervision)在中间步骤提供更细粒度标签。结果奖励模型(Outcome Reward Model,ORM)与过程奖励模型(Process Reward Model,PRM)分别学习这两类信号。过程监督研究明确区分了最终结果标签与步骤标签,不能用一种标签的性能结论替代另一种。(Lightman 等 2023)

设结构化任务为“从7开始,加5,再乘2”。可靠执行给出状态 \(7\to12\to24\)。另一候选先错误写成 \(7+5=11\),再写出答案24。只核对终点时两者都可能得分1;逐步复算时第二条的首步已失败。相反,某条过程完全有效但最终答案被格式解析器误读,也可能遭到错误拒绝。需要分别观察任务正确性和解析器行为。

过程奖励用于强化学习时,还需要把步骤标签映射到可归因的动作。设轨迹分为 \(J\) 个步骤,第 \(j\) 步结束后得到奖励 \(r_j^{(p)}\),则一种折扣回报为

\[ R_j=\sum_{u=j}^{J}\gamma^{u-j}r_u^{(p)},\qquad 0<\gamma\leq1. \tag{26.2}\]

\(j\) 步产生的动作可以影响该步及后续结果,却不能改变已经发生的前序奖励。在适当因果和基线条件下,使用后续回报有助于去掉与当前动作无关的历史噪声。将 \(R_j\) 分配给该步骤的生成词元时,还需声明步骤边界及其长度权重。把每个步骤的即时分数直接当作所有先前词元的优势,与把未来步骤分数累加为回报,并不是同一信用分配方案。过程标签本身也不是优势:它未扣除给定历史下的预期结果,不能仅通过改名获得价值函数解释。

过程标签可以判断局部算术是否合法、推理是否由前提推出,或者该前缀是否仍可完成任务。这些标签不是同一对象。特别是,局部合法步骤可能把搜索带入死路,而一个已包含错误的前缀之后也可能出现局部正确运算。标注规范必须说明是“该步局部有效”,还是“截至该步整体有效”。

若步骤 \(j\) 的监督标签为 \(u_j\in\{0,1\}\),预测有效概率为 \(q_\phi(u_j=1\mid x,z_{\leq j})\),可用二元交叉熵训练

\[ \mathcal L_{\mathrm{PRM}}=-\frac1{N_s}\sum_j [u_j\log q_\phi+(1-u_j)\log(1-q_\phi)], \tag{26.3}\]

其中 \(N_s\) 为有确定标签的步骤数;不确定标签应按既定规则屏蔽或单独建模。将各步概率相乘作为整条轨迹有效概率,需要相应条件概率解释;把独立训练的局部评分直接相乘,通常只是聚合启发式,且会引入长度效应。取最小值、平均值或累积和也各自改变选择准则。

稀疏奖励(Sparse Reward)常在回答结束后才出现。当所有生成词元共享终点奖励时,信用分配难以区分必要推导、无关叙述与错误步骤。过程反馈可以提高时间分辨率,但错误的密集反馈同样可能更快地强化不良行为。思维链(Chain of Thought,CoT)是生成文本的组织方式,不是独立网络层,也不存在由这个名称唯一确定的损失函数。输出文本不能等同于模型内部计算的完整记录。1

26.2拒绝采样及推理数据

筛选分布偏移

拒绝采样微调(Rejection Sampling Fine-Tuning,RFT)先生成候选,再保留满足接受条件的回答用于监督训练。这里讨论按验证事件筛选的条件分布,不假定它等同于任意目标分布的通用拒绝采样算法。

\(a(x,y)\in\{0,1\}\) 为接受判定,候选分布为 \(\pi(y\mid x)\),接受率为 \(Z_a(x)=\sum_y\pi(y\mid x)a(x,y)\)。当 \(Z_a(x)>0\) 时,贝叶斯公式给出

\[ \pi_{\mathrm{acc}}(y\mid x)=\frac{\pi(y\mid x)a(x,y)}{Z_a(x)}. \tag{26.4}\]

因而筛选数据只在原生成分布支持的候选中重新分配概率。策略从不生成的正确方法,不能仅靠这一次筛选出现。每个成功样本所需候选数的期望为 \(\frac{1}{Z_a(x)}\),低接受率问题会消耗更多生成与验证预算。

验证器准确性还与基线正确率共同决定保留数据质量。设候选正确概率为 \(p\),正确样本通过概率为 \(a\),错误样本通过概率为 \(b\),则

\[ \Pr(\mathrm{correct}\mid\mathrm{pass})= \frac{pa}{pa+(1-p)b}. \tag{26.5}\]

例如 \(p=0.1,a=0.9,b=0.05\),保留数据正确率仅为 \(\frac{0.09}{0.09+0.045}=\frac{2}{3}\)。即使误通过率看似不大,低基线正确率也会使错误样本占据显著比例。训练把质量提升寄托于验证器时,必须独立估计误通过和误拒绝,而不能只记录总体通过率。

经验证的蒸馏及监督区域

推理蒸馏(Reasoning Distillation)让学生学习教师产生的答案、轨迹或选择偏好。这里的蒸馏以经验证数据为载体,与对齐 logits 或隐藏状态的表示蒸馏不同。教师更大、轨迹更长、措辞更自信,均不能代替任务验证。

对目标序列 \(y=(z,a)\),令 \(m_t^{(z)}\)\(m_t^{(a)}\) 分别标记过程与答案,监督目标可写为

\[ \mathcal L=-\frac1N\sum_t [\lambda_zm_t^{(z)}+\lambda_am_t^{(a)}] \log\pi_\theta(y_t\mid x,y_{<t}), \tag{26.6}\]

这里取 \(\lambda_z,\lambda_a\ge0\),并定义 \(N=\sum_t[\lambda_zm_t^{(z)}+\lambda_am_t^{(a)}]>0\),即按加权有效目标量归一化;\(N=0\) 的样本不产生该项更新。若改用固定词元数作分母,权重还会改变整体梯度尺度,属于另一种明确的目标配置。只生成答案的样本、过程与答案共同监督、过程可见但只监督答案,是三种不同的条件与目标配置。第三种情况下过程仍影响答案预测,不能说“过程不参与训练计算”。独立样本装箱后还需保持注意力可见性边界。

数据行应保存问题来源、题族标识、教师版本、采样配置、解析器和验证器版本、答案、可执行证据、各奖励分量、接受原因与内容摘要。若每题只保留成功候选,低成功率难题更容易从数据集中消失;因此应同时保存尝试数和失败类型,按问题而非仅按保留序列统计覆盖。只保留一种“标准路径”也会缩窄解法多样性。

26.3组内相对优势

均值及方差约定

组相对策略优化(Group Relative Policy Optimization,GRPO)对同一问题生成一组回答,以组内奖励构造相对信号,省去独立价值模型的一种常见做法由 DeepSeekMath 提出。(Shao 等 2024) 省去价值模型并不消除生成、验证、参考策略和训练稳定性的成本。

本章采用分母为 \(G\) 的组内方差:

\[ \bar r=\frac1G\sum_{i=1}^G r_i,\qquad s_r^2=\frac1G\sum_i(r_i-\bar r)^2,\qquad A_i=\frac{r_i-\bar r}{s_r+\varepsilon}. \tag{26.7}\]

这里 \(G\geq2\)\(\varepsilon>0\)。组内必有 \(\sum_i A_i=0\);当 \(s_r>0\) 且忽略稳定项时,\(G^{-1}\sum_i A_i^2=1\)。若使用分母 \(G-1\) 的样本方差,标准差扩大为 \(\sqrt{\frac{G}{G-1}}\) 倍,优势缩小为 \(\sqrt{\frac{G-1}{G}}\) 倍。两种实现并不数值等价,尤其在小组中差异明显。

对全组奖励相等的情形,分子均为零,按式(26.7)得到全零优势。这类零方差组(Zero-variance Group)不提供组内排序信号;它可能全对,也可能全错。若目标含独立 KL 正则,该组仍可能有正则梯度。丢弃零方差组会改变问题采样权重,应记录其比例与丢弃规则,不能把没有奖励梯度的样本简单称为“无用问题”。

二元奖励且单候选正确率为 \(p\) 时,独立采样的零方差概率为

\[ \Pr(s_r=0)=p^G+(1-p)^G. \tag{26.8}\]

\(p\) 接近0或1时,大量组无法产生相对区分。扩大组规模可能改善混合组比例,但增加生成成本;提高温度可能增加探索,也可能降低正确率和破坏格式。应在采样成本与有效奖励组比例之间比较,而不是假定更大组总是更好。

组均值基线偏差

为了看清基线作用,先去掉标准差归一化、裁剪、长度归一化与 KL。令

\[ g_i=\nabla_\theta\log\pi_\theta(y_i\mid x),\qquad g=\mathbb E[r_i g_i], \tag{26.9}\]

并在采样策略等于当前策略处讨论期望。由概率归一化,\(\mathbb E[g_i]=0\)。给定问题后候选独立,故对 \(j\ne i\)\(\mathbb E[r_jg_i]=\mathbb E[r_j]\mathbb E[g_i]=0\)。然而组均值包含 \(r_i\) 本身,因此

\begin{align} \mathbb E[\bar r g_i] &=\frac1G\mathbb E[r_i g_i]+\frac1G\sum_{j\ne i}\mathbb E[r_jg_i]=\frac gG,\tag{26.10}\\ \mathbb E[(r_i-\bar r)g_i]&=\left(1-\frac1G\right)g. \tag{26.11}\end{align}

固定 \(G\) 时这是梯度整体缩放,方向仍相同,但不能称为未经修正的无偏估计。如果组大小变化,该缩放还会改变不同问题的相对权重。

留一基线(Leave-one-out Baseline,LOO Baseline)定义为 \(b_{-i}=(G-1)^{-1}\sum_{j\ne i}r_j\)。它在条件独立假设下与第 \(i\) 个动作独立,满足

\[ \mathbb E[(r_i-b_{-i})g_i]=g,\qquad r_i-b_{-i}=\frac G{G-1}(r_i-\bar r). \tag{26.12}\]

但重新除以由整组奖励决定的 \(s_r\) 后,分母与当前样本相关,前述无偏推导不再直接成立。标准化还把同样绝对奖励差映射为不同幅度,改变问题之间的训练权重。不能用“基线不改变期望”一句话替代对样本依赖和分母的检查。

例如 \(G=2\) 且奖励不同时,忽略 \(\varepsilon\) 后优势总为 \(+1,-1\),无论奖励差为1还是0.001。这个变换保留顺序,却抹去了差值大小。因此标准化是优化设计选择,不是恢复真实价值函数的证明。关于长度和奖励标准差归一化所引入的偏置,已有专门分析与变体研究。(Liu 等 2025)

26.4概率比、裁剪及 KL

序列比及词元比

自回归分解给出

\[ \pi_\theta(y_i\mid x)=\prod_{t=1}^{T_i}\pi_\theta(y_{it}\mid h_{it}). \tag{26.13}\]

在同一停止规则和支持集条件下,完整序列的重要性比为

\[ w_i=\frac{\pi_\theta(y_i\mid x)}{\pi_{\mathrm{old}}(y_i\mid x)} =\prod_t\rho_{it},\qquad \rho_{it}=\exp(\ell_{\theta,it}-\ell_{\mathrm{old},it}). \tag{26.14}\]

对固定函数 \(f(y)\),才有完整分布变换恒等式

\[ \mathbb E_{y\sim\pi_\theta}f(y) =\mathbb E_{y\sim\pi_{\mathrm{old}}}[w(y)f(y)]. \tag{26.15}\]

单个 \(\rho_{it}\) 仅修正给定历史下的动作分布,不修正此前历史的分布;将多个词元比取平均不能替代它们的乘积。

序列比随长度累积,可能具有很大方差。词元级近端目标把旧策略采样的历史作为局部优化条件,是有意构造的代理目标,而不是无条件等价的序列重要性采样。即使采用完整 \(w_i\),组内归一化优势依赖其他候选,变换整个组分布还需要处理其他样本;不能将其与固定奖励的单序列恒等式混为一谈。

还需区分模型原始 softmax 与实际生成策略。温度缩放改变条件概率,截断采样改变支持集。若生成使用温度或核采样,却用另一分布的对数概率充当行为概率,式(26.14)就不再是实际采样比。特别是行为分布删除的词元在目标分布中仍有正概率时,完整无偏重加权无法从已采样数据恢复那些位置。实现应明确自己优化的策略、行为策略和允许的近似。

裁剪目标的分段结构

定义 \(\operatorname{clip}(u,l,h)=\min(\max(u,l),h)\),取 \(0<\delta<1\)。一种按回答平均的 GRPO 代理目标为

\[ J(\theta)=\mathbb E\frac1G\sum_i\frac1{T_i}\sum_t \left[L_{it}^{\mathrm{clip}}-\beta K_{it}\right], \tag{26.16}\]

其中

\[ L_{it}^{\mathrm{clip}}= \min\left(\rho_{it}A_i, \operatorname{clip}(\rho_{it},1-\delta,1+\delta)A_i\right). \tag{26.17}\]

优势、行为概率与参考策略参数在更新中冻结。实际最小化的损失为 \(\mathcal L=-J\)。当 \(A_i>0\) 时,

\[ L_{it}^{\mathrm{clip}}=A_i\min(\rho_{it},1+\delta); \tag{26.18}\]

\(A_i<0\) 时,

\[ L_{it}^{\mathrm{clip}}=A_i\max(\rho_{it},1-\delta). \tag{26.19}\]

正优势动作的概率比过大时,继续增大不再提高该项;负优势动作的概率比过小时,继续减小不再提高该项。相反方向仍保留惩罚。裁剪不是把所有概率比强制限制在区间,也不保证更新后实际 KL 一定小于某个阈值。

在未裁剪且非边界的位置,对已选词元对数概率的局部导数为 \(A_i\rho_{it}\),再乘相应归约权重。其他参数仍通过 softmax 和共享网络耦合,因此某位置被裁剪不意味着其输出概率在整次参数更新中绝对不变。

KL 值及采样估计条件

在固定历史 \(h\) 下,令 \(p(v)=\pi_\theta(v\mid h)\)\(q(v)=\pi_{\mathrm{ref}}(v\mid h)\)。精确的正向 KL 为

\[ D_{\mathrm{KL}}(p\Vert q)=\sum_v p(v)\log\frac{p(v)}{q(v)}. \tag{26.20}\]

它需要词表求和。DeepSeekMath 使用了下述非负采样形式。(Shao 等 2024)\(u(v)=\frac{q(v)}{p(v)}\),考虑单样本量

\[ \kappa(v)=u(v)-1-\log u(v). \tag{26.21}\]

\(\log u\leq u-1\) 可知 \(\kappa(v)\geq0\)。若 \(v\sim p\) 且两分布具有适当共同支持,

\begin{align} \mathbb E_p\kappa &=\sum_vp(v)\frac{q(v)}{p(v)}-1 +\sum_vp(v)\log\frac{p(v)}{q(v)}\tag{26.22}\\ &=D_{\mathrm{KL}}(p\Vert q). \tag{26.23}\end{align}

这就是该非负估计式的期望依据;采样来自当前分布是关键条件。若实际词元来自冻结行为分布 \(b\),通常 \(\mathbb E_b\kappa\ne D_{\mathrm{KL}}(p\Vert q)\)。固定历史下,可在支持集充分时写为 \(\mathbb E_b[(\frac{p}{b})\kappa]\);旧历史分布与当前历史分布的差异仍未因此消失。

数值上令 \(p=(0.6,0.4)\)\(q=(0.5,0.5)\),则两种词元的 \(\kappa\) 分别约为0.015655与0.026856。当前分布加权得到 \(0.020136\),等于精确 KL;若按行为分布 \((0.5,0.5)\) 平均,则约为0.021256,已经不同。

还必须区分无偏的数值估计与无偏的梯度。因为采样分布随参数变化,

\[ \nabla_\theta\mathbb E_{v\sim p_\theta}\kappa_\theta(v) =\mathbb E_p[\nabla_\theta\kappa_\theta(v) +\kappa_\theta(v)\nabla_\theta\log p_\theta(v)]. \tag{26.24}\]

对冻结采样词元只求 \(\nabla\kappa\),会遗漏第二项。若使用行为分布下的 \((\frac{p}{b})\kappa\) 并对概率比一并求导,固定历史处才可恢复对应完整期望的梯度。实际训练可以有意采用局部近似,但必须说明采样分布、停止梯度位置和更新轮数,不能把“非负 KL 估计器”直接称为精确 KL 正则的所有实现。

例23.1

令同一问题生成四条回答,奖励为 \((1,1,0,0)\),有效长度为 \((2,4,2,4)\)。这里奖励为构造输入,不对应真实模型测量。组均值 \(\bar r=0.5\),分母为4的方差为

\[ s_r^2=\frac{4\times0.5^2}{4}=0.25,\qquad s_r=0.5. \tag{26.25}\]

忽略仅用于稳定的 \(\varepsilon\),优势为 \((1,1,-1,-1)\)。若改用样本标准差 \(\sqrt{\frac{1}{3}}\),优势则为 \(\pm\frac{\sqrt3}{2}\)。留一基线对应未标准化优势为 \((\frac{2}{3},\frac{2}{3},-\frac{2}{3},-\frac{2}{3})\),与当前标准化优势又是不同对象。

\(\delta=0.2\),暂令 \(\beta=0\) 以单独展示裁剪。各生成位置的概率比和结果如下:

回答 优势 词元概率比 裁剪项平均
1 \(+1\) \((1.3,0.9)\) \(\frac{1.2+0.9}{2}=1.05\)
2 \(+1\) \((1.1,1.1,1.1,1.1)\) \(1.1\)
3 \(-1\) \((0.7,1.1)\) \(\frac{-0.8-1.1}{2}=-0.95\)
4 \(-1\) \((0.9,0.9,0.9,0.9)\) \(-0.9\)

因此按回答平均的目标为

\[ J=\frac{1.05+1.1-0.95-0.9}{4}=0.075, \qquad\mathcal L=-0.075. \tag{26.26}\]

第一条的首词元因正优势且比值超过1.2,该奖励项对其已选对数概率的局部导数为零;第二个词元导数为 \(\frac{0.9}{4\cdot2}=0.1125\)。第三条首词元因负优势且比值低于0.8,也落在常数分支;第二个词元的导数为 \(-\frac{1.1}{4\cdot2}=-0.1375\)。第二条每个位置导数为 \(\frac{1.1}{16}=0.06875\),第四条每个位置为 \(-\frac{0.9}{16}=-0.05625\)。最小化损失时这些导数再取负号。

四条完整序列比却分别是

\[ (1.3\cdot0.9,\ 1.1^4,\ 0.7\cdot1.1,\ 0.9^4) =(1.17,1.4641,0.77,0.6561). \tag{26.27}\]

它们不能由表中平均值替代。若改为对全部12个有效词元平均,裁剪项总和为 \(2.1+4.4-1.9-3.6=1\),目标为 \(\frac{1}{12}\);若统一除以 \(G T_{\max}=16\),目标为 \(\frac{1}{16}\)。三个目标共享同一候选和奖励,却给出不同的权重与梯度尺度。

再加入相同历史条件下的 KL 后,每个有效位置需按选定估计方式计算 \(K_{it}\),然后乘 \(\beta\) 与相同归约权重;不能把刚才的二元词表 KL 数值无条件复用到全部位置,因为每个历史的策略分布不同。将任务奖励、裁剪和正则分别计算,能够防止一个最终标量掩盖实现差异。

26.5长度、探索及奖励投机

长度归一化偏差

按回答平均、按整个批量有效词元平均与使用固定分母,分别对应

\[ \frac1G\sum_i\frac1{T_i}\sum_t L_{it},\qquad \frac{\sum_{i,t}L_{it}}{\sum_iT_i},\qquad \frac1{GT_0}\sum_{i,t}L_{it}, \tag{26.28}\]

其中 \(T_0\) 是预先固定的常数。第一个目标让每条回答的归约总权重相等,但同一优势对应的单词元权重与长度成反比;第二个目标按实际词元数汇总,随机分母还随批次变化;第三个目标避免以样本长度作分母,但需要独立控制梯度尺度和生成预算。

在纯序列终点回报 \(J=\mathbb E[r(y)]\) 的策略梯度中,\(\nabla\log\pi(y)=\sum_t\nabla\log\pi(y_t\mid h_t)\),没有自动出现 \(\frac{1}{T_i}\)。引入长度平均因此改变了相对于该原始目标的样本权重。对于相同负优势,长回答的每词元负向权重变小,可能造成不期望的长度动力学;实际变化还取决于停止符、奖励和参数耦合,不能仅由一个分母预测所有训练结果。

奖励中显式加入成本,例如 \(r'=r_{\mathrm{task}}-\lambda T_i\),是在定义新的目标。它可能控制冗长,也可能使模型过早停止必要求解。相比事后含糊地说“鼓励简洁”,应明确总生成上限、截断奖励、超时处理和成本权重;高分但缺少最终答案的超长样本不能悄悄从统计中消失。

奖励投机及分布变化

奖励投机(Reward Hacking)指策略通过满足评分规则而偏离实际任务目标。答案解析器只提取最后一个数字时,模型可能输出多个互相矛盾的答案;测试集覆盖不足时,程序可能针对少数测试硬编码;过程奖励若偏好特定连接词,模型可能增加无效步骤;工具奖励若只检查返回文本,策略可能学会伪造成功声明。

一种分层设计是先检查必要约束,再对有效候选评分:

\[ r(y)=\begin{cases} r_{\mathrm{invalid}}, & \text{格式或执行契约不满足},\\ r_{\mathrm{task}}(y)+\lambda_p r_{\mathrm{process}}(y)-\lambda_c c(y), & \text{必要约束满足}. \end{cases} \tag{26.29}\]

但约束本身也可能不完备,线性权重也不能把不相容质量维度变成真值。安全或权限要求若是不可违反条件,应在环境执行边界阻断,不依赖期望奖励中的小罚分阻止越界。

探索不足(Insufficient Exploration)会使策略反复产生相似候选,表面组规模较大,实际解法覆盖很小。应同时观察奖励分量、零方差组比例、候选重复率、熵、回答长度和独立正确率。训练奖励持续上升而独立正确率不变,可能来自验证漏洞、问题难度分布变化或选择性丢弃失败组。

生成和更新分离时,排队中的候选可能来自多个旧策略。策略滞后(Policy Lag)扩大后,词元比偏离1,裁剪比例与重要性权重方差可能上升。解决问题需要记录真实行为版本、限制样本陈旧程度和更新复用次数,而不只是增大裁剪区间。奖励、解析器或环境版本改变后,相同文本的分数也可能改变,因此旧分数与新规则不可无条件混用。

可验证推理训练的数据与策略循环。独立评估不向训练回流隐藏答案。
图 26.1 可验证推理训练的数据与策略循环。独立评估不向训练回流隐藏答案。

算法26.1 版本化组相对策略更新

输入:问题集、初始策略、冻结参考策略、验证器版本、\(G\)、生成预算、裁剪宽度、KL 方案与归约规则。输出:候选策略及与之对应的训练证据。状态:当前参数、行为版本、待处理候选和优化器状态。

  1. 固定一轮行为策略及其实际采样分布,对每题独立生成 \(G\) 条候选,保存有效词元、停止原因、行为对数概率与版本。

  2. 在隔离环境中验证候选,保存奖励分量和无法判定原因;不得把验证器异常自动解释为候选正确。

  3. 按问题计算均值与声明的方差。零方差组按预定策略处理,保留统计。将奖励、优势和行为概率从本次自动微分图中分离。

  4. 对当前策略重新计算已生成位置的条件概率,构造词元比、分段裁剪项和选定的 KL 项。以有效掩码及统一归约口径聚合,执行有限次更新。

  5. 记录裁剪比例、概率比、长度、奖励、KL 和吞吐;样本超过允许陈旧程度或更新预算后不再复用。保存策略及验证器、模板、采样配置的版本关系。

  6. 按预定训练预算结束,并在隔离题集上比较冻结基线和候选策略。若继续下一轮,发布新的行为版本并重新采样。

不变量:同组问题相同;概率分母对应实际行为版本;填充和环境观察不冒充生成动作;评估答案不进入训练奖励输入;失败与超时有显式记录。

26.6测试时计算及采样指标

推理强度及硬预算

推理强度(Reasoning Effort)是推理模型在一次请求中采用多少内部推理工作的离散控制量。它通常以低、中、高等档位暴露,但档位集合、默认值和实现含义由模型及接口版本决定;同名档位不能跨模型换算为相同词元数、浮点操作数或思考深度。提高档位常会增加推理词元、延迟与费用,也可能改善复杂任务的成功率,但不是逐题单调改进的保证。

推理强度需要与三个容易混淆的控制量分开。输出上限是硬约束:以OpenAI Responses API为例,max_output_tokens同时约束内部推理词元和可见输出词元;可见答案的详略由输出详细度等参数控制;温度、核采样等参数控制采样分布。推理强度也不等于候选数、搜索深度、工具调用次数或可见思维链。闭源接口即使报告推理词元,也通常不会返回完整内部轨迹;开源模型是否暴露轨迹则取决于模型与模板,不能由参数名称推断。

接口字段同样不是通用协议。OpenAI在2026年的Responses API中使用reasoning.effort,Chat Completions使用reasoning_effort;具体模型支持的档位仍须查阅该模型版本的能力说明(OpenAI 2026)。例如Responses请求可以表达为:

{
  "model": "<pinned-model>",
  "input": "<task>",
  "reasoning": {"effort": "low"},
  "max_output_tokens": 4096
}

这里的low是服务方解释的策略档位,并不承诺固定生成多少推理词元。若模型不支持该值,客户端或网关应得到明确错误,不能把静默回退后的结果记作低档实验。

评估推理强度时,应固定模型快照、提示模板、工具、采样设置、输出上限和题集,只改变档位。每个档位重复运行,至少记录最终正确率、可验证完成率、可见输出词元、推理词元(若接口提供)、首词元与端到端延迟、费用、超时和截断原因。若高档位在输出上限内消耗更多内部词元,可见答案反而可能更早截断;这属于预算竞争,需要与能力不足区分。

候选覆盖及最终选择

测试时计算(Test-time Compute)是在参数固定时,为单次求解投入更多生成、验证或搜索。延长单条轨迹、生成多候选、调用工具与扩展搜索树改变的计算路径不同。训练使单候选正确率提高,与测试时增加候选数提高覆盖概率,应在相同评估预算下分别比较。

自一致性(Self-Consistency)对多条生成轨迹的答案进行聚合,常以规范化后的多数答案作为输出。(Wang 等 2022) 多候选择优(Best-of-N)则依赖评分器或验证器选择候选。多数票可以集中到共同错误上,择优评分也可能偏爱错误答案。因此候选集中“存在正确解”与系统“返回正确解”是不同指标。

若单候选正确概率为 \(p\),固定策略独立生成 \(k\) 条,至少一条正确的概率为

\[ P_k=1-(1-p)^k,\qquad P_{k+1}-P_k=p(1-p)^k. \tag{26.30}\]

式中递减的是理想独立覆盖的边际增益。共享搜索路径、去重采样、束搜索与自适应提示通常不符合该独立模型。实际输出还需要选择器识别正确解;没有可用选择器时,覆盖率不能作为服务返回准确率。

若每题成功率为 \(p_x\),题集平均覆盖率是 \(\mathbb E_x[1-(1-p_x)^k]\),一般不等于 \(1-(1-\mathbb E_xp_x)^k\)。难度异质性使先平均 pass@1 再套公式产生另一层错误。应先逐题估计,再按预先定义的问题权重汇总。

pass@k 估计的组合推导

\(k\) 次采样通过率(Pass at k,pass@k)通常衡量 \(k\) 条独立候选中至少一条通过任务检查的概率。代码模型评测提出从每题 \(n\geq k\) 条候选构造组合估计器。(Chen 等 2021) 设其中 \(c\) 条通过,从已有 \(n\) 条中均匀无放回取 \(k\) 条,全部失败的子集数为 \(\binom{n-c}{k}\),总子集数为 \(\binom nk\),因此

\[ \widehat{\mathrm{pass@}k}=1-\frac{\binom{n-c}{k}}{\binom nk}. \tag{26.31}\]

\(n-c<k\) 时失败组合数为零;当 \(c=0\) 时估计为零。无放回选择是估计器内部的组合操作,不表示原始模型必须无放回生成。

说明其无偏性的一种方法是对所有大小为 \(k\) 的索引子集定义指示量 \(I_S\),表示该子集中全部候选失败。式(26.31)中的失败比例就是这些指示量的平均。如果原始 \(n\) 条在固定问题与策略下独立同分布,那么任意固定子集都有 \(\mathbb E[I_S]=(1-p)^k\),故

\[ \mathbb E\left[\frac{1}{\binom nk}\sum_{|S|=k}I_S\right]=(1-p)^k. \tag{26.32}\]

线性期望不要求不同子集彼此独立,但要求原始抽样契约成立。这一区别解释了为何组合估计有效,而任意相关搜索结果不能直接套用同样的无偏结论。

例如 \(n=10,c=3,k=2\),估计为

\[ 1-\frac{\binom72}{\binom{10}2}=1-\frac{21}{45}=\frac8{15}\approx0.5333. \tag{26.33}\]

直接将 \(\frac{c}{n}=0.3\) 代入 \(1-(1-p)^2\) 会得到0.51,两者不同。后者在有限样本下具有插值偏差。计算大组合数时可使用

\[ \frac{\binom{n-c}{k}}{\binom nk} =\prod_{j=0}^{k-1}\frac{n-c-j}{n-j} \tag{26.34}\]

或其对数形式,避免显式阶乘。

指标还必须声明验证器、生成温度、词元上限和工具预算。若在首次成功后停止采样,最终 \(n\) 受结果影响,就不再是前述固定样本数设计。相关采样可以报告固定算法与固定预算下的经验覆盖率,但应按题或独立运行计算不确定性,不把每条相关轨迹视为独立样本。pass@k也不等于验证器择优准确率,更不是执行任意 \(k\) 次就能保证成功。

统一计算预算

设第 \(i\) 个候选生成成本为 \(c_{g,i}\),验证成本为 \(c_{v,i}\),工具成本为 \(c_{u,i}\),总预算 \(C\) 应满足

\[ \sum_{i=1}^{k}(c_{g,i}+c_{v,i}+c_{u,i})\leq C. \tag{26.35}\]

成本可以计词元、设备秒或货币,但同一约束中必须使用可比较单位;延迟、峰值内存和调用次数通常还需单独限制。候选并行生成可降低墙钟延迟,却不会消除总设备工作量。验证器较昂贵时,增加候选的成本也不能只按生成词元计。

测试时计算以剩余预算约束继续生成与验证,输出质量由选择结果而非候选数量决定。
图 26.2 测试时计算以剩余预算约束继续生成与验证,输出质量由选择结果而非候选数量决定。

自适应预算可以在不确定时追加候选,但必须避免把隐藏测试答案作为停止依据。通过验证器后提前结束是实际系统的一种策略,应直接测量该策略的正确率、耗时和失败率;不能把其变长采样日志再解释为固定 \(k\) 的无偏评测。单位正确答案成本可按总消耗除以正确返回数统计,同时报告无法回答和超时的比例。

26.7工具任务中的轨迹及信用分配

(选修) 工具任务将文本生成扩展为环境交互。设历史为 \(h_t\),策略选择动作 \(a_t\),环境按 \(P(e_{t+1}\mid e_t,a_t)\) 转移并返回观察 \(o_{t+1}\)。完整交互轨迹概率包含策略与环境两部分:

\[ p_\theta(\tau)=p(e_0)\prod_t \pi_\theta(a_t\mid h_t)P(e_{t+1},o_{t+1}\mid e_t,a_t). \tag{26.36}\]

当环境转移不依赖待训练参数时,对数概率梯度只保留策略动作项:

\[ \nabla_\theta\log p_\theta(\tau)=\sum_t\nabla_\theta\log\pi_\theta(a_t\mid h_t). \tag{26.37}\]

工具输出作为观察影响后续动作,但不是由策略采样产生的动作;直接把工具返回文本加入策略损失,会错误地归因模型控制不了的内容。

如果终点才有任务奖励,早期检索、计算和修正动作共享稀疏反馈。过程奖励可以根据状态约束、有效工具调用或可核验子目标提供信号,但“调用越多得分越高”会鼓励无效调用;“每步执行成功”也不能保证完成用户目标。动作成本与必要权限应分开建模,环境需要保证策略无法自行扩大授权范围。

沙箱验证(Sandbox Verification)限定工具执行的文件、网络、CPU、内存、时间与副作用范围。训练中的大量探索不能直接作用于真实业务系统;应使用具有明确状态和转移规则的受控任务环境。离线轨迹评估适合分析已有行为,但未覆盖动作的环境后果无法由日志凭空推断。真实系统验证需在授权范围内逐步建立证据,不能从离线奖励上升直接推定部署可用。

环境非确定性、工具版本变化、检索内容变化和限流都会改变轨迹分布。同一动作在不同时间失败,不一定由策略质量导致。记录应包含初始状态、工具版本、请求参数、观察、错误类别、终止原因和奖励版本,以便区分策略失败、环境失败和验证器失败。

26.8数据污染及独立评估

测试污染(Test Contamination)不仅是训练集出现完全相同题目,还包括答案、题目改写、同模板实例、教师生成时可见的测试材料,以及反复根据测试结果调参。只做字符串去重不能证明题族独立;只把测试文件放在另一个目录也不能阻断奖励服务读取答案。

应先按题源、生成模板或任务族划分,再生成候选、标注过程和构建蒸馏数据。验证器开发集与最终隐藏评测集也应分开,避免反复修规则实际上适配了测试答案。教师版本和已知训练来源需记录;当无法排除教师接触过测试题时,应明确证据边界,并使用新的、独立构造或时间后移任务补充评估。2

训练时保留原始奖励及其分量,评估时使用独立任务标准。推荐同时报告答案正确率、过程首错定位、解析失败、无法判定、零方差组比例、长度分布、pass@k、选择器返回正确率与总成本。PRM 的分类准确率或排序指标描述其标签任务,不能自动替代最终求解准确率;自然语言轨迹与参考文本的相似度也不适合作为逻辑正确性的唯一标准。

同一基座经训练后 pass@1提高,可以支持固定单样本预算下的行为改善;只在更大 \(k\) 下提升,则还需分析采样覆盖与选择机制;奖励提升但独立指标不升,则不能宣称推理能力提升。按任务、难度、语言、长度和工具类型分层,保留分子、分母与不确定性,才能判断平均变化是否掩盖了某类任务退化。

可验证奖励的证据边界

奖励定义优化方向,验证器定义可检查范围,采样策略决定能发现哪些候选,归约与概率比决定如何更新参数。只有将这四项明确分开,并以独立问题和固定预算评估最终返回结果,才能判断训练是否改善了预期推理任务。


  1. 本章的“轨迹”在纯文本场景指可见生成序列,在工具场景还包含动作与观察。公开可复算的证明或执行证据可以支持审计,但自然语言中间说明本身不能保证忠实反映内部计算。↩︎

  2. 去污染措施提供的是降低污染风险的证据,不是未知预训练语料完全不含测试材料的证明。报告应区分已检查的重叠方式与无法观察的来源。↩︎

WORKBOOK / 习题

配套习题与解析

先独立作答,再展开参考解析。选修题保留原书标记。

习题 26.1

为算术等价、代码单元测试和数据库工具任务分别定义“通过”的范围,说明各自仍无法证明什么。

展开参考解析

算术符号等价只证明在声明定义域和假设下式子相同,不能证明建模符合题意;代码单测通过只覆盖给定输入/环境;数据库工具成功只说明语句执行或事务提交,仍要验证目标行、授权范围和最终业务不变量。三者都需区分执行器异常与候选失败。

习题 26.2

设基线正确率为0.02,正确通过率为0.95,希望筛选后正确率至少0.9。求错误通过率的最大允许值。

展开参考解析

筛后纯度为 \(\frac{pr}{[pr+(1-p)f]}\)。要求至少0.9得 \(f\le \frac{pr(1-0.9)}{0.9(1-p)}=\frac{0.0019}{0.882}\approx0.0021542\),约0.2154%。低基率下即便正确通过率很高,少量误收也会主导保留集;条件率必须在目标难度分布校准。

习题 26.3

对奖励 \((0,0,0,1)\),分别使用分母 \(G\)\(G-1\) 计算标准化优势。再计算留一基线对应的未标准化优势,解释三种结果的区别。

展开参考解析

均值为\(\frac{1}{4}\),平方偏差和为\(\frac{3}{4}\)。总体标准差为\(\frac{\sqrt3}{4}\),样本标准差为\(\frac{1}{2}\),三种优势分别为 \[\begin{aligned} A_{\mathrm{pop}}&=(-\frac{1}{\sqrt3},-\frac{1}{\sqrt3},-\frac{1}{\sqrt3},\sqrt3),\\ A_{\mathrm{sample}}&=(-\frac{1}{2},-\frac{1}{2},-\frac{1}{2},\frac{3}{2}),\\ A_{\mathrm{LOO}}&=(-\frac{1}{3},-\frac{1}{3},-\frac{1}{3},1). \end{aligned}\] 前两者采用不同的随机尺度归一化;第三者使用留一基线且未标准化,不应互称同一优势。

习题 26.4

在二元奖励 \(p=0.05\) 时,求 \(G=2,8,32\) 的混合奖励组概率表达式。如何把该指标与生成成本联合比较?

展开参考解析

独立二元奖励下概率为 \(1-p^G-(1-p)^G\)。p=.05时G=2为.095;G=8约.33657957;G=32约.80628852。可比较每单位生成词元的非零方差组数及最终质量,而非只最大化混合组概率;大G生成代价近线性增加,奖励相关时该式失效。

习题 26.5

重现式26.11,说明哪些步骤使用了条件独立性。若候选通过共享搜索树产生,原推导还能否直接成立?

展开参考解析

\(g_i=\nabla\log\pi(y_i|x)\),条件于x时均值零。展开 \(\mathbb E[(r_i-G^{-1}\sum_jr_j)g_i]\),自身项留下 \((1-\frac{1}{G})\mathbb E[r_ig_i]\),j不等i项需候选条件独立才消失。共享搜索树导致奖励与另一候选得分相关,不能直接沿用;需按联合采样分布重新推导或用独立对照。

习题 26.6

对两词元回答,概率比分别为1.5与0.5,求序列比。构造另一个平均词元比相同但序列比不同的回答。

展开参考解析

原序列比为 \(1.5\times0.5=0.75\),平均词元比为1。另一回答取 \((1,1)\),平均仍1但序列比1。乘积与平均捕获不同对象,序列长时差异会累积。

习题 26.7

在完整组内例题中,将裁剪宽度改为0.1,重新计算目标和每个位置的局部梯度,明确处于边界时采用的次梯度约定。

展开参考解析

按回答平均、beta=0,四条平均项为1、1.1、-1、-.9,故J=.05,损失-.05。约定在饱和边界对比值取平坦分支导数0:第一条局部log概率导数 \((0,\frac{.9}{8})=(0,.1125)\);第二条比1.1都在上边界,导数全0;第三条为 \((0,-\frac{1.1}{8})=(0,-.1375)\);第四条比.9处于负优势下边界,导数全0。最小化损失再反号。边界可取其他合法次梯度,实现需明示;J数值不因此改变。

习题 26.8

从式26.21证明非负性及当前策略采样下的期望。说明把行为样本当作当前样本为何会改变估计。

展开参考解析

\(x=\frac{\pi_{ref}(a|h)}{\pi(a|h)}>0\),由 \(\log x\le x-1\)\(\kappa=x-1-\log x\ge0\)。在当前pi完整支持上采样,\(\mathbb E_\pi(x-1)=0\),故期望为 \(\mathrm{KL}(\pi\|\pi_{ref})\)。行为mu样本若不做校正,此归一恒等式不成立;共享支持或绝对连续性不足时须另外处理零概率。

习题 26.9

比较按回答、按批量词元及固定分母归约。对相同负优势的长度2与长度20回答,分析每词元权重及其可能引入的训练行为。

展开参考解析

按回答平均时同一负优势在长度2中的每位置系数为 \(\frac{A}{2G}\),长度20为 \(\frac{A}{20G}\),长回答每位置惩罚缩小10倍;按批量词元平均为 \(\frac{A}{\sum_iT_i}\),两者每位置一致;固定分母为 \(\frac{A}{GT_0}\),也一致但总体尺度不同。还要乘实际概率比及裁剪分支;这些局部系数提示长度动力学,不能单独证明最终长度必然增长。

习题 26.10

\(n=20,c=4\),计算 \(k=1,2,5\) 的 pass@k 组合估计。说明为什么该指标不等于多数投票返回准确率。

展开参考解析

\(k=1\)\(\frac{4}{20}\)=.2;k=2为 \(1-\frac{\binom{16}2}{\binom{20}2}=\frac{7}{19}\approx.368421\);k=5为 \(1-\frac{4368}{15504}=\frac{232}{323}\approx.718266\)。它估计候选中至少一条成功,产品多数投票仍需正确答案获得最多票;错误答案也可能聚集,故不能当投票返回准确率。

习题 26.11选修

若每题在第一次通过后停止生成,设计直接评估该服务策略的记录方式。说明为何不能无条件把变长样本数代入固定样本组合估计并宣称无偏。

展开参考解析

以问题为单位记录全部尝试顺序、候选、验证结果、实际消耗、停止原因、最终返回及独立真值。直接统计策略返回成功率、成本分布和超时率。样本数取决于先前成功,固定n的组合无偏性前提已改变;可以直接评估服务策略,不能把该日志当作预先固定n的独立样本池。

习题 26.12选修

一个验证器奖励所有“工具执行成功”的轨迹。设计一种完成了操作但未完成任务的反例,并提出可核验的终点状态条件。

展开参考解析

任务要求“仅取消指定未发货订单”,工具却成功取消了另一订单,或只成功查询而未取消。终点验证需检查目标订单ID、原状态、授权主体、事务提交及指定状态变化,并确认无额外行被改。奖励所有成功调用会鼓励无效操作,应以受控的目标状态和副作用约束给奖励。

习题 26.13

建立按题族隔离的推理蒸馏数据流程,分别指出教师、验证器调参和自适应测试可能引入污染的位置。

展开参考解析

先按原题来源/模板族划分,再生成教师轨迹;训练生成不能访问封存测试答案。验证器阈值在独立开发集确定,保留版本;教师检索和知识库也需查污染。测试只用于冻结方案,若按测试失败继续合成数据或改停止策略,应另设新测试集;字符串去重不足以覆盖改写与同模板题。

习题 26.14

训练奖励升高、回答变长、独立正确率不变。提出可区分长度偏置、验证器利用和问题分布变化的证据方案。

展开参考解析

固定问题分布重评新旧策略;固定候选做长度保持/事实保持改写,测评分器对冗长的响应;用独立执行或人工真值核对高奖励失败例。报告长度、分项奖励、每题难度、独立正确率和生成预算。仅问题混合改变时用旧混合重加权作对照;评分漏洞需更新验证器并重新验收,不以更高平均奖励作解释。

REFERENCES

参考文献

Chen, Mark, Jerry Tworek, Heewoo Jun, Qiming Yuan, 等. 2021. 《Evaluating Large Language Models Trained on Code》. 2021年7月7日. https://arxiv.org/abs/2107.03374.
Lightman, Hunter, Vineet Kosaraju, Yura Burda, Harri Edwards, Bowen Baker, Teddy Lee, Jan Leike, John Schulman, Ilya Sutskever, 和 Karl Cobbe. 2023. 《Let’s Verify Step by Step》. 2023年5月31日. https://arxiv.org/abs/2305.20050.
Liu, Zichen, Changyu Chen, Wenjun Li, Penghui Qi, Tianyu Pang, Chao Du, Wee Sun Lee, 和 Min Lin. 2025. 《Understanding R1-Zero-Like Training: A Critical Perspective》. 2025年3月26日. https://arxiv.org/abs/2503.20783.
OpenAI. 2026. 《Model guidance》. OpenAI API Documentation. 2026年. https://developers.openai.com/api/docs/guides/latest-model.
Shao, Zhihong, Peiyi Wang, Qihao Zhu, Runxin Xu, Junxiao Song, Xiao Bi, Haowei Zhang, 等. 2024. 《DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models》. 2024年2月5日. https://arxiv.org/abs/2402.03300.
Wang, Xuezhi, Jason Wei, Dale Schuurmans, Quoc Le, Ed Chi, Sharan Narang, Aakanksha Chowdhery, 和 Denny Zhou. 2022. 《Self-Consistency Improves Chain of Thought Reasoning in Language Models》. 2022年3月21日. https://arxiv.org/abs/2203.11171.

搜索全书

搜索全书正文、习题与解析