跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言AI算法

DeepSeek-R1 技术解析:训练流程与架构设计详解

DeepSeek-R1 是一款开源推理模型,采用独特的训练配方。其核心在于利用大规模强化学习(RL)生成思维链数据,并通过 R1-Zero 模型在无监督微调的情况下通过 RL 展现推理能力。训练过程包括预训练、冷启动 SFT、中期推理模型生成数据以及通用强化学习阶段。架构上采用混合专家(MoE)结构,在数学和逻辑推理任务上表现优异。通过自动化代码验证和奖励信号,模型能够自我优化,解决了传统 SFT 数据稀缺的问题。

云朵棉花糖发布于 2025/2/6更新于 2026/7/2350 浏览
DeepSeek-R1 技术解析:训练流程与架构设计详解

DeepSeek-R1 技术解析:训练流程与架构设计详解

DeepSeek-R1 是人工智能进步浪潮中的最新强音。对于机器学习研究与开发社区而言,这是一次重要发布,原因包括它是一个开源权重模型,同时提供了更小、更精炼的版本;它分享并反思了一种训练方法,用于重现类似 OpenAI O1 的推理模型。

在这篇文章中,我们将深入了解它是如何构建的,以及其背后的技术原理。

回顾:LLM 的训练方式

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

下图展示了通过三个步骤创建高质量 LLM 的通用方法:

  1. 语言建模阶段:在这个阶段,我们使用海量网络数据训练模型,以预测下一个词。此阶段的产物是一个基础模型(Base Model)。
  2. 监督微调阶段:通过监督微调(SFT),使模型在遵循指令和回答问题方面更加实用。此阶段生成的是一个指令调优模型,或称为 SFT 模型。
  3. 偏好调优阶段:最后,通过偏好调优进一步优化模型行为,使其与人类偏好更一致,最终得到一个偏好调优的 LLM,用户可以通过 Playground 和应用程序与之交互。

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

DeepSeek-R1 的训练配方

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

1. 长推理链的 SFT 数据

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

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

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

2. 中期的高质量推理语言模型

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

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

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

  • 现代基础模型已经跨越了某个质量和能力的阈值(例如,这个基础模型是在 14.8 万亿高质量 token 上训练的)。
  • 与通用聊天或写作请求不同,推理问题可以通过自动化方式进行验证或标注。

以下是一个例子来说明这一点,这可以是 RL 训练步骤中的一个提示/问题:

