第4章:思维链提示——Chain-of-Thought原理

思维链(Chain-of-Thought,简称CoT)这个概念,我第一次接触是在2022年初。当时Google发了一篇论文,说只要在提示里加一句「让我们一步一步思考」,大模型的推理能力就能提升一大截。说实话,我第一反应是不信——这也太玄学了吧?

后来我自己在项目里试了试,嗯,真香。

4.1 什么是思维链

思维链的核心思想很简单:让模型在给出最终答案之前,先展示推理过程

你想想看,平时我们做数学题,是不是也要先写步骤?直接写答案容易错,但一步步推导,中间就算算错了也能发现。大模型也是一样的道理。

核心公式:

传统提示:输入 → 输出

思维链提示:输入 → 推理步骤 → 输出

举个例子。我问你:「小明有5个苹果,小红给了小明3个,小明又给了小刚2个,小明还剩几个?」

你脑子里会怎么想?

  • 先算小明原来有5个
  • 加上小红给的3个,变成8个
  • 减去给小刚的2个,还剩6个

这就是思维链。模型也一样,给它展示这个推理过程,它就能更准确地算出答案。

4.2 为什么思维链有效

我个人理解,思维链有效的原因有三个:

  1. 分解复杂度——把大问题拆成小步骤,每一步都更容易处理
  2. 中间结果可追溯——如果答案错了,能定位到哪一步出了问题
  3. 激活推理能力——模型在生成推理步骤时,会调用更多的计算资源

我在项目中遇到过一种情况:直接问模型「这个代码有什么bug」,它经常答非所问。但改成「请先分析代码逻辑,再逐行检查,最后总结bug」,效果就好很多。说白了,思维链就是在给模型搭梯子。

小技巧:思维链不仅适用于数学题,在代码审查、逻辑推理、文本分析等场景下同样有效。我习惯在复杂任务的开头加一句「请逐步分析」。

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

零样本思维链,就是不给任何示例,直接让模型用思维链推理

怎么做?很简单。在提示词末尾加一句魔法咒语:

问题:小明有5个苹果,小红给了小明3个,小明又给了小刚2个,小明还剩几个?
让我们一步一步思考。

就这一句话,模型就会自动生成推理步骤,然后给出答案。

4.3 零样本CoT的常用触发词

我测试过很多触发词,效果最好的是这几个:

触发词 适用场景 效果评级
让我们一步一步思考 通用场景 ⭐⭐⭐⭐⭐
请逐步推理 逻辑推理 ⭐⭐⭐⭐
先分析,再回答 代码/文本分析 ⭐⭐⭐⭐
请展示你的思考过程 教育/解释类 ⭐⭐⭐

为什么会这样?因为模型在训练数据里见过大量「让我们一步一步思考」的文本,这个短语能激活它的推理模式。

注意:零样本CoT的效果不稳定。我试过一些冷门领域的问题,模型虽然会生成推理步骤,但推理本身可能是错的。这时候就需要少样本CoT了。

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

少样本思维链,就是给模型提供几个带推理过程的示例,让它模仿

说白了,就是「我做一遍给你看,你照着做」。

4.4 少样本CoT的模板结构

一个标准的少样本CoT提示包含三部分:

  1. 示例问题——和你要问的问题类型相似
  2. 推理步骤——展示完整的思考过程
  3. 最终答案——给出结论

来看一个实战例子:

示例1:
问题:一个班级有30个学生,其中女生占40%,男生有多少人?
推理:女生占40%,所以女生人数是30×40%=12人。
      男生人数 = 总人数 - 女生人数 = 30 - 12 = 18人。
答案:18人。

示例2:
问题:一件商品原价200元,打八折后再降价10元,最终价格是多少?
推理:打八折后价格 = 200×80% = 160元。
      再降价10元 = 160 - 10 = 150元。
答案:150元。

现在请回答:
问题:一本书原价80元,先涨价20%,再打九折,最终价格是多少?
推理:

模型看到这两个示例后,就会模仿同样的推理格式,一步步算出答案。

4.5 少样本CoT的选例技巧

我踩过不少坑,总结出三条选例原则:

  • 同类型——示例和真实问题要属于同一类(都是数学题,或者都是代码题)
  • 难度递进——先给简单的例子,再给稍微复杂的
  • 步骤清晰——每个推理步骤都要写清楚,别跳步

我曾经给模型做过一个代码审查的CoT示例,结果示例里跳了一步,模型也跟着跳了。从那以后,我写示例都特别小心,每一步都拆得细碎。

实战建议:少样本CoT的示例数量,2-3个效果最好。太少模型学不会,太多反而会干扰。我一般固定用3个示例。

4.6 两种CoT的对比

维度 零样本CoT 少样本CoT
示例需求 不需要 需要2-3个示例
适用场景 通用问题 特定领域/复杂问题
稳定性 中等
提示长度 较长
最佳实践 加「让我们一步一步思考」 提供同类型推理示例

我个人习惯是:简单问题用零样本CoT,复杂问题用少样本CoT。如果零样本效果不好,再补几个示例试试。

4.7 避坑指南

最后分享几个我踩过的坑:

  • 我曾经在少样本CoT里用了不同领域的示例,结果模型推理逻辑混乱——示例一定要同领域
  • 我曾经在推理步骤里用了缩写,模型也跟着用缩写,导致答案看不懂——步骤要写完整
  • 我曾经以为示例越多越好,给了5个示例,结果模型反而被干扰——2-3个就够了

思维链这个技术,说白了就是让模型「把脑子里的想法说出来」。你给它搭好梯子,它就能爬得更高。下一章我们会聊思维链的进阶玩法——自洽性(Self-Consistency),到时候再细说。