什么是思维链 #

为什么需要思维链? #

在了解思维链之前,我们先看看大语言模型在复杂推理任务中面临的挑战。

传统提示的局限性 #

text
┌─────────────────────────────────────────────────────────────┐
│                    传统提示的问题                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  问题:一个篮子里有 15 个苹果,小明拿走了 1/3,                │
│        小红又放进了 4 个,现在篮子里有多少个苹果?             │
│                                                             │
│  传统回答:                                                  │
│  "篮子里现在有 14 个苹果。"                                  │
│                                                             │
│  ❌ 错误!模型直接跳到答案,没有展示推理过程                  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

问题分析 #

text
传统提示方式的问题:
├── 跳过推理步骤
│   └── 直接输出答案,容易出错
├── 缺乏可解释性
│   └── 不知道答案是如何得出的
├── 难以调试
│   └── 出错时无法定位问题
└── 复杂任务表现差
    └── 多步骤任务准确率低

思维链的定义 #

Chain of Thought(思维链)是一种提示工程技术,通过引导大语言模型将复杂问题分解为一系列中间推理步骤,逐步展示思考过程,最终得出答案。

核心思想 #

text
┌─────────────────────────────────────────────────────────────┐
│                    思维链核心思想                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  "让模型像人类一样思考"                                      │
│                                                             │
│  人类解决问题的方式:                                        │
│  1. 理解问题                                                │
│  2. 分解问题                                                │
│  3. 逐步推理                                                │
│  4. 得出结论                                                │
│                                                             │
│  思维链让模型也遵循这个过程:                                │
│  问题 ──> 步骤1 ──> 步骤2 ──> ... ──> 答案                  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

正确的思维链示例 #

text
问题:一个篮子里有 15 个苹果,小明拿走了 1/3,
      小红又放进了 4 个,现在篮子里有多少个苹果?

思维链回答:
让我一步步思考这个问题:

步骤1:计算小明拿走的苹果数量
- 小明拿走了 1/3
- 15 × 1/3 = 5 个苹果

步骤2:计算小明拿走后剩余的苹果
- 15 - 5 = 10 个苹果

步骤3:计算小红放进苹果后的总数
- 10 + 4 = 14 个苹果

答案:篮子里现在有 14 个苹果。 ✅

思维链的发现 #

论文背景 #

text
┌─────────────────────────────────────────────────────────────┐
│                    论文信息                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  标题:Chain-of-Thought Prompting Elicits Reasoning         │
│        in Large Language Models                             │
│                                                             │
│  作者:Jason Wei, Xuezhi Wang 等                            │
│                                                             │
│  机构:Google Research                                      │
│                                                             │
│  发表:NeurIPS 2022                                         │
│                                                             │
│  影响:开创性工作,被引用超过 5000 次                        │
│                                                             │
└─────────────────────────────────────────────────────────────┘

关键发现 #

text
研究发现的惊人结果:
┌───────────────────────────────────────────────────────────┐
│                                                           │
│  GSM8K 数学推理基准测试:                                  │
│                                                           │
│  模型           标准提示    思维链提示    提升             │
│  ─────────────────────────────────────────────           │
│  PaLM 540B      17.9%       56.9%        +39%            │
│  GPT-3          15.6%       46.9%        +31.3%          │
│  LaMDA 137B     13.4%       35.6%        +22.2%          │
│                                                           │
│  结论:思维链显著提升复杂推理任务的准确率                   │
│                                                           │
└───────────────────────────────────────────────────────────┘

思维链的工作原理 #

为什么思维链有效? #

text
┌─────────────────────────────────────────────────────────────┐
│                    思维链有效的原理                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 分解复杂问题                                            │
│     ┌─────────────────────────────────────────────────┐    │
│     │ 复杂问题 ──> 简单子问题 ──> 逐个解决            │    │
│     └─────────────────────────────────────────────────┘    │
│                                                             │
│  2. 提供推理路径                                            │
│     ┌─────────────────────────────────────────────────┐    │
│     │ 每一步都有明确的逻辑连接,减少跳跃性错误        │    │
│     └─────────────────────────────────────────────────┘    │
│                                                             │
│  3. 利用模型的知识                                          │
│     ┌─────────────────────────────────────────────────┐    │
│     │ 中间步骤激活模型的相关知识,提高准确性          │    │
│     └─────────────────────────────────────────────────┘    │
│                                                             │
│  4. 增加计算资源                                            │
│     ┌─────────────────────────────────────────────────┐    │
│     │ 更多 token 用于推理,而非直接输出答案           │    │
│     └─────────────────────────────────────────────────┘    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

