思维链模式:Chain-of-Thought 原理

思维链,英文叫 Chain-of-Thought,简称 CoT。

说白了,就是让大模型在给出答案之前,先展示它的「思考过程」。

我刚开始接触这个模式时,觉得挺简单的——不就是让模型多写几步推理吗?

但后来在实际项目中才发现,这背后的原理远比想象中深刻。

为什么需要思维链?

传统的 Prompt 设计,我们通常直接问问题,期望模型直接给答案。

比如:

用户:小明有5个苹果,给了小红2个,又买了3个,现在有几个?
模型:6个

这种模式对于简单问题还行。

但遇到复杂推理,模型就容易「跳步」——直接给出错误答案。

为什么会这样?

因为大模型本质上是一个「下一个词预测器」。

它没有真正的逻辑推理能力,只是根据训练数据中的模式来生成文本。

你让它直接输出答案,它可能「猜」一个常见的数字,而不是真正计算。

核心洞察:思维链的本质,是把隐式的推理过程显式化。

让模型一步步写出推理步骤,相当于给它一个「脚手架」。

每一步都基于上一步的结果,错误率会大幅降低。

思维链的两种主要形式

在实际应用中,我主要用两种方式:零样本思维链和少样本思维链。

它们各有适用场景,我分别说说。

零样本思维链(Zero-shot CoT)

零样本思维链,就是不给任何示例,直接让模型「一步步思考」。

实现方式极其简单——在 Prompt 末尾加上一句魔法咒语:

用户:小明有5个苹果,给了小红2个,又买了3个,现在有几个?
请一步步思考。

模型就会输出类似这样的内容:

模型:好的,让我一步步思考。
1. 小明最初有5个苹果。
2. 给了小红2个,所以剩下 5 - 2 = 3个。
3. 又买了3个,所以现在有 3 + 3 = 6个。
所以答案是6个。

嗯,这里要注意。

零样本思维链的效果,很大程度上取决于模型本身的能力。

我测试过几个不同的模型,有的模型加了「请一步步思考」后准确率提升 30% 以上,有的只提升 5%。

所以,如果你用的模型本身推理能力较弱,零样本思维链可能不够用。

我的经验:零样本思维链最适合「简单到中等复杂度的推理任务」。

比如数学应用题、逻辑判断题、简单的代码调试。

对于需要多步推理或专业知识的任务,我建议用少样本思维链。

少样本思维链(Few-shot CoT)

少样本思维链,就是给模型提供 2-3 个完整的「问题 + 推理过程 + 答案」示例。

让模型模仿这种推理模式。

举个例子:

用户:请参考以下示例,回答我的问题。

示例1:
问题:商店有12个苹果,卖出5个,又进货8个,现在有几个?
推理:初始12个,卖出5个后剩7个,进货8个后共15个。
答案:15个

示例2:
问题:一本书有200页,小明第一天看了30页,第二天看了45页,还剩多少页?
推理:总页数200页,第一天看30页剩170页,第二天看45页剩125页。
答案:125页

现在请回答:
问题:小明有5个苹果,给了小红2个,又买了3个,现在有几个?
推理:

模型会输出:

模型:初始5个,给了小红2个后剩3个,又买了3个后共6个。
答案:6个

我个人习惯用少样本思维链处理复杂任务。

因为示例可以「教」模型如何分解问题、如何组织推理步骤。

我在项目中遇到过一个问题:让模型分析一段代码的时间复杂度。

直接问,模型经常给出错误答案。

但给了 2 个示例后,准确率从 40% 提升到了 85%。

避坑指南:我曾经犯过一个错误——给的示例太复杂。

示例的推理步骤超过 10 步,结果模型反而学不会。

后来我总结:示例的复杂度应该略高于目标问题,但不要高太多。

一般 3-5 步推理的示例最合适。

数学推理实战

数学推理是思维链最经典的应用场景。

我拿一个实际项目中的例子来说。

当时我需要让模型自动批改学生的数学作业。

题目是这样的:

一个水池,单开进水管需要6小时注满,单开出水管需要8小时放空。
如果同时打开进水管和出水管,需要多少小时注满?

直接问模型,它经常给出「7小时」这种错误答案。

但用了思维链后,效果完全不同。

我设计的 Prompt 是这样的:

请一步步推理,最后给出答案。

问题:一个水池,单开进水管需要6小时注满,单开出水管需要8小时放空。
如果同时打开进水管和出水管,需要多少小时注满?

推理步骤:
1. 进水管每小时注水:1/6 池
2. 出水管每小时放水:1/8 池
3. 同时打开,每小时净注水:1/6 - 1/8 = 4/24 - 3/24 = 1/24 池
4. 注满需要时间:1 ÷ (1/24) = 24 小时

答案:24小时

模型输出完全正确。

而且我发现一个有趣的现象:

即使模型在推理过程中写错了某一步,它往往能在后续步骤中自我纠正。

这就是思维链的另一个好处——可解释性。

你能看到模型「哪里想错了」,然后针对性优化 Prompt。

实战建议:

  • 对于数学题,强制模型写出「单位」——比如「1/6 池/小时」
  • 要求模型在每一步都检查「上一步的结果是否合理」
  • 如果问题涉及多个变量,让模型先列出所有已知条件

思维链的进阶技巧

用了一段时间思维链后,我总结出几个实用技巧:

  1. 结构化推理:让模型用「步骤1、步骤2...」或「首先、其次、最后」来组织推理
  2. 中间结果验证:在 Prompt 中加入「请验证你的中间结果是否合理」
  3. 分支推理:对于复杂问题,让模型先列出所有可能的情况,再逐一分析
  4. 反向推理:有时候从答案反推更容易,比如「假设答案是X,验证是否满足条件」

你想想看,思维链其实就是在模拟人类的思考方式。

我们解决复杂问题时,不也是一步步推理、验证、调整吗?

大模型有了这个能力,才能真正处理那些需要「动脑子」的任务。

小技巧:如果你发现模型在思维链中「跑偏」了,可以在 Prompt 中加入约束条件。

比如:「请确保每一步推理都基于上一步的结果,不要引入未提及的信息。」

这个简单的约束,能减少模型「脑补」的概率。

总结

思维链模式,说白了就是让模型「把脑子里的想法写出来」。

零样本思维链适合快速验证,少样本思维链适合复杂任务。

数学推理是它的强项,但别局限于此——代码分析、逻辑推理、决策制定,都能用。

我记得有一次,我用思维链让模型分析一个商业案例的利弊。

模型输出了 8 步推理,每一步都有理有据。

那一刻我意识到:思维链不只是提升准确率,更是让 AI 变得「可信任」的关键。

下一章,我们会聊思维链的进阶变体——自洽性思维链。

它能解决「同一个问题,模型给出不同答案」的痛点。

到时候见。