LLM 课程文档

理解 DeepSeek R1 论文

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

理解 DeepSeek R1 论文

本章是一次速成论文阅读。我们将以简单的语言讲解论文,然后剖析其关键概念和要点。

DeepSeek R1 代表了语言模型训练的重大进展,特别是在通过强化学习开发推理能力方面。该论文引入了一种新的强化学习算法,称为组相对策略优化(Group Relative Policy Optimization,简称 GRPO)。

DeepSeek R1 Overview

在下一章中,我们将在这些知识的基础上,实践 GRPO。

这篇论文的最初目标是探索纯强化学习是否能在没有监督微调的情况下开发推理能力。

在此之前,所有流行的 LLM 都需要一些监督微调,我们在第 11 章中探讨过。

突破性的“Aha 时刻”

The 'Aha Moment'

R1-Zero 训练中最显著的发现之一是“Aha 时刻”现象的出现。这种现象与人类在解决问题时突然领悟的方式有些相似。其工作原理如下:

  1. 初次尝试:模型初次尝试解决问题。
  2. 识别:它识别出潜在的错误或不一致之处。
  3. 自我纠正:它根据识别结果调整方法。
  4. 解释:它能解释为什么新方法更好。

这一突破引起了学习者的共鸣,感觉就像“尤里卡时刻”。它展示了学习而非单纯的记忆,所以让我们花点时间想象一下拥有“Aha 时刻”是什么感觉。

例如,想象你正在解一个谜题。

  • 第一次尝试:“这块基于颜色应该放在这里。”
  • 识别:“但是等等,形状不太合适。”
  • 纠正:“啊,它实际上属于那里。”
  • 解释:“因为颜色和形状模式都与这个位置匹配。”

这种能力是在强化学习训练中自然出现的,没有经过明确编程,表明模型实现了学习,而不仅仅是记忆训练数据中的某个过程。

理解“Aha 时刻”最简单的方式是亲眼看到它的实际运作。让我们看一个例子。在下面的聊天中,我们要求模型解决一个问题,用户界面会显示模型解决问题时的思考过程。

如果你想尝试 Deepseek 的 R1,你也可以访问 Hugging Chat

训练过程

R1 的训练是一个多阶段过程。让我们分解每个阶段及其关键创新。

最终过程产生两个模型:

  • DeepSeek-R1-Zero:纯粹使用强化学习训练的模型。
  • DeepSeek-R1:在 DeepSeek-R1-Zero 的基础上,增加了监督微调的模型。
特性 DeepSeek-R1-Zero DeepSeek-R1
训练方法 纯强化学习 多阶段(SFT + RL)
微调 监督微调
推理能力 涌现 增强
AIME 性能 71.0% 79.8%
关键特性 推理能力强但可读性问题 更好的语言一致性和可读性

虽然 DeepSeek-R1-Zero 展示了纯强化学习在开发推理能力方面的潜力,但 DeepSeek-R1 在此基础上,采用了一种更平衡的方法,兼顾了推理性能和可用性。

训练过程包括四个阶段:

  1. 冷启动阶段
  2. 推理强化学习阶段
  3. 拒绝采样阶段
  4. 多样化强化学习阶段

让我们分解每个阶段:

冷启动阶段(质量基础)

Cold Start Phase

此阶段旨在为模型的可读性和响应质量奠定坚实基础。它使用来自 R1-Zero 的少量高质量样本来微调 V3-Base 模型。团队从 DeepSeek-V3-Base 模型开始,使用数千个来自 R1-Zero 的经过验证的高质量样本进行监督微调。这种创新方法使用少量但高质量的数据集来建立强大的基线可读性和响应质量。

推理强化学习阶段(能力构建)

Reasoning RL Phase

推理强化学习阶段侧重于开发跨领域的核心推理能力,包括数学、编码、科学和逻辑。此阶段采用基于规则的强化学习,奖励直接与解决方案的正确性挂钩。

重要的是,此阶段的所有任务都是“可验证的”,因此我们可以检查模型的答案是否正确。例如,在数学的情况下,我们可以通过使用数学求解器来检查模型的答案是否正确。

