大型语言模型 (LLM) 在模仿人类方面已经达到了惊人的水平,但当涉及复杂的多步推理——比如解答棘手的数学问题或调试程序——它们常常会失误。一个常见的解决方法是在推理过程中给予模型更多“思考时间”: 让它生成多个答案并选择最好的一个。问题在于,如果模型不擅长评估自身的工作,它只会更快地产生大量错误答案。这就像让一个不懂代数的学生去解一百道方程——他只会一遍又一遍地犯同样的错误。

这正是复旦大学和美团的研究人员在论文《通过测试时和训练时监督的批判模型增强大语言模型推理能力》 (Enhancing LLM Reasoning via Critique Models with Test-Time and Training-Time Supervision) 中所要解决的挑战。他们的核心洞见是: 为了让大语言模型成为真正高效的推理者,我们不仅要教它们“思考”,还要教它们“反思”——而且不仅限于自我反思。他们提出了一个双角色系统: 一个模型——执行者 (actor) 负责进行推理;另一个模型——批判模型 (critique model) 担任专家教练,提供逐步反馈,使执行者能够识别并修正错误。

这项工作提出了一个端到端框架来构建这样的批判模型: 从自动生成批判数据 (无需人工标注) ,到训练专门的批判模型,再到在推理和训练过程中融合它们的监督。结果令人印象深刻——执行者与批判模型的协同不仅提高了准确率,还重塑了模型探索、学习和改进的方式,尤其是在处理最具挑战性的问题时。


双角色博弈: 执行者、批判者与修正

