定义
Chain of Thought (CoT,思维链) 是一种提示工程技术,通过要求语言模型生成中间推理步骤,而非直接给出最终答案,来提升模型在需要逻辑推理、数学计算和复杂决策任务上的表现。
经典触发语:
- “Let’s think step by step”(让我们一步步思考)
- “Work through this step-by-step before giving your final answer”(在给出最终答案前,逐步解决这个问题)
工作原理
CoT 的核心洞察:LLM 在预训练期间学习了大量推理模式,但被训练为直接生成答案。显式要求展示推理过程可以:
- 激活推理知识:引导模型访问其训练中的逻辑推导模式
- 分解复杂问题:将多步骤问题拆分为可管理的子步骤
- 提供可解释性:输出中的推理步骤可作为调试和理解模型行为的依据
- 提高准确性:通过显式推理减少”跳步”导致的错误
类型
Zero-Shot CoT
不提供示例,仅通过指令要求模型思考。
问题:当我 3 岁时,我的伴侣年龄是我的 3 倍。现在我 20 岁,我的伴侣多大?
指令:让我们一步步思考。
模型输出:
1. 假设我现在年龄是 "x" 岁
2. 当我 3 岁时,我的年龄是 3 岁
3. 那时我伴侣的年龄是我的 3 倍,即 3 * 3 = 9 岁
4. 现在我 20 岁,意味着从我 3 岁到现在过了 20 - 3 = 17 年
5. 由于我伴侣那时 9 岁,且过去了 17 年,我伴侣现在 9 + 17 = 26 岁
因此,我的伴侣现在是 26 岁。
Few-Shot CoT
提供包含推理过程的示例,让模型学习推理模式。
Q: 我哥哥 2 岁时,我年龄是他的两倍。现在我 40 岁,我哥哥多大?
让我们一步步思考。
A: 我哥哥 2 岁时,我 2 * 2 = 4 岁。年龄差是 2 岁,我更大。
现在我 40 岁,所以我哥哥是 40 - 2 = 38 岁。答案是 38。
Q: [实际问题]
A:
效果与限制
适用场景
- 数学问题(算术、代数、概率)
- 逻辑推理(因果推断、条件判断)
- 多步骤规划(项目管理、策略制定)
- 决策分析(权衡比较、风险评估)
现代发展:CoT 的悖论
2024-2025 年的重要发现:
对于推理模型(o3-mini, o4-mini, Gemini Flash 2.5, Claude 4):
- CoT 收益极小(+2.9% 到 +3.1%)
- 但增加 20-80% 的响应时间
- 建议:不要对推理模型使用 CoT,它们内部已经自动推理
对于非推理模型:
- Claude Sonnet 3.5:+11.7% 提升(显著)
- GPT-4o-mini:+4.4% 提升(不显著)
- 建议:根据任务复杂度决定是否使用
自我一致性 (Self-Consistency)
改进的 CoT 变体:
- 对同一问题多次采样(高 temperature)
- 提取每次的答案
- 选择最频繁的答案
优点:提高答案可靠性和一致性 缺点:成本显著增加(多次调用)
最佳实践
有效策略
- 明确分离推理和答案:使用标签如
<thinking>和<answer> - 示例中展示推理模式:few-shot 时包含完整的推理过程
- 验证步骤:“完成前,根据 [测试标准] 验证你的答案”
- 结构化推理:要求使用编号步骤或 bullet points
避免的陷阱
- 对推理模型使用 CoT:浪费 token 和时间
- 过度引导:给定的步骤可能限制模型的自然推理
- 忽略输出长度:CoT 产生更多 token,增加成本
示例
数学问题(适用)
分析在客户支持中添加 AI 聊天机器人的 ROI。
先做数学计算,然后给出:
- 假设条件
- 简单 ROI 估算
- 最可能改变结果的因素
创意写作(不适用)
为一本设定在 1920 年代禁酒令时期的悬疑小说撰写开头段落。
这种场景不受益于逐步推理,直接的创意生成更有效。
关联连接
- Prompt_Engineering — 提示工程总览
- Tree_of_Thoughts — 思维树(CoT 的扩展)
- ReAct — 推理与行动
- Zero_Shot_Prompting — 零样本提示
- Few_Shot_Prompting — 少样本提示
- 摘要-google-prompt-engineering-whitepaper — Google 白皮书来源