点击下方 卡片 ,关注“ 慢慢学AIGC ”
简介
这篇文章描述了构建推理模型的四种主要方法,即如何增强大语言模型的推理能力。我希望这些见解对您有价值,并帮助您在这个快速发展且充满炒作的领域中找到方向。
在 2024 年,大语言模型领域出现了日益专业化的趋势。除了预训练和微调之外,我们还见证了专业化应用的兴起,从检索增强生成(RAG)到代码助手等。我预计这一趋势将在 2025 年加速发展,届时将更加注重特定领域和应用的优化(即"专业化")。
推理模型的开发就是这些专业化方向之一。这意味着我们优化大语言模型,使其在需要中间步骤才能解决的复杂任务中表现出色,比如解谜、高等数学和编程挑战等。然而,这种专业化并不能取代其他大语言模型应用。因为将大语言模型转变为推理模型也会带来某些缺点,这一点我稍后会讨论。
为了让您简要了解下文内容,本文将:
-
- 解释"推理模型"的含义
-
- 讨论推理模型的优势和劣势
-
- 概述 DeepSeek R1 背后的方法论
-
- 描述构建和改进推理模型的四种主要方法
-
- 分享 DeepSeek V3 和 R1 发布后对大语言模型格局的看法
-
- 提供在预算有限的情况下开发推理模型的建议
希望在人工智能继续快速发展的今年,这篇文章对您有所帮助!
我们如何定义"推理模型"?
如果您从事人工智能(或机器学习)工作,您可能熟悉那些模糊且存在激烈争议的定义。"推理模型"这个术语也不例外。最终,有人会在论文中正式定义它,但在下一篇论文中又会被重新定义,如此往复。
在本文中,我将"推理"定义为回答需要复杂的、多步骤生成且包含中间步骤的问题的过程。例如,"法国的首都是什么?"这样的事实性问答并不涉及推理。相比之下,"如果一列火车以 60 英里/小时的速度行驶 3 小时,它会行驶多远?"这样的问题需要一些简单的推理。比如,在得出答案之前,需要认识到距离、速度和时间之间的关系。
普通的大型语言模型(LLM)可能只会给出简短答案(如左图所示),而推理模型通常会在回答中包含中间步骤,以部分展现思维过程。 (值得注意的是,许多未专门针对推理任务开发的 LLM 也能在其答案中提供中间推理步骤。 )
大多数现代 LLM 都具备基础推理能力,能够回答诸如"如果火车以每小时 60 英里的速度行驶 3 小时,它能走多远?"这类问题。因此,如今当我们提及推理模型时,通常指的是那些擅长处理更复杂推理任务(如解谜题、破解智力题和完成数学证明)的 LLM。
此外,当前市场上标榜为推理模型的大多数 LLM,都会在其响应中纳入某种形式的"思考"过程。至于 LLM 是否以及如何进行真正意义上的"思考",则属于另一个独立的讨论范畴。
推理模型的中间步骤可能以两种形式呈现:第一种是明确包含在响应中(如前图所示);第二种则如 OpenAI 的 o1 模型,通过多次隐藏于用户视野之外的中间步骤迭代完成推理过程。
"推理"在两个不同层面上使用:
-
- 通过多个中间步骤处理输入并生成输出
-
- 在向用户的回答中提供某种形式的推理过程。
什么时候应该使用推理模型?
现在我们已经定义了推理模型,我们可以进入更有趣的部分:如何构建和改进用于推理任务的大语言模型。不过,在深入技术细节之前,重要的是要考虑什么时候真正需要推理模型。
什么时候我们需要推理模型? 推理模型被设计用来擅长解决复杂任务,比如解谜题、高等数学问题和具有挑战性的编程任务 。然而,对于更简单的任务,如 总结、翻译或基于知识的问答,并不需要推理模型 。事实上, 在所有任务中都使用推理模型可能会效率低下且成本高昂 。例如,推理模型通常使用成本更高,输出更冗长,有时由于"过度思考"而更容易出错。这里也适用一个简单的规则:为任务使用正确的工具(或正确类型的大语言模型)。
下图总结了推理模型的主要优势和局限性。
简要了解 DeepSeek 的训练流程
在下一节讨论构建和改进推理模型的四种主要方法之前,我想根据 DeepSeek R1 技术报告简要概述 DeepSeek R1 的流程。这份报告既是一个有趣的案例研究,也是开发推理型大语言模型的蓝图。
需要注意的是,DeepSeek 并不是发布了单一的 R1 推理模型,而是推出了三种不同的变体:DeepSeek-R1-Zero、DeepSeek-R1 和 DeepSeek-R1-Distill。
根据技术报告中的描述,我在下图中总结了这些模型的开发过程。
接下来,让我们简要了解上图所示的过程。在下一节讨论构建和改进推理模型的四种主要方法时,我们会介绍更多细节。
- DeepSeek-R1-Zero:这个模型基于 2024 年 12 月发布的 671B 参数的 DeepSeek-V3 基础模型。研究团队使用两种类型的奖励进行强化学习(RL)训练。这种方法被称为"冷启动"训练,因为它没有包含通常作为人类反馈强化学习(RLHF)一部分的监督微调(SFT)步骤。
- DeepSeek-R1:这是 DeepSeek 的旗舰推理模型,建立在 DeepSeek-R1-Zero 的基础上。团队通过额外的 SFT 阶段和进一步的 RL 训练对其进行了改进,在"冷启动"的 R1-Zero 模型基础上有所提升。
- DeepSeek-R1-Distill:使用前面步骤中生成的 SFT 数据,DeepSeek 团队对 Qwen 和 Llama 模型进行了微调,以增强它们的推理能力。虽然这不是传统意义上的蒸馏,但这个过程涉及在较大的 DeepSeek-R1 671B 模型的输出上训练较小的模型(Llama 8B 和 70B,以及 Qwen 1.5B-30B)。
构建和改进推理模型的 4 种主要方法
在本节中,我将概述目前用于增强大语言模型推理能力和构建专门推理模型(如 DeepSeek-R1、OpenAI 的 o1 和 o3 等)的关键技术。
注意:o1 和 o3 的确切工作原理在 OpenAI 之外仍然未知。不过据传它们结合了推理和训练两种技术。
1) 推理时扩展
改进大语言模型推理能力(或任何一般能力)的一种方法是推理时扩展。这个术语可能有多种含义,但在这里,它指的是在推理过程中增加计算资源以提高输出质量。
一个粗略的类比是: 人类在有更多时间思考复杂问题时往往能产生更好的答案 。同样,我们可以应用一些技术来鼓励大语言模型在生成答案时进行更多"思考"。(当然,大语言模型是否真的在"思考"是另一个讨论话题。)
推理时扩展的一个 直接方法 是 巧妙的提示工程 。一个经典的例子是 思维链(CoT)提示 ,即在输入提示中包含"一步步思考"这样的短语。这鼓励模型生成中间推理步骤,而不是直接跳到最终答案,这在更复杂的问题上通常(但不总是)能带来更准确的结果。
注意,对于像"法国的首都是什么"这样简单的基于知识的问题,采用这种策略是没有意义的,这也是判断推理模型是否适合你的输入查询的一个好的经验法则。
上述提到的思维链(CoT)方法可以被视为一种 推理时扩展 ,因为它通过生成更多输出标记(token)增加了推理的计算成本。
另一种推理时扩展的方法是采用投票和搜索策略
。一个简单的例子是 多数投票法 ,即让 LLM 生成多个答案,并通过多数表决选择正确答案。类似地,我们可以使用 束搜索(beam search) 和其他搜索算法来生成更优的响应。
若想深入了解这些不同的策略,我强烈推荐阅读论文《通过优化测试时计算扩展 LLM 可能比扩展模型参数更有效》( Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters,https://arxiv.org/pdf/2408.03314 ),该论文曾在我之前的文章《2024 年值得关注的 AI 研究论文(第二部分)》(https://magazine.sebastianraschka.com/p/ai-research-papers-2024-part-2)中详细讨论过。
DeepSeek R1 技术报告指出其模型不使用推理时缩放。然而,这项技术通常是在 LLM 之上的应用层实现的,所以 DeepSeek 有可能在他们的应用中应用了这项技术。
我怀疑 OpenAI 的 o1 和 o3 模型使用了推理时缩放,这可以解释为什么它们相比 GPT-4o 等模型相对昂贵。除了推理时缩放外,o1 和 o3 可能还使用了类似 DeepSeek R1 所用的强化学习流程进行训练。关于强化学习的更多内容将在下面两个部分讨论。
2)纯强化学习(RL)
DeepSeek R1 论文中最让我印象深刻的发现之一是,推理能力是从纯强化学习(RL)中自然产生的行为。让我们详细探讨这意味着什么。
如前所述,DeepSeek 开发了三种 R1 模型。第一个是 DeepSeek-R1-Zero ,它是基于 DeepSeek-V3(2024 年 12 月发布的标准预训练 LLM) 基础模型构建的。与典型的强化学习流程不同(通常在强化学习之前会进行监督式微调(SFT)),DeepSeek-R1-Zero 是完全通过强化学习训练的,没有初始的 SFT 阶段,如下图所示。
不过,这个强化学习过程仍与常用的 RLHF 方法相似,RLHF 通常用于基于偏好对 LLM 进行调优。(我在文章《LLM 训练:RLHF 及其替代方案》中详细介绍了 RLHF。)然而,如上所述,DeepSeek-R1-Zero 的关键区别在于他们跳过了用于指令调优的监督式微调(SFT)阶段。这就是为什么他们称之为"纯"强化学习。(虽然,在 LLM 背景下的强化学习与传统强化学习有很大的不同,这是另一个话题。)
在奖励方面,他们没有使用基于人类偏好训练的奖励模型,而是采用了两种类型的奖励:准确度奖励和格式奖励。
- 准确度奖励 使用 LeetCode 编译器验证编程答案,并使用确定性系统评估数学答案。
- 格式奖励 依靠 LLM 判断器来确保回答遵循预期格式,比如将推理步骤放在 标签内。
令人惊讶的是,这种方法足以让 LLM 发展出基本的推理能力。研究人员观察到一个"啊哈!"时刻,模型开始在回答中自发地生成推理过程,尽管它并没有被明确训练这样做,如下图所示。
虽然 R1-Zero 不是性能最顶尖的推理模型,但它确实通过生成中间的"思考"步骤展示了推理能力,如上图所示。这证实了使用纯强化学习开发推理模型是可能的,而 DeepSeek 团队是第一个展示(或至少是第一个发表)这种方法的团队。
3) 监督式微调和强化学习(SFT + RL)
接下来,让我们看看 DeepSeek-R1 的开发过程,这是 DeepSeek 的旗舰推理模型,它为构建推理模型提供了一个蓝图。这个模型通过结合额外的监督式微调(SFT)和强化学习(RL)改进了 DeepSeek-R1-Zero,提升了其推理性能。
值得注意的是,在强化学习之前包含 SFT 阶段其实是很常见的,这在标准 RLHF 流程中就可以看到。OpenAI 的 o1 可能也是使用类似的方法开发的。
如上图所示,DeepSeek 团队使用 DeepSeek-R1-Zero 生成了他们称为"冷启动"的 SFT 数据。"冷启动"一词指的是这些数据是由 DeepSeek-R1-Zero 生成的,而 DeepSeek-R1-Zero 本身并未经过任何监督式微调(SFT)数据的训练。
使用这些冷启动 SFT 数据,DeepSeek 随后通过 指令微调 训练了模型,接着又进行了一轮强化学习(RL)阶段。这个 RL 阶段 保留了 DeepSeek-R1-Zero 的 RL 过程中使用的相同准确度和格式奖励 。不过,他们 增加了一个一致性奖励,以防止语言混合现象,即模型在回答中混用多种语言的情况 。
RL 阶段之后是另一轮 SFT 数据收集。在这个阶段,他们使用最新的模型检查点生成了 60 万个思维链(CoT)SFT 样本,同时使用 DeepSeek-V3 基础模型创建了额外的 20 万个基于知识的 SFT 样本。
这些 60 万 + 20 万个 SFT 样本随后被用于另一轮 RL。在这个阶段,他们再次 对数学和编程问题使用基于规则的方法进行准确度奖励 ,而 对其他类型的问题则使用人类偏好标签 。
最终的模型 DeepSeek-R1 相比 DeepSeek-R1-Zero 有显著的性能提升,这要归功于额外的 SFT 和 RL 阶段,如下表所示。
4) 纯监督式微调(SFT)和蒸馏
到目前为止,我们已经介绍了构建和改进推理模型的三种关键方法:
-
推理时缩放 ,这是一种在不训练或修改底层模型的情况下改进推理能力的技术。
-
纯强化学习(RL) ,如 DeepSeek-R1-Zero 所示,证明了推理能力可以在没有监督式微调的情况下作为一种学习行为自然产生。
-
监督式微调(SFT)加强化学习 ,这导致了 DeepSeek 的旗舰推理模型 DeepSeek-R1 的诞生。
那么,还剩下什么? 模型"蒸馏" 。
令人惊讶的是,DeepSeek 还发布了通过他们称为蒸馏的过程训练的较小模型。然而,在 LLM 的背景下,蒸馏并不一定遵循深度学习中使用的传统知识蒸馏方法。传统上,在知识蒸馏中(如我的《机器学习问答》一书第 6 章中简要描述的那样),较小的学生模型会同时在较大教师模型的 logits 和目标数据集上进行训练。
相反,这里的蒸馏指的是在由更大的 LLM 生成的 SFT 数据集上对较小的 LLM(如 Llama 8B 和 70B 以及 Qwen 2.5 模型(0.5B 到 32B))进行指令微调。具体来说,这些较大的 LLM 是 DeepSeek-V3 和 DeepSeek-R1 的一个中间检查点。实际上,用于这个蒸馏过程的 SFT 数据就是用于训练 DeepSeek-R1 的同一个数据集,如上一节所述。
为了说明这个过程,我在下图中突出显示了蒸馏部分。
为什么他们要开发这些蒸馏模型?在我看来,有两个主要原因:
- 较小的模型更高效 。这意味着它们运行成本更低,而且可以在性能较低的硬件上运行,这对于像我这样的许多研究人员和实验者来说特别有吸引力。
- 纯 SFT 的案例研究。这些蒸馏模型作为一个有趣的基准,展示了 在不使用强化学习的情况下,纯监督式微调(SFT)能够将模型的能力提升到什么程度 。
下表比较了这些蒸馏模型与其他流行模型,以及 DeepSeek-R1-Zero 和 DeepSeek-R1 的性能。
如我们所见, 蒸馏模型的性能明显弱于 DeepSeek-R1,但与 DeepSeek-R1-Zero 相比却表现出令人惊讶的强大实力,尽管它们的规模小了几个数量级 。同样有趣的是这些模型与 o1 mini 相比表现得如何(我怀疑 o1-mini 本身可能也是 o1 的类似蒸馏版本)。
在总结本节之前,还有一个值得一提的有趣比较。DeepSeek 团队测试了在 DeepSeek-R1-Zero 中观察到的自发推理行为是否也会在较小的模型中出现。为了研究这一点,他们将 DeepSeek-R1-Zero 中使用的相同纯 RL 方法直接应用于 Qwen-32B。
这个实验的结果总结在下表中,其中 QwQ-32B-Preview 作为 Qwen 团队基于 Qwen 2.5 32B 开发的参考推理模型(我认为训练细节从未披露)。这个比较为单纯使用纯 RL 是否能在比 DeepSeek-R1-Zero 小得多的模型中诱导出推理能力提供了一些额外的见解。
有趣的是,结果表明 对于较小的模型来说,蒸馏远比纯 RL 更有效 。这与这样一个观点相符: 单纯的 RL 可能不足以在这种规模的模型中产生强大的推理能力,而在处理小型模型时,对高质量推理数据进行 SFT 可能是一种更有效的策略 。
为了完整性,如果表格中能看到以下额外的比较会很有用:
- 使用 SFT + RL 训练的 Qwen-32B,类似于 DeepSeek-R1 的开发方式。这将有助于确定当 RL 与 SFT 结合时,相比纯 RL 和纯 SFT 可以获得多大的改进。
- 使用纯 SFT 训练的 DeepSeek-V3,类似于蒸馏模型的创建方式。这将允许直接比较 RL + SFT 相比纯 SFT 的效果如何。
结论
在本节中,我们探讨了构建和改进推理模型的四种不同策略:
-
推理时缩放不需要额外训练,但会增加推理成本 ,随着用户数量或查询量的增长,大规模部署会变得更加昂贵。尽管如此,它仍然是改进已经很强大的模型性能的明智之选。我强烈怀疑 o1 利用了推理时缩放,这有助于解释为什么它在每个 token 的基础上比 DeepSeek-R1 更昂贵。
-
纯 RL 对研究目的很有意思,因为它揭示了推理作为一种自发行为的见解。然而,在实际模型开发中,RL + SFT 是首选方法,因为它能产生更强大的推理模型。我强烈怀疑 o1 也使用了 RL + SFT 训练。更准确地说,我认为 o1 从比 DeepSeek-R1 更弱、更小的基础模型开始,但通过 RL + SFT 和推理时缩放进行了补偿。
-
如上所述,RL + SFT 是构建高性能推理模型的关键方法。DeepSeek-R1 提供了一个很好的蓝图,展示了如何实现这一点。
-
蒸馏是一种很有吸引力的方法,特别是用于创建更小、更高效的模型。然而,其局限性在于 蒸馏不能推动创新或产生下一代推理模型 。例如,蒸馏总是依赖于现有的、更强大的模型来生成监督式微调(SFT)数据。
我期待看到的一个有趣方面是将 RL + SFT(方法 3)与推理时缩放(方法 1)结合。这可能就是 OpenAI o1 正在做的事情,只不过它可能基于比 DeepSeek-R1 更弱的基础模型,这解释了为什么 DeepSeek-R1 表现如此出色,同时在推理时仍然相对便宜。
关于 DeepSeek R1 的想法
最近几周,很多人都问我对 DeepSeek-R1 模型的看法。简而言之,我认为这是一个了不起的成就。作为一名研究工程师,我特别欣赏他们详细的技术报告,它提供了我可以学习的方法论见解。
最引人入胜的收获之一是推理如何作为纯 RL 的行为自然产生。令人印象深刻的是,DeepSeek 已经在宽松的开源 MIT 许可证下开源了他们的模型,这比 Meta 的 Llama 模型的限制更少。
它与 o1 相比如何?
DeepSeek-R1 是否比 o1 更好?我认为它们大致在同一水平。然而,突出的是 DeepSeek-R1 在推理时更有效率。这表明 DeepSeek 可能在训练过程中投入更多,而 OpenAI 可能在 o1 中更依赖推理时缩放。
话虽如此,直接比较 o1 和 DeepSeek-R1 很困难,因为 OpenAI 没有透露太多关于 o1 的信息。例如,我们不知道:
- o1 是否也是专家混合体(MoE)?
- o1 有多大?
- o1 是否只是 GPT-4o 的轻微改进版本,只进行了最小的 RL + SFT 和广泛的推理时缩放?
在不知道这些细节的情况下,直接比较仍然是在比较不同类型的东西。
训练 DeepSeek-R1 的成本
另一个讨论点是开发 DeepSeek-R1 的成本。有人提到约 600 万美元的训练成本,但他们可能混淆了 DeepSeek-V3(去年 12 月发布的基础模型)和 DeepSeek-R1。
600 万美元的估计是基于假设每 GPU 小时 2 美元,以及去年 12 月讨论的 DeepSeek-V3 最终训练运行所需的 GPU 小时数。
然而,DeepSeek 团队从未披露 R1 的确切 GPU 小时数或开发成本,所以任何成本估计都纯属推测。
无论如何,最终 DeepSeek-R1 是开放权重推理模型的一个重要里程碑,其推理时的效率使其成为 OpenAI o1 的一个有趣替代选择。
在有限预算下开发推理模型
开发 DeepSeek-R1 级别的推理模型可能需要 数十万到数百万美元 ,即使从 DeepSeek-V3 这样的开放权重基础模型开始。这对于预算有限的研究人员或工程师来说可能会感到沮丧。
好消息:蒸馏可以走很长的路
幸运的是,模型蒸馏提供了一个更具成本效益的替代方案。DeepSeek 团队通过他们的 R1 蒸馏模型证明了这一点,尽管比 DeepSeek-R1 小得多,但这些模型仍然达到了令人惊讶的强大推理性能。然而,即使这种方法也不是完全便宜的。他们的蒸馏过程使用了 80 万个 SFT 样本,这需要大量计算资源。
有趣的是,就在 DeepSeek-R1 发布前几天,我看到了一篇关于 Sky-T1 的文章,这是一个引人入胜的项目,一个小团队仅使用 1.7 万个 SFT 样本就训练了一个开放权重的 32B 模型。总成本?仅 450 美元,这比大多数 AI 会议的注册费还要低。
这个例子突出表明,虽然大规模训练仍然昂贵,但较小的、有针对性的微调努力仍然可以以较低的成本产生令人印象深刻的结果。
根据他们的基准测试,Sky-T1 的表现大致与 o1 相当,这在其低训练成本的情况下尤为令人印象深刻。
预算有限的纯强化学习:TinyZero
虽然 Sky-T1 主要集中在模型蒸馏方面,但我也遇到了一些有趣的“纯强化学习”研究工作。其中一个值得注意的例子是 TinyZero,它是一个 30 亿参数的模型,复现了 DeepSeek-R1-Zero 方法(顺便提一下,训练费用不到 30 美元)。
令人惊讶的是,即使只有 30 亿参数,TinyZero 也展现出一些突现的自我验证能力,这支持了这样一个观点:推理可以通过纯强化学习出现,即使是在小模型中。
TinyZero 的代码库提到,研究报告仍在进行中,我一定会继续关注更多细节。
上面提到的两个项目表明,即使在预算有限的情况下,关于推理模型的有趣工作也是可能的。尽管这两种方法都复现了 DeepSeek-R1 的方法,一种聚焦于纯强化学习(TinyZero),另一种聚焦于纯监督微调(Sky-T1),但探索如何进一步扩展这些思想将是非常有趣的。
超越传统的监督微调:旅程学习(Journey Learning)
我去年遇到的一个特别有趣的方法,描述在论文《O1 Replication Journey: A Strategic Progress Report – Part 1》中。尽管标题如此,这篇论文并没有实际复现 o1,而是介绍了一种改进蒸馏(纯监督微调)过程的不同方法。
论文中的关键思想是“旅程学习”,作为“捷径学习”的替代方法。
捷径学习指的是传统的指令微调方法,其中模型仅通过正确的解决路径进行训练。
而旅程学习则包括不正确的解决路径,允许模型从错误中学习。
这种方法与 TinyZero 纯强化学习训练中观察到的自我验证能力有些相关,但它专注于通过纯监督微调来全面改进模型。通过让模型接触不正确的推理路径及其修正,旅程学习可能还会增强自我修正能力,从而可能使推理模型更加可靠。
这可能是未来工作的一个激动人心的方向,特别是在低预算的推理模型开发中,基于强化学习的方法可能在计算上不切实际。
总之,目前在推理模型领域有很多有趣的工作正在进行,我相信在接下来的几个月里,我们将看到更多令人兴奋的研究成果!
(全文完)
原文链接:
https://magazine.sebastianraschka.com/p/understanding-reasoning-llms
作者简介
Sebastian Raschka 博士
Sebastian 是一位在机器学习和人工智能领域拥有超过十年经验的研究员。 他对解释复杂的技术概念和"揭开人工智能的神秘面纱"充满热情。著有《从零构建 LLM》。
关注公众号,后台回复“从零构建LLM”获取《从零构建LLM》 PDF 电子书(仅限于个人学习,请勿以盈利为目的传播,为了获得更好阅读体验,请购买纸质书 https://amzn.to/4fqvn0D)。
扫描下方 二维码 ,关注“ 慢慢学AIGC ”