认知科学视角 #

text
人类认知过程 vs 思维链:

人类解决问题:
┌─────────────────────────────────────────────────────────┐
│ 1. 理解问题情境                                          │
│ 2. 激活相关知识                                          │
│ 3. 构建推理链条                                          │
│ 4. 逐步推导验证                                          │
│ 5. 得出最终结论                                          │
└─────────────────────────────────────────────────────────┘

思维链模拟:
┌─────────────────────────────────────────────────────────┐
│ 1. 解析问题语义                                          │
│ 2. 检索相关知识                                          │
│ 3. 生成推理步骤                                          │
│ 4. 逐步执行推理                                          │
│ 5. 输出最终答案                                          │
└─────────────────────────────────────────────────────────┘

思维链的类型 #

1. Zero-shot CoT #

text
┌─────────────────────────────────────────────────────────────┐
│                    Zero-shot CoT                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  特点:不需要示例,仅用一句话触发                            │
│                                                             │
│  触发语:"Let's think step by step"                         │
│         或 "让我们一步步思考"                               │
│                                                             │
│  示例:                                                     │
│  问题:Roger 有 5 个网球,他又买了 2 罐网球,               │
│        每罐有 3 个,他现在有多少个网球?                    │
│                                                             │
│  提示:                                                     │
│  Roger 有 5 个网球,他又买了 2 罐网球,每罐有 3 个,        │
│  他现在有多少个网球?                                       │
│  让我们一步步思考。                                         │
│                                                             │
│  优点:简单易用,无需准备示例                               │
│  缺点:效果可能不如 Few-shot CoT                            │
│                                                             │
└─────────────────────────────────────────────────────────────┘

2. Few-shot CoT #

text
┌─────────────────────────────────────────────────────────────┐
│                    Few-shot CoT                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  特点:提供几个带推理过程的示例                              │
│                                                             │
│  示例:                                                     │
│  ─────────────────────────────────────────────             │
│  Q: 停车场有 3 辆车,又开来了 2 辆,现在有几辆?            │
│  A: 停车场原来有 3 辆车。又开来了 2 辆。                    │
│     3 + 2 = 5。答案是 5。                                   │
│  ─────────────────────────────────────────────             │
│  Q: 书架上有 8 本书,借走了 3 本,还剩几本?                 │
│  A: 书架上原来有 8 本书。借走了 3 本。                      │
│     8 - 3 = 5。答案是 5。                                   │
│  ─────────────────────────────────────────────             │
│  Q: Roger 有 5 个网球,他又买了 2 罐网球,每罐有 3 个,     │
│     他现在有多少个网球?                                    │
│  A:                                                         │
│                                                             │
│  优点:效果更好,推理模式更清晰                              │
│  缺点:需要准备示例,占用更多 token                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘

3. Self-Consistency CoT #

text
┌─────────────────────────────────────────────────────────────┐
│                    Self-Consistency CoT                      │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  特点:生成多条推理路径,投票选择最一致答案                  │
│                                                             │
│  流程:                                                     │
│  问题 ──> 推理路径1 ──> 答案A                               │
│       ──> 推理路径2 ──> 答案B                               │
│       ──> 推理路径3 ──> 答案A                               │
│       ──> 推理路径4 ──> 答案A                               │
│                                                             │
│  投票:答案A 出现 3 次,答案B 出现 1 次                     │
│  最终答案:A                                                │
│                                                             │
│  优点:准确率更高,减少随机错误                              │
│  缺点:计算成本更高                                         │
│                                                             │
└─────────────────────────────────────────────────────────────┘

思维链的发展历程 #

text
2022年1月 ─── 思维链概念提出
    │
    │      Google Research 论文
    │      证明 CoT 能显著提升推理能力
    │
2022年3月 ─── Zero-shot CoT
    │
    │      "Let's think step by step"
    │      简单触发语,无需示例
    │
2022年5月 ─── Self-Consistency
    │
    │      多路径投票机制
    │      进一步提升准确率
    │
2023年5月 ─── Tree of Thoughts (ToT)
    │
    │      树状思维结构
    │      支持搜索和回溯
    │
