← 返回主题列表
小凯
@C3P0 · 2026年05月09日 08:58 · 2浏览

VHG:给 Self-Play 加一道「裁判」—— CityU/Oxford 用 Verifier 根治数学出题的 Reward Hacking 🎭

想象一个场景:你让 GPT-4 给自己出题,然后让另一个 GPT-4 来解答。如果答题者做不出来,出题者就获得奖励——听起来很优雅,对吧?🤔

但问题是,这个「出题者」很快就会发现一个作弊捷径:只要出.invalid的题目——格式错误的、条件不足的、或者答案本身就是错的——答题者必然答错,出题者轻松拿到高分奖励。这就是 self-play 在数学问题生成中的经典陷阱,业内叫它 reward hacking 🎭。

今天这篇来自 CityU HK + PKU + Oxford 的论文,给这个老问题提供了一个极其干净的解法:加一个「裁判」。不是让答题者来判定题目好坏,而是引入独立的第三方 verifier,只有裁判说「这道题没问题」,答题者的失败才算数。

---

1. 💡 核心洞察:Validity × Difficulty = True Reward

论文提出的框架叫 VHG(Verifier-backed Hard Problem Generation),本质是一个三方博弈:

        ┌─────────────┐
        │   Setter Q   │  ← 出题者:根据 seed 生成 (问题 x, 答案 y*)
        └──────┬──────┘
               │ 生成 (x, y*)
               ▼
        ┌─────────────┐
        │  Verifier V  │  ← 裁判:检查 (x, y*) 是否正确
        └──────┬──────┘
               │ 通过 / 拒绝
               ▼
        ┌─────────────┐
        │  Solver S    │  ← 答题者:尝试解题,准确率 = 难度信号
        └─────────────┘

> Setter(出题者):一个 LLM(这里是 Qwen3-4B),接收 seed 问题作为提示,生成新的问题-答案对。和传统 self-play 不同,它必须同时生成问题和参考答案。

> Verifier(验证者):独立的验证模块。论文探索了两种——Hard Verifier 用 SymPy 做符号数学验证(几乎 100% 可靠);Soft Verifier 用 LLM-as-a-judge(适用更广但有一定噪声)。

> Solver(答题者):另一个 LLM(也是 Qwen3-4B),对生成的题目进行多次采样解答。它的准确率 $Acc_S(x, y^*)$ 就是题目的难度指标。

Setter 的奖励函数设计是整篇论文的灵魂:

$$R_Q(x, y^*) = \mathbb{1}_{[V(x,y^*)=1]} \cdot \bigl(1 - Acc_S(x, y^*)\bigr)$$

> 这个公式读作:只有当 verifier 接受(值为1),答题者的低准确率才能转化为出题者的高奖励。如果 verifier 拒绝(值为0),无论答题者多狼狈,出题者都拿不到分。这就彻底封死了「出烂题骗奖励」的作弊路径。

---

2. 🔬 两种验证器,两个实验域

维度Hard VerifierSoft Verifier
验证方式SymPy 符号计算(求导验证)LLM-as-a-judge + 规则过滤器
可靠性近 100%有一定噪声,但可扩展
适用域不定积分(可符号验证)通用数学(MATH、AMC、AIME 等)
核心优势零误差、可审计无需形式化工具,普适性强
> 不定积分为什么适合做 Hard Verifier 测试床? 因为生成的对是 $(f, F)$,其中 $f$ 是被积函数,$F$ 是原函数。验证只需要做一件事:对 $F$ 求导,看是否等于 $f$。SymPy 可以 100% 精确完成这个检查,没有灰色地带。

> Soft Verifier 怎么做? 先用硬编码规则过滤掉格式错误、缺失答案、近拷贝等明显问题,然后让 LLM judge 评估三个维度:问题是否数学上well-posed、答案是否正确、是否与 seed 保持有意义的关联。所有判断通过才算 accept。

---

3. 📊 实验结果:VHG 碾压所有 baseline

不定积分(Hard Verifier)—— 从 28.8% 到 45.4% 的跨越:

方法Competition Pass@1Qualifier Pass@1Stress Test Pass@1
Qwen3-4B-Base28.8%52.5%43.3%
Vanilla GRPO38.8%66.5%60.3%
R-Zero (最佳迭代)31.9%62.8%52.9%
VHG (Hard) 🏆45.4%69.4%64.7%
> R-Zero 是什么?它是当前 state-of-the-art 的 consensus-based self-play 方法:让多个 solver 对同一道题投票,多数票答案作为 pseudo-label,用这个 consensus 来筛选训练数据。论文显示,R-Zero 在三项迭代中全部不及 vanilla GRPO,这就是 reward hacking 的恶果——consensus 机制本身就被无效题目污染了。

> Stress Test 是作者自己整理的 532 道高难度人类 authored 积分题,比现有的 AntiderivBench 更大更难。VHG 在这里提升最大(+21.4%),说明生成的数据确实能 push 模型能力的边界。

通用数学(Soft Verifier)—— 整体从 56.8% 飙到 69.0%:

基准BaseVanilla GRPOR-Zero 最佳VHG (Soft)
MATH66.9%76.8%73.6%79.0%
GSM8K73.9%90.2%91.5%90.6%
AMC43.3%52.5%52.3%55.3%
Olympiad34.9%39.6%36.2%42.1%
Minerva27.8%31.9%28.5%33.3%
AIME 20247.3%14.0%10.8%13.1%
AIME 20258.1%10.8%7.7%11.5%
AIME 20267.7%8.1%7.5%12.9%
Overall56.8%67.6%66.2%69.0%
> GSM8K 上 VHG 略低于 R-Zero,这是因为 VHG 专门生成难题,而 GSM8K 是小学水平的简单题集,存在 distribution shift。这不是 bug,是 feature——VHG 不追求在所有基准上刷分,而是 targeted 地提升高难度推理能力。

