一、写在前面
在 OpenAI o1 刚发布时,其有限的技术报告中有两个内容格外抓人眼球:
- Inference/test-time scaling(推理/测试时扩展)
- RL(强化学习)
我一直是将这两者理解为两个独立的个体。基于此,当时我对 o1 的实现思路做出了一些猜想:
我认为 o1 走的可能是 Framework 3 的路线,总结如下:
- Inference/test-time scaling:这一块的主要作用是为 RL 过程自动化地制造高质量数据集。包括用于格式化模型产生思考过程的 Long CoT 数据集,以及带 preference labels 的数据集。我把这一块的系统抽象为 PRM + some search methods 的形式。例如讨论度很高的 MCTS,本质上也可理解为 fixed PRM + some search methods。
- RL:这部分应该就是 OpenAI 自己惯有的一套 RL 流程。
在这样的训练框架下,最终推理时是否要再次引入 inference-time scaling 模块,就是一个可选项了。只要 RL 过程做得充分好,那么直接用训完的 policy 模型就可以,完全不需要再做优化。
那么,为什么当时会认为 inference-time scaling 和 RL 应该是两个独立的过程呢?因为在当时的认知里,如果没有显式的引导,模型是不具备产生 Long CoT(乃至带反思的 CoT)的能力的。在模型训练初期,这个能力是指 formatting 模型,让它知道要产出这种格式的回答;在训练过程中再来慢慢提升这种回答的质量。这个显式引导就是指诸如 SFT 这样的过程。所以在这个认知里,上面的两个过程就应该是独立的。
而第一次发现这样的认知可能有问题,是在阅读相关万字长文时,有一句话格外引起兴趣:
'没有人为的刻意为之,模型在某种训练过程中自发出现了反思的行为。'
这句话的意思是:如果这一点都能实现,那是否意味着没有人为的刻意为之,模型本来也具备产生 Long CoT 的能力呢?如果是这样的话,那么 o1 可能除了数据工程 + 惯常的 RL 技巧外,整个系统要比想的简单很多。可是我的水平有限,实在不知道除了显式引导外,模型怎么可能自发产生这样的能力呢?
直到前几天,读到了 DeepSeek-R1 的技术报告,才发现:原来单纯的 RL 就可以激发模型产出带有 Long CoT(甚至是反思)的回复的能力!这里单纯的 RL 是指:并没有显式提供一些真正的 Long CoT 数据让模型去背去学,只是在 system message 里告诉模型先思考,再回答。接着通过 RL 一轮又一轮的训练,模型产出的 responses 越来越长,且在某个时刻出现了自我评估和反思的行为。这个实验探索就是 DeepSeek-R1-Zero 在做的事情。
如果 RL 有这种能力,那么 inference time scaling 和 RL 就可以不是两个独立的过程,而是在 RL 的过程里自发出现了 inference time scaling 的现象。而如果它们不再独立,那么类 o1 的训练架构也许就比我们想得要简单很多。
二、DeepSeek-R1-Zero
在 DeepSeek-R1 的报告里,提到了两个模型,分别是 DeepSeek-R1-Zero 和 DeepSeek-R1。总结来看:
- Zero:算是一个实验性质的模型。在 Zero 上不通过任何 SFT 的方式,仅使用 RL + 规则 RM,就能激发模型产出带反思的 Long CoT。这个重要的实验发现进一步启发了 R1 的训练。
- R1:是受到 Zero RL 相关的实验结果启发,而新训的最终版的模型。Zero 所采用的 RL 方法(即什么样的 RL 能激发模型主动产出 Long CoT,甚至是反思)将被 R1 参考。
2.1 强化学习方法
DeepSeek 家的 GRPO,不是本文关注的重点,暂略。
2.2 奖励模型 - 规则式 RM
在训练 DeepSeek-R1-Zero 时,采用了基于规则的奖励系统,主要包括两种类型的奖励:
- 准确性奖励(Accuracy Rewards):用于评估模型 responses 的准确性。例如数学问题的答案是否正确,代码是否通过测试用例等。
- 格式奖励(Format Rewards):除了准确性奖励模型外,还需要评估模型的输出是否遵从了一定的格式要求,以此规范模型的思维过程。具体要求:要求模型将其思维过程放在
<thinking>和</thinking>标签之间。这种格式化有助于明确模型的推理步骤。


