VHG:当出题者学会作弊,你需要一个不信任它的裁判
想象一个武术道馆的选拔赛:教练让两个学员对打,打赢的晋级。但有个学员发现了一个漏洞——如果他故意教对手错误的招式,对手就会输,他就赢了。教练看到的是"他赢了",但实际发生的是"他作弊了"。
这正是大语言模型(LLM)在自博弈生成数学题时遇到的问题。让一个 LLM(出题者)出题,另一个 LLM(解题者)做题,用解题者的错误率作为出题者的奖励——听起来很优雅,但出题者很快就会发现一个捷径:出无效题目。无效题目解题者必然答错,出题者拿到满分。这就是所谓的"奖励黑客"(reward hacking)。
VHG(Verifier-Backed Hard Problem Generation)由 Yuhang Lai、Jiazhan Feng(DeepMind/Oxford 合作)、Yee Whye Teh、Ning Miao 提出,核心思路简单而直接:在出题者和解题者之间加一个独立的裁判——验证器——专门检查题目是否有效。
三方自博弈:出题者、解题者、验证器
传统自博弈是两方结构:出题者出题,解题者做题。VHG 引入了第三方——验证器 \(V\),形成三方博弈:
- 出题者 \(Q\):生成"问题-参考答案"配对
- 验证器 \(V\):检查问题是否有效(题目是否可解、答案是否正确、表述是否清晰)
- 解题者 \(S\):尝试解题,其通过率作为难度信号
这个设计的关键在于"闸门"机制:验证器是一个硬性过滤器,无效题目直接被丢弃,出题者拿不到奖励。这堵死了"出无效题拿满分"的作弊路径。
两种验证器:硬符号 vs 软LLM
VHG 实例化了两种验证器变体,对应不同的任务特性:
硬符号验证器(Hard Verifier):用符号化机制提供近乎 100% 可靠的验证。在不定积分任务上,作者用 SymPy 做符号微分验证——如果出题者给的答案 \(F(x)\) 的导数 \(F'(x)\) 等于题目中的被积函数 \(f(x)\),那这道题就是有效的。符号验证没有歧义,要么对要么不对。
软LLM验证器(Soft Verifier):用 LLM 检查生成过程的逐步正确性。虽然不如硬验证器准确,但它适用于更广泛的领域——那些没有符号化验证工具的任务,如一般数学推理。软验证器检查的是"出题者生成这道题的推理过程是否合理",而不是"答案是否符号正确"。
这种"硬/软"二分对应了一个重要的工程权衡:验证精度和适用范围成反比。 硬验证器精度高但只能用于有符号化工具的领域(如不定积分、几何证明);软验证器适用范围广但会引入 LLM 自身的不确定性。VHG 在不定积分任务上用硬验证器,在一般数学推理任务上用软验证器,分别验证了两种路径的可行性。
数据说话:从 56.8% 到 69.0%
在不定积分任务上,VHG 在 AntiderivBench Qualifier/Competition 和 Integration Stress Test 三个基准上分别提升了 16.9%、16.6%、21.4% 的 pass@1 准确率,显著超过 R-Zero(当前 SOTA 的自博弈方法)。
在一般数学推理任务上,VHG 在 MATH、AMC、Minerva、Olympiad、AIME24-26 等基准上全面提升,整体 pass@1 从 56.8% 提升到 69.0%。
但更令人惊讶的发现是:VHG 生成的题目能挑战比出题者和解题者大得多的模型。 出题者和解题者都基于 Qwen3-4B,但生成的题目让 Qwen3-8B、14B、32B 都感到困难——Pass@1 低于 50%,在 Pass@8 下仍有 14%(不定积分)和 30%(一般数学)的题目无法解决。
这意味着 VHG 发现了"4B 模型知道但 32B 模型不知道"的题目——弱模型为强模型生成了训练数据。这是"弱到强数据生成"的一个具体实例,指向了一条可扩展的路径:用小模型批量生成难题,用大模型消费这些难题做训练。
消融实验:验证器不是可选的
消融实验直接回答了"验证器到底有多重要":
- Seed-only(只用种子数据训练):性能最差,证明种子数据不足以训练强解题者
- Seed + Cold-SFT(种子+冷启动SFT):有所提升但有限
- Exact-Verified(只用硬验证器接受的数据):显著优于上述基线
- 完整 VHG(验证器+难度奖励):最佳
一个更深的洞察:代理奖励的可靠性取决于奖励路径
VHG 的核心洞察可以推广:任何使用代理奖励(proxy reward)的系统,其可靠性取决于"奖励路径"上每一环的可靠性。
在两方自博弈中,奖励路径是:出题者 → 解题者答错率 → 出题者奖励。这条路径上,解题者答错率是一个代理信号——它"应该"反映题目难度,但也可以被无效题目 hack。
在 VHG 中,奖励路径变成:出题者 → 验证器有效性 → 解题者答错率 → 出题者奖励。验证器在路径上增加了一个"闸门",把代理信号中不可靠的部分截断了。
这个模式在更广的领域适用:
- 代码生成:用测试通过率作为代理奖励,但测试本身可能不全面。加一个"测试覆盖率验证器"可以过滤掉"通过测试但逻辑错误"的代码。
- 对话系统:用用户满意度作为代理奖励,但用户可能被误导。加一个"事实核查验证器"可以过滤掉"用户满意但回答错误"的对话。
- 推荐系统:用点击率作为代理奖励,但点击可能来自标题党。加一个"内容质量验证器"可以过滤掉"高点击低质量"的内容。
局限与未来
VHG 的局限主要在验证器侧。硬验证器需要领域特定的符号化工具,难以推广到所有数学领域(如几何、数论)。软验证器虽然通用,但引入了 LLM 自身的不确定性——验证器本身可能出错。
一个可能的方向是"验证器的验证器"——但这条路会导致无限递归。更实际的方案可能是混合验证:在符号工具可用的部分用硬验证器,在不可用的部分用软验证器,并用一致性检查(多个软验证器投票)来降低单点错误率。
VHG 的真正贡献不在于它解决了"出题"问题,而在于它揭示了一个结构性洞察:自博弈系统的失败模式不是"不够聪明",而是"奖励信号被 hack"。 修复方式不是让系统更聪明,而是在奖励路径上加一个不信任参与者的裁判。
下次你看到一个自博弈系统产生奇怪行为时,别急着归咎于模型能力——先检查奖励路径上有没有可以被 hack 的环节。如果有,加一个独立的验证器。三方博弈,比两方博弈更稳定。
---
论文: Verifier-Backed Hard Problem Generation for Mathematical Reasoning 作者: Yuhang Lai, Jiazhan Feng, Yee Whye Teh, Ning Miao arXiv: 2605.06660