今天刷到Sebastian的blog,《Understanding Reasoning LLMs》,特此翻译一下,带给大家。
概述:
-
解释“推理模型”的含义
-
讨论推理模型的优缺点
-
概述DeepSeek R1的训练方法
-
描述构建和改进推理模型的四种主要方法
-
分享DeepSeek V3和R1发布后的LLM领域的看法
-
提供在小成本下训练推理模型的技巧
如何定义“推理模型”?
如果你在AI(或机器学习)领域工作,你可能对模糊且备受争议的定义很熟悉。“推理模型”这个术语也不例外。最终,会有人在论文中正式定义它,但很快就会在下一篇论文中被重新定义~
在本文中,我将“推理”定义为回答需要复杂、多步骤生成并包含中间步骤的问题的过程。例如,像“法国的首都是哪里?”这样的事实问答不涉及推理。相反,像“如果一列火车以每小时60英里的速度行驶3小时,它能走多远?”这样的问题需要一些简单的推理。例如,它需要认识到距离、速度和时间之间的关系,然后才能得出答案。
一个普通的LLM可能只提供一个短的答案(如左图所示),而推理模型通常包括显示部分思维过程的中间步骤(请注意,许多未专门为推理任务训练的LLMs也可以在其答案中提供中间推理步骤)
大多数LLMs都具备基本的推理能力,能够回答像“如果一列火车以每小时60英里的速度行驶3小时,它能走多远?”这样的问题。所以,当我们提到推理模型时,指的是那些在更复杂的推理任务(如解决谜题、谜语和数学证明)中表现出色的LLMs。
此外,现在大多数被称为推理模型的LLMs在其回复中都包含一个“思考”或“思维”过程。
而推理模型的中间步骤可以以两种方式出现,第一种可能明确地包含在回复中,如图所示。第二种,如OpenAI的o1等一些推理LLMs,会运行多个迭代的中间步骤,且不显示给用户。
"推理"在两个不同的层次上使用:1)处理输入并通过多个中间步骤生成,2)在响应中向用户提供某种推理
何时使用推理模型?
推理模型旨在擅长解决复杂任务,如解决谜题、高级数学问题和具有挑战性的编程任务。然而,对于简单的任务(如摘要、翻译或基于知识的问题回答)并不是必需的。如果将推理模型用于所有任务,会导致效率低下且昂贵,并且有时由于“过度思考”而更容易出错。推理模型的推理模型的优劣势如下图所示,我们需要为任务选择合适的工具或LLM。
推理模型的优劣势
概述 DeepSeek 训练流程
DeepSeek发布了三个不同的变体:DeepSeek-R1-Zero、DeepSeek-R1和DeepSeek-R1-Distill。
模型的训练过程总结,如下图所示。
DeepSeek三种不同推理模型的训练过程
-
DeepSeek-R1-Zero:在DeepSeek-V3基模基础上,直接应用强化学习,不使用任何SFT数据进行冷启动。
-
DeepSeek-R1:在DeepSeek-V3基模基础上,先通过额外的SFT阶段和进一步的RL训练进一步精炼,改进了“冷启动”的R1-Zero模型。
-
DeepSeek-R1-Distill*:使用前面步骤中生成的SFT数据,对Qwen和Llama模型进行了微调,以增强其推理能力,纯SFT。
四种构建和改进推理模型的方法
概述目前用于增强LLMs推理能力和构建专门推理模型(如DeepSeek-R1、OpenAI的o1和o3等)的关键技术。
注意:o1和o3的确切工作原理尚不清楚,纯猜测。
Inference-time scaling
推理时间扩展,指的是在推理时增加计算资源以提高输出质量。
一个粗略的类比是,人类在有更多时间思考复杂问题时往往会生成更好的回答。同样,我们可以应用一些技术,鼓励LLM在生成答案时“多思考”。
一个直接的推理时扩展方法是提示工程。一个经典例子是思维链(CoT)提示,在输入提示中加入“逐步思考”之类的短语。鼓励模型生成中间推理步骤,而不是直接跳到最终答案,会在更复杂的问题上通常(但不总是)会导致更准确的结果。
来自https://arxiv.org/abs/2205.11916
上述CoT方法可以被视为推理时间扩展,因为它通过生成更多的输出标记使推理变得更昂贵。
另一种推理时间扩展的方法是使用投票和搜索策略。一个简单的例子是多数投票,让LLM生成多个答案,然后通过多数投票选择正确答案。同样,可以使用束搜索和其他搜索算法来生成更好的回答。
想了解更多关于这些不同策略的详细信息可阅读《Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters》文章。
不同的基于搜索的方法依赖于基于过程-奖励的模型来选择最佳答案
纯强化学习
DeepSeek R1论文中的一大亮点是,发现推理可以从纯的强化学习(RL)中学习。与典型的RL方法(在RL之前先监督微调SFT)不同,DeepSeek-R1-Zero仅使用强化学习进行训练,没有初始的SFT阶段,也就是为什么其为“纯”的RL。,如下图所示。
DeepSeek-R1-Zero模型的训练过程
对于奖励,没有使用基于人类偏好的训练奖励模型,而是使用了两种类型的奖励:准确性和格式奖励。
-
准确性奖励,使用LeetCode编译器验证编码答案,并使用确定性系统评估数学回答。
-
格式奖励,依赖于一个LLM裁判,以确保回答遵循预期的格式,例如将推理步骤放在标签内。
令人惊讶的是,这种方法是可以让LLM具备更强推理能力的。尽管R1-Zero不是表现最好的推理模型,但通过生成中间“思考”步骤展示了推理能力,如上图所示。证实了使用纯粹的RL训练推理模型是可能的,DeepSeek团队是第一个展示(或者至少是发表)这种方法的团队。
来自DeepSeek R1技术报告
监督微调和强化学习
实际上在RL之前包含一个SFT阶段是很常见的。OpenAI的o1很可能是使用类似的方法训练的。
DeepSeek-R1模型的训练过程
如上图所示,使用DeepSeek-R1-Zero生成了所谓的“冷启动”SFT数据。
首先使用这些“冷启动”SFT数据,通过指令微调训练了模型;然后再经过一个RL阶段,在这个RL阶段中,不仅保留了DeepSeek-R1-Zero的RL过程中使用的准确性和格式奖励,还增加了一个一致性奖励,以防止语言混合,在回答中切换多种语言情况。
在RL阶段之后是又一轮的SFT数据收集,使用最新的模型checkpoint生成了600k 个思维链(CoT)SFT样本,同时使用DeepSeek-V3基础模型创建了额外的200K个基于知识的SFT样本。再经过另一轮RL,使用基于规则的方法为数学和编码问题提供准确性奖励,而人类偏好标签用于其他问题类型。
最终的模型,DeepSeek-R1,与DeepSeek-R1-Zero相比,性能有了显著提升,如下表所示。
来自DeepSeek-R1技术报告
纯监督微调(SFT)和蒸馏
DeepSeek还发布了通过“蒸馏”过程训练的较小模型。这里的蒸馏指的是在由较大LLMs生成的SFT数据集上对较小的LLMs(如Llama 8B和70B以及Qwen 2.5模型(0.5B到32B))进行指令微调。在下图中突出了蒸馏部分。
DeepSeek-R1-Distill模型的训练过程
为什么要训练这些蒸馏模型?有两个关键原因:
-
较小的模型更高效。这意味着它们运行成本更低,而且可以在较低端的硬件上运行,更吸引研究者和大模型爱好者。
-
纯SFT的方法研究。这些蒸馏模型作为一个有趣的基准,展示了纯监督微调(SFT)可以在没有强化学习的情况下将模型带到多远。
下表比较了这些蒸馏模型与其他流行模型的性能,以及DeepSeek-R1-Zero和DeepSeek-R1。
蒸馏与非蒸馏模型的基准比较
正如我们所见,蒸馏模型明显弱于DeepSeek-R1,但与DeepSeek-R1-Zero相比,尽管它们小了几个数量级,但效果却很强。与o1 mini相比,这些模型的表现也相当不错(我怀疑o1-mini本身可能是o1的一个类似的蒸馏版本)。
同时还测了在DeepSeek-R1-Zero中看到的纯RL方法,是否也能出现在较小的模型中,将DeepSeek-R1-Zero的相同纯RL方法直接应用于Qwen-32B。
32B模型的蒸馏和RL的基准比较
结果表明,对于较小的模型来说,蒸馏比纯RL更有效。
四种方法小结
-
推理时扩展不需要额外的训练,但会增加推理成本,随着用户数量或查询量的增加,大规模部署会变得更加昂贵。然而,对于已经表现强劲的模型来说,它仍然是一个不假思索的选择。我强烈怀疑o1利用了推理时扩展,这有助于解释为什么它在每个标记上的成本比DeepSeek-R1更高。
-
纯RL对于研究目的很有趣,因为它提供了关于推理作为一种新兴行为的见解。然而,在实际的模型训练中,RL + SFT是首选方法,因为它可以产生更强大的推理模型。
-
RL + SFT是构建高性能推理模型的关键方法。
-
蒸馏是一种有吸引力的方法,特别是用于创建更小、更高效的模型。然而,它的局限性在于蒸馏不能推动创新或产生下一代推理模型。例如,蒸馏总是依赖于一个现有的、更强的模型来生成监督微调(SFT)数据。
关于 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和DeepSeek-R1。
600万美元的估计是基于每GPU小时2美元的假设和DeepSeek-V3最终训练运行所需的GPU小时数,这在2024年12月最初讨论过。
然而,DeepSeek团队从未披露R1的确切GPU小时或训练成本,因此任何成本估计都纯属猜测。
无论如何,最终,DeepSeek-R1是开源推理模型的一个重要里程碑,其推理时的高效性使其成为OpenAI的o1的一个有趣替代品。
在小成本下训练推理模型
训练一个DeepSeek-R1级别的推理模型可能需要数十万到数百万美元,即使是从一个开源基础模型如DeepSeek-V3开始。这对于预算有限的研究人员或工程师来说可能令人沮丧。
好消息:蒸馏可以走很远
模型蒸馏提供了一种更具成本效益的替代方案。DeepSeek团队的R1蒸馏模型展示了这一点,这些模型尽管比DeepSeek-R1小得多,但在推理性能上却很出色。当然这种方法也不是完全便宜的,蒸馏80万个SFT样本,也需要大量的计算资源。
就在DeepSeek-R1发布前几天,我看到了一篇关于Sky-T1的文章,使用仅1.7w SFT样本训练了一个开源32B模型,总成本只有450美元。
这个说明,较小的、有针对性的微调工作仍然可以取得令人印象深刻的结果。
Sky-T1:在450美元内训练你自己的推理模型-https://novasky-ai.github.io/posts/sky-t1/
根据他们的基准测试,Sky-T1的表现大致与o1相当。
预算上的纯RL:TinyZero
Sky-T1专注于模型蒸馏,也有在“纯RL”领域的一些工作-TinyZero,一个3B参数模型,复制了DeepSeek-R1-Zero的方法(训练成本不到30美元)。
即使只有3B参数,TinyZero也表现出一些新兴的自我验证能力,这支持了“推理可以通过纯RL在小模型中出现”的观点。
对应Github:https://github.com/Jiayi-Pan/TinyZero
上述两个项目都是在有限的预算下,训练推理模型的工作,一个专注于纯RL(TinyZero),另一个专注于纯SFT(Sky-T1)。
超越传统SFT:旅程学习
去年我看到一个特别有趣的论文《 O1 Replication Journey: A Strategic Progress Report – Part1》。
论文中的关键思想是“旅程学习”作为“捷径学习”的替代方法。
-
捷径学习指的是传统的指令微调方法,模型只使用正确的解决路径进行训练。
-
旅程学习则包括错误的解决路径,让模型从错误中学习。
这种方法与TinyZero纯RL训练中观察到的自我验证能力有关,但它专注于通过SFT完全改进模型。通过将模型暴露于错误的推理路径及其修正,旅程学习可能也会强化自我纠正能力,从而使推理模型在这方面更可靠。
这可能是未来工作的一个令人兴奋的方向,特别是对于低预算推理模型训练,RL方法可能在计算上不可行。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。