跳转至

Critic-CoT: Boosting the Reasoning Abilities of Large Language Model via Chain-of-Thoughts Critic

会议: ACL 2025 (Findings)
arXiv: 2408.16326
代码: GitHub
领域: LLM推理
关键词: Self-Critic, Chain-of-Thought, 逐步推理批判, 弱监督数据构建, 迭代精炼, System-2思维

一句话总结

提出 Critic-CoT 框架,通过逐步 Chain-of-Thought 批判范式和无需人工标注的弱监督数据自动构建,将 LLM 的自我批判从 System-1 式直觉判断推向 System-2 式慎重逐步分析;两阶段训练(GPT-4 蒸馏 + 自我批判)使 Llama-3-70B-Instruct 在 GSM8K 从 89.6% 提升至 95.4%,MATH500 从 50.4% 提升至 68.4%,并发现批判能力与任务求解能力可以相互增强。

研究背景与动机

领域现状:自我批判(Self-Critic)已成为提升 LLM 推理能力的关键机制。Reflexion、Self-Refine 等方法让模型对自身输出生成反馈并迭代改进,减少了对外部人工标注的依赖。

现有痛点: - (批判粒度粗糙) 现有自我批判方法多采用简单 prompt,直接让模型指出整个回答的错误(instance-level),类似认知科学中 System-1 的快速直觉思考,批判准确率低。 - (缺乏专门训练) 模型通常没有经过批判能力的针对性训练,天然不具备逐步分析每个推理步骤正确性并精准定位首个错误步骤的能力。 - (批判与求解关系不明) 批判能力与任务求解能力的关系未被深入研究——训练批判是否会损害原始求解能力?两者能否协同?

核心矛盾:要让模型"批判"一个推理过程是复杂任务,需要逐步理解每个步骤的正确性并精准定位首个错误步骤,但现有方法缺乏结构化批判格式和与之匹配的大规模训练数据(人工标注推理步骤极其昂贵)。

切入角度:利用逐步 CoT 批判格式实现可控的弱监督数据构建——核心洞察是"只要批判成功定位错误且修正后答案正确,就可认为该批判有效",不需要人工标注每一步的正确性。

核心 idea:用逐步 CoT 批判格式 + 弱监督数据自动构建 + 两阶段训练(蒸馏 → 自我批判),让 LLM 学会 System-2 式的逐步自我批判和修正。

方法详解

整体框架

输入:问题 \(Q\)、模型生成的 \(n\) 步解题尝试 \(Att = [s_1, \ldots, s_n]\)

批判输出:每步标签 \(L = [l_1, \ldots, l_n]\),其中 \(l_i = +1\)(正确)或 \(l_i = -1\)(错误)。

修正输出:从首个错误步骤 \(i\) 开始重写 \(Att' = [s'_i, \ldots, s'_{n'}]\)

关键设计

1. 逐步 CoT 批判与弱监督数据构建

