第 17 · 推理 · 9 min
先思考,再回答
思考tokens、扩展推理、思考预算。o1/o3类模型如何在回答之前生成隐藏的思维链。
快速给出的答案往往是错的
7¹⁰⁰ 的最后一位数字是几?
如果你把这个问题抛给一个普通的 LLM,它大概会在不到一秒内告诉你"7"。听起来合理:7 以 7 开头,7² = 49,如果不仔细想,你可能会假设它一直保持是 7。这个答案是错的——其实是 1。
但如果你把同样的问题抛给一个推理模型,比如 o1、o3 或 DeepSeek-R1,它会犹豫。它会"思考"10 秒、20 秒,有时甚至 60 秒。然后它会得到正确的答案。
差异不在模型的权重里。差异在于模型在回答之前被允许做什么。
Thinking tokens(思考 Token)
每个 LLM 都是从左到右、一个接一个地生成 Token。推理模型与众不同的地方在于,它们会先生成一长串隐藏的 Token——一段用户永远看不到的内心独白——然后才产出最终答案。
这些隐藏的 Token 被称为 thinking tokens(思考 Token)。
模型可以在那里写任何东西:中间计算、它随后又推翻的假设、被放弃的探索分支、反复核对。这是一份草稿,它会在向你展示干净的结果之前把它擦掉。
这不是魔法。这只是为处理一个困难问题留出的额外空间。
自己试试
把思考预算设为"无(Aucun)",然后点击"开始推理(Raisonner)"。看看那个瞬时的回答。然后切换到"完整(Complet)",再运行一次。
灰色块是模型的内部思维链——它在假设、验证,有时回退。这些 thinking tokens 在延迟和价格上有代价,但能解锁直接回答模式无法解决的问题。
两者的差异不在模型的能力上——而在于我们允许它使用的推理时计算(inference-time compute)。
技术上是怎么实现的
这并不是另一种架构。同样的 Transformer,同样的注意力机制,同样的自回归生成。
变的是训练和解码方式。在微调阶段,模型学会产出有用的推理轨迹——也就是收敛到正确答案的思维链。我们给它看成千上万道题及其解法,它学会了构造中间路径。
在推理时,我们给它一个思考 Token 预算——可以生成的隐藏 Token 数量上限。预算越大,它能探索得越多。超过某个预算之后,在困难任务上的质量提升会开始进入平台期。
一个重要细节:thinking tokens 是在答案之前生成的,处于同一个 Token 流之内。模型并不是在并行"思考"——它是串行思考的,并且和其他东西一样要消耗 Token。
扩展推理 vs chain-of-thought
你也许见过 chain-of-thought(CoT,思维链)这种技术,也就是在提示里明确要求模型"一步一步地思考"。这是一回事,但不完全一样。
| 思维链(提示式) | 扩展推理(原生) | |
|---|---|---|
| 由谁触发 | 用户在提示里 | 模型自己 |
| 可见性 | 在回答中可见 | 隐藏(thinking tokens) |
| 控制度 | 用户可以引导步骤 | 模型自己选择计划 |
| 例子 | GPT-4 加 "let's think step by step" | o1、o3、Claude 的 extended thinking |
提示式 CoT 同样能提升表现——但原生推理走得更远,因为模型并不被强迫写出可读的步骤。它可以在隐藏空间里探索混乱的路径、做之后会丢弃的计算、自相矛盾再自我纠正。
什么时候值得用
扩展推理在以下任务上能显著提升表现:
- 数学和逻辑 —— 证明、组合数学、精确算术
- 复杂代码 —— 多文件调试、非平凡算法
- 结构化推理 —— 谜题、链式演绎
- 规划 —— 在行动前需要先制定策略的任务
而对于简单的事实性问题("法国的首都是什么?")、创意写作或翻译,扩展推理什么都加不上——而且更贵。
它也是对抗幻觉(第 13 章)最有效的反制手段之一。一个会花时间去核对自己草稿的模型,能抓住那些一气呵成的回答会放过的错误。这不是魔法——它在自己的推理内部同样可能产生幻觉——但仅仅是把步骤一步步铺开这件事,就能过滤掉相当一部分事实性错误。
成本才是真正的限制。Thinking tokens 是按普通 Token 计费的。一个 o1 模型在给出 30 个 Token 的答案前生成了 1000 个思考 Token,实际消耗的是 1030 个 Token。在数百万次请求的尺度上,账就大了。
Test-time compute scaling(推理时算力扩展)
推理模型揭示出来的是:你可以在推理时购买智能——分配的 thinking tokens 越多,在困难任务上的回答就越好。
这就是所谓的 test-time compute scaling——与那种在训练时增加模型参数的常规扩展相对。
这条曲线和经典的缩放定律很像:把思考预算翻倍能提升表现,但收益递减。到某个点之后,思考更长时间也无法再补偿什么。
而这是一个重要发现:一个 LLM 的智能并不是被它的权重一锤定音的固定常量。它还取决于回答那一刻它被给了多少算力。
一个在困难问题上长时间思考的模型,可以胜过一个回答得很快的更大模型。速度不总是一种美德。
更新于