这个阶段的特别创新之处在于其直接优化方法,消除了对单独奖励模型的需求,从而简化了训练过程。

拒绝采样阶段(质量控制)

Rejection Sampling Phase

在拒绝采样阶段,模型生成样本,然后通过质量控制过程进行过滤。DeepSeek-V3 作为质量评判者,评估超出纯推理任务范围的广泛输出。然后,过滤后的数据用于监督微调。此阶段的创新之处在于其能够结合多个质量信号,以确保高标准的输出。

多样化强化学习阶段(广泛对齐)

Diverse RL Phase

最后的“多样化强化学习阶段”采用复杂的混合方法处理多种任务类型。对于确定性任务,它采用基于规则的奖励;而主观任务则通过 LLM 反馈进行评估。此阶段旨在通过其创新的混合奖励方法实现人类偏好对齐,该方法结合了基于规则系统的精确性和语言模型评估的灵活性。

算法:组相对策略优化 (GRPO)

既然我们已经很好地理解了训练过程,现在来看看用于训练模型的算法。

作者将 GRPO 描述为模型微调方面的一项突破。

GRPO Process

GRPO 的新颖之处在于它能够“直接优化偏好纠正”。这意味着一种更直接、更高效的方式来使模型与所需输出对齐,这与传统的强化学习算法(如 PPO)形成对比。让我们通过其三个主要组成部分来分解 GRPO 的工作原理。

组形成:创建多个解决方案

GRPO 的第一步非常直观——它类似于学生如何通过尝试多种方法来解决难题。当给定一个提示时,模型不只生成一个响应;相反,它会尝试解决相同问题多次(通常是 4、8 或 16 次不同的尝试)。

想象你正在教一个模型解决数学问题。对于一个关于农场数鸡的问题,模型可能会生成几种不同的解决方案:

  • 一种解决方案可能会逐步分解问题:首先计算总鸡数,然后减去公鸡,最后计算非产蛋母鸡。
  • 另一种可能会使用不同的但同样有效的方法。
  • 有些尝试可能包含错误或效率较低的解决方案。

所有这些尝试都作为一个组保存在一起,就像有多个学生的解决方案可以比较和学习一样。

Group Formation

偏好学习:理解什么是好的解决方案

这就是 GRPO 简单之处的真正亮点。与其他需要单独奖励模型来预测解决方案优劣的 RLHF 方法不同,GRPO 可以使用任何函数或模型来评估解决方案的质量。例如,我们可以使用长度函数来奖励更短的响应,或者使用数学求解器来奖励准确的数学解决方案。

评估过程着眼于每个解决方案的各个方面:

  • 最终答案是否正确?
  • 解决方案是否遵循了正确的格式(例如使用了正确的 XML 标签)?
  • 推理过程与提供的答案是否匹配?

这种方法特别巧妙之处在于其评分方式。GRPO 不仅仅给出绝对分数,而是对每个组内的奖励进行归一化。它使用一个简单但有效的公式进行组相对优势估计。

Advantage = (reward - mean(group_rewards)) / std(group_rewards)

Preference Learning

这种标准化就像是人工智能的“按曲线评分”。它帮助模型理解组内哪些解决方案比其他同类更好或更差,而不是只看绝对分数。

优化:从经验中学习

最后一步是 GRPO 根据从评估解决方案组中学到的知识来改进模型。这个过程既强大又稳定,使用了两个主要原则:

  1. 它鼓励模型生成更多成功的解决方案,同时远离效率较低的方法。
  2. 它包含一个安全机制(称为 KL 散度惩罚),可防止模型一次性发生过于剧烈的变化。

这种方法比传统方法更稳定,因为:

  • 它同时考虑多个解决方案,而不是一次只比较两个。
  • 基于组的归一化有助于防止奖励缩放问题。
  • KL 惩罚就像一个安全网,确保模型在学习新事物的同时不会忘记它已经知道的东西。

GRPO 的关键创新是:

  • 直接从任何函数或模型中学习,消除了对独立奖励模型的依赖。
  • 基于组的学习,比传统的配对比较方法更稳定、更高效。

这个分解很复杂,但关键在于 GRPO 是一种更高效、更稳定的模型训练推理方法。

