思维链(CoT)提示的工作原理

outcomeschool 发布于 2026-07-11 13:42 阅读 14

本文介绍了Chain-of-Thought (CoT) Prompting的工作原理。首先解释了Prompt和LLM的基本概念,然后指出直接让模型给出答案容易出错的问题。接着详细说明CoT如何通过引导模型写出逐步推理过程来提高准确性,并给出了零样本(如添加“Let's think step by step”)和少样本(提供示例)两种方式。文章通过数学问题和逻辑推理的例子展示了CoT的效果,分析了其有效的原因(分解复杂问题、利用自回归特性),最后总结了适用场景和注意事项。

作者

Amit Shekhar
Amit Shekhar
发布于 2026 年 7 月 10 日

思维链(CoT)提示是如何工作的?

在本篇博客中,我们将学习思维链(CoT)提示是如何工作的。我们还会看到,为什么直接跳至答案的模型往往会出错,如何通过让它逐步推理来修正这一问题,零样本与少样本 CoT 的区别,以及这项技术真正有用的场景。

我们将涵盖以下内容:

  • 什么是提示?
  • 什么是大语言模型?
  • 问题:当模型直接跳至答案时
  • 什么是思维链(CoT)提示?
  • 一个不含 CoT 和包含 CoT 的简单示例
  • 零样本 CoT 与少样本 CoT
  • 推理链的逐步演示
  • 为什么思维链提示有效?
  • 思维链提示在哪些场景有用
  • 需要注意的事项

什么是提示?

在深入思维链提示之前,我们必须先知道什么是 提示

提示 是我们给 AI 模型的文本指令。简单来说,提示就是我们输入的提问或任务。

假设我们打开一个基于聊天的 AI 工具,输入 "法国的首都是什么?"。这个句子就是提示。模型读取提示后给出答案。

因此,提示就是我们告诉模型想要什么的方式。

什么是大语言模型?

现在,我们来了解我们所讨论的模型类型。

LLM = 大型语言模型。

简单来说,LLM 是一个阅读了大量文本并学会了预测下一个单词的模型。这是这里最重要的概念。

假设我们输入 "天空是"。模型之前见过很多类似的句子,因此它会预测下一个单词为 "蓝色的"。它会一直这样做,一个接一个地生成单词,直到形成完整的答案。

因此,LLM 是逐词构建答案的。它不会一次性看到整个答案。它按照我们说话的方式,一次一个词地写出答案。

这种逐个生成文本的方式被称为自回归。我们有一篇关于 自回归模型 的详细博客,深入解释了这一点。

这个单一概念将帮助我们理解为什么思维链提示如此有效。

问题:当模型直接跳至答案时

考虑一个简单的数学应用题。

一家商店有 12 个苹果。早上卖掉了 5 个,晚上又进了 8 个。商店现在有多少个苹果?

正确答案是 15。我们通过 12 - 5 = 7,然后 7 + 8 = 15 得到这个结果。

现在,假设我们直接要求模型给出答案。模型会立即尝试预测最终数字。它没有经过中间小步骤。对于简单问题,它可能答对。但对于更困难的问题,它常常跳到一个错误的数字。

为什么会这样?因为我们强迫模型一次性产出答案。我们没有给它逐步思考的空间。

模型是逐词生成的,如果过早确定最终数字,它就没有机会纠正自己。

这就是核心问题。因此,思维链提示出现了。

什么是思维链(CoT)提示?

思维链(CoT)提示是一种技术,要求模型在给出最终答案之前写出推理步骤。

简单来说,我们不是直接要求答案,而是先要求模型 “大声思考”

让我们分解名称以使其更清晰。

Chain-of-Thought = Chain + of + Thought。

一个 想法(Thought)是一个小的推理步骤。一条 (Chain)是许多小步骤一个接一个地连接在一起。因此,思维链是一系列小的推理步骤,引导我们得出最终答案。

假设我们正在解决苹果问题。链中的想法如下:

  • 想法 1:一开始有 12 个苹果。
  • 想法 2:卖掉 5 个,所以 12 - 5 = 7 个苹果。
  • 想法 3:再买 8 个,所以 7 + 8 = 15 个苹果。
  • 最终答案:15。

在这里,我们可以看到每个想法都建立在前一个想法的基础上。这就是链。这就是思维链提示引导模型的方式。

让我们将两种方式的区别可视化如下:

   不使用 CoT(直接跳至答案)

   问题 --> [ 猜测最终数字 ] --> 答案(经常错误)

   使用 CoT(逐步思考)

   问题
      |
      v
   想法 1:一开始有 12 个苹果
      |
      v
   想法 2:12 - 5 = 7 个苹果
      |
      v
   想法 3:7 + 8 = 15 个苹果
      |
      v
   最终答案:15(更可靠)

这里我们可以看到,不使用 CoT 时,模型一步从问题直接跳到答案。使用 CoT 时,问题流过一个个小想法,只有最后一个想法给出最终答案。

一个不含 CoT 和包含 CoT 的简单示例

学习这一点的最佳方法是拿一个例子。

首先,让我们看一个没有思维链的提示,如下:

Q:一家商店有 12 个苹果。早上卖掉了 5 个,晚上又进了 8 个。
现在有多少个苹果?只给出最终数字。

这里,我们告诉模型只给出最终数字。模型被迫直接跳至答案,没有思考空间。对于更困难的问题,这常常导致错误。

现在,让我们将思维链添加到相同的提示中,如下:

Q:一家商店有 12 个苹果。早上卖掉了 5 个,晚上又进了 8 个。
现在有多少个苹果?让我们一步一步地思考。

这里,我们在末尾添加了简单的一句话:“让我们一步一步地思考。” 这一小句话就是触发器。它告诉模型在答案之前写出推理过程。

现在模型响应如下:

一开始有 12 个苹果。
卖掉 5 个后,剩下 12 - 5 = 7 个苹果。
再买进 8 个后,剩下 7 + 8 = 15 个苹果。
所以,最终答案是 15。

在这里,我们可以注意到模型首先写出步骤,然后才给出最终答案。推理过程被清晰地展示出来。这就是思维链提示的实际应用。

问题解决!

零样本 CoT 与少样本 CoT

现在,我们来学习实现思维链提示的两种常见方式。

第一种是 零样本 CoT

简单来说,“零样本”意味着我们不给任何示例。我们只需添加一行如“让我们一步一步地思考”,模型就会自行开始推理。这是最简单的方式,我们上面已经看到了。

让我们再看一下零样本 CoT 的提示:

Q:如果火车 1 小时行驶 60 公里,3 小时能行驶多远?
让我们一步一步地思考。

这里,我们完全没有给出示例。我们只添加了神奇的一行“让我们一步一步地思考”。模型自己找出步骤。

第二种是 少样本 CoT

简单来说,“少样本”意味着我们先给出几个示例。我们向模型展示一两个带有完整推理的已解决问题。然后我们提出真正的问题。模型会模仿相同的逐步风格。

让我们看一个少样本 CoT 的提示:

Q:盒子里有 4 支笔。我们又加了 3 支笔。现在有多少支笔?
A:原来有 4 支笔。加 3 支,所以 4 + 3 = 7。答案是 7。

Q:罐子里有 10 颗糖。我们吃了 6 颗。现在有多少颗糖?
A:原来有 10 颗糖。吃了 6 颗,所以 10 - 6 = 4。答案是 4。

Q:书架上放着 8 本书。我们又放了 5 本。现在有多少本书?
A:

这里,我们先给出了两个已解决的例子。每个例子都展示了推理过程,而不仅仅是答案。看到这个模式后,模型会以同样的逐步方式回答第三个问题。它会写出“原来有 8 本书。放 5 本,所以 8 + 5 = 13。答案是 13。”

因此,零样本 CoT 使用简单的指令,而少样本 CoT 使用已解决的例子来教给模型模式。

让我用表格列出零样本 CoT 和少样本 CoT 之间的区别,以便你更好地理解。

零样本 CoT 少样本 CoT
给出的示例 几个已解决的例子
如何触发推理 一行如“让我们一步一步地思考” 展示带步骤的已解决例子
提示长度 较长
编写难度 非常小 较大,因为需要写例子
最适合 快速、常见的问题 更困难或异常的问题

推理链的逐步演示

现在,让我们拿一个稍微大一点的问题,一步一步地走一遍链。

假设一个班有 30 名学生。其中 12 人踢足球。剩余学生的一半打板球。有多少学生打板球?

让我们跟随链。

步骤 1: 总共 30 名学生。

步骤 2: 12 名学生踢足球。所以剩余学生为 30 - 12 = 18。

步骤 3: 剩余 18 名学生的一半打板球。所以 18 除以 2 = 9。

步骤 4: 所以,最终答案是 9 名学生打板球。

我们可以想象每一步的结果如何流入下一步,如下所示:

  步骤 1           步骤 2             步骤 3           步骤 4
+--------+      +-------------+     +-------------+     +--------+
| 总数   | ---> | 剩余        | --> | 板球人数   | --> | 最终   |
| = 30   |      | = 30 - 12   |     | = 18 / 2    |     | 答案   |
|        |      | = 18        |     | = 9         |     | = 9    |
+--------+      +-------------+     +-------------+     +--------+
                     ^                    ^
                     |                    |
               使用了步骤 1 的总数   使用了步骤 2 的剩余人数

这里我们可以看到,每一步都使用前一步的结果。步骤 2 需要步骤 1 的总数。步骤 3 需要步骤 2 的剩余人数。这种步骤的链接正是我们称之为链的原因。

如果模型尝试一次猜出“9”,很容易出错。但通过一步步工作,它保持在正确的轨道上。这就是思维链提示减少错误的方式。

为什么思维链提示有效?

现在,下一个大问题是:为什么这个简单的技巧如此有效?

记住之前的概念:LLM 一次一个词地写出答案,每个新词依赖于之前写过的词。

当模型写出推理过程时,这些推理词成为它接下来要读取的一部分。因此,模型现在是在正确、可见的步骤之上构建最终答案,而不是凭空猜测。

假设我们在脑子里做一道困难的计算。很容易出错。但如果我们在纸上写下每一步,我们更有可能得到正确结果。思维链提示给模型提供了同样的“写字的纸”。

另一个原因是这样的:将一个大问题分解成小步骤,使每一步都变得简单。模型擅长小而简单的步骤。通过将许多简单的步骤串联起来,它可以解决一个整体看上去困难的问题。

因此,模型并没有变得更聪明。我们只是给了它思考的空间,而且是以结构化的方式。这就是思维链提示的美妙之处。

一些较新的模型经过训练,能够自行产生这些推理步骤,而无需我们添加任何特殊提示。我们有一篇关于 大型推理模型 的详细博客,解释了这是如何工作的。

思维链提示在哪些场景有用

现在,我们知道它是如何工作的。让我们看看哪里可以使用它。

  • 数学应用题,需要许多小计算。
  • 逻辑谜题,一个错误的步骤会破坏整个答案。
  • 多步问题,答案取决于前面的事实。
  • 决策任务,必须在选择之前权衡几个选项。
  • 阅读理解,必须连接文章的不同部分。

在所有这些场景中,答案不是一个单一的事实。它需要多个步骤。思维链提示完美地适合这些情况。

需要注意的事项

现在,在结束之前,让我们讨论几个重要点。

  • 思维链提示在困难、多步问题上最有帮助。对于像“法国的首都是什么?”这类非常简单的问题,我们不需要它。答案是一个单一事实,不需要分解成步骤。
  • 模型写出的推理过程有帮助,但并不总是完美的。模型可能写出看似正确但仍得到错误答案的步骤。因此,对于重要任务,我们必须自己检查步骤,不能盲目信任。
  • 写出步骤意味着模型产生更多文本。更多文本需要多一点点时间和成本。对于大多数任务来说,这是获得更好答案的公平交换,但我们必须根据自己的使用场景记住这一点。

所以,想法很简单:与其直接要求模型给出答案,不如要求它一步一步地思考。模型写出一连串小想法,每个想法引导到下一个,直到我们得出可靠的最终答案。

这就是思维链提示的工作原理,也是为什么提示中这么小的改变能带来如此大的不同。

  • 原文链接: outcomeschool.com/blog/h...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论