对模型生成的每个解题尝试,批判模型逐步审查每一步并标注正确/错误。弱监督约束(无需人工标注):

  • 正收集条件:错误尝试 + 批判找到错误 + 修正后答案正确 → 收集有效批判数据 \(C = (Q, Att, Cri)\) 和修正数据 \(R = (Q, Att, Cri_{-1}, Att')\)
  • 正样本收集:正确尝试 + 批判认为全部正确 → 收集正确批判样本
  • 丢弃条件:批判失败或漏检 → 重新采样

核心洞察:用最终答案正确性作为间接验证信号,完全绕过了人工标注推理步骤的需求。只要数学题有标准答案,就能自动判断批判和修正是否有效。

2. 两阶段训练(Auto Train)

阶段 1(蒸馏教师批判能力): - 使用 GPT-4-Turbo 作为批判教师 \(M_C\),对生成模型 \(M_G\)(如 Llama-3-70B)的输出进行逐步批判和修正 - 通过弱监督过滤收集有效数据集 \(D_1\) - 用 \(D_1\) 微调初始模型 \(M_0\) 得到 \(M_1\)

阶段 2(自我批判迭代): - 让 \(M_1\) 自己作为批判者对自身新生成的输出进行批判 - 通过弱监督收集更多数据 \(D_2\) - 用 \(D_1 \cup D_2\)\(M_0\) 重新训练得到最终 \(M_2\)

关键洞察:阶段 1 实质是蒸馏教师模型的 Pass1@N 能力到学生模型的 Top1@N,因此学生理论上不受限于教师性能上限。阶段 2 的自我批判数据引入了模型自身分布的样本,进一步提升效果。

3. 推理阶段策略

迭代精炼(Iterative Refine): - 反复执行:批判 → 修正 → 再批判,直到无错误或达上限 - 最大深度 \(d=8\),重启上限 \(n=8\)

批判过滤(Critic As Filter): - 对问题采样 \(m\) 个解答 - 用批判模型检查每个解答,过滤掉检测到错误的 - 对剩余解答做多数投票(Majority Voting) - 比纯多数投票更有效利用额外采样

实验关键数据

主实验(Table 1: Solution Accuracy %)

模型 方法 GSM8K MATH500
Llama-3-70B-Instruct 基线 (Greedy) 89.6 50.4
Llama-3-70B-Instruct Maj1@96 94.1 62.2
Critic-CoT 直接推理 (不用批判) 91.7 57.6
Critic-CoT 迭代精炼 93.3 57.8
Critic-CoT Critic + Maj1@96 95.4 66.6
Critic-CoT Critic + Maj1@512 68.4
GPT-4-0314 基线 92.0 52.6
DeepSeek-V2-236B 基线 92.2 56.3
  • Critic 过滤 + Maj1@96 在 MATH500 上比纯 Maj1@96 提升 +4.4pp (62.2→66.6)
  • 仅训练批判能力后,不使用批判模块的直接推理也从 50.4→57.6(+7.2pp),说明批判训练副产品性地增强了求解能力

批判准确率

方法 MATH 错误样本批判准确率
直接 Prompt 批判 (System-1) 较低
Critic-CoT 逐步 CoT 批判 显著更高

逐步 CoT 批判在定位首个错误步骤上的精度大幅优于 instance-level 直接 prompt。

OOD 泛化

任务 基线 → Critic-CoT
StrategyQA (常识推理) 有提升
AGIEval (综合能力) 有提升
HumanEval (代码生成) 有提升

在域外任务上也有迁移性,说明批判能力是通用的推理元技能。

关键消融

  • 两阶段 vs 单阶段:阶段 2 自我批判数据带来显著额外提升,去掉阶段 2 效果下降
  • 批判 vs 求解互增强:训练批判后直接推理提升 (89.6→91.7 GSM8K),表明两种能力共享底层知识表征
  • 迭代精炼深度:增加迭代轮次有边际递减,在 GSM8K 上不如 Critic-as-Filter 策略

亮点与洞察

  • 弱监督闭环设计精巧:用"批判→修正→答案对了吗?"作为自动验证,完全避免人工标注推理步骤,可规模化生产训练数据
  • 批判-求解互增强的重要发现:训练批判能力不仅不损害原始求解能力,反而协同增强——这是重要的实证贡献,意味着多任务训练在这个场景下是双赢
  • System-1→System-2 的认知科学类比:将方法论与 Kahneman 的双系统理论联系,清晰有说服力,帮助读者直观理解 instance-level vs step-level 批判的本质差异
  • Critic-as-Filter 策略的高效性:利用批判模型淘汰低质量采样,再做多数投票,比单纯增加采样量更高效利用计算预算
  • 超越教师性能的理论解释:阶段 1 蒸馏的是教师的 Pass1@N → Top1@N 映射,学生可以在 Top1 上超过教师

局限与展望

  1. 基础实验仅在 Llama-3-70B 上做:未验证更小模型(如 7B/13B)是否也能通过此框架获得有效批判能力,小模型可能缺乏足够的推理基础来生成有效批判
  2. 弱监督依赖"答案正确=批判有效"的假设:对有多个正确答案或答案不唯一的开放式任务(如写作、翻译)不适用
  3. 批判质量上限受限于生成模型本身的能力:如果模型对某知识完全不懂,批判也无法正确——"你不能批判你理解范围之外的东西"
  4. 迭代精炼的推理开销较大:每轮需完整生成批判 + 修正序列,最坏情况下需 \(8 \times 8 = 64\) 次完整生成
  5. 仅在数学推理任务上充分实验:代码推理、逻辑推理等其他需要精确步骤验证的任务有待深入探索
  6. 阶段 1 依赖 GPT-4 作为教师:如何在没有强大闭源模型的情况下冷启动批判能力是开放问题

相关工作与启发

  • 与 CriticGPT (McAleese et al., 2024) 的区别:后者训练批判模型辅助人类标注者(RLHF 管线中的工具),本文直接提升 LLM 自身的推理能力
  • 与 Math-Shepherd (Wang et al., 2023) 的对比:后者用 Process Reward Model (PRM) 做数值评分,Critic-CoT 用自然语言批判+修正,更灵活且可解释
  • 与 Self-Refine (Madaan et al., 2023) 的对比:Self-Refine 是 instance-level prompt 反馈,Critic-CoT 是 step-level 训练过的 CoT 批判,粒度和准确率更高
  • 启发:(1) 可以将批判-修正循环与 RLHF 结合——用批判效用(CU)作为 reward signal;(2) step-level 批判格式可推广到代码 debug(逐行审查);(3) 弱监督构建范式可迁移到任何有确定性验证器的任务

评分

  • 新颖性: ⭐⭐⭐⭐ (逐步 CoT 批判格式 + 弱监督自动构建,System-2 视角新颖)
  • 理论深度: ⭐⭐⭐ (实验驱动为主,理论分析较少,但对批判-求解互增强有好的实证)
  • 实验充分性: ⭐⭐⭐⭐ (in-domain + OOD 泛化,消融较完整,两种推理策略都有对比)
  • 实用价值: ⭐⭐⭐⭐⭐ (Critic-as-Filter 即插即用,弱监督数据构建可规模化)
  • 总体推荐: ⭐⭐⭐⭐ (在 self-critic 方向上有扎实推进,批判-求解互增强发现有启发意义)