推理模型如何”思考”:一切都只是 Token

一句话:推理模型没有做任何新事情。所谓的”先想再答”,就是把中间推理步骤写成 token 藏在后台不让用户看见。思考 token 和输出 token 由完全相同的前向传播产生——没有第二个模型,没有独立推理引擎,没有模式开关。一切都只是 token。


思考 Token 并不特殊

首先要刻进脑子里的认知:思考 token 和输出 token 是完全相同的机制生成的。 都是同一个 autoregressive 过程——模型根据前面所有 token 预测下一个 token,把它塞回上下文,重复。前向传播是同一个,权重是同一套。不存在什么”推理副脑”、辅助模块、神经网络里的推理模式开关。

让思考 token 显得不同的唯一原因:谁看得见它们。标准聊天里,模型生成的每一个 token 都直接推给用户。推理模型里,模型先生成一段”思考”token——这些 token 在内部消费,用来影响后续 token 的预测——但不对最终输出暴露。只有思考块之后的 token 才送到用户眼前。

这意味着推理不是”在基座模型之上额外加的能力”。它是基座模型本来就有的东西——当你提示它”一步步想”时它就一步步想——只不过被外化了、系统化了。模型一直都具备中间推理的本事。变化的是我们给了它一个专门的空间来做这件事,训练它稳定地用这个空间,并且不再给用户看草稿。


为什么”先想再答”管用

推理模型的有效性,直接源于自回归生成的工作方式。模型生成的每一个 token,都以它前面的所有 token 为条件。

当标准模型处理复杂数学题,它必须把多步推理压缩成一个单一的决策:”答案的下一个 token 是什么?”没有回溯机会,没法验证中间结果,没空间探索替代方案。第一个 token 对就对,不对就不对——然后后续每个 token 都会把错误放大。

推理模型打破了这个压缩。把推理步骤外化成 token 后,模型能”看到”自己刚想了什么。每一个中间 token 都为下一个 token 缩小了不确定性。像这样的链:

“首先,把带 x 的项移到一边……所以 2x = 14……因此 x = 7……现在验证:2(7) + 3 = 17……正确”

为后续每个 token 提供的上下文,比光秃秃的”x = 7”丰富得多、精确得多。

这不是新发现——和 chain of thought(CoT)提示背后的原理一模一样。新的地方在于通过强化学习把这套行为固化到了模型内部,模型会主动选择推理,用不着人来提示。机制没变,自主性变了。


推理开关贴在 chat template 上,不在模型里

如果模型内部没有推理开关,那它在哪里?在 chat template 层——你的 JSON API 请求到模型吃进去的原始 token 流之间的翻译层。

每个聊天 API 都有这一层,哪怕你看不见。你发 {"role": "user", "content": "你好"},chat template 把它翻译成像 <|user|>你好<|assistant|> 这样的 token 序列。模型永远看不见 JSON——它只看见 token。chat template 就是那个翻译中介。

推理的开/关,只是这个翻译层里的一个条件分支。推理开启时,模板注入一些 token 告诉模型”进入思考模式”。推理关闭时,这些 token 被省略。这是 prompt 工程管线里的一个 if-else,不是模型参数。这就是为什么同一个模型可以同时服务推理和非推理请求——权重不变,变的是前缀 token。

以 DeepSeek-R1 为例,边界标记是显式的:<|end▁of▁thinking|> 标志思考结束、可见答案开始。这些是模型词表里的特殊 token,在强化学习训练中习得——模型因为完成推理时输出 、准备好最终答案时输出 而得到奖励。OpenAI 的 o1 在 API 层隐藏了这些标记,只暴露推理 token 计数,但底层机制完全一样。


统一视角:全是 token,没有例外

一旦看透了这个,就再也回不去了:推理是 token,答案是 token,它们之间的切换也是 token。没有模式标志,前向传播里没有分支逻辑,没有独立推理管线。有的只是”下一个 token 是什么”,而答案取决于前面有哪些 token。

这个统一视角有实际价值:

  • 你可以通过检查 token 流来调试推理失败。
  • 推理预算(最大思考 token 数)是一个生成参数,不是模型能力上限。
  • 对基座模型生成的优化——KV 缓存优化、speculative decoding、更快的注意力内核——直接提升推理性能,因为全都是同一个机制。

模型没有学会新把戏。是我们学会了给它们施展老把戏的空间。


核心要点

  • 思考 token 和输出 token 由完全相同的 autoregressive 机制生成——没有独立模型、没有辅助模块、神经网络内部没有模式开关。
  • 推理有效的根本原因:外化了中间步骤——每个 token 为下一个 token 丰富上下文,以单次输出生成无法做到的方式降低不确定性。
  • 推理开/关在 chat template 层,不在模型里——是 prompt 工程原语,通过注入或省略前缀中的特殊 token 实现。
  • 像 DeepSeek-R1 的 <|end▁of▁thinking|> 这样的边界标记,是强化学习习得的特殊 token——功能上和 EOS token 同类。模型学会的是什么时候发它们,不是它们怎么工作。
  • 一切都是 token:推理、答案、切换、边界——没有分支,没有模式标志,只是同一个 autoregressive 过程中用不同前缀产生的不同行为。