# 编写 Python 代码,接收一个数字列表,将其按顺序排序,但在列表开头添加 42。
def add_42_and_sort(numbers):
    numbers.sort()
    numbers.insert(0, 42)
    return numbers

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

  1. 使用软件代码检查器(linter)验证生成的代码是否是正确的 Python 代码。
  • 执行生成的 Python 代码,检查它是否能够成功运行。
  • 使用其他现代编程 LLM 生成单元测试,验证代码是否实现了预期功能(即使这些 LLM 本身并非推理专家)。
  • 更进一步,我们可以测量代码的执行时间,并使训练过程偏向于更高效的解决方案——即便这些解决方案只是多个正确的 Python 实现之一。
  • 在训练过程中,我们可以向模型提供类似的问题,并生成多个可能的解决方案进行评估。我们可以自动检查(无需人工干预)并得出以下结论:

    • 第一个生成结果甚至不是代码。
    • 第二个结果确实是 Python 代码,但并未解决问题。
    • 第三个是一个可能的解决方案,但未通过单元测试。
    • 第四个则是一个正确的解决方案。

    这些信号都可以直接用于改进模型。当然,这个过程是在多个示例(以小批量形式)和连续的训练步骤中完成的。这些奖励信号和模型更新是模型在强化学习训练过程中持续改进任务的方式。

    与这种能力的提升相对应的是生成的回应长度,模型生成更多的思维 token 来处理问题。这个过程是有效的,但尽管 R1-Zero 在推理问题上得分很高,它仍然面临一些其他问题,使得它的可用性不如预期。

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

    R1 旨在成为一个更易用的模型。因此,R1 并不像 R1-Zero 那样完全依赖于强化学习过程,而是如前所述,在两个地方得到了应用:创建一个中期推理模型,用于生成 SFT 数据点;训练 R1 模型,以改进推理和非推理问题的表现(使用其他类型的验证器)。

    3. 通用强化学习训练阶段

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

    冷启动机制

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

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

    如果你对监督微调(SFT)的概念不熟悉,它是通过将训练示例以提示和正确完成的形式呈现给模型来进行的过程。这使得 R1 在推理任务以及其他非推理任务中都能表现出色。这个过程类似于我们之前看到的强化学习(RL)过程。但由于它扩展到了非推理应用,因此对于这些应用的提示,它使用了一个帮助性和安全性的奖励模型(与 Llama 模型类似)。

    架构:混合专家与解码器块

    就像 GPT-2 和 GPT-3 初期的模型一样,DeepSeek-R1 是由一堆 Transformer 解码器块堆叠而成。它由 61 个解码器块组成,其中前三个是密集层(dense layers),其余的是混合专家层(mixture-of-experts layers)。

    混合专家(MoE)架构允许模型在不同任务或子任务上激活不同的参数子集,从而提高计算效率和模型容量。参考相关入门指南,MoE 结构在现代大模型中非常常见,它使得模型能够在保持推理速度的同时拥有巨大的参数量。

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

    • 模型深度:61 层
    • 注意力头数:根据具体配置
    • 专家数量:每个 MoE 层包含多个专家

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

    • DeepSeek-V3 技术报告
    • DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models

    通过这些信息,你现在应该对 DeepSeek-R1 模型有了基本的直观理解。DeepSeek-R1 的成功证明了通过强化学习和高质量推理数据结合,可以在开源领域实现接近闭源模型的推理能力。这对于整个 AI 社区来说是一个重要的里程碑,标志着开源模型在复杂逻辑推理任务上的重大突破。

    未来,随着更多开源推理模型的涌现,开发者将能够更便捷地在本地部署和微调此类模型,进一步降低 AI 应用开发的门槛。同时,自动化验证机制的成熟也为后续模型的训练提供了可复用的范式,有助于加速整个领域的迭代速度。

    目录

    1. DeepSeek-R1 技术解析:训练流程与架构设计详解
    2. 回顾:LLM 的训练方式
    3. DeepSeek-R1 的训练配方
    4. 1. 长推理链的 SFT 数据
    5. 2. 中期的高质量推理语言模型
    6. 编写 Python 代码,接收一个数字列表,将其按顺序排序,但在列表开头添加 42。
    7. 3. 通用强化学习训练阶段
    8. 冷启动机制
    9. 架构:混合专家与解码器块
    • 免费图片AI生成工具免费生成了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
    • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
    • 100+免费在线小游戏爽一把
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • 三款主流云电脑部署 DeepSeek 模型性能实测与对比
    • 从冯诺依曼体系结构到进程管理详解
    • 使用 Python 将 CSV 数据导入 Neo4j 图数据库
    • 达梦数据库 JAVA 外部函数使用指南
    • Python 安全有效地处理配置的最佳实践
    • 讯飞 Astron Agent 企业级智能体平台部署与功能详解
    • Figma 搭配 Claude 与 Weavy AI:从原型到素材的完整工作流
    • AI 代码助手深度对比:CodeGeex、RooCode 与 GitHub Copilot
    • C++ 算法刷题实战:重组偶数、排队方案与二叉树路径和
    • JDK 17 安装与环境配置实战指南
    • AI 产品开发:工程化挑战与底层逻辑
    • Clawdbot Web Chat 搭建:Qwen3-32B 模型加载、API 路由与 UI 定制
    • Vibe Coding 实战:如何用 AI 生成完整可交付产品
    • OpenClaw 多端交互实测指南:Web、TUI 与钉钉集成详解
    • Linux 下基于策略模式的手写高性能日志模块实现
    • 2026 年 AI 编程工具对比:GitHub Copilot、Cursor 与 Codeium 选型指南
    • LLM 存储记忆功能:BaseChatMemory 详解与子类实战
    • AI 与传统方法处理历史观看数据的效率对比
    • Java JDK 21 安装与环境配置指南(Windows/macOS)
    • GitHub Copilot 与 Claude Code 核心功能对比

    相关免费在线工具

    • 加密/解密文本

      使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

    • RSA密钥对生成器

      生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

    • Mermaid 预览与可视化编辑

      基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

    • 随机西班牙地址生成器

      随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

    • Gemini 图片去水印

      基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online