在深入讨论系统原理之前,先明确各角色的职责:

  1. 执行者 (\(\pi_\theta\)) — 负责解题的 LLM。它接收输入 \(x\) (例如一道数学题) ,并生成推理序列 \(y\)。
  2. 批判模型 (\(\pi_\phi\)) — 分析型教练。给定相同的输入和执行者的输出,它会生成步骤级反馈 \(c\),判断每一步的正确性并解释错误。
  3. 修正 — 执行者采纳批判意见并修正其回答,生成新的改进响应 \(y'\)。

这一过程可反复进行: 批判者审查、执行者修正,双方循环迭代,共同迈向更可靠的解决方案——形成一个思想与校正的微型反馈闭环。

响应、批判和修正过程示例。批判模型提供逐步反馈,帮助执行者纠正错误并得出正确答案。

图: 执行者接收批判模型反馈并生成修正后的正确解决方案示例。


AutoMathCritique: 生成高质量反馈的“工厂”

训练强大的批判模型依赖大量数据——包含错误解答及详细纠正反馈。人工生产这些数据既昂贵又缓慢,因此作者们创建了 AutoMathCritique: 一个三阶段自动化流水线,用于大规模合成高精度批判数据。

AutoMathCritique 框架的三阶段概览: 构建错误路径、生成批判、数据筛选。

图: AutoMathCritique 工作流程,包括错误路径构建、批判生成和数据筛选。

阶段一: 构建错误的推理路径

批判模型通过观察错误来学习。为确保错误多样且具有信息量,AutoMathCritique 使用三种互补策略生成错误推理路径:

  1. RG1 – 从零采样: 让执行者 (Llama3-8B) 自由解题,有些尝试会出错——这些自然的简单错误提供真实示例。
  2. RG2 – 错误位置感知响应用法: 从正确解答出发,在后续步骤中故意引入随机性,以在已知位置制造错误。这有助于批判模型对齐错误位置。
  3. RG3 – 添加特定错误: 从正确解答开始,指示模型在指定步骤注入特定错误类型——如计算错误或逻辑失误,从而生成带错误类型与位置标签的数据。

这些策略联合起来创造了丰富的错误推理路径,使批判模型能学习推理为什么、何时、何处会出错。

阶段二: 生成批判

接着,一个标注型 LLM (GPT-4o) 会审阅每个错误解决方案并提供结构化批判。根据上一阶段的信息,它可能接收错误提示或标准答案以作逐步判断。该模型将各步骤标记为正确错误,并用自然语言解释原因——相当于一位人类评分员逐步指出学生的逻辑错误。

阶段三: 质量筛选

并非所有批判都有效。为保障质量,作者设计了基于蒙特卡洛采样 (Monte Carlo sampling) 的筛选机制。每个 (查询, 响应, 批判) 三元组被送回执行者进行 10 次修正;若至少 30% 修正能得出正确答案,该批判即被保留,否则丢弃。此概率筛选机制自动评估批判有效性。

将该流水线应用于 GSM8K 与 MATH 数据集后,作者构建了 MathCritique-76k 数据集: 包含 76,321 条高质量数学推理链样本及建设性反馈。

MathCritique-76k 数据集统计信息,展示了独立查询、黄金推理路径及生成的批判数量。

图: 用于训练批判模型的 MathCritique-76k 数据集统计信息。


让批判模型发挥作用: 测试时与训练时监督

借助 MathCritique-76k,作者基于 Llama3 微调出新的批判模型,并在两个主要应用场景进行实验:** 测试时监督训练时监督**。

批判模型如何在测试时 (左) 通过并行或串行修正提供监督,以及在训练时 (右) 通过提高数据质量实现自我提升。

图: 批判模型在测试时提供反馈 (左) 及在训练时提供监督 (右) 。

测试时监督: 比赛中的教练

推理阶段,执行者首先生成答案,批判模型审查并指出缺陷,执行者据此修正。这个简单循环带来了极大提升。

如图所示,微调后的 8B 批判模型 作为批判者优于 GPT-3.5-Turbo,而 70B 模型 的表现与 GPT-4 相当。它们不仅在错误识别 (辨别力) 方面突出,也能生成可行的修正反馈 (帮助性) 。

不同批判模型在 GSM8K 与 MATH 数据集上的表现对比。微调后的批判模型在准确率、辨别力与帮助性方面表现优秀。

图: 批判模型与 GPT-3.5、GPT-4 系列批判者性能对比。

批判最有成效的地方: 难题

图 5 显示,最大性能提升出现在难题上——执行者原本最容易失误的地方。简单问题几乎无改进,验证了外部监督在高复杂度推理中最具价值。

使用批判模型在不同难度级别上的性能提升。在更具挑战性的问题上提高最显著。

图: 批判模型在不同难度等级上的性能提升。

突破性能上限

提升推理能力的常见策略是多数投票 (Maj@K)——生成 \(K\) 个解决方案并选出最频繁的答案。但无批判监督时,即使计算量增至三倍,性能仍很快达上限。引入批判模型指导修正后,性能上限显著提高: 随着样本增多,准确率持续提升,说明“聪明计算”胜过“更多计算”。

多数投票 (Maj@K) 在使用与不使用批判模型时随样本数量变化的性能对比。批判模型显著提升了性能上限。

图: 在批判监督下,多数投票的性能扩展性显著改善。


训练时监督: 批判在环的自我提升

测试时的成功启发了更深化的融合——批判模型能否在训练过程中也发挥作用?

该思路延伸自自我提升 (self-improvement): 模型从自身正确输出中迭代学习。传统自我提升面临尾部收窄 (tail narrowing) 问题——训练数据偏向简单样例,难题代表性不足,阻碍模型成长。

论文提出批判在环自我提升 (critique-in-the-loop self-improvement) 方案来解决此问题。在训练中,不正确的响应不会被丢弃,而是交由批判模型提供反馈;执行者据此修正,若结果正确,则将修正答案加入训练集。这样,困难问题得到更多关注,学习分布保持均衡。

此外,还引入难度感知计算分配: 难题更多采样、批判与修正,简单题则较少。

结果显而易见。如图 6 所示,批判在环方法在多次迭代中持续改进,且显著优于传统自我提升,尤其当探索样本数 \(N\) 增加时。

普通自我提升与批判在环自我提升在三次迭代中的性能对比。批判方法表现更高且更稳定。

图: 普通自我提升与批判在环自我提升性能对比。

训练数据分布也大幅改善。图 7 显示难题在训练集中占比更高,纠正了尾部收窄的不均衡。

训练数据在不同难度级别上的比例变化。批判在环方法为难题采样更多,为简单题采样更少。

图: 批判在环采样增加了难题代表性。

测试集评估进一步验证: 接受批判监督训练的模型在最难问题上远超传统自我提升模型。

按难度划分的测试集性能。批判在环自我提升模型在难题上显著优于普通模型。

图: 批判在环训练后模型在不同难度级别的测试表现。


更深入的分析与洞察

训练时与测试时批判的协同效应

结合测试时与训练时监督可实现最强性能。表 3 显示,经过批判在环训练的模型已积累“批判意识”,即使无外部批判辅助仍表现稳定。相比之下,仅靠自我批判的模型由于评估不可靠而显著落后。

不同训练时与测试时方法组合的性能对比表。批判在环训练结合测试时监督取得最佳结果。

图: 不同训练与测试监督方法组合的对比。

小批判者能否指导大执行者?

结果出乎意料:** 可以**。一个 3B 参数的批判模型成功指导了从 1.5B 到 14B 的执行者模型。小型批判者仍能提供稳定增益——尤其在难度更高的 MATH 数据集上,表明高效的分析监督并不需巨型模型规模。

不同规模的执行者模型在有无 3B 批判模型监督下的表现。小型批判模型在各规模下均提供一致提升。

图: 小型批判模型也能有效监督更大的执行者模型。

并行修正与串行修正

当扩大测试时计算量,应选择并行还是串行修正?实验表明,并行修正——即独立生成多个 (响应、批判、修正) 三元组——往往带来更丰富的探索、在 Pass@K 等指标上表现更优。而串行方式 (反复修正同一响应) 可能覆盖正确答案、减少多样性。

并行与串行计算扩展下的 Pass@K 性能对比。并行方式略占优势。

图: 扩大计算量时,并行采样策略通常优于串行修正。


下一个前沿: 教授“自言自语”模型

双角色范式——执行者与批判者——虽高效,却需两个独立模型。受启发于能够进行自言自语 (self-talk) 的 LLM,即模型能在推理中自行表达思考与修正,作者尝试将两者融合为一个模型。

他们提出 通过批判实现自言自语 (Self-Talk-via-Critique) 方法,将结构化 (推理 → 批判 → 修正) 数据转换为流畅自然的自我对话。

从批判数据合成自言自语数据的三步流程概览。

图: 通过批判实现自言自语的流程生成连贯的内部推理与反思链。

流程如下:

  1. 将批判嵌入推理链 — 将批判模型的反馈融入推理轨迹,形成带步骤反思的标注思维过程。
  2. 迭代修正与批判 — 修正检测到的错误并整合新的批判,直到推理完全合理。
  3. 平滑为自言自语风格 — 添加衔接词和过渡语,形成自然思考流 (如“等等,让我检查一下……”) 。

示例如下。

标准推理链响应与通过批判到自言自语流程生成的自言自语响应对比示例。

图: 传统推理轨迹与通过批判合成的步级自言自语版本对比。

在自言自语数据上微调后,模型相比标准自我纠正基线有显著提升。尽管仍落后于双角色设置,但这表明向单一模型自然推理、反思、自我纠正方向迈出了可喜一步。

评估结果显示,步级自言自语模型优于轨迹级自我纠正,但仍略逊于双角色系统。

图: 步级自言自语模型在性能上优于传统自我纠正基线。


结论与启示

这项研究有力证明,基于“批判”的推理是下一代智能模型的关键。通过将角色分为执行者批判者并让其迭代互动,作者展示了模型如何变得更可靠、更高效、更智能。

核心洞见:

  1. 规模化自动数据构建: AutoMathCritique 框架实现了无需人工标注的高质量批判数据集构建,为大规模监督铺路。
  2. 批判模型擅长难题: 专门批判模型在最复杂推理任务上带来最大增益。
  3. 平衡的自我提升: 批判在环训练解决了尾部收窄问题,使推理模型能在不同难度问题上均衡改进。
  4. 迈向可扩展监督: 将推理与评估角色分离,为更安全、更可靠、可自我改进的 AI 系统奠定基础。

尽管 AutoMathCritique 目前应用于数学推理,其理念可扩展至科学发现、软件工程及自主决策等领域。未来的大语言模型推理范式,也许不再仅依靠更大的规模,而是依靠让模型成为更好的批判者——既能批判自己,也能批判他人。