什么是思维链 #
为什么需要思维链? #
在了解思维链之前,我们先看看大语言模型在复杂推理任务中面临的挑战。
传统提示的局限性 #
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