JayAlammar:图解DeepSeek-R1

星辉梦织者 2025-02-12 04:06:24

来源:数据科学与人工智能

DeepSeek 真的火出圈了,ML 大神 Jay Alammar 及时送上一篇好文。英文连接 https://newsletter.languagemodels.co/p/the-illustrated-deepseek-r1

DeepSeek-R1 是人工智能进步浪潮中的最新强音。对于机器学习研究与开发社区而言,这是一次重要发布,原因包括:

在这篇文章中,我们将了解它是如何构建的。

目录:

与现有的大多数 LLM 一样,DeepSeek-R1 也是一次生成一个 token,不同的是,它在解决数学和推理问题时表现尤为出色,因为它能够通过生成“思考 token”来解释其思维链,从而花更多时间处理问题。

下图摘自我们书籍的第 12 章,展示了通过三个步骤创建高质量 LLM 的通用方法:

DeepSeek-R1 遵循这一通用方法。第一阶段的细节源自之前关于 DeepSeek-V3 模型的论文。R1 使用了那篇论文中的基础模型(而不是最终的 DeepSeek-V3 模型),并同样经历了 SFT 和偏好调优步骤,但其具体实现方式有所不同。

在 R1 的创建过程中,有三点需要特别强调。

这是大量的长链式思维推理示例(多达 60 万个)。这些数据的获取极为困难,并且在人类标注的规模上成本高昂。这也就是为什么创建这些数据的过程成为需要特别强调的第二个重点。

这些数据是由 R1 的前身模型生成的,一个尚未命名但专注于推理的“兄弟”模型。该模型的灵感来源于一个名为 R1-Zero 的第三个模型(稍后我们会讨论)。它的意义不在于它本身是一个优秀的 LLM,而在于它的创建过程仅需少量标注数据,并结合大规模强化学习,从而生成了一个在解决推理问题上表现出色的模型。

随后,这个专注推理的模型输出结果可以被用来训练一个更加通用的模型,使其在执行其他非推理任务时,也能达到用户对 LLM 的期望水平。

它分成两步:

在这里,强化学习(RL)被用来创建中期推理模型。随后,该模型被用于生成 SFT 推理示例。而使得创建这个模型成为可能的,是一个早期实验中开发的名为 DeepSeek-R1-Zero 的模型。

R1-Zero 的特别之处在于,它无需标注的 SFT 训练集就能够在推理任务中表现出色。它的训练过程直接从一个预训练的基础模型开始,通过强化学习(RL)训练完成(没有经过 SFT 步骤)。它的表现如此出色,以至于可以与 O1 媲美。

这点意义重大,因为数据一直是推动机器学习模型能力的燃料。那么,这个模型如何能够摆脱这种历史呢?这指向了两个关键因素:

“编写 Python 代码,接收一个数字列表,将其按顺序排序,但在列表开头添加 42。”

像这样的问题天然适合多种自动化验证方式。例如,当我们将问题呈现给正在训练的模型时,它可能会生成一个答案。然后,我们可以通过以下方式进行验证:

在训练过程中,我们可以向模型提供类似的问题,并生成多个可能的解决方案进行评估。

我们可以自动检查(无需人工干预)并得出以下结论:

这些信号都可以直接用于改进模型。当然,这个过程是在多个示例(以小批量形式)和连续的训练步骤中完成的。

这些奖励信号和模型更新是模型在强化学习训练过程中持续改进任务的方式,正如论文中的图 2 所示。

与这种能力的提升相对应的是生成的回应长度,模型生成更多的思维 token 来处理问题。

这个过程是有效的,但尽管 R1-Zero 在推理问题上得分很高,它仍然面临一些其他问题,使得它的可用性不如预期。

尽管 DeepSeek-R1-Zero 展示了强大的推理能力,并能够自主发展出意想不到且强大的推理行为,但它也面临一些问题。例如,DeepSeek-R1-Zero 在可读性差和语言混杂等方面存在困难。

R1 旨在成为一个更易用的模型。因此,R1 并不像 R1-Zero 那样完全依赖于强化学习过程,而是如前所述,在两个地方得到了应用:

为了使中期推理模型更具实用性,它在几千个推理问题的示例上进行监督微调(SFT)训练(其中一些是从 R1-Zero 生成并过滤出来的)。论文将此称为“冷启动数据”。

冷启动:与 DeepSeek-R1-Zero 不同,为了防止基础模型在强化学习训练的初期阶段出现不稳定的冷启动问题,对于 DeepSeek-R1,我们构建并收集了一小部分长链推理(CoT)数据,以微调模型作为初始的 RL 行为者。为了收集这些数据,我们探索了几种方法:使用少量示例提示(few-shot prompting)来提供长链推理作为示范,直接提示模型生成详细的答案,并进行反思和验证,收集 DeepSeek-R1-Zero 输出的可读格式,并通过人工标注者进行后处理以改进结果。

等等,如果我们已经有了这些数据,为什么还要依赖强化学习过程呢?原因在于数据的规模。这个数据集可能只有 5,000 个示例(这是可以获取的),但要训练 R1,实际上需要 600,000 个示例。这个中期模型弥补了这一差距,并允许我们合成生成这些极为宝贵的数据。

如果你对监督微调(SFT)的概念不熟悉,它是通过将训练示例以提示和正确完成的形式呈现给模型来进行的过程。以下是第 12 章中的一张图,展示了几个 SFT 训练示例:

这使得 R1 在推理任务以及其他非推理任务中都能表现出色。这个过程类似于我们之前看到的强化学习(RL)过程。但由于它扩展到了非推理应用,因此对于这些应用的提示,它使用了一个帮助性和安全性的奖励模型(与 Llama 模型类似)。

就像 GPT-2 和 GPT-3 初期的模型一样,DeepSeek-R1 是由一堆 Transformer 解码器块堆叠而成。它由 61 个解码器块组成,其中前三个是密集层(dense layers),其余的是混合专家层(mixture-of-experts layers)(可以参考我合著者 Maarten 的精彩入门指南:A Visual Guide to Mixture of Experts (MoE))。

在模型维度大小和其他超参数方面,它们如下所示:

关于模型架构的更多细节可以参见他们之前的两篇论文:

通过这些信息,你现在应该对 DeepSeek-R1 模型有了基本的直观理解。

参考资料:

0 阅读:0