第 36 章 解题推理能力怎样训练:监督、RLVR 与核验器
36.1 有些答案不必靠投票判断
Section titled “36.1 有些答案不必靠投票判断”两晚住宿分别花了 680 元、820 元。虚构规则规定:每晚最多报销 750 元,某晚没用完的额度不能挪给另一晚。总共可以报销多少?这道题不需要投票选一个更有说服力的回答,已提供的规则就能确定结果。
这里给贯穿全书的住宿案例增加了一条规则,并不声称真实单位采用它。750 元限额直接写在题目中,因此考的是怎样应用规则,不是能否记住最新制度。如果题目没给限额,光靠计算也补不出这个事实。
第 35 章使用偏好标签。本章改用答案可以检查的任务,同时保留第 32 章对固定评测契约的要求。这里的 reasoning 指解题推理,即把已知信息和规则结合起来求得答案;inference 指模型运行。训练解题行为可能改变参数,运行时检查一个回答则不一定改变参数。
36.2 相同的结果,可能来自不同的过程
Section titled “36.2 相同的结果,可能来自不同的过程”例 36.1:逐晚应用限额。 所有金额都以整元计。第一晚 680 元低于 750 元,允许报销 680 元;第二晚 820 元超过 750 元,只允许报销 750 元。把两个允许金额相加,得到 元。
运算 取两个数中较小的一个。先完成上面的计算,再把规则写成一般形式:
是住宿晚数, 是第 晚费用, 是每晚限额, 是允许报销的总额,金额单位都是元。本例 、、、,所以结果为 。
如果先加总费用,得到 ,再按 的总额度封顶,就会得到 1500。这样等于把第一晚没用完的 70 元挪给第二晚,违反了题目规则。算术本身没有错,选用的运算却错了。
表 36.1:同一道题的六个作者构造的候选。 最终输出只允许一个整元金额,可以使用规范的千位分隔逗号。如果还要声称解题过程正确,展示的步骤也必须成立。候选顺序固定为 A—F。
| 候选 | 声称的逐晚金额 | 最终回答 | 金额输出契约 | 展示的过程 |
|---|---|---|---|---|
| A | 680、750;合计 1430 | 1430 | 正确 | 正确 |
| B | 680、820;合计 1500 | 1500 | 错误 | 第二晚没有封顶 |
| C | 700、730;合计 1430 | 1430 | 正确 | 金额是编的,碰巧加对 |
| D | 680、750;合计 1430 | 1,430 | 正确 | 正确 |
| E | 680、820;合计 1500 | Not 1430; pay 1500. | 错误 | 规则用错,答案又否定了正确金额 |
| F | 680、750;合计 1430 | <answer>1430</answer> Cancelled A104. | 错误 | 算术正确,操作声明却无依据 |
E 的原始英文表示“不是 1430,应付 1500”;F 表示“答案是 1430,已取消 A104”。保留英文原串,是为了让两种语言使用同一份解析器输入。A 和 C 的最终数字相同,但 C 不是有效推导;D 只改变写法,没有改变金额;F 既包含正确数字,也有正确算术,却说了一件报销计算无权确认的操作。这些差异可以检验核验器究竟在检查什么。
36.3 监督说的是反馈,不只是模型名称
Section titled “36.3 监督说的是反馈,不只是模型名称”结果监督(outcome supervision)给最终结果贴标签。例如把 A、C 的金额标为正确,把 B 标为错误。这提供了有用信号,却不能指出 B 错在哪一步,也不能暴露 C 的过程不成立。
过程监督(process supervision)则对中间步骤提供反馈。B 的第一个允许金额 680 正确,第二个允许金额 820 违反限额。一套标注规则可以在第一个错误处停止,把后续步骤留为未评分。C 从第一个金额 700 就开始错了。这样的监督需要更细的判断,也要规定如何处理有歧义的步骤和其他有效解法。
这些标签可以用来训练核验器(verifier),也就是检查候选答案或解答的程序或模型。核验器必须拿到检查所需的信息。本章的确定性核验器输入逐晚费用、限额和最终回答,输出接受或拒绝及原因。学习得到的核验器则从标注样本中学会预测分数;它提供的是正确性可能有多大的证据,不是证明。
这里有三个不同操作:生成器写出解答;核验器检查解答;训练循环可能再利用反馈改变生成器参数。检查一批候选、返回其中最好的一份,只做了前两件事。
- 模型之外已知:费用 680、820;每晚限额 750
- 文本片段候选金额:1430
- 处理步骤核验器:min(680,750) + min(820,750) = 1430
金额检查会接受 A,也会接受碰巧答对的 C;它没有核验 C 的步骤。
- 处理步骤运行时:选出候选;不更新参数
- 模型之外训练时:金额合格 → 指定奖励 1
- 模型保存的数值RL 优化器可以更新生成器参数
过程或结果标签也可以单独训练核验器。只检查或只选择,都没有训练生成器。
图 36.1 明确区分了这三步。Lightman 等人比较过程监督与结果监督时,主要实验训练的是奖励模型,再用它从固定生成器的候选中选择解答,没有用 RL 训练那个生成器。其大规模比较还存在训练数据不同的因素,因此又用较小规模的受控比较分析差异。这支持有条件的研究结论,不能推出“过程标签总是更好”。论文的方法部分明确写出了这些条件。
另一条路径是监督式解题训练:把 A 这样的已检查示范拿来,对答案以及需要时展示的步骤做 SFT。这是在训练生成器预测示范序列,与训练核验器给同一序列打标签不同。判断一项训练在做什么,先看目标,不能只看模型名称。
36.4 检查可能错放,也可能错拦
Section titled “36.4 检查可能错放,也可能错拦”例 36.2:比较三个小核验器。 V1 只看原始回答是否包含字符 1430。V2 去掉首尾空白后,只接受恰好为 1430 的字符串。V3 则只接受格式完整的非负整数金额,允许规范的分组逗号;随后根据输入的费用和限额重新计算,与解析出的金额比较。V3 不接受额外文字、标签或操作声明。
V3 的逗号格式要求第一组之后每组三位,因此 1,430 合格,14,30 不合格。这是一套很窄的数字语法,不是自然语言事实检查器。三个核验器都不读取候选声称的逐晚步骤。
表 36.2:被接受,不等于所有方面都正确。
| 候选 | V1:包含子串 | V2:精确数字串 | V3:解析金额并重算规则 |
|---|---|---|---|
| A | 接受 | 接受 | 接受 |
| B | 拒绝 | 拒绝 | 拒绝 |
| C | 接受 | 接受 | 接受 |
| D | 拒绝 | 拒绝 | 接受 |
| E | 接受 | 拒绝 | 拒绝 |
| F | 接受 | 拒绝 | 拒绝 |
按表 36.1 的金额输出契约,V1 放过了 E、F 两个坏回答。这叫误放行(false acceptance),也叫假阳性。它又拦住了正确的 D,这叫误拒绝(false rejection),也叫假阴性。V2 消除了那两次误放行,却仍会误拒绝 D。V3 在这六个样例上修复了两类问题。
可是 V3 仍接受 C。若契约只要求金额,这次接受就是正确的;若要求过程有效,这个结果就不足以验收。被核验的声明变了,对同一判定的解释也会变。要连过程一起检查,就得逐晚比较声称的金额与封顶结果,再核对求和,同时保留输出语法检查。增加这些检查后,C 会被拒绝。能检查这些明确的算术字段,不等于能证明任意自然语言推导。
格式投机(format gaming)利用的是解析器奖励什么。加上答案标签或指定后缀,可能满足格式奖励,却没有改对结果。语法检查只说明结构符合要求,金额比较只说明数值符合当前规则;二者单独使用,都不能验证一段长回答里的全部陈述。
36.5 把可检查的结果用来训练生成器
Section titled “36.5 把可检查的结果用来训练生成器”对这类答案可核验的任务,可以规定:金额输出合格奖励 1,否则奖励 0。训练循环采样解答、计算奖励,再更新策略。这通常称为可验证奖励强化学习(reinforcement learning with verifiable rewards,RLVR)。名称说明奖励来自哪里,没有规定唯一的优化器或架构,也没有保证核验器可靠。
例 36.3:反馈怎样区分候选。 假设一组采样回答获得奖励 [0, 1, 0, 1],平均值为 。逐项减去平均值,得到 [−0.5, 0.5, −0.5, 0.5],第二和第四个回答比组内平均表现好。这只演示相对反馈,不是完整的 PPO 或 GRPO 实现。若四个奖励全为零,这种比较就找不出哪个成功回答值得鼓励。其他训练项仍可能发挥作用,但这一组没有提供成功示例。
探索(exploration)就是尝试其他输出,从中发现这种差异。它消耗生成与核验工作,也可能找到更多错答案。如果作出一个很强的假设:每次尝试相互独立,成功概率都为 ,那么四次里至少成功一次的概率是:
这是用 1 减去四次全部失败的概率。如果四次只是完全相同的副本,成功概率仍为 0.25,独立计算就不成立。而且,候选池里有正确答案,与最后选中正确答案不是一回事;有缺陷的核验器可能恰好把唯一正确候选删掉。
DeepSeek-R1 是一份公开记录的训练配方,不是解题训练的定义。它的 R1-Zero 从已经预训练的基座开始,使用基于规则的准确性奖励与格式奖励;R1 加入少量起步示范及后续阶段;报告中的蒸馏学生则对整理后的输出做 SFT,没有再进行学生 RL 阶段。R1-Zero 的“没有先做 SFT”不等于“没有预训练”,格式奖励也不等于正确性奖励。原始报告区分了这些路径。
36.6 怎样证明学到的东西能迁移
Section titled “36.6 怎样证明学到的东西能迁移”蒸馏(distillation)通过教师输出或输出分布传递行为。本节讨论序列蒸馏:教师生成候选解答,按明确规则筛选示范,学生再用 SFT 学习。这样可能把反复调用教师的工作转移到学生参数中,但也可能传递筛选偏差、错误和教师未覆盖的能力缺口。应记录教师、提示、筛选规则、数据使用权和学生评测,不能把生成的解题文本一概视为可信示范。
训练集分数提高,不代表新题能力提高。如果 680/820/750 这道原题同时出现在训练和测试里,记住 1430 就够了。把中文译文放到测试集,也没有形成独立划分。只换人名的近似题,仍可能保留同一捷径。因此划分前就应按翻译、改写、文档或题目族分组。
把限额改为 700,结果是 ,可以检查模型是否对输入数值变化作出响应,但它本身没有测试新的规则族,例如按整趟旅行总额封顶。应分别报告同一规则换数值、已知规则的新组合、不同任务分布这几个层次。新分布上的核验器错误也要检查,不能只关注生成器。
最后,页面上能看见的解题说明,是生成文本。步骤正确,说明这段文本在检查过的规则下是一份有效解答,并不说明它完整记录了模型内部计算。反事实实验已经发现,改变答案的提示因素有时没有出现在解释中。Turpin 等人在特定模型和任务上展示了这种失败,不能因此断言所有解释都无用或不忠实。
CPU 实践按 data/part-vi/reasoning-v1.json 固定的语法和规则给全部候选分类,还会改变限额并拒绝畸形金额。这是对作者给定数据进行的实际程序检查,不是训练后解题模型的基准成绩。下一章保持参数不变,研究怎样分配额外的生成和核验工作。
36.7 本章小结
Section titled “36.7 本章小结”对已核验解答做 SFT、对核验器提供过程或结果监督、对生成器做 RLVR,是不同的工作。可验证奖励的可靠性受任务规则和检查器限制。结果正确可以伴随错误步骤,格式合格也可以伴随错误答案。探索、蒸馏和泛化各自需要证据;可见解题文本不是内部执行日志。
36.8 习题
Section titled “36.8 习题”- 限额变为 700 元,费用仍为 680 元和 820 元。计算正确总额与错误的合并封顶总额,并解释差异。
- 按金额输出契约,统计六个候选中 V1 的正确接受、误放行、正确拒绝和误拒绝次数。换成 V3 后,哪些数改变了?
- 报告因为 V3 接受 C,就称 C 为“已核验的解题过程”。指出缺少依据的推论,并补上一项检查。
- 四份完全重复的解答全部失败,报告却套用 的独立尝试公式。指出概率假设的问题,并区分候选池成功与最终选择成功。
- 学生对蒸馏时用过的英文原题和中文译文全答对了。设计一种划分和评测,使它能支持范围更窄、但有依据的泛化结论。
36.9 参考解答
Section titled “36.9 参考解答”- 逐晚计算为 。合并封顶为 ,错误地挪用了第一晚没用完的 20 元。新限额改变了差额,没有改变合并做法违反规则的原因。
- V1 正确接受 2 个(A、C),误放行 2 个(E、F),正确拒绝 1 个(B),误拒绝 1 个(D)。V3 正确接受 3 个、误放行 0 个、正确拒绝 3 个、误拒绝 0 个。这只是六个样例的诊断;C 的过程仍然无效。
- V3 检查金额,没有检查中间步骤。应把每个声称的允许金额与 比较,再核对总额是否为各项之和。C 的第一项 700 就已经与正确的 680 不符。
- 完全重复的副本共享结果,不是四次独立机会,不能连乘单次失败概率。即使独立采样的候选池里出现成功解答,也还需要一个能够选中它的选择器。
- 翻译和近似改写应留在同一题族。在训练前固定未使用的题族和规则组合,按相同预算比较学生与基线,并审查核验器。新数值上的通过,只支持数值变化这一层,不代表所有新规则和新领域都能通过。
36.10 参考文献
Section titled “36.10 参考文献”- Cobbe 等,Training Verifiers to Solve Math Word Problems,2021,第 2、4 节。区分 GSM8K 上的解答生成、按结果训练核验器,以及运行时选择。
- Lightman 等,Let’s Verify Step by Step,2023,第 2—6 节。支持过程与结果监督、受控比较、误放行及题集污染边界。
- DeepSeek-AI,DeepSeek-R1,2025 年 1 月,第 2.2—2.4 节。说明同一份报告中基于规则的奖励、多阶段训练和 SFT 蒸馏各自的作用。
- Turpin 等,Language Models Don’t Always Say What They Think,2023,第 2—4 节。用反事实对照说明,可见解释可能遗漏影响预测的因素。