解剖 DeepSeek-R1 的"思考":推理链长什么样、怎么长出来、由什么控制

结合 R1 论文(arXiv 与 Nature 版)、GRPO 原始论文和三篇可解释性研究,把 DeepSeek-R1 的内部推理过程拆成一条完整链路:推理时思维链的四段解剖(定义→开花→重构→定案),训练侧 R1-Zero 纯 RL 涌现与 R1 四阶段管线,以及激活空间里可加减的"回溯方向"与锚点句证据。

给 DeepSeek-R1 一道 AIME 竞赛题,它会在 <think> 标签里写下几千个 token:重述题目、拆成子问题、算到一半突然冒出一句 “Wait”,推翻刚才的思路、换条路重来、再回头验证一遍,最后才给出答案。这些动作——拆解、验证、回溯——没有一条是人示范给它的。训练它的奖励函数只看一件事:最终答案对不对。这篇文章沿着可核实的一手论文,把这台”思考机器”从外到里拆完:它想的时候到底发生了什么,这种能力是怎么被训练出来的,以及在参数层面,“思考”对应着什么。

一句话主线

R1 的”思考”是激励的产物,不是模仿的产物:只奖励结果,推理行为会自己长出来;而长出来之后,它既有稳定的宏观解剖结构(定义→开花→重构→定案),也有可定位、可加减的微观内部机制(线性方向与锚点句)。

全文回答四个问题,恰好是从外到里的四层:

  1. 解剖层——R1 想的时候,思维链里到底发生了什么?
  2. 起源层——这些行为是被哪条训练链路”养”出来的?
  3. 机制层——在激活空间和注意力里,“思考”对应什么?
  4. 边界层——这套叙事哪里要打折扣?

一、解剖层:一次”思考”内部发生了什么

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 的替代方案朴素得惊人:同一道题采样一组答案,用组内平均分当基线。目标函数(符号逐个解释在后面):

JGRPO(θ)=E[1Gi=1G1oit=1oi(min[ρi,tA^i,t, clip(ρi,t, 1ε, 1+ε)A^i,t]βDKL[πθπref])]\mathcal{J}_{GRPO}(\theta) = \mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{|o_i|}\sum_{t=1}^{|o_i|}\left(\min\left[\rho_{i,t}\hat{A}_{i,t},\ \mathrm{clip}\left(\rho_{i,t},\ 1-\varepsilon,\ 1+\varepsilon\right)\hat{A}_{i,t}\right] - \beta\,\mathbb{D}_{KL}\left[\pi_\theta \,\|\, \pi_{ref}\right]\right)\right]

其中优势项就是组内标准化后的奖励:

A^i,t=rimean({r1,,rG})std({r1,,rG})\hat{A}_{i,t} = \frac{r_i - \mathrm{mean}(\{r_1, \dots, r_G\})}{\mathrm{std}(\{r_1, \dots, r_G\})}

逐符号读:

  • qq 是一道题,{o1,,oG}\{o_1,\dots,o_G\} 是旧策略对这道题采样出的 GG 个完整回答(一”组”);R1 训练时 G=16G=16;
  • rir_i 是第 ii 个回答的总奖励(见 2.2,就是”答案对不对”之类的规则打分);
  • A^i,t\hat{A}_{i,t} 是优势:你比组内平均好多少,以组内标准差为单位。答对的回答在组里排名靠前,它的每个 token 都被加强;答错的被压制。不需要 critic,一次减法一次除法就完了;
  • ρi,t=πθ(oi,tq,oi,<t)/πθold(oi,tq,oi,<t)\rho_{i,t} = \pi_\theta(o_{i,t}\mid q, o_{i,\lt t}) / \pi_{\theta_{old}}(o_{i,t}\mid q, o_{i,\lt t}) 是新旧策略对该 token 的概率比,配合 clip\mathrm{clip}(PPO 经典裁剪)防止单步更新走太远;
  • βDKL[πθπref]\beta\,\mathbb{D}_{KL}[\pi_\theta\|\pi_{ref}] 是对参考模型的 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 道题。

然后三件事在没有人教的情况下发生了:

  1. AIME 2024 pass@1 从 15.6% 一路爬到 71.0%(arXiv 初版数字;Nature 终版报告为 77.9%),加上多数投票达到 86.7%,追平当时的 OpenAI o1 系列;
  2. 回答长度随训练自发变长——没有任何奖励项鼓励”写长一点”,模型自己发现:多花思考 token,答对的概率更高。这是”用算力换智能”从训练目标里内生出来的;
  3. “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:

  1. 冷启动 SFT:收集数千条高质量长思维链(少样本提示、直接提示模型生成带反思验证的答案、整理 R1-Zero 的可读输出,再经人工后处理),统一成 |special_token|<推理过程>|special_token|<摘要> 的格式。作用是给 RL 一个格式规范、语言干净的起点——治的是 R1-Zero 的”野”。
  2. 推理导向 RL:继续大规模 GRPO,但在准确性奖励之外加一项语言一致性奖励(按思维链中目标语言词的占比计算,与准确性奖励直接相加)。论文坦承这会带来轻微的性能损失——一次明码标价的权衡:牺牲一点分数,换人类读得懂的思考过程。
  3. 拒绝采样 + 二轮 SFT:用上一阶段的检查点大量采样,只保留好答案(判定时让 DeepSeek-V3 对照标准答案做裁判),得到约 60 万条推理样本;再混入约 20 万条非推理样本(写作、问答、翻译,复用 V3 的 SFT 数据),共约 80 万条,回到 V3-Base 上重新 SFT——这一步把推理能力和通用能力缝合在一起。
  4. 全场景 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 指出,目标函数里的长度归一化(1/oi1/|o_i|)和组内标准差归一化会引入优化偏差——其中之一是系统性地把错误回答越拉越长。“响应长度自发增长”这条漂亮曲线里,有一部分是优化器的伪影而非纯粹的能力增长;该论文提出的 Dr. GRPO 移除这两项后,能用更短的思维链达到相当的成绩。
  • “纯 RL 从零涌现”要加引号。基座是 14.8 万亿 token 预训练的产物,机制层证据表明”how”来自预训练;此外 Nature 版的公开审稿记录里,DeepSeek 承认预训练网页语料中不可避免地混有先进模型(如 GPT-4)生成的内容。涌现的起点远不是白纸。
  • 想得久不等于想得好。甜点区和反刍病理(第 1.3 节)说明,现有奖励设计教会了”延长”,还没教会”适时停止”——这是当前推理模型共同的开放问题。
  • 安全对齐更脆弱。Thoughtology 报告 R1 相比其非推理基座 V3 有更明显的安全脆弱性,长思维链本身也提供了新的攻击面。推理能力和对齐鲁棒性,目前看是有张力的两个目标。

带走的模型

三句话,可复用在任何 thinking model 上:

  1. 推理模型 = 被结果奖励重新分配的推理时 token 预算。没有搜索树,没有魔法:只是模型学会了在回答之前多写一段”付费草稿”,而奖励只认最终对错。
  2. 读任何推理模型,按四层拆:基底(架构让长思考付得起账)→ 激励(奖励函数认什么)→ 行为(思维链解剖成什么结构)→ 机制(行为对应哪些内部方向)。本文用 R1 走了一遍,同样的望远镜可以对准 o 系列、QwQ、Gemini thinking。
  3. 涌现不等于神秘。R1 的”aha moment”已经被解剖到句子级(锚点句)和方向级(可加减的线性特征)——“模型自己学会了反思”这句话,今天可以说得比 2025 年初精确得多。

参考来源

一手论文:

行为与机制研究:

站内相关: