3.1 思维链 CoT:让模型分步推理的原理与变体


3.1 思维链 CoT:让模型分步推理的原理与变体

一个 LLM 解数学题,直接给答案常错;让它「一步一步想」再给答案,准确率却大幅上升。这个看似魔法的现象,就是思维链(Chain of Thought)。它不是让模型变聪明,而是让模型把推理过程展开——展开后,模型能分配更多算力到中间步骤,错误率自然下降。

3.1.1 一个观察:直答 vs 分步答

先看一个对比例子。问题是「食堂里有 23 个苹果,用了 20 个做午餐,又买了 6 个,食堂还有多少苹果?」

直答(Direct Prompting)

Q: 食堂里有 23 个苹果,用了 20 个做午餐,又买了 6 个,还有多少? A: 27 个。

分步答(Chain of Thought)

Q: 食堂里有 23 个苹果,用了 20 个做午餐,又买了 6 个,还有多少? A: 起初有 23 个。用了 20 个后剩 23 - 20 = 3 个。 又买了 6 个,所以是 3 + 6 = 9 个。答案是 9。

直答错了(27),分步答对了(9)。这不是个例。Wei 等人 2022 年的论文发现:在 GSM8K 等数学推理基准上,CoT 能把大模型的准确率提升 10-20 个百分点

3.1.2 CoT 为什么有效:算力分配假说

CoT 的有效性有几个互补的解释:

解释一:算力分配(Compute Allocation)

LLM 的计算量与输出 Token 数大致成正比。直答时,模型只在生成「最终答案」的几个 Token 上花费算力;CoT 时,模型在生成「每一步推理」上都花费算力——等于把一道难题的算力预算放大了几十倍

方式 输出长度 算力开销 推理空间
直答 几个 Token 几乎没有展开
CoT 几十到几百 Token 充分展开

💡 类比人类:你心算 23-20+6 也会在脑子里过一遍「先减再加」。LLM 一样——直接给答案等于让它「心算」,分步写等于让它「列竖式」。CoT 的本质是强制模型把内部推理外化为显式步骤

解释二:错误局部化(Error Localization)

直答时,一个错误就会让最终答案全错;CoT 时,错误被局部化在某一步,后续步骤仍可能纠正或至少让错误可被调试。

[直答] 一错全错。 [CoT] 步骤1 ✓ → 步骤2 ✗ → 步骤3 ✓(基于步骤2) 错误被定位在步骤2,可追溯可调试。

解释三:分解复杂度(Complexity Decomposition)

很多问题的复杂度是非线性的——三步推理的难度远大于三个单步推理之和。CoT 把高复杂度问题分解成多个低复杂度子问题,每个子问题在模型能力范围内。

3.1.3 CoT 的三种触发方式

CoT 不是一种「算法」,而是一类「Prompt 策略」。按触发方式分三种:

方式一:Few-shot CoT(少样本思维链)

在 Prompt 里给出几个带推理过程的示例,让模型学会「该这样分步想」。

Q: 示例问题 1 A: 步骤 1... 步骤 2... 所以答案是 X。 Q: 示例问题 2 A: 步骤 1... 步骤 2... 所以答案是 Y。 Q: 真实问题 A: (模型模仿上面的格式,分步推理)
  • 优点:稳定可控,推理风格可定制。
  • 缺点:示例占 Prompt 空间;示例质量影响效果。

方式二:Zero-shot CoT(零样本思维链)

不给示例,只在问题后加一句魔法咒语「Let's think step by step」(让我们一步一步思考)。

Q: 真实问题 A: Let's think step by step. (模型自动开始分步推理)
  • 优点:零样本、无需准备示例。
  • 缺点:推理风格不可控,效果略低于 few-shot。

💡 「Let's think step by step」是 Prompt Engineering 史上最著名的发现之一。Kojima 等人 2022 年发现,仅仅加上这一句话,就让 LLM 在一系列推理任务上大幅提升。这揭示了 LLM 的一个深刻特性:它的能力一直都在,只是需要被「唤醒」

方式三:Self-Consistency(自洽性采样)

