DeepSeek 的研究发现,模型在强化学习(RL)训练中,经过多次迭代后,会突然开始生成思维链,并显著提升在数学等复杂任务上的表现。
什么是思维链CoT?
如果让大型语言模型(LLM)先“想一想”问题,它在解决数学这类难题时表现会更好。这种方法叫“思维链”。
简单来说,就是让语言模型在回答问题之前,先一步步分解问题,写出思考过程。OpenAI 的 o1 模型就是这么做的,所以它在测试中表现得很出色。
不过,要训练模型学会这种思维链,得给它看很多正确的思考示例。这些示例制作起来很费劲,训练模型的成本也很高。
DeepSeek顿悟时刻
但 DeepSeek 发现了一个有趣的现象:其实不用特意训练模型去生成思维链。在合适的条件下,模型自己就能学会这种行为。他们找到了一种低成本的方法,让语言模型学会思维链,还把这个模型免费公开了。
以前教模型学会“思维链”的方法是监督微调(SFT)。简单来说,就是让模型写出推理过程,然后人工给每一步打分,逼它学会正确的推理。但这种方法很麻烦,因为需要反复调整和评分。
这篇文章里的方法完全不一样。他们用了一个已经懂点数学的小模型(7B 参数),然后只给了它 8000 个问题。他们用了一种简单的强化学习(RL)方法,目标只有一个:让模型答对问题。至于模型是怎么得出答案的,他们根本不管,只看结果对不对。
这就是 DeepSeek 创建 R1 模型的一部分“秘诀”。
经过多次训练,他们发现模型突然“开窍”了。它开始在没有被要求的情况下,自己写出推理过程(思维链),然后答案也变得更准确了。
一些研究表明,通过强化学习(RL)训练模型,即使不明确教导模型生成思维链,模型也会在适当的条件下自发学习这种行为。这种方法成本较低,且效果显著。
研究还发现,即使是较小的模型(如7B参数),在适当的训练方法下,也能学会生成思维链并提升推理能力。这表明思维链技术不仅适用于大型模型,也可以在小模型上实现
自动生成思维链
自动生成思维链的方法(如Auto-CoT)通过多样性问题采样和启发式方法生成推理链,减少了对手工设计演示的依赖,同时保持了高性能
小模型能自动生成思维链?
许多研究人员都在探索学习 o 风格模型的可能路径,如蒸馏、MCTS、基于过程的奖励模型和强化学习。 最近,DeepSeek-R1 和 Kimi-k1.5 在这条道路上展示了一个极其简单的方法,即使用简单的 RL 算法来学习新兴的长 CoT 和自我反思模式,并在不使用 MCTS 和奖励模型的情况下取得了很好的效果。
然而,他们的实验是基于大规模 RL 环境中的巨大模型。 小型模型能否表现出类似的行为,需要多少数据,定量结果与其他方法相比如何,这些都还是未知数。
本博客再现了 DeepSeek-R1-Zero 和 DeepSeek-R1 对复杂数学推理的训练,从 Qwen-2.5-Math-7B (基础模型)开始,仅使用原始 MATH 数据集中的 8K 个(查询、最终答案)示例,在 RL 中进行基于规则的奖励建模。 我们感到惊讶的是,在没有任何其他外部信号的情况下,8K 个 MATH 示例能在多大程度上提升 7B 基础模型?
整个过程也是两大部分:
第 1 部分:SimpleRL-Zero - 从零开始的强化学习
模型的准确率在训练过程中稳步提升,而生成长度则先下降,然后逐渐增加。经过进一步研究,我们发现 Qwen2.5-Math-7B 基础模型在训练初期倾向于生成大量代码,这可能是由于模型原始训练数据的分布导致的。我们发现,长度先下降是因为强化学习(RL)训练逐渐去除了这种模式,模型学会了用正常的语言进行推理。
之后,生成长度再次开始增加,此时自我反思的模式开始出现!
第 2 部分:自我反思的出现
在第 40 步左右,我们发现模型开始产生自我反思模式,即 DeepSeek-R1 论文中的 "啊哈时刻"。
在开始强化学习(RL)之前,我们进行了长时间的监督微调(SFT)思维链(CoT)热身。具体来说,我们使用的 SFT 数据集是从 QwQ-32B-Preview 中精选出的 8000 个数学范例。这种“冷启动”的潜在好处是,模型在进入 RL 阶段时,已经具备了自我反思能力和生成长思维链的能力,这使得它在 RL 阶段能够学得更快、效果更好。
总之
现在,思维链被证明非常有用,而且制作成本低、容易实现,我们正在探索它的各种用途。