思维链基础概念 #
核心术语 #
在深入学习思维链之前,我们需要了解一些核心术语。
基本术语表 #
text
┌─────────────────────────────────────────────────────────────┐
│ 核心术语表 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 术语 英文 说明 │
│ ───────────────────────────────────────────────────── │
│ 思维链 Chain of Thought 逐步推理的提示技术 │
│ 推理步骤 Reasoning Step 单个思考步骤 │
│ 中间结论 Intermediate Result 步骤间的过渡结果 │
│ 触发语 Trigger Phrase 激发思维链的短语 │
│ 示例 Demonstration Few-shot 中的范例 │
│ 推理路径 Reasoning Path 完整的推理过程 │
│ 自我一致性 Self-Consistency 多路径投票机制 │
│ │
└─────────────────────────────────────────────────────────────┘
术语详解 #
text
推理步骤 (Reasoning Step)
├── 定义:思维链中的单个思考单元
├── 特点:有明确的输入和输出
└── 示例:"计算小明拿走的苹果数:15 × 1/3 = 5"
中间结论 (Intermediate Result)
├── 定义:推理过程中产生的过渡性结论
├── 作用:连接前后步骤,支撑最终答案
└── 示例:"小明拿走后剩余 10 个苹果"
触发语 (Trigger Phrase)
├── 定义:激发模型生成思维链的短语
├── 常见形式:"Let's think step by step"
└── 作用:引导模型进入推理模式
思维链的基本结构 #
标准结构 #
text
┌─────────────────────────────────────────────────────────────┐
│ 思维链标准结构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [问题理解] │
│ │ │
│ ▼ │
│ [步骤1:分析已知条件] │
│ │ │
│ ▼ │
│ [步骤2:应用相关知识] │
│ │ │
│ ▼ │
│ [步骤3:计算/推理] │
│ │ │
│ ▼ │
│ [步骤4:验证结果] │
│ │ │
│ ▼ │
│ [最终答案] │
│ │
└─────────────────────────────────────────────────────────────┘
结构示例 #
text
问题:一个长方形花园,长 12 米,宽 8 米,
如果要在周围围上栅栏,需要多少米栅栏?
思维链:
[问题理解]
需要计算长方形的周长
[步骤1:分析已知条件]
- 长方形的长:12 米
- 长方形的宽:8 米
- 需要计算:周长
[步骤2:应用相关知识]
长方形周长公式:周长 = 2 × (长 + 宽)
[步骤3:计算]
周长 = 2 × (12 + 8)
= 2 × 20
= 40 米
[步骤4:验证]
长边:12 × 2 = 24 米
宽边:8 × 2 = 16 米
总计:24 + 16 = 40 米 ✓
[最终答案]
需要 40 米栅栏。
Zero-shot CoT 基础用法 #
最简单的思维链 #
Zero-shot CoT 是最简单的思维链形式,只需要在问题后添加触发语。
text
┌─────────────────────────────────────────────────────────────┐
│ Zero-shot CoT 模板 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [问题描述] │
│ │
│ Let's think step by step. │
│ (或:让我们一步步思考。) │
│ │
└─────────────────────────────────────────────────────────────┘
实际示例 #
python
# Python 代码示例
question = """
一个商店有 120 个苹果,第一天卖出了 1/4,
第二天卖出了剩余的 1/3,还剩多少个苹果?
"""
prompt = f"""
{question}
Let's think step by step.
"""
# 模型输出:
# 让我们一步步思考:
#
# 步骤1:计算第一天卖出的苹果数
# 第一天卖出:120 × 1/4 = 30 个
# 剩余:120 - 30 = 90 个
#
# 步骤2:计算第二天卖出的苹果数
# 第二天卖出:90 × 1/3 = 30 个
# 剩余:90 - 30 = 60 个
#
# 答案:还剩 60 个苹果。
常用触发语 #
text
英文触发语:
├── "Let's think step by step."
├── "Let's work this out step by step."
├── "Let's think through this carefully."
├── "Let's break this down."
└── "First, let's analyze the problem."
中文触发语:
├── "让我们一步步思考。"
├── "让我们逐步分析这个问题。"
├── "请详细说明你的推理过程。"
├── "让我们分解这个问题。"
└── "首先,让我们理解问题。"
Few-shot CoT 基础用法 #
基本模板 #
text
┌─────────────────────────────────────────────────────────────┐
│ Few-shot CoT 模板 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 示例1: │
│ 问题:[示例问题1] │
│ 回答:[带推理步骤的回答1] │
│ │
│ 示例2: │
│ 问题:[示例问题2] │
│ 回答:[带推理步骤的回答2] │
│ │
│ 示例3: │
│ 问题:[示例问题3] │
│ 回答:[带推理步骤的回答3] │
│ │
│ 问题:[实际问题] │
│ 回答: │
│ │
└─────────────────────────────────────────────────────────────┘
实际示例 #
python
prompt = """
问题:停车场有 15 辆车,开走了 3 辆,又开来了 7 辆,现在有几辆?
回答:停车场原来有 15 辆车。开走了 3 辆,剩下 15 - 3 = 12 辆。
又开来了 7 辆,现在有 12 + 7 = 19 辆。答案是 19。
问题:一本书有 240 页,小明第一天读了 1/4,第二天读了剩余的 1/3,
两天共读了多少页?
回答:第一天读了 240 × 1/4 = 60 页。剩余 240 - 60 = 180 页。
第二天读了 180 × 1/3 = 60 页。
两天共读了 60 + 60 = 120 页。答案是 120。
问题:一个水箱容量是 500 升,先注入了 3/5 的水,
然后用掉了 100 升,水箱里还剩多少升水?
回答:
"""
# 模型输出:
# 水箱容量是 500 升。
# 注入了 500 × 3/5 = 300 升水。
# 用掉了 100 升,剩余 300 - 100 = 200 升。
# 答案是 200 升。
提示词设计原则 #
原则一:清晰的问题陈述 #
text
❌ 不好的问题:
"算一下那个东西"
✅ 好的问题:
"一个长方形游泳池,长 25 米,宽 10 米,深 2 米。
计算游泳池的容积是多少立方米?"
原则二:合理的步骤划分 #
text
❌ 步骤过于粗糙:
步骤1:计算结果 = 25 × 10 × 2 = 500 立方米
✅ 步骤划分合理:
步骤1:确定计算公式
容积 = 长 × 宽 × 深
步骤2:代入数值
容积 = 25 × 10 × 2
步骤3:计算结果
容积 = 500 立方米
原则三:明确的推理逻辑 #
text
❌ 推理逻辑不清晰:
"因为是这样,所以那样"
✅ 推理逻辑清晰:
"因为长方形的对边相等,
所以周长 = 2 × (长 + 宽)"
原则四:适当的验证步骤 #
text
❌ 缺少验证:
"答案是 500"
✅ 包含验证:
"答案是 500 立方米。
验证:
长 × 宽 × 深 = 25 × 10 × 2 = 500 ✓"
思维链的适用条件 #
模型规模要求 #
text
┌─────────────────────────────────────────────────────────────┐
│ 模型规模与 CoT 效果 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 模型参数量 CoT 效果 建议 │
│ ───────────────────────────────────────────────────── │
│ < 10B 效果有限 不推荐使用 │
│ 10B - 70B 效果一般 可尝试使用 │
│ 70B - 175B 效果较好 推荐使用 │
│ > 175B 效果显著 强烈推荐 │
│ │
│ 结论:模型越大,思维链效果越明显 │
│ │
└─────────────────────────────────────────────────────────────┘
任务类型要求 #
text
适合思维链的任务:
┌─────────────────────────────────────────────────────────┐
│ │
│ ✅ 多步骤推理任务 │
│ 数学应用题、逻辑推理题 │
│ │
│ ✅ 需要中间结论的任务 │
│ 复杂计算、多条件判断 │
│ │
│ ✅ 可分解的复杂任务 │
│ 方案设计、问题分析 │
│ │
│ ✅ 需要解释性的任务 │
│ 决策分析、问题诊断 │
│ │
└─────────────────────────────────────────────────────────┘
不适合思维链的任务:
┌─────────────────────────────────────────────────────────┐
│ │
│ ❌ 单步骤简单任务 │
│ 简单计算、直接检索 │
│ │
│ ❌ 创意生成任务 │
│ 写作、绘画、音乐创作 │
│ │
│ ❌ 高度主观的任务 │
│ 情感表达、审美判断 │
│ │
│ ❌ 资源受限场景 │
│ 低延迟、低成本要求 │
│ │
└─────────────────────────────────────────────────────────┘
思维链的质量评估 #
评估维度 #
text
┌─────────────────────────────────────────────────────────────┐
│ 思维链质量评估 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 维度1:正确性 │
│ ├── 最终答案是否正确 │
│ └── 推理步骤是否正确 │
│ │
│ 维度2:完整性 │
│ ├── 是否覆盖所有必要步骤 │
│ └── 是否遗漏关键信息 │
│ │
│ 维度3:连贯性 │
│ ├── 步骤之间逻辑是否连贯 │
│ └── 推理链条是否完整 │
│ │
│ 维度4:清晰性 │
│ ├── 表述是否清晰易懂 │
│ └── 是否有歧义 │
│ │
│ 维度5:效率 │
│ ├── 步骤是否冗余 │
│ └── 是否有不必要的计算 │
│ │
└─────────────────────────────────────────────────────────────┘
评估示例 #
text
问题:小明有 50 元,买了 3 支铅笔,每支 2 元,
还买了一本笔记本 15 元,还剩多少钱?
思维链A(高质量):
步骤1:计算铅笔花费
3 × 2 = 6 元
步骤2:计算总花费
6 + 15 = 21 元
步骤3:计算剩余
50 - 21 = 29 元
答案:还剩 29 元。
评估:
- 正确性:✅ 答案和步骤都正确
- 完整性:✅ 覆盖所有必要步骤
- 连贯性:✅ 逻辑清晰连贯
- 清晰性:✅ 表述清晰
- 效率:✅ 无冗余步骤
思维链B(低质量):
小明买了东西,花了钱,还剩 29 元。
评估:
- 正确性:✅ 答案正确
- 完整性:❌ 缺少计算步骤
- 连贯性:❌ 逻辑跳跃
- 清晰性:⚠️ 表述模糊
- 效率:⚠️ 信息不足
常见问题与解决方案 #
问题1:推理步骤出错 #
text
问题表现:
步骤中的计算或逻辑出现错误
解决方案:
1. 使用 Self-Consistency 生成多条路径
2. 添加验证步骤
3. 使用更清晰的示例
示例:
问题:计算 23 × 15
错误思维链:
23 × 15 = 23 × 10 + 23 × 5 = 230 + 115 = 345 ❌
正确思维链:
步骤1:分解计算
23 × 15 = 23 × (10 + 5)
步骤2:分别计算
23 × 10 = 230
23 × 5 = 115
步骤3:验证 23 × 5
23 × 5 = 20 × 5 + 3 × 5 = 100 + 15 = 115 ✓
步骤4:求和
230 + 115 = 345
答案:345
问题2:步骤过于冗长 #
text
问题表现:
推理步骤过多,包含不必要的信息
解决方案:
1. 精简示例
2. 明确要求简洁
3. 优化提示词
示例:
冗长版本:
让我仔细思考这个问题。首先,我需要理解题目在问什么。
题目问的是 2 + 2 等于多少。这是一个加法运算。
加法是将两个数合并的过程。让我来计算一下。
2 加上 2,就是从 2 开始,往后数 2 个数。
2 后面是 3,再后面是 4。所以答案是 4。
简洁版本:
2 + 2 = 4
问题3:格式不统一 #
text
问题表现:
不同问题的思维链格式不一致
解决方案:
使用统一的模板
模板示例:
步骤1:[分析已知条件]
步骤2:[应用相关公式/知识]
步骤3:[计算/推理]
步骤4:[验证结果]
答案:[最终答案]
最佳实践总结 #
text
┌─────────────────────────────────────────────────────────────┐
│ 思维链最佳实践 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 选择合适的方法 │
│ ├── 简单问题:Zero-shot CoT │
│ └── 复杂问题:Few-shot CoT │
│ │
│ 2. 设计高质量示例 │
│ ├── 示例要有代表性 │
│ ├── 推理步骤要清晰 │
│ └── 格式要统一 │
│ │
│ 3. 合理划分步骤 │
│ ├── 每步一个明确的操作 │
│ ├── 步骤间有清晰的逻辑关系 │
│ └── 避免过度细分或过度概括 │
│ │
│ 4. 添加验证机制 │
│ ├── 关键步骤进行验证 │
│ ├── 最终结果进行检验 │
│ └── 使用 Self-Consistency │
│ │
│ 5. 持续优化 │
│ ├── 分析错误案例 │
│ ├── 改进示例和提示词 │
│ └── 积累高质量模板 │
│ │
└─────────────────────────────────────────────────────────────┘
下一步 #
现在你已经掌握了思维链的基础概念,接下来学习 技术详解,深入了解各种思维链技术的实现细节!
最后更新:2026-04-05