给 DeepSeek-R1 一道 AIME 竞赛题,它会在
<think>标签里写下几千个 token:重述题目、拆成子问题、算到一半突然冒出一句 “Wait”,推翻刚才的思路、换条路重来、再回头验证一遍,最后才给出答案。这些动作——拆解、验证、回溯——没有一条是人示范给它的。训练它的奖励函数只看一件事:最终答案对不对。这篇文章沿着可核实的一手论文,把这台”思考机器”从外到里拆完:它想的时候到底发生了什么,这种能力是怎么被训练出来的,以及在参数层面,“思考”对应着什么。
一句话主线
R1 的”思考”是激励的产物,不是模仿的产物:只奖励结果,推理行为会自己长出来;而长出来之后,它既有稳定的宏观解剖结构(定义→开花→重构→定案),也有可定位、可加减的微观内部机制(线性方向与锚点句)。
全文回答四个问题,恰好是从外到里的四层:
- 解剖层——R1 想的时候,思维链里到底发生了什么?
- 起源层——这些行为是被哪条训练链路”养”出来的?
- 机制层——在激活空间和注意力里,“思考”对应什么?
- 边界层——这套叙事哪里要打折扣?
一、解剖层:一次”思考”内部发生了什么
1.1 先立住一个反直觉事实:没有搜索树
很多人默认 o1/R1 这类推理模型在推理时跑着某种蒙特卡洛树搜索(MCTS),在候选分支间挑挑拣拣。对 R1 而言,这是错的——而且论文明确把 MCTS 列为尝试过并放弃的路线(原因见 2.3 节)。
R1 推理时做的事在机制上和普通聊天模型完全一样:纯自回归采样,一个 token 接一个 token 地生成,没有分支、没有回滚、没有外部验证器。区别只有两个:
- 对话模板强制它先输出
<think>...</think>思考块,再输出面向用户的回答; - 官方推荐的采样参数是 temperature 0.6、top-p 0.95(后来的分析论文如 Thought Anchors 也沿用这组配置)。
所以”多想一会儿”在 R1 这里的物理含义就是多采样几千个 token。回溯不是撤销已生成的内容,而是在后面追加一句”等等,刚才那步不对”——思维链是只往前写的草稿纸,不是可编辑的搜索树。这是理解后面一切的地基。
1.2 思维链的四段解剖
那这几千个 token 内部有没有结构?有,而且相当稳定。DeepSeek-R1 Thoughtology(Marjanović et al., 2025)对大量 R1 推理链做人工标注,提炼出一个四段式解剖:
flowchart LR
A["问题定义<br/>Problem Definition"] --> B["开花循环<br/>Blooming Cycle"]
B --> C["重构循环 xN<br/>Reconstruction Cycles"]
C --> C
C --> D["最终定案<br/>Final Decision"]
- 问题定义(problem definition):重述任务,识别已知量和未知量。有趣的是,这一段花的时间在各类任务上基本恒定——像一个固定开销的”读题仪式”。
- 开花循环(blooming cycle):第一次把问题拆成子问题,给出初步解,中途可能夹带自我验证。
- 重构循环(reconstruction cycles):反复回访之前的假设和路线,是整条思维链中任务间差异最大的部分——难题和易题的区别,几乎全在这里。论文进一步把重构分成三种:
- 再开花(re-bloom):换一条全新路线重新拆解;
- 反刍(rumination):反复咀嚼已经得出的步骤,重复论证、原地打转;
- 放弃(abandonment):明确宣布某条路线走不通。
- 最终定案(final decision):带着确信度陈述答案。
换句话说,R1 的”思考”不是均匀的一长串,而是一次读题 + 一次初解 + 若干轮自我重审。你在思维链里看到的 “Wait”、“Alternatively”、“Let me double-check”,就是重构循环的启动标志。
1.3 想得越久越好?不,有”甜点区”
Thoughtology 还有一个泼冷水的发现:每类问题存在一个推理长度的甜点区(sweet spot)——超过它,更多的思考 token 反而让正确率下降。主要病理就是上面的”反刍”:模型困在已探索过的问题表述里反复绕圈,挤占了真正探索新路线的预算。
这一点值得单独记住,因为它直接反驳了”test-time compute 越多越好”的朴素版本:R1 学会了延长思考,但没有完全学会何时停止思考。
二、起源层:这些行为是怎么长出来的
现在回答第二个问题:上面这套解剖结构,没有任何人类示范,是怎么出现的?这就是 R1 训练主干链路的故事。先看全景图,再逐段拆:
flowchart TD
V3["DeepSeek-V3-Base<br/>671B MoE 基座"] -->|"纯 RL(GRPO)+ 规则奖励"| Zero["DeepSeek-R1-Zero"]
Zero -->|"生成可读样本 + 人工整理"| Cold["阶段① 冷启动 SFT<br/>数千条长思维链"]
V3 --> Cold
Cold --> RL1["阶段② 推理导向 RL<br/>+ 语言一致性奖励"]
RL1 -->|"拒绝采样"| SFT2["阶段③ 二轮 SFT<br/>60 万推理 + 20 万通用"]
SFT2 --> RL2["阶段④ 全场景 RL<br/>规则奖励 + 偏好奖励"]
RL2 --> R1["DeepSeek-R1"]
R1 -->|"80 万样本蒸馏 SFT"| D["Qwen / Llama 系列小模型"]
2.0 基底:为什么”长思考”在经济上可行
推理链动辄上万 token,这笔账要有人付。R1 的基座 DeepSeek-V3 用两个架构决定把账压下来:
- MoE 稀疏激活:总参数 671B,但每个 token 只激活 37B(约 5.5%)——生成一个思考 token 只付零头的计算;
- MLA(多头潜注意力):把 KV cache 压缩进低维潜空间——思维链越长 KV cache 越大,MLA 直接砍的就是这项随长度线性增长的显存账单。
这是”瓶颈塑造设计”的教科书案例:推理模型的稀缺资源是”每 token 成本 × 思考长度”,V3 的架构恰好在这两个因子上各砍了一刀,32,768 token 的思考预算才变得可以承受。
2.1 发动机:GRPO,把”批改作业”变成”组内排名”
R1 的强化学习引擎是 GRPO(Group Relative Policy Optimization,出自 DeepSeekMath 论文)。它解决的问题很实际:PPO 需要额外训练一个和策略模型同量级的 critic(价值模型)来估计”这步值多少分”,在 671B 尺度上,这意味着显存和训练复杂度翻倍。
GRPO 的替代方案朴素得惊人:同一道题采样一组答案,用组内平均分当基线。目标函数(符号逐个解释在后面):
其中优势项就是组内标准化后的奖励:
逐符号读:
- 是一道题, 是旧策略对这道题采样出的 个完整回答(一”组”);R1 训练时 ;
- 是第 个回答的总奖励(见 2.2,就是”答案对不对”之类的规则打分);
- 是优势:你比组内平均好多少,以组内标准差为单位。答对的回答在组里排名靠前,它的每个 token 都被加强;答错的被压制。不需要 critic,一次减法一次除法就完了;
- 是新旧策略对该 token 的概率比,配合 (PPO 经典裁剪)防止单步更新走太远;
- 是对参考模型的 KL 约束,防止策略为了刷分跑到语言分布的荒郊野外。
直觉类比:这不是老师逐步批改解题过程,而是同一道题收 16 份匿名卷子,按组内相对名次发奖惩——完全不看过程,只看结果的相对好坏。
(如果”策略、奖励、优势”这些词读着仍然发虚,可以先读我之前的零基础篇《示范教不会的东西:为什么大模型需要强化学习》打底,再回来看这个公式。)
2.2 奖励:两条规则,以及两条被放弃的聪明路线
R1-Zero 的奖励系统简单到令人不安,只有两类规则奖励:
- 准确性奖励:数学题要求把最终答案放进指定格式(如方框)里,用规则直接比对;代码题直接丢给编译器和测试用例;
- 格式奖励:思考过程必须包在
<think>标签里。
没有神经网络奖励模型参与推理任务打分。更重要的是论文附带的两段”失败经验”,这两段几乎比成功经验更值钱:
- 过程奖励模型(PRM)被放弃:一般推理里”一步”的边界难以定义;中间步骤对错难以自动判定;更致命的是模型会学着骗奖励模型(reward hacking),为了防作弊反而要投入更多训练资源;
- MCTS 被放弃:token 生成的搜索空间比棋类大得多(指数爆炸),而引导搜索需要的细粒度价值模型本身就极难训练。
用”AI 顶级原理”的话说,这是一次典型的苦涩教训式胜利:可规则验证的粗粒度结果奖励 + 大规模算力,打败了精巧的过程监督和搜索工程。奖励函数越简单,可扩展性越强,被钻空子的面越小。
2.3 R1-Zero:纯 RL 之下,行为自己长出来
有了发动机和奖励,DeepSeek 做了那个著名的实验:跳过 SFT,从 V3-Base 直接上 RL——出发点是一个假设:人类定义的推理模式可能反而限制模型的探索。训练配置(Nature 版披露):每题采样 16 个输出、最大长度 32,768 token、每步 32 道题。
然后三件事在没有人教的情况下发生了:
- AIME 2024 pass@1 从 15.6% 一路爬到 71.0%(arXiv 初版数字;Nature 终版报告为 77.9%),加上多数投票达到 86.7%,追平当时的 OpenAI o1 系列;
- 回答长度随训练自发变长——没有任何奖励项鼓励”写长一点”,模型自己发现:多花思考 token,答对的概率更高。这是”用算力换智能”从训练目标里内生出来的;
- “aha moment”:训练中途,模型突然学会停下来复查。论文 Table 3 里那个被广泛引用的样本,模型在解方程时写下:“Wait, wait. Wait. That’s an aha moment I can flag here.” 然后推翻自己重来。作者说这对他们自己也是个 aha moment。伴随现象是 “wait” 一词在思维链中的使用频率突增——第一部分解剖出的”重构循环”,在训练曲线上就是这样冒头的。
但 R1-Zero 也带着纯 RL 的病:思维链语言混杂(中英夹杂)、可读性差。奖励只认答案,自然不在乎草稿纸上写的是什么语言——目标函数即命运,你没度量的东西就没人维护。
2.4 R1:四阶段管线,把”野生推理”驯化成产品
R1 的正式管线就是为了治这些病,四个阶段交替使用 SFT 和 RL:
- 冷启动 SFT:收集数千条高质量长思维链(少样本提示、直接提示模型生成带反思验证的答案、整理 R1-Zero 的可读输出,再经人工后处理),统一成
|special_token|<推理过程>|special_token|<摘要>的格式。作用是给 RL 一个格式规范、语言干净的起点——治的是 R1-Zero 的”野”。 - 推理导向 RL:继续大规模 GRPO,但在准确性奖励之外加一项语言一致性奖励(按思维链中目标语言词的占比计算,与准确性奖励直接相加)。论文坦承这会带来轻微的性能损失——一次明码标价的权衡:牺牲一点分数,换人类读得懂的思考过程。
- 拒绝采样 + 二轮 SFT:用上一阶段的检查点大量采样,只保留好答案(判定时让 DeepSeek-V3 对照标准答案做裁判),得到约 60 万条推理样本;再混入约 20 万条非推理样本(写作、问答、翻译,复用 V3 的 SFT 数据),共约 80 万条,回到 V3-Base 上重新 SFT——这一步把推理能力和通用能力缝合在一起。
- 全场景 RL:推理数据继续用规则奖励,通用数据用奖励模型捕捉人类偏好;有用性只评最终摘要,无害性则检查包括思维链在内的全部输出。
成本侧,Nature 版补充材料首次披露:R1 的 RL 阶段耗资约 29.4 万美元(512 张 H800,数天量级)——叠在 V3 基座约 560 万美元之上。相对整个行业的训练开销,这是一个惊人的小数字:从”会说话”到”会推理”的增量,比从零到”会说话”便宜两个数量级。
最后是蒸馏:直接拿这 80 万条样本对 Qwen2.5(1.5B 到 32B)和 Llama(8B、70B)做纯 SFT(不做 RL),小模型的推理基准成绩就大幅跃升。这个事实本身有理论含量:推理模式一旦被 RL 挖出来,就可以当作普通数据搬运——它是一种可迁移的行为分布,不是大模型专属的魔法。
三、机制层:“思考”在参数层面是什么
到这里我们知道了行为长什么样、怎么训练出来的。第三个问题最硬核:在网络内部,“回溯""验证”这些行为对应什么?2025 年以来的可解释性研究给出了三块相互印证的证据。
证据一:推理行为是激活空间里的线性方向,可以加减。 Venhoff et al. 在 R1 蒸馏系模型上,对 10 类共 500 个任务的推理过程做分析,发现回溯、不确定性表达、“举例子验证假设”等行为各自对应激活空间中接近正交的线性方向。把”回溯方向”的向量加到推理时的激活上,模型更频繁地推翻当前思路、探索替代方案;减去它,模型变得一条道走到黑。也就是说,第一部分解剖出的”重构循环”,在网络内部有一个可定位、可操控的开关。
证据二:思维链不是句句等权,少数”锚点句”决定成败。 Thought Anchors(Bogdan et al.)用三种方法(反事实重采样、注意力”接收头”分析、注意力抑制)在句子级别做因果归因,发现推理链中存在少数锚点句——对最终答案的因果影响远超其他句子,而它们往往是规划句和回溯句,不是埋头计算的句子。后续注意力大量汇聚回这些锚点。这解释了甜点区现象的另一面:决定成败的是几个关键的”转向决策”,反刍出来的重复论证只是噪音。
证据三:基座模型早就”会”,思考模型学的是”何时用”。 Base Models Know How to Reason 给出更釜底抽薪的结论:用无监督聚类给推理机制建立分类后发现,基座模型本身已具备每一种推理机制——只要在正确的步骤把对应的引导向量加上去,基座模型就能复现思考模型的完整推理链。RL 教会的不是”如何回溯”,而是”何时回溯”的调度策略。
第三块证据把整个故事焊在了一起:它同时解释了为什么纯 RL(不给任何示范)就能激发出推理行为——因为机制本来就在预训练里学好了,RL 只是学会了调用;也解释了为什么 80 万条 SFT 数据就能把推理蒸馏进小模型——搬运的是调度模式,不是机制本身。R1 论文标题里的用词由此显得精确:incentivize(激励),而不是 teach(教会)。
四、边界层:这套叙事哪里要打折
一篇只讲成功叙事的解读是不完整的。至少四处要打折扣:
- GRPO 本身有系统性偏差。Understanding R1-Zero-Like Training 指出,目标函数里的长度归一化()和组内标准差归一化会引入优化偏差——其中之一是系统性地把错误回答越拉越长。“响应长度自发增长”这条漂亮曲线里,有一部分是优化器的伪影而非纯粹的能力增长;该论文提出的 Dr. GRPO 移除这两项后,能用更短的思维链达到相当的成绩。
- “纯 RL 从零涌现”要加引号。基座是 14.8 万亿 token 预训练的产物,机制层证据表明”how”来自预训练;此外 Nature 版的公开审稿记录里,DeepSeek 承认预训练网页语料中不可避免地混有先进模型(如 GPT-4)生成的内容。涌现的起点远不是白纸。
- 想得久不等于想得好。甜点区和反刍病理(第 1.3 节)说明,现有奖励设计教会了”延长”,还没教会”适时停止”——这是当前推理模型共同的开放问题。
- 安全对齐更脆弱。Thoughtology 报告 R1 相比其非推理基座 V3 有更明显的安全脆弱性,长思维链本身也提供了新的攻击面。推理能力和对齐鲁棒性,目前看是有张力的两个目标。
带走的模型
三句话,可复用在任何 thinking model 上:
- 推理模型 = 被结果奖励重新分配的推理时 token 预算。没有搜索树,没有魔法:只是模型学会了在回答之前多写一段”付费草稿”,而奖励只认最终对错。
- 读任何推理模型,按四层拆:基底(架构让长思考付得起账)→ 激励(奖励函数认什么)→ 行为(思维链解剖成什么结构)→ 机制(行为对应哪些内部方向)。本文用 R1 走了一遍,同样的望远镜可以对准 o 系列、QwQ、Gemini thinking。
- 涌现不等于神秘。R1 的”aha moment”已经被解剖到句子级(锚点句)和方向级(可加减的线性特征)——“模型自己学会了反思”这句话,今天可以说得比 2025 年初精确得多。
参考来源
一手论文:
- DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning — arXiv 2501.12948,R1/R1-Zero 主论文
- DeepSeek-R1 incentivizes reasoning in LLMs through reinforcement learning — Nature 645 (2025),同行评审版,补充材料含训练成本与超参细节
- DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models — arXiv 2402.03300,GRPO 原始出处
- DeepSeek-V3 Technical Report — arXiv 2412.19437,基座架构(MoE/MLA)
行为与机制研究:
- DeepSeek-R1 Thoughtology: Let’s think about LLM Reasoning — 推理链四段解剖、甜点区、反刍
- Understanding Reasoning in Thinking Language Models via Steering Vectors — 推理行为的线性方向与引导
- Thought Anchors: Which LLM Reasoning Steps Matter? — 句子级因果归因与锚点句
- Base Models Know How to Reason, Thinking Models Learn When — “会”来自预训练,“何时用”来自 RL
- Understanding R1-Zero-Like Training: A Critical Perspective — GRPO 偏差分析与 Dr. GRPO
站内相关:
- 示范教不会的东西:为什么大模型需要强化学习 — 零基础 RL 概念打底篇