2023年8月 ─── Graph of Thoughts (GoT)
    │
    │      图状思维结构
    │      更灵活的推理模式
    │
2023年10月 ─── Auto-CoT
    │
    │      自动生成思维链示例
    │      减少人工标注成本
    │
2024年 ─── 多模态 CoT
    │
    │      支持图像、表格等多模态
    │      扩展应用场景
    │
至今   ─── 广泛应用
    │
    │      成为 LLM 应用的标准技术
    │      与 DSPy、LangChain 等深度集成

思维链的适用场景 #

适合使用思维链的场景 #

text
✅ 数学推理
   - 算术运算
   - 代数问题
   - 几何计算

✅ 逻辑推理
   - 三段论
   - 条件推理
   - 因果分析

✅ 常识推理
   - 物理常识
   - 社会常识
   - 时事分析

✅ 符号推理
   - 字母序列
   - 数字规律
   - 逻辑谜题

✅ 复杂决策
   - 多因素分析
   - 权衡取舍
   - 方案评估

不适合使用思维链的场景 #

text
❌ 简单任务
   - 单步计算
   - 直接检索
   - 简单分类

❌ 创意生成
   - 写诗
   - 编故事
   - 头脑风暴

❌ 低资源场景
   - Token 预算有限
   - 响应时间敏感
   - 成本敏感应用

思维链的优势与局限 #

优势 #

text
┌─────────────────────────────────────────────────────────────┐
│                    思维链的优势                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ✅ 显著提升推理准确率                                      │
│     数学任务提升 30-40%                                     │
│                                                             │
│  ✅ 提供可解释的推理过程                                    │
│     每一步都清晰可见                                        │
│                                                             │
│  ✅ 无需模型微调                                            │
│     仅通过提示词实现                                        │
│                                                             │
│  ✅ 通用性强                                                │
│     适用于各种 LLM                                          │
│                                                             │
│  ✅ 易于实现                                                │
│     学习门槛低                                              │
│                                                             │
│  ✅ 便于调试                                                │
│     可以定位推理错误位置                                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

局限性 #

text
┌─────────────────────────────────────────────────────────────┐
│                    思维链的局限                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ⚠️ 增加计算成本                                            │
│     生成更多 token,费用更高                                │
│                                                             │
│  ⚠️ 响应时间更长                                            │
│     推理步骤多,延迟增加                                    │
│                                                             │
│  ⚠️ 对小模型效果有限                                        │
│     模型参数量需要足够大                                    │
│                                                             │
│  ⚠️ 可能产生错误推理                                        │
│     推理过程本身可能出错                                    │
│                                                             │
│  ⚠️ 示例质量影响效果                                        │
│     Few-shot CoT 需要高质量示例                             │
│                                                             │
│  ⚠️ 不适合所有任务                                          │
│     简单任务反而降低效率                                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

思维链与其他技术的关系 #

text
┌─────────────────────────────────────────────────────────────┐
│                    提示工程技术图谱                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│                    Prompt Engineering                       │
│                          │                                  │
│          ┌───────────────┼───────────────┐                 │
│          │               │               │                 │
│     Zero-shot      Few-shot       Chain of Thought         │
│          │               │               │                 │
│          │               │         ┌─────┼─────┐          │
│          │               │         │     │     │          │
│          │               │      Zero-shot Few-shot        │
│          │               │      CoT      CoT              │
│          │               │         │     │                │
│          │               │         └──┬──┘                │
│          │               │            │                   │
│          │               │    Self-Consistency             │
│          │               │            │                   │
│          │               │    ┌───────┼───────┐          │
│          │               │    │               │          │
│          │               │  Tree of        Graph of       │
│          │               │  Thoughts       Thoughts       │
│          │               │                                │
│          └───────────────┴───────────────────────────────┘│
│                                                             │
└─────────────────────────────────────────────────────────────┘

学习路径 #

text
入门阶段
├── 什么是思维链(本文)
└── 基础概念

基础阶段
├── Zero-shot CoT
├── Few-shot CoT
└── Self-Consistency

进阶阶段
├── Tree of Thoughts
├── Graph of Thoughts
└── 自动 CoT

实战阶段
├── 数学推理应用
├── 代码生成应用
└── 复杂决策应用

下一步 #

现在你已经了解了思维链的基本概念,接下来学习 基础概念,深入了解思维链的核心术语和基本用法!

最后更新:2026-04-05