Robust Verification
采样证明搜索空间里往往已经有正确答案;验证决定能不能把它捞出来,以及生成过程中能不能导航。
这是什么
第三讲接上一讲的 Generation-verification gap:模型——尤其配合 repeated sampling——常常已经能写出正确答案,缺的是自动选出正确样本、或在生成过程中纠偏。课按时间顺序走四篇论文(约 73 分钟,duration_s: 4379):
- OpenAI 2021《Training Verifiers to Solve Math Problems》:outcome verifier + 引入 GSM8K
- OpenAI《Let's Verify Step by Step》:过程监督(PRM)vs 结果监督(ORM)
- Math-Shepherd:无人类逐步标注的 PRM,并把 PRM 送进 RL
- Stanford / NeurIPS 2025 的 Weaver:弱 verifier 集成,缩小 generation-verification gap
见 raw/collections/cs329a/03-robust-verification.md。0:05 0:55
核心要点
- 生成通常比验证更难。同一设定下「大 generator + 小 verifier」优于反过来;二者的 Pareto 切点被点名为开放课题。13:24
- 有 verifier 以后,best-of-n 的有效区间比 majority vote 长一个数量级:上一讲 majority vote 大约在 50 次采样以内就跟不上 coverage;这篇的 verifier 大约到 400 还能涨,到 800 则因为分不开「很像的一对一错」而回落。工程上他们停在 100 样本。14:37 15:20 17:41 18:11
- ORM 只看整解最终对错;PRM 逐步打分,这篇里最终分是各步分数的乘积。PRM 更能压「过程错、答案碰巧对」,但逐步「看起来对」不等于最终对,新系统常把两者合用。22:12 25:06 31:55
- 人类逐步标注可做成开源 PRM800K(80 万步级标签)。优先标 convincing wrong(最终对、中间错)比随机抽给人类标有效 2.6 倍。26:16 27:09
- 自动标注把「从当前步继续写、能否到达正确终点」当成该步质量(hard = 任一条到终点;soft = 到终点的比例),从而去掉人类逐步标注,并拿 PRM 做 PPO。难题若从未做对,就几乎没有正信号;错步碰巧到达正确终点仍会被标成对。39:00 42:34 42:56
- 没有完美 verifier。把现成 ORM / PRM / LLM-as-judge 当弱信号,先滤掉太差的,再学权重集成(Weaver),比裸平均稳。若所有成员对每个样本打出同一分,集成学不到新东西。52:39 54:21 58:20
- Weaver 论文数字(不是本课复现):难题约 40% → 70% 以上、贴近 o3-mini;Llama 3.1 8B Instruct + ≤8B verifier 池平均约 70%,接近 70B 的 majority vote;同一套打到 70B 级平均 86.2%。蒸馏到约 4 亿参数可保住大池 97% 准确率、测试时算力少 99%+。1:02:09 1:02:29 1:03:41 1:04:53
- 推理模型仍然吃 test-time verification。长期希望 pass@1 一次就对,但把分布削得太尖可能丢掉解法多样性。1:09:37 1:11:01
机制 / 论证
OpenAI 2021:先训练一个「整题对不对」的 verifier
动机四年后仍成立:模型会幻觉,并且能自信地交出错误解。1:12
这篇同时引入 GSM8K:约 8,500 道小学数学应用题。题面简单,但必须多步推理,解答用自然语言而不是纯公式。讲课时对小模型评测仍有用,也可当作项目里「多步、可自动对答案」评测的模板。1:51 2:38
训练与使用:
- 人类离线为每题写一次最终答案。Generator 每题采 100 个解,用最终答案匹配打二值标签,再训一个输出「该解为正确之概率」的 verifier。4:04 4:32
- Verifier 本身是语言模型,外加小 scalar head,逐 token 预测对错;题面 token 不进损失。损失有两项:二值对错 + 普通 next-token LM loss。测试时整解分数取 最后一个 token。5:31 6:08 8:57
- 流程:generator 先 SFT 2 个 epoch → 采样并打标签 → verifier 训 1 个 epoch。讲者说现在的模型已经很会听指令、懂数学,很多新 verifier 直接跳过 这步 SFT。7:03 7:27
- 标签粒度:sentence-level(句号处看前一句)vs token-level(很噪)。可视化里绿=高分、红=低分:一例中间有红、结尾变绿且最终对;另一例开头还行、末段出错,最后 token 为红,真实标签也是负。8:12 10:09
对照「只 SFT、测试时不再挑」:6B 和 175B(讲者认为是 GPT-3 量级)都是加 verifier 更好,且 verifier 训练集约大,优势越明显。175B 上训练集 不到 1,000 时,verification 几乎帮不上忙。11:11 11:53
规模怎么分:他们试了「大 generator + 小 verifier」vs「小 generator + 大 verifier」,前者更好。解释是——若平均而言生成比验证难,参数应留给 generator。切点随基座变强会不会翻,是研究问题;Hugging Face 上已有 verifier / reward model 排行榜。13:07 14:00
测试时加 completions:大约到 400 还能涨;800 时 verifier 对「两个很像、一对一错」分不开,系统准确率下降。这不是 coverage 曲线(coverage 可能还在涨),掉的是 selection 精度。上一讲 majority vote 在 coverage 仍涨时,大约 50 次以内就选不出来;有 verifier 把有效区间拉长。他们交付时停在 100 样本:增益已经拿得差不多,也更稳。14:19 15:20 17:41 18:11
学生问数据再多 SFT 会不会追上。讲者认为两者可能收敛;verifier 的好处是 不把 generator 特化到这一份数据,基座保持通用,另挂打分器来导。20:28
Let's Verify Step by Step:过程监督 vs 结果监督
距上一篇不到两年。新问题:一步走错,后面整条链会偏掉。21:25
| ORM | PRM(这篇) | |
|---|---|---|
| 监督 | 整解最终对错 | 人类给每一步打分 |
| 测试时分数 | 最后 token | 各步概率的 乘积 |
| 假阳性 | 过程胡写、答案碰巧对,仍算正 | 逐步都要过,更难混 |
过程监督的卖点:credit assignment 更细;更能管 false positive;鼓励可解释、人类认可的推理。代价是标注贵,并且多出一个阈值超参。24:47 31:55
数据:开源 PRM800K(800k 步级标签)。Generator 逐步采样;为提高信息量,优先把 convincing wrong(最终答案对、中间步错)送给人类,比随机抽 有效 2.6 倍。迭代地用当前 PRM 筛数据再训。每步标签:正 / 负 / neutral。26:16 27:29
课上的分数题:分母比分子的 3 倍少 7,分数等于 2/5,求分子。前五步标对,最后一步 x 应为 14 却写成 7,标错。27:49
基座 GPT-4,ORM 和 PRM 都先 SFT。结果:
- PRM 优于 ORM 和 majority vote。这里 majority vote 大约在 100 个样本后跟不上。
- 有些题正确样本频率 不到 5%,PRM 仍能把那次对的捞出来。
- 数据效率:给 ORM 标 100 个整解,大约只相当于给 PRM 标 1 条逐步解。
- 泛化:majority vote 在分布偏移上反而好过 ORM;PRM 整体好过 majority vote,更能扛偏移。29:21 30:06 31:16
PRM 也会伤人:某一步「看起来对」但对最终答案没贡献,会给错的 credit。新做法常 ORM + PRM 合用。31:37
学生问「跳过推理直接写 x=14」算不算 hack。分界是:只拿 PRM 打分、不改 generator 时,仍可 prompt 逐步写,PRM 并不负责「强迫思考」;一旦用 PRM 微调 generator,模型可能学会停推理、专产 PRM 爱的短答案。人类标注通常会把跳步标低;自动标注(下一篇)这个坑更真。34:44 35:45
ORM/PRM 的 x 轴很难公平:ORM 每题 k 个整解标签,PRM 是 k × 步数,步数控不住。论文做了部分对齐,课上承认不是干净的苹果对苹果。32:38
Math-Shepherd:去掉人类逐步标注,并把 PRM 送进 RL
PRM 比 ORM 更有潜力,但逐步人类标注太贵。这篇做两件事:自动标步;用这个 PRM 优化 generator(RL)。37:48
一步的质量被定义成:从这一步继续写,有多大可能到达正确终点(最终答案仍有 ground truth)。从当前步采 N 条后续:
三个失败模式:
- 稀有但正确的路径,N 太小(3 而不是 100)会看不到,该步被标 0。41:21
- 难题几乎没有正信号:所有 rollout 都错,自动标注给不出梯度。42:34
- 中间有错步、终点碰巧对,错步仍会被标成对。多样本只能降低、不能消灭这种噪声。42:56
N 增大时 soft 曲线更好看,但 N=4 已经是他们最好的点;hard/soft 差别不大,最后用 hard,因为更好算。43:53
测试时:采 N 个候选,PRM 打分取最高。对照:self-consistency(SC,majority vote 的别名)红、ORM 蓝、Shepherd 绿。无人类逐步标注。在比 GSM8K 更难的 MATH 上超过上一篇的 PRM800K verifier,且 delta 更大。同一套在 GSM8K 与 MATH500 上,对 LLaMA-70B、LLema-34B、DeepSeek-67B 都压过 SC。44:42 45:30
RL:拿 Mistral-7B 对这个 PRM 做 PPO,比用 ORM 做 RL 高一截。讲者说提升幅度略小于纯测试时 scaling,但路径不同——模型自己产标注 → 训 PRM → 测试时筛,同时 RL 改 generator。RL 再叠验证还能涨,之后会平台。46:18 47:38
若只奖励「每步都对」,不一定会强化「先错再改」。补信号的办法包括:给评分步骤一份 rubric;让模型对方程用计算器 / SymPy。47:56
公平比算力很难:可以多采样 generator,也可以多采样 verifier。ORM 与 PRM 最好来自同一批数据,否则比的是数据不是算法。有一张图是对 256 个输出做 verification;讲者认为没做的实验是——从 PPO 过的模型再采一轮标签、再训一个 verifier。49:19 50:41
Weaver:不训新 verifier,用一堆弱 verifier 缩小 gap
Stanford,课上称 NeurIPS 2025。动机仍是 generation-verification gap,手段换成推理时算力 + 集成。Weak 不是故意用烂模型,而是承认最好的 verifier 也不完美。51:47 52:39
信号源三类:ORM、PRM、以及 LLM-as-judge(直接问「这对吗」,或加工具 / rubric 打分)。53:12
朴素集成:按某排行取 top-1 / top-5 / top-10,四个数据集上平均能涨,但 不一定单调。真正总在帮的是:有少量标签时,用 Naive Bayes 或 logistic regression 给每个 verifier 学一个权重。53:59 54:21
Weaver 的流水线是 score → weight → select:
- 把各 verifier 分数归一到同一尺度,先滤掉太差的。低于质量线的成员进池会拖后腿。
- 用很少的标注、靠弱监督估计每个 verifier 的准确率(谱系上接 Stanford 的 weak-to-strong,以及 Alex Ratner 等的 Snorkel)。
- 加权合成一个分数,再选样本。55:41 56:58
形式:n 个问题 × 每题 k 个解 × m 个 verifier = n·k·m 个弱标签。目标是 P(第 i 题第 j 个样本为正确 | 所有 verifier 标签)。核心假设:每个 verifier 抓住正确性的不同独立侧面。 若大家对每个样本打出完全一样的分,集成学不到新东西;有用的是一致与分歧。在此假设下写成可优化的权重。57:36 58:20
对比 naive ensemble,在 GPQA Diamond、MATH、MLU Pro 上增益更明显;GPQA 基线已经低,弱到强聚合的相对提升大。59:37
验证侧也能缩放:更多候选(10 / 100 / 1000)、更大的生成 / 验证模型、更多 verifier。对照曲线:
- 虚线深红:Pass@K Oracle(有完美选择器)
- 紫:Weaver Supervised(大量标签学权重)
- 蓝:Unsupervised(每集只用 1% 训练标签)
- 橙:Naive Ensemble(仍过滤,但只平均)
都明显高于 majority vote 和 Multi-Agent Verification (MAV)。MAV 是按不同方面 prompt 多个 LLM 打分;课上这两处不比 majority vote 好,有时更差。1:00:07 1:01:33
负荷性数字(论文图,不是课程复现):难题从略高于 40% 拉到 70% 以上,贴近 o3-mini。这是整系统解题准确率,不是 coverage:
- Generator = Llama 3.1 8B Instruct,verifier 池全是 8B 及以下 → 这些数据集平均约 70%,大致相当于 70B 级做 majority vote。
- 同一套打到 70B 级 → 平均 86.2%,与 o3-mini 同档。1:02:09 1:02:29 1:03:41
代价:每个解要跑一堆模型(再乘上每题 100 个样本更贵)。对策:Weaver 训一次,蒸馏 进小模型。课上做到约 4 亿 参数(对照原来 70B 量级),保住大池 97% 准确率,测试时算力少 99%+。蒸馏版和原版都开源、有 checkpoint。算力–成功率图上蒸馏版更省;原版 Weaver 在高精度区也比 naive ensemble / majority vote 更 flop-efficient。1:04:16 1:04:53 1:06:14
收束与课堂问答
四篇合在一起是一条弧:先证明 outcome verifier 能用 → 过程监督更密、更能捞稀有正确答案 → 自动标注把 PRM 送进 RL → 不再死磕一个新 verifier,改用测试时集成并蒸馏。PRM 总体强于 ORM,但最好合用。Verifier 吃数据;数据越多越好,并可在 RL 里回馈 generator。Weaver 的缩放轴是 多 verifier,不是把同一个 verifier 多采样几次。1:06:35 1:07:40
- 不只数学。代码也适合验证;后续会讲 Code Monkeys:不直接训 verifier,让模型写单元测试,测试当 verifier。1:08:21 1:08:55
- 推理模型已经在内部做「生成推理步 → 奖励 → RL → 正轨迹再训」,测试时缩放被用来造训练数据;多采样仍能探到解空间的其他角落,所以 verifier 对它们仍然有用。1:09:37
- 理想终局是 pass@1 一次就对。把 logprob 削得太尖,可能丢掉解法多样性;课上仍希望模型保有多种想法。1:10:48
- Generator / verifier 是否同家族、同尺寸:讲者说模型往往更吃「自己这个家族的生成和解读」,但 没看到专门比较同家族 vs 跨家族的研究。1:11:59 1:12:37
可操作
- 最终答案能自动打分:先 ORM + best-of-n,把 k 放在 verifier 还跟得上的区间(这篇的工程锚点是约 100,增益曲线大约到 400)。不要默认 majority vote 能跟着 coverage 走。
- 步骤会错位、或你在乎过程可解释:上 PRM 或逐步 critic;预留 ORM+PRM 合用,并单独调 PRM 阈值。
- 人工逐步标注太贵:用最终答案做 hard/soft estimate 回标中间步。先确认 base 在难题上 不是 pass@k=0,否则自动 PRM 没有正样本。
- 用 PRM 做 RL 改 generator 时,要防「停推理、专产短答案」;只做测试时打分则相对安全。
- 集成前先看相关性和单模型质量:全员同分就别堆;太弱的先踢出池。有少量标签就学权重,不要只平均。池子太大就蒸馏。
- 代码域可以先让模型写测试当 verifier,不必一上来训 RM。项目评测若需要「多步、可自动对答案」,GSM8K 是课上点名的模板。
术语
| 词 | 意思 |
|---|---|
| GSM8K | 约 8,500 道小学数学应用题;2021 这篇引入,强调多步自然语言推理 |
| ORM | Outcome reward model,整解最终对错 |
| PRM | Process reward model,逐步对错 |
| PRM800K | Let's Verify Step by Step 放出的 80 万步级人类标签 |
| convincing wrong | 最终答案对、中间步错;拿来标 PRM 更值 |
| hard / soft estimate | 从某步 rollout:任一到终点 vs 到终点的比例 |
| self-consistency (SC) | Majority vote 的别名:看最终答案谁出现最多 |
| LLM-as-judge | 把解交给另一个 LM 判对错或按 rubric 打分 |
| weak verifier | 单独不完美、但与真标签相关的检查器 |
| Weaver | 对弱 verifier 做 score / 加权 / 选择;可蒸馏 |
| MAV | Multi-Agent Verification,多角度 prompt LLM 打分 |
| Pass@K Oracle | 假设能从 k 个样本里完美挑出正确解 |
不确定 / 待验证
- 「大 generator + 小 verifier 优于反过来」是 2021 那篇、当时模型档次下的观察;Pareto 切点随基座变强会不会翻,课上当作开放问题。13:24
- 字幕里的 LLema-34B 是否即 Llemma-34B,[需要验证]。
- 课上口播的 MLU Pro 是否即 MMLU-Pro,[需要验证]。
- Weaver 的 40%→70%、86.2%、97%、99%+ 均来自该论文图,不是本课复现。
- 同家族 vs 跨家族 verifier,讲者明确说没看到专项研究。1:12:37
- ORM vs PRM 在 固定测试时算力 下谁赢,讲者说没有干净控制。49:19
- 推理模型是否会把 repeated sampling 全部收进训练、测试时只留 pass@1:方向如此,不是已经发生的事实。1:10:48
相关
来源 raw/collections/cs329a/03-robust-verification.md · 更新 2026-09-04 · confidence: high