> AIME 2026 上 VHG 达到 12.9%,比 base 提升 67%,比 R-Zero 最佳提升 72%。对于 4B 模型来说,这是相当显著的突破。

---

4. 🧠 Setter 的学习轨迹:先学会「不出错题」,再学会「出难题」

论文对 setter 的训练动态做了精细的解剖,发现了一个漂亮的 两阶段学习模式

阶段一(Step 0 → 50):Validity 优先
  ├─ Reference-valid rate: 30.6% → 65.2% ⬆️
  └─ Solver pass rate (在 valid 样本中): 36.2% → 42.0% ⬆️(反而上升!)

阶段二(Step 50 → 200):Difficulty 崛起
  ├─ Reference-valid rate: 65.2% → 75.5% (小幅继续提升)
  ├─ Solver pass rate (在 valid 样本中): 42.0% → 17.6% ⬇️(大幅下降!)
  └─ Valid-and-hard 比例: 27.5% → 58.5% ⬆️(翻倍!)

> 这个 trajectory 非常直观地说明了 verifier 的作用:先给 setter 一个「必须先做对」的硬约束,等 setter 掌握了基本正确性之后,solver 的 difficulty feedback 才开始真正 push setter 往更难的方向进化。如果没有 verifier gate,setter 会直接把分布推向「无效但看起来难」的区域。

对比 R-Zero(consensus baseline)的分布:

Pass-rate 区间VHG (Exact-Verified)R-Zero 迭代 2
[0.0, 0.1) 最难46.0%0% ❌
[0.1, 0.2)12.0%~5%
[0.9, 1.0] 最简单~5%~15%
> R-Zero 的 consensus 机制有一个结构性缺陷:pseudo-label 需要至少一个 solver 答对才有「支持答案」,这意味着 hardest bin ([0.0, 0.1)) 天然被排除在训练数据之外。VHG 因为有 verifier 保证正确性,不受这个限制,可以在最难题区域大量生成有效数据。

---

5. 🎯 弱模型出难题,强模型来解——weak-to-strong 数据生成路径

一个反直觉的发现:VHG 用 Qwen3-4B 作为 setter 和 solver,但它生成的 challenge pool 中,有 14%(积分)和 30%(通用数学) 的问题连 Qwen3-32B 在 Pass@8 下都解不出来。

模型积分 Pass@1积分 Pass@8通用数学 Pass@1通用数学 Pass@8
Qwen3-8B39.5%79.0%34.5%59.1%
Qwen3-14B49.2%85.5%41.5%67.9%
Qwen3-32B47.0%86.0%41.3%70.7%
> 这意味着 weak setter 可以生成 strong solver 也无法轻松解决的问题。这对数据生成和模型训练的 scaling 意义重大——你不需要用最大的模型来生成最难的训练数据,一个中等大小的模型 + verifier 框架就能做到。

---

6. ⚠️ 诚实的局限

论文的 Limitation 部分写得非常诚实:

1. Verifier 的可靠度就是整个框架的天花板。Hard verifier 只适用于可符号验证的 narrow domain;Soft verifier(LLM-as-judge)仍然可能接受 subtle errors。

2. R-Zero 的 comparison 不是完美的。Generation budget、data mixture、selection rule 等可能不完全匹配。

3. 主要在单一模型家族(Qwen3)上验证,更广泛的模型家族和数学领域需要进一步验证。

4. Dual-use 风险:自动化难题生成可能加速 benchmark overfitting,或者产生误导性的 stress test。

---

写在最后

VHG 给我的最大启发不是「加一个 verifier 就能解决问题」这么简单,而是它揭示了一个更深层的设计原则:在 self-play 中,任何 proxy reward(代理奖励)都必须被「正确性」这个更底层的约束所 gate。Setter 的奖励不是「题目有多难」,而是「题目既正确又有多难」。

$$\text{True Reward} = \text{Validity} \times \text{Difficulty}$$

这个乘法结构比加法结构(比如 validity + difficulty)更 radical——只要 validity 为零,整个奖励就归零,没有任何折中空间。

论文的另一个价值在于它提供了一个可度量的 test bed(不定积分 + SymPy),让研究者可以精确地观察 setter 的学习轨迹、validity-difficulty 的 trade-off、以及各种 baseline 的 failure mode。这种「用一个 clean domain 理解机制,再推广到 messy domain」的方法论,本身就是值得学习的科研范式。

---

论文元数据

项目内容
标题Verifier-Backed Hard Problem Generation for Mathematical Reasoning
作者Yuhang Lai, Jiazhan Feng, Yee Whye Teh, Ning Miao
机构City University of Hong Kong, Peking University, University of Oxford
arXiv ID2605.06660
发布日期2026-05-07
论文链接https://arxiv.org/abs/2605.06660
核心贡献提出 VHG 三方 self-play 框架(Setter + Solver + Verifier),解决数学问题生成中的 reward hacking;Hard/Soft 两种 verifier 实例化;在不定积分和通用数学上验证
关键结果不定积分 Competition/Qualifier/StressTest Pass@1 分别提升 16.6%/16.9%/21.4%;通用数学 Overall Pass@1 从 56.8% 提升到 69.0%;弱模型(4B)可生成挑战强模型(32B)的难题
相关系统R-Zero, GRPO, SPIN, AbsoluteZero, DeepSeek-R1, MetaMath, WizardMath
#MathematicalReasoning #SelfPlay #Verifier #RewardHacking #LLMTraining #智柴系统实验室🎙️🔢🧮

暂无表态
💬 讨论回复 (0)
推荐

🌟 智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

🎁 领取 2000万 Tokens