GRPO 算法的伪代码

现在我们已经理解了 GRPO 的关键组成部分,接下来我们来看看算法的伪代码。这是一个简化版的算法,但它捕捉了核心思想。

Input: 
- initial_policy: Starting model to be trained
- reward_function: Function that evaluates outputs
- training_prompts: Set of training examples
- group_size: Number of outputs per prompt (typically 4-16)

Algorithm GRPO:
1. For each training iteration:
   a. Set reference_policy = initial_policy (snapshot current policy)
   b. For each prompt in batch:
      i. Generate group_size different outputs using initial_policy
      ii. Compute rewards for each output using reward_function
      iii. Normalize rewards within group:
           normalized_advantage = (reward - mean(rewards)) / std(rewards)
      iv. Update policy by maximizing the clipped ratio:
          min(prob_ratio * normalized_advantage, 
              clip(prob_ratio, 1-epsilon, 1+epsilon) * normalized_advantage)
          - kl_weight * KL(initial_policy || reference_policy)
          
          where prob_ratio is current_prob / reference_prob

Output: Optimized policy model

该算法展示了 GRPO 如何将基于组的优势估计与策略优化相结合,同时通过裁剪和 KL 散度约束保持稳定性。

结果和影响

现在我们已经探讨了算法,接下来看看结果。DeepSeek R1 在多个领域取得了最先进的性能:

领域 主要结果
数学 • AIME 2024 上达到 79.8%
• MATH-500 上达到 97.3%
编程 • Codeforces 评分:2029
• LiveCodeBench:65.9%
通用知识 • MMLU:90.8%
• GPQA Diamond:71.5%
语言任务 • AlpacaEval 2.0:胜率 87.6%
• FRAMES:82.5%

该模型的实际影响超越了基准测试,通过其经济高效的 API 定价(每百万输入令牌 0.14 美元)和成功跨各种规模(1.5B 到 70B 参数)进行模型蒸馏。值得注意的是,即使是 7B 模型也在 AIME 2024 上达到了 55.5%,而 70B 蒸馏版本在 MATH-500 上接近 o1-mini 性能(94.5%),这表明在不同规模下都能有效保持能力。

GRPO 的局限性和挑战

虽然 GRPO 代表了语言模型强化学习的重大进步,但了解其局限性和挑战也很重要:

  • 生成成本:为每个提示生成多个完成(4-16个)与仅生成一两个完成的方法相比,增加了计算要求。
  • 批处理大小限制:需要同时处理多个完成组可能会限制有效的批处理大小,增加训练过程的复杂性并可能减慢训练速度。
  • 奖励函数设计:训练质量很大程度上取决于设计良好的奖励函数。设计不当的奖励可能导致意外行为或针对错误目标的优化。
  • 组大小权衡:选择最佳组大小需要在解决方案多样性与计算成本之间取得平衡。样本太少可能无法提供足够的多样性,而样本太多则会增加训练时间和资源需求。
  • KL 散度调整:为 KL 散度惩罚找到正确的平衡点需要仔细调整——太高则模型无法有效学习,太低则可能偏离其初始能力太远。

结论

DeepSeek R1 论文代表了语言模型发展的一个重要里程碑。组相对策略优化 (GRPO) 算法已经证明,纯强化学习确实可以发展强大的推理能力,这挑战了先前关于监督微调必要性的假设。

也许最重要的是,DeepSeek R1 表明,在高性能和成本效益、可访问性等实际考量之间取得平衡是可能的。该模型在不同规模(从 1.5B 到 70B 参数)上成功蒸馏其能力,展示了使先进 AI 能力更广泛可用的前进道路。


在下一节中,我们将探讨这些概念的实际应用,重点是如何在您自己的语言模型开发项目中使用 GRPO 和 RFTrans。

测验

1. DeepSeek R1 论文的主要创新点是什么?

2. DeepSeek R1 训练过程的四个阶段是什么?

3. R1-Zero 训练中的“Aha 时刻”现象是什么?

4. GRPO 的组形成如何运作?

5. DeepSeek-R1-Zero 和 DeepSeek-R1 的主要区别是什么?

< > 在 GitHub 上更新