32.推理模型原理:o1 / R1 的 Test-Time Scaling 新范式
推理模型原理:o1 / R1 的 Test-Time Scaling 新范式
《大模型知识与部署》系列 · No.32 / 35
适合人群:AI 工程师、技术决策者
阅读时间:约 28 分钟

写在前面
如果说 2017-2023 大模型的关键词是 Scaling Law(参数和数据越多越好),那 2024-2026 就出现了一个全新关键词——
Test-Time Scaling(推理时扩展)。
这是和 MoE 并列的,过去三年大模型最重要的两大架构创新。它的核心思想极其反直觉:
让模型在回答前,先「思考很久」。
简单一句话背后,是 OpenAI o1(2024.09)、DeepSeek R1(2025.01)、Claude 4 Thinking、Gemini 2.5、Qwen3 Thinking 等一系列"推理模型"的崛起。
如果你做过相关工作,下面这些问题应该不熟:
- 推理模型和普通 LLM 有什么本质区别?
- R1 是怎么从 V3 训出来的?为什么"R1-Zero 的 aha moment"那么轰动?
- 推理模型为什么思考可以那么长?token 不就爆炸了吗?
- 我的业务该不该用推理模型?什么时候用?
- 推理模型部署有什么特殊要求?
读完本文你将能:
- 理解 Test-Time Scaling 的数学逻辑
- 拆解 DeepSeek R1 的训练流程(含 GRPO 算法)
- 评估推理模型的工程成本与业务价值
- 部署推理模型的关键注意事项
- 判断推理模型的未来方向
我们开始。
一、Test-Time Scaling 的革命
1.1 一句话颠覆 Scaling Law
回顾第 6 篇我们讲的传统 Scaling Law:
模型 Loss ∝ N^-α · D^-β · C^-γ
N:参数量
D:数据量
C:训练算力
过去 6 年,行业的逻辑都是「堆训练算力 = 更好的模型」。
2024 年 9 月,OpenAI 发布 o1,提出新观点:
训练算力到了一定规模后边际收益递减。但「推理时多想几步」能持续提升效果。
换言之:算力支出从"训练阶段"转移到"推理阶段"。
1.2 数学逻辑
考虑一道数学题:
朴素 LLM:
prompt → 直接生成答案
生成 200 token
推理模型:
prompt → 生成思考链(2000-10000 token)→ 答案
总生成 5000+ token
实测结果(AIME 数学竞赛):
| 模型 | 准确率 |
|---|---|
| GPT-4o(无思考) | 9% |
| o1-mini | 70% |
| o1(深度思考) | 83% |
| o3 | 96% ⭐ |
思考时间越长,效果越好——这就是 Test-Time Scaling。
1.3 为什么这是「革命」
之前业界以为:模型能力主要由训练决定,推理就是"取出来用"。
推理模型证明:模型还有大量"潜在能力",只有在长时间推理下才被激活。
经济意义:
- 训练成本:一次性
- 推理成本:随业务量持续支出
- 新范式让"算力支出"匹配"任务难度"——简单问题快回答,难问题深思考
1.4 三个 Scaling Law 并存
2026 年,业界形成了三个并存的 Scaling Law:
1. Pre-training Scaling ── 训练算力 → 基础能力
2. Post-training Scaling ── RL / SFT 算力 → 对齐与精炼
3. Test-Time Scaling ── 推理算力 → 深度推理
未来 5 年,Test-Time Scaling 占比会越来越大。
二、推理模型的核心机制
2.1 思考链(Chain of Thought)
第 30 篇我们讲过 CoT prompt 技巧——但推理模型把 CoT 内化到了模型本身。
普通 LLM 用 CoT prompt:
用户:「逐步思考...」(明确要求)
模型:思考 → 答案
推理模型:
用户:「2 + 3 × 7 = ?」
模型自动:
<thinking>
先算乘法:3 × 7 = 21
再算加法:2 + 21 = 23
答案是 23
</thinking>
23
关键区别:
- 普通 LLM:需要 prompt 引导才思考
- 推理模型:天生会思考,且思考更长更深
2.2 thinking tokens 的工程意义
推理模型把思考过程标记为特殊 token:
<thinking>...内部推理...</thinking>
<answer>最终答案</answer>
或者类似 OpenAI o1:
[隐藏的内部 reasoning tokens]
最终答案对用户可见
工程影响:
- token 数大幅增加:一个问题可能产生 5K-50K thinking tokens
- TTFT 变长:用户看到答案前要等模型"思考完"
- API 计费:thinking tokens 也算钱
2.3 推理深度的可控性
主流推理模型都提供「思考深度」参数:
# OpenAI o3
response = client.chat.completions.create(
model="o3",
messages=[...],
reasoning_effort="high" # low / medium / high
)
# Claude 4 Thinking
response = client.messages.create(
model="claude-opus-4-7",
thinking={
"type": "enabled",
"budget_tokens": 10000 # 思考预算
},
messages=[...]
)
# DeepSeek R1
response = client.chat.completions.create(
model="deepseek-r1",
messages=[...],
extra_body={"thinking_budget": 8000}
)
工程师视角:
「思考预算」是新的核心调参维度——和 max_tokens / temperature 并列。
三、DeepSeek R1:第一个公开的推理模型完整训练方法
OpenAI o1 的训练方法没有公开。但 2025.01 DeepSeek R1 完整开源 + 公开了训练方法,彻底改变了行业认知。
3.1 R1 的训练流水线
DeepSeek-V3 Base
↓
[R1-Zero] 直接做 GRPO 强化学习
↓
观察:模型自发出现"反思"、"验证"等推理行为
↓
[R1] 加 SFT 数据 + 多轮 GRPO + 通用对齐
↓
DeepSeek-R1(超过 o1 的开源推理模型)
3.2 GRPO 算法(第 8 篇深入讲过)
回顾 GRPO 的核心:
对同一个 prompt,模型生成 K 个不同回复
计算每个回复的 reward(数学题对错、代码能不能跑、推理是否合理)
组内归一化得到 advantage
更新模型
关键设计:
- 不用 critic 模型(省 1 个 70B 显存)
- 不用复杂偏好模型(用规则验证)
- 奖励信号稀疏但明确
R1 训练的奖励函数:
def reward_function(question, response):
# 1. 答案正确性(最重要)
if has_correct_answer(question, response):
reward += 1.0
# 2. 格式正确(用 <thinking> 包裹)
if has_thinking_tags(response):
reward += 0.1
# 3. 语言一致性
if same_language_as_question(question, response):
reward += 0.05
return reward
3.3 R1-Zero 的「Aha Moment」
R1 训练过程中最震撼业界的发现:
纯 RL 训练(不加任何 SFT 推理数据)能让模型自发"学会反思"。
DeepSeek 公开的训练日志里有这样的输出:
模型生成(训练某步):
设 x = ...
应用公式...
得到 x = 5
等等,让我重新检查
我看错了一步
重新计算...
正确答案是 x = 7
哦!这就是 aha moment.
模型自己"涌现"出了反思能力——没有任何人教它"要反思"。
这个发现震撼业界:
- 证明 RL + 简单奖励能让模型涌现复杂推理
- "推理能力"不需要显式数据
- 给开源社区"做推理模型"打开了大门
3.4 R1-Zero vs R1
R1-Zero 虽然推理能力强,但有问题:
- 输出语言可能混乱(中英夹杂)
- 不易读
- 对齐性不够(拒答率低)
所以 DeepSeek 又做了 R1(基于 R1-Zero 加 SFT + 多轮 RL):
R1-Zero(纯 RL)→ 收集高质量 thinking 输出 → SFT R1 → 再做 GRPO → R1
最终 R1:推理强 + 输出清晰 + 对齐好。
3.5 R1 开源后的影响
R1 完全开源(包括权重 + 训练方法)后:
- 6 个月内 Qwen、阿里、智谱、零一、百川 等都推出推理模型
- 蒸馏小模型潮:R1 蒸馏到 Llama 8B、Qwen 7B 等,让小模型也能推理
- 开源推理模型质量逼近 o3
四、推理模型的部署与使用
4.1 与传统 LLM 的部署区别
| 维度 | 传统 LLM | 推理模型 |
|---|---|---|
| 平均输出长度 | 200-1000 token | 5K-50K token |
| TTFT | 200-500 ms | 不变 |
| 端到端延迟 | 5-15 秒 | 30 秒 - 5 分钟 |
| 单请求成本 | 中 | 高 10-50× |
| 适合场景 | 通用对话 | 复杂推理 |
4.2 部署 DeepSeek R1
# SGLang 部署 R1(推荐)
python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-R1 \
--tp 8 \
--ep 4 \
--enable-deepep \
--quantization fp8 \
--kv-cache-dtype fp8 \
--max-model-len 65536 \ # 思考链占用大
--port 30000
关键参数变化:
--max-model-len 65536:必须设大(thinking 链占满)- KV Cache 量化必开(thinking 让 KV 爆炸)
4.3 思考链可见性
不同模型对 thinking 的处理不同:
| 模型 | 思考可见? |
|---|---|
| OpenAI o1 / o3 | 不可见(只算 token) |
| OpenAI gpt-5(reasoning 模式) | 部分可见 |
| Claude 4.7 Thinking | 可见 |
| DeepSeek R1 | 完全可见 ⭐ |
| Qwen3 Thinking | 可见 |
| Gemini 2.5 Pro | 部分可见 |
完全可见的好处:
- 调试方便
- 信任度高(用户能看推理过程)
- 可以做"思考链摘要"
完全不可见的好处:
- 保护商业机密(OpenAI 担心被蒸馏)
- UI 简洁
4.4 流式输出的特殊处理
# 推理模型的流式输出要区分 thinking 和 answer
async for chunk in stream:
if chunk.thinking:
# 显示 "🤔 思考中..." 或折叠区
update_ui(thinking_chunk=chunk.thinking)
elif chunk.content:
# 正常显示答案
update_ui(answer_chunk=chunk.content)
用户体验设计:
- 思考过程:折叠 / “🤔 推理中” 动画
- 最终答案:流式 / 高亮
- 思考时长:明显展示(用户更愿意等)
4.5 Prompt 工程的变化
第 30 篇我们讲过——对推理模型,prompt 反而要更简洁:
❌ 对推理模型不必要:
- "Let's think step by step"(它自己会)
- 复杂 CoT 提示
- 大量 few-shot 例子
✅ 推理模型友好:
- 清晰的任务描述
- 明确的输出要求
- 1-2 个例子(如有需要)
Anthropic 官方建议(Claude 4 Thinking):
对 thinking 模型,prompt 要:
- 简洁直接
- 明确"思考预算"
- 给"何时停止思考"的信号
五、2026 年的推理模型版图
5.1 闭源推理模型
| 模型 | 思考深度 | 价格(输出/M token) |
|---|---|---|
| OpenAI o3 | 极深 | $40+ |
| GPT-5(reasoning 模式) | 深 | $40 |
| Claude Opus 4.7 Thinking | 深 | $75 |
| Claude Sonnet 4.6 Thinking | 中 | $15 |
| Gemini 2.5 Pro(thinking) | 深 | $10 |
| Grok 3 Reasoning | 中 | - |
5.2 开源推理模型
| 模型 | 来源 | 思考能力 |
|---|---|---|
| DeepSeek R1 | DeepSeek | 接近 o1 ⭐ |
| DeepSeek R2(预计 2026 Q3) | DeepSeek | 接近 o3 |
| Qwen3-Thinking-72B | 阿里 | 接近 R1 |
| GLM-4.5 Thinking | 智谱 | 接近 R1 |
| QwQ 系列 | 阿里 | 早期版本 |
| DeepSeek-R1-Distill | 多个版本 | 7B - 70B 蒸馏 |
5.3 蒸馏:让小模型也会推理
DeepSeek-R1-Distill 让端侧小模型也能推理:
R1 (671B)
↓ 蒸馏
DeepSeek-R1-Distill-Qwen-32B
↓
DeepSeek-R1-Distill-Llama-8B
↓
DeepSeek-R1-Distill-Qwen-1.5B ← 手机能跑
实测(数学 AIME 2024):
| 模型 | 准确率 | 大小 |
|---|---|---|
| GPT-4o | 9% | 闭源 |
| Claude 3.5 Sonnet | 16% | 闭源 |
| R1-Distill-1.5B | 28% | 1.5B(手机能跑) |
| R1-Distill-7B | 55% | 7B |
| R1-Distill-32B | 72% | 32B |
| DeepSeek R1 (671B) | 79% | 671B |
1.5B 蒸馏模型超过 GPT-4o——这是 2026 年最震撼的事实之一。
六、推理模型的应用边界
6.1 什么场景该用推理模型
✅ 强烈推荐:
- 数学 / 物理 / 化学:明确对错的推理题
- 代码生成 / Debug:复杂逻辑问题
- 数据分析:多步骤推断
- 复杂规划:旅行 / 项目 / 战略
- 法律 / 医疗推理:需要严谨论证
✅ 推荐:
- 复杂 Agent 任务(多步规划)
- RAG + 推理(检索后深度分析)
- 创意写作(多次自我批评)
❌ 不推荐:
- 简单问答(杀鸡用牛刀)
- 闲聊
- 翻译 / 摘要(标准任务)
- 实时对话(延迟敏感)
- 大流量 ToC(成本太高)
6.2 经济性测算
假设业务每天 1 万次调用:
| 模型类型 | 单次平均 token | 日成本 |
|---|---|---|
| Claude Sonnet 4.6(标准) | 500 | ¥27 |
| Claude Sonnet 4.6 Thinking | 5000 | ¥270 |
| Claude Opus 4.7 Thinking | 8000 | ¥4320 |
| DeepSeek V3(标准) | 500 | ¥4 |
| DeepSeek R1(推理) | 5000 | ¥40 |
结论:
- 推理模型成本是普通的 10-50×
- 必须有明确价值才划算
- 国产推理模型成本远低于闭源
6.3 混合架构(生产最常用)
# 用小模型路由
async def smart_route(question):
complexity = await classifier_model.classify(question)
if complexity == "simple":
return await chat_model.complete(question) # 普通 LLM
elif complexity == "medium":
return await chat_model.complete(question, cot=True) # 普通 + CoT
else: # complex
return await reasoning_model.complete(question) # 推理模型
实测:把 80% 简单请求路由到普通模型,总成本降 70%+。
6.4 一个真实失败案例
某团队全面替换 Claude Sonnet 为 Claude Opus 4.7 Thinking:
- 质量:复杂场景提升 30%
- 延迟:用户反馈"太慢了"
- 成本:月账单涨 8 倍
- 结果:3 周后回滚
教训:推理模型不是替代品,是补充品。
七、推理模型的工程难点
7.1 KV Cache 爆炸
5000+ thinking tokens 让 KV Cache 增长 5-10 倍。
对策:
- KV Cache 量化(FP8 / INT8)
- 分组多请求并发(不要一个请求独占)
- thinking 完成后释放 thinking 部分的 KV(vLLM 0.7+ 支持)
7.2 长尾延迟
不同难度问题思考时长差异巨大:
- 简单:5 秒
- 中等:30 秒
- 极难:5 分钟
对策:
- 设
max_thinking_tokens硬上限 - 长任务异步化(先返回 task_id,完成后通知)
- p99 延迟容忍度提高
7.3 流式 UX 设计
用户看到屏幕静默 30 秒会以为挂了。
对策:
1. 立即显示「正在深度思考...」
2. 流式输出 thinking 内容(可折叠)
3. 实时显示已思考时长
4. 完成后高亮答案
7.4 评估难
推理模型的评估比传统 LLM 难:
- 思考长度变化大
- 思考质量难量化
- 简单题 vs 难题表现差异巨大
对策:
- 用 AIME / MATH / SWE-Bench / GPQA 等推理 benchmark
- 业务真实推理题准备 100+ 测试集
- 不要看平均,看分级(简单 / 中等 / 难)
八、推理模型的未来
8.1 当下趋势
- 思考时长指数级增长:o3 单题可思考几十分钟
- 思考过程可控:用户能干预思考方向
- 多模态推理:图像 + 推理(Gemini 2.5)
- 小模型推理:蒸馏 + 端侧 thinking
- 思考成本下降:硬件 + 优化双向推进
8.2 推理 Scaling 的物理上限
传统 Scaling:参数翻倍 → 算力翻 4 倍
推理 Scaling:思考长度翻倍 → 单次成本翻倍
短期内,推理 Scaling 比训练 Scaling 更有性价比。但长期,思考长度也会遇到上限(用户耐心 + 经济性)。
8.3 与其他技术的融合
- MoE + 推理:DeepSeek R1 已经在做(R1 基于 V3 MoE)
- 多模态 + 推理:Gemini 2.5 / GPT-5
- Agent + 推理:Devin / Claude Code
- 小模型 + 推理蒸馏:R1-Distill 系列
九、避坑 + 下一篇预告
9.1 5 大避坑
坑 1:迷信「推理模型万能」
对策:不是所有任务都需要推理——简单任务用普通 LLM。
坑 2:忽视成本
对策:上线前算好月度成本,特别是 thinking tokens 部分。
坑 3:延迟设计不到位
对策:流式 UX + 异步任务 + 进度展示。
坑 4:prompt 写得太复杂
对策:推理模型 prompt 要简洁,让模型自己思考。
坑 5:没做能力评估
对策:用真实业务推理题评估,不要只跑通用 benchmark。
9.2 下一篇预告
- 第 33 篇:端侧大模型 - Phi、Gemma 与小模型逆袭 —— 推理模型让小模型也能强推理。这一篇专门讲小模型在端侧的崛起。
- 之后是开源 vs 闭源(34 篇)、大模型安全(35 篇,系列收官)。
结语:推理模型是 LLM 的「第二层智能」
读完本文你应该明白:
- Test-Time Scaling 是与 Pre-training Scaling 并列的新范式
- DeepSeek R1 完全公开了训练方法,开启开源推理时代
- GRPO + 简单 reward + 大规模 RL = 涌现推理能力
- R1 蒸馏让 1.5B 模型也能超过 GPT-4o
- 生产场景应该混合架构:简单任务普通 LLM、复杂任务推理模型
- 推理模型成本是 10-50×——业务价值要匹配
下一篇我们继续:
- 第 33 篇:端侧大模型 —— 当小模型变得越来越强,部署边界从云转向端。
我们下篇见。
📮 关于「码海寻道」
这里是一个聚焦 AI 工程化、大模型部署、后端架构实战的技术专栏。
写最一线的踩坑经验,做最务实的技术拆解。如果这篇文章对你有启发,欢迎点赞、转发、关注。我们下篇见。
更多推荐


所有评论(0)