CoT 的推理有随机性——同一问题采样多次,可能得到不同的推理路径与答案。Self-Consistency 的思路:采样多次,取多数答案

  • 优点:显著提升准确率(比单次 CoT 再提升 5-15 个百分点)。
  • 缺点:调用次数翻 N 倍(通常采样 5-20 次),成本高。

3.1.4 三种触发方式的对比

方式 调用次数 准确率 成本 可控性 适用
Few-shot CoT 1 中高 生产、需稳定风格
Zero-shot CoT 1 快速原型、通用场景
Self-Consistency N(5-20) 高难度推理、不计成本

⚠️ Self-Consistency 的代价:采样 10 次意味着 10 倍的 Token 成本与延迟。它适合「准确率优先、成本不敏感」的场景(如医疗诊断、关键决策),不适合高频低价值任务。生产中要权衡准确率与成本的边际收益——采样数从 1 到 5 提升明显,从 10 到 20 提升就有限了。

3.1.5 CoT 的有效边界:什么时候用,什么时候别用

CoT 不是万能的。它的有效性有明确的边界:

CoT 有效的场景

场景 为什么有效
多步数学推理 每步可独立验证
逻辑推理题 推理链清晰、可分解
常识推理 需要中间假设
代码调试 需要追溯执行流程
决策分析 需要权衡多个因素

CoT 无效甚至有害的场景

场景 为什么无效
简单事实问答 「法国首都是哪」不需要分步
纯记忆任务 分步反而引入噪声
小模型 参数量不够时,CoT 反而让模型更易出错
超过模型能力的问题 CoT 不能凭空创造能力

⚠️ CoT 的模型规模门槛:研究发现 CoT 对参数量小于约 60B 的模型几乎无效,甚至会降低性能。CoT 是大模型的能力,小模型用 CoT 是东施效颦。这与「算力分配假说」一致——只有模型本身够大,分配更多算力才有意义;模型太小,算力再多也算不出来。

3.1.6 CoT 的工程实践要点

把 CoT 用到生产中,要注意几点:

要点一:示例要「同质」

Few-shot CoT 的示例必须与目标任务同类。给数学题配代码示例,效果会很差。

要点二:推理长度要匹配

简单问题配长 CoT 是浪费;复杂问题配短 CoT 是失效。推理长度应匹配问题难度。

要点三:中间步骤要可验证

优秀的 CoT 让中间步骤可被自动验证(如每步都算出数字、可校验),便于调试与 Self-Consistency。

要点四:警惕「伪 CoT」

有些模型学会了「写一堆看起来像推理的废话,最后给个错答案」。真正的 CoT 是中间步骤对、答案也对;伪 CoT 是中间步骤像、答案错。后者比直答更危险,因为它看起来很自信。

💡 工程经验:在关键场景,应当对 CoT 的中间步骤做验证(如让另一个 LLM 或规则检查器复核),而不仅看最终答案。这是对抗「伪 CoT」与幻觉的重要手段。

3.1.7 CoT 单链 vs ToT 树搜索

本节结束前,先给一个对比预告,为下一节思维树铺垫:

CoT 是一条线——一旦某步走错,整条链就废了。ToT 是一棵树——可以探索多条路径,走错了能回溯。这是 3.2 节的主题。

本节小结

  • CoT 的本质是强制 LLM 把内部推理外化为显式步骤,从而分配更多算力、局部化错误、分解复杂度。它不是让模型变聪明,而是让模型把已有的能力用足。
  • CoT 有效性的三大解释:算力分配、错误局部化、复杂度分解。
  • 三种触发方式:Few-shot CoT(稳定可控)、Zero-shot CoT(一句「Let's think step by step」)、Self-Consistency(多次采样投票,准确率最高但最贵)。
  • CoT 有明确的有效边界:对多步推理有效,对简单事实/小模型/超能力问题无效甚至有害。60B 是大致的规模门槛
  • 工程实践:示例要同质、推理长度要匹配、中间步骤要可验证、警惕「伪 CoT」。关键场景应对中间步骤做复核。
  • CoT 是「单链推理」,一旦走错全链报废——这为下一节 ToT 的「多路搜索+回溯」埋下伏笔。

下一节《3.2 思维树与思维图》将把推理从「线」推广到「树」与「图」,讨论多路径探索与回溯机制。


作者与出处
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 会发光的石头的小龙虾 转发
评论区 (0)
U