上一篇讲了 Chain-of-Thought——通过让模型"写出推理过程"来提升准确率。但你可能会问:能不能让模型自己学会推理,而不是每次都靠我在 Prompt 里写"请逐步推理"?
这正是推理模型(Reasoning Models)要做的事。
2024 年 9 月 OpenAI 发布 o1,2025 年初 DeepSeek 开源了 R1,推理模型成为 LLM 领域最受关注的新方向。这篇文章帮你搞清楚:推理模型到底是什么?和 CoT Prompt 有什么本质区别?什么时候该用推理模型?
传统模型 vs 推理模型:一个直觉类比
先看一个例子。问模型一道数学题:
一个水池有 A、B 两个进水管。A 管单独注满需要 6 小时,B 管单独注满需要 8 小时。同时打开两管,多久能注满?
传统模型(GPT-4o、Claude Sonnet)的回答方式:
(直接输出答案,可能包含一些推理步骤,但本质上是"快思考")
A 管每小时注 1/6,B 管每小时注 1/8。
同时开: 1/6 + 1/8 = 4/24 + 3/24 = 7/24
注满时间: 24/7 ≈ 3.43 小时
推理模型(o1、R1)的回答方式:
(先进行一段内部推理过程——"思维链",再给出答案)
让我仔细分析这个问题...
首先,我需要确定每个管子的注水速率。
A 管:单独注满需要 6 小时,所以速率 = 1/6 池/小时
B 管:单独注满需要 8 小时,所以速率 = 1/8 池/小时
当两个管子同时打开时,我需要把速率加起来:
总速率 = 1/6 + 1/8
为了计算这个和,我需要找到公分母。6 和 8 的最小公倍数是 24。
1/6 = 4/24
1/8 = 3/24
所以总速率 = 4/24 + 3/24 = 7/24 池/小时
注满时间 = 1 ÷ (7/24) = 24/7 小时
24 ÷ 7 = 3.428... 小时
等等,让我验证一下:
3.428 小时后,A 管注入了 3.428/6 = 0.571 池
3.428 小时后,B 管注入了 3.428/8 = 0.429 池
总和 = 0.571 + 0.429 = 1.000 池 ✓
答案是 24/7 小时,约 3.43 小时。
注意推理模型的几个特点:推理过程更长、会自我验证(“让我验证一下”)、会纠正自己的错误。这不是你在 Prompt 里要求的——这是模型自己学会的行为。
Test-time Compute:“思考更久,答案更好”
推理模型的核心创新是一个叫 test-time compute(测试时计算)的概念。
传统模型的工作方式是:输入 → 一次前向计算 → 输出。不管问题难不难,计算量是一样的。就像考试时不管什么题都花同样的时间。
推理模型的工作方式不同:它会根据问题的难度,动态分配更多的计算量。难题就多"想"一会儿,简单题就快速回答。
具体来说,推理模型在给出最终答案之前,会生成一段内部思维链(internal chain of thought)。这段思维链会消耗额外的 token 和计算时间,但能显著提升复杂问题的准确率。
传统模型:
输入 tokens → [Transformer 一次计算] → 输出 tokens
时间: ~1 秒
推理模型:
输入 tokens → [生成思维链: 500~5000 tokens] → [基于思维链生成最终答案]
时间: ~5~30 秒
类比:传统模型是"脱口而出",推理模型是"想清楚再说"。
和 CoT Prompt 的本质区别
这是最容易混淆的点。上一篇讲的 CoT Prompt 和推理模型的"思维链"看起来很像——都是让模型展示推理过程。但本质完全不同:
| CoT Prompt | 推理模型 | |
|---|---|---|
| 推理能力来源 | 靠 Prompt 临时"诱导" | 训练阶段就内化了 |
| 训练方式 | 标准预训练 + SFT | 额外加了强化学习(RL) |
| 推理质量 | 取决于 Prompt 写得好不好 | 模型自主选择推理策略 |
| 自我纠错 | 基本不会 | 会主动发现并纠正错误 |
| 适用模型 | 任何 LLM 都能用 | 只有专门的推理模型 |
打个比方:CoT Prompt 像是在考试时提醒自己"我要一步步想",但你的数学能力还是原来的水平。推理模型像是经过了大量刻意练习的数学高手,遇到难题自然会展开详细推理。
推理模型是怎么训练出来的?
以 DeepSeek-R1 为例,训练过程大致分三步:
- 预训练:和普通 LLM 一样,在海量文本上训练
- 冷启动 SFT:用少量高质量推理数据做监督微调,让模型学会"推理格式"
- 强化学习(RL):这是关键一步——给模型大量数学/逻辑题,如果推理过程正确且答案正确就给正奖励,如果推理过程错误或答案错误就给负奖励。模型通过 RL 学会了什么样的推理策略最有效
经过 RL 训练后,模型自发涌现出了一些行为:自我反思(“等等,这个假设不对”)、回溯验证(“让我检查一下”)、分情况讨论(“如果 A 成立…如果 B 成立…")。这些都不是人为写在训练数据里的,是 RL 过程中自然演化出来的。
主流推理模型一览
| 模型 | 厂商 | 开源 | 特点 |
|---|---|---|---|
| o1 | OpenAI | 否 | 首个商业推理模型,隐藏思维链 |
| o3 / o3-mini | OpenAI | 否 | o1 升级版,支持可调推理深度 |
| o4-mini | OpenAI | 否 | 更轻量,擅长工具调用 |
| DeepSeek-R1 | DeepSeek | 是 | 开源推理模型,思维链可见 |
| QwQ | 阿里 | 是 | 开源,对标 R1 |
| Claude Sonnet 4 (extended thinking) | Anthropic | 否 | 可配置推理预算 |
思维链可见 vs 不可见
o1 系列模型的思维链是隐藏的——你只能看到最终答案和一个摘要。而 DeepSeek-R1 的思维链是完全可见的,你可以看到它完整的推理过程。
对 Agent 开发来说,可见的思维链更有价值——你可以利用推理过程来做决策验证、调试错误。
什么时候用推理模型,什么时候用普通模型?
不是所有场景都需要推理模型。推理模型更慢、更贵,用错了反而浪费资源。
适合推理模型的场景:
- 数学题、逻辑推理、定理证明
- 复杂代码生成和调试
- 需要高准确率的决策(医疗、法律等领域)
- Agent 中的"规划"环节——把复杂任务拆解成子任务
不需要推理模型的场景:
- 简单翻译、摘要、格式转换
- 快速对话、闲聊
- 需要低延迟的实时应用
- Agent 中的"执行"环节——执行已规划好的简单步骤
实际建议:在 Agent 系统中,常见的做法是用推理模型做规划,用普通模型做执行。这样既保证了决策质量,又控制了成本和延迟。
推理模型对 Prompt Engineering 的影响
一个反直觉的事实:推理模型不太需要复杂的 Prompt Engineering。
传统模型需要 Few-shot、CoT 这些技巧来引导推理,但推理模型已经内化了这些能力。对于推理模型:
- 不需要写 “Let’s think step by step”——它自己就会
- 不需要给 Few-shot 示例来教推理格式——它已经会了
- 应该做的:把问题描述清楚,给足上下文,然后让模型自己推理
❌ 对推理模型过度 Prompt:
"请用 Chain-of-Thought 方法,一步一步分析以下问题。
首先列出已知条件,然后建立方程,最后验证答案..."
✅ 对推理模型的正确用法:
"一个水池有 A、B 两个进水管..."(直接描述问题就够了)
下一步
现在我们掌握了 LLM 基础(第 1 篇)、Prompt Engineering(第 2 篇)、推理模型的概念(本篇)。下一篇文章是实战篇——我们会跟着 Prompt Engineering Guide 动手练习,把这三篇的理论串起来,为进入第二阶段的 Agent 开发做准备。
推荐资源
- DeepSeek-R1 技术报告 — 理解推理模型训练过程的最佳资料
- OpenAI o1 使用指南 — 如何正确使用 o1/o3 系列模型
- Prompt Engineering Guide - Reasoning Models 章节 — CoT 与推理模型的对比分析