LLM 课程文档
DeepSeek R1 论文解读
并获得增强的文档体验
开始入门
DeepSeek R1 论文解读
本章是论文速读课程。我们将用简单的术语解读论文,然后分解关键概念和要点。
DeepSeek R1 代表了语言模型训练方面的重大进步,尤其是在通过强化学习开发推理能力方面。本文介绍了一种新的强化学习算法,称为群组相对策略优化 (GRPO)。
在下一章中,我们将在此知识的基础上,在实践中实现 GRPO。
本文的最初目标是探索纯强化学习是否可以在没有监督微调的情况下发展推理能力。
在此之前,所有流行的 LLM 都需要一些监督微调,我们在第 11 章中探讨过。
突破性“Aha 时刻”
R1-Zero 训练中最引人注目的发现之一是“Aha 时刻”现象的出现。这种现象有点类似于人类在解决问题时突然顿悟的体验。以下是它的工作原理:
- 初步尝试:模型对解决问题进行初步尝试
- 识别:它识别潜在的错误或不一致之处
- 自我纠正:它根据这种识别调整其方法
- 解释:它可以解释为什么新方法更好
这一突破与学习者产生共鸣,感觉就像“尤里卡”时刻。它展示了学习而非单纯的记忆,因此让我们花点时间想象一下拥有“Aha”时刻的感觉。
例如,想象一下您正在尝试解谜
- 第一次尝试:“这块应该根据颜色放在这里”
- 识别:“但是等等,形状不太合适”
- 纠正:“啊,它实际上属于那边”
- 解释:“因为颜色和形状图案在这个位置都匹配”
这种能力是从强化学习训练中自然而然地出现的,没有被明确编程,这证明了学习,而不是仅仅记忆训练数据中的过程。
理解“Aha”时刻的最简单方法是亲眼目睹它。让我们看一个例子。在下面的聊天中,我们要求模型解决一个问题,UI 显示了模型解决问题的思考过程。
如果您想尝试 Deepseek 的 R1,您也可以查看 Hugging Chat。
训练过程
R1 的训练是一个多阶段过程。让我们分解各个阶段以及每个阶段的关键创新。
最终过程产生两个模型
- DeepSeek-R1-Zero:一个完全使用强化学习训练的模型。
- DeepSeek-R1:一个建立在 DeepSeek-R1-Zero 基础之上并添加了监督微调的模型。
特性 | DeepSeek-R1-Zero | DeepSeek-R1 |
---|---|---|
训练方法 | 纯强化学习 | 多阶段(SFT + 强化学习) |
微调 | 无 | 监督微调 |
推理能力 | 涌现 | 增强 |
AIME 性能 | 71.0% | 79.8% |
关键特征 | 推理能力强但可读性问题 | 更好的语言一致性和可读性 |
虽然 DeepSeek-R1-Zero 证明了纯强化学习在发展推理能力方面的潜力,但 DeepSeek-R1 在此基础上构建了一个更平衡的方法,优先考虑推理性能和可用性。
训练过程包括四个阶段
- 冷启动阶段
- 推理强化学习阶段
- 拒绝采样阶段
- 多样性强化学习阶段
让我们分解每个阶段
冷启动阶段(质量基础)
此阶段旨在为模型的可读性和响应质量奠定坚实的基础。它使用来自 R1-Zero 的少量高质量样本数据集来微调 V3-Base 模型。团队从 DeepSeek-V3-Base 模型开始,使用了来自 R1-Zero 的数千个经过验证的高质量样本进行监督微调。这种创新方法使用少量但高质量的数据集来建立强大的基线可读性和响应质量。
推理强化学习阶段(能力构建)
推理强化学习阶段侧重于开发跨领域的,包括数学、编码、科学和逻辑等核心推理能力。此阶段采用基于规则的强化学习,奖励直接与解决方案的正确性相关联。
至关重要的是,此阶段的所有任务都是“可验证的”,因此我们可以检查模型的答案是否正确。例如,在数学方面,我们可以使用数学求解器检查模型的答案是否正确。
此阶段特别创新的地方在于其直接优化方法,该方法消除了对单独奖励模型的需求,从而简化了训练过程。
拒绝采样阶段(质量控制)
在拒绝采样阶段,模型生成样本,然后通过质量控制流程进行过滤。DeepSeek-V3 充当质量评判员,评估超出纯推理任务的广泛范围内的输出。然后,过滤后的数据用于监督微调。此阶段的创新之处在于其能够结合多种质量信号以确保高标准输出。
多样性强化学习阶段(广泛对齐)
最后的“多样性强化学习阶段”使用复杂的混合方法处理多种任务类型。对于确定性任务,它采用基于规则的奖励,而主观任务则通过 LLM 反馈进行评估。此阶段旨在通过其创新的混合奖励方法实现人类偏好对齐,该方法结合了基于规则的系统的精确性和语言模型评估的灵活性。
算法:群组相对策略优化 (GRPO)
现在我们已经很好地理解了训练过程,让我们来看看用于训练模型的算法。
作者将 GRPO 描述为模型微调方面的突破
GRPO 的新颖之处在于其“直接优化偏好修正”的能力。这标志着将模型与所需输出对齐的更直接、更有效途径,与传统的强化学习算法(如 PPO)形成对比。让我们通过 GRPO 的三个主要组成部分来分解其工作原理。
群组形成:创建多个解决方案
GRPO 的第一步非常直观 - 它类似于学生通过尝试多种方法来解决难题。当给定提示时,模型不仅仅生成一个响应;而是创建多个解决同一问题的尝试(通常为 4、8 或 16 种不同的尝试)。
想象一下您正在教模型解决数学问题。对于一个关于计算农场鸡数量的问题,模型可能会生成几个不同的解决方案
- 一种解决方案可能会逐步分解问题:首先计算鸡的总数,然后减去公鸡,最后考虑不产蛋的母鸡
- 另一种解决方案可能会使用不同的但同样有效的方法
- 有些尝试可能包含错误或效率较低的解决方案
所有这些尝试都作为一个组放在一起,很像拥有多个学生的解决方案进行比较和学习。
偏好学习:理解是什么造就了一个好的解决方案
这是 GRPO 真正闪耀其简单性的地方。与 RLHF 的其他方法总是需要一个单独的奖励模型来预测解决方案的好坏不同,GRPO 可以使用任何函数或模型来评估解决方案的质量。例如,我们可以使用长度函数来奖励较短的响应,或者使用数学求解器来奖励准确的数学解决方案。
评估过程着眼于每个解决方案的各个方面
- 最终答案是否正确?
- 解决方案是否遵循正确的格式(例如使用正确的 XML 标签)?
- 推理是否与提供的答案匹配?
这种方法特别聪明的地方在于它如何处理评分。GRPO 不仅仅给出绝对分数,而是对每个组内的奖励进行归一化。它使用一个简单但有效的公式进行群组相对优势估计
Advantage = (reward - mean(group_rewards)) / std(group_rewards)
这种归一化就像 AI 的曲线评分一样。它帮助模型理解组内哪些解决方案比同类解决方案更好或更差,而不仅仅是查看绝对分数。
优化:从经验中学习
最后一步是 GRPO 教会模型根据从评估解决方案组中学到的知识进行改进。此过程既强大又稳定,使用两个主要原则
- 它鼓励模型生成更多类似成功的解决方案,同时远离效果较差的方法
- 它包含一个安全机制(称为 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 定价(每百万输入 tokens 0.14 美元)以及跨各种尺寸(15 亿至 700 亿参数)的成功模型蒸馏。值得注意的是,即使是 7B 模型也在 AIME 2024 上实现了 55.5% 的成绩,而 70B 蒸馏版本在 MATH-500 上接近 o1-mini 性能 (94.5%),证明了在不同规模下有效的能力保留。
GRPO 的局限性和挑战
虽然 GRPO 代表了语言模型强化学习方面的重大进步,但重要的是要了解其局限性和挑战
- 生成成本:与仅生成一个或两个 completions 的方法相比,为每个提示生成多个 completions(4-16 个)会增加计算要求。
- 批量大小约束:将 completions 组一起处理的需求可能会限制有效的批量大小,从而增加训练过程的复杂性并可能减慢训练速度。
- 奖励函数设计:训练质量在很大程度上取决于精心设计的奖励函数。设计不良的奖励可能会导致意外行为或针对错误目标进行优化。
- 群组大小权衡:选择最佳群组大小涉及平衡解决方案的多样性与计算成本。样本太少可能无法提供足够的多样性,而样本太多会增加训练时间和资源需求。
- KL 散度调整:为 KL 散度惩罚找到正确的平衡需要仔细调整 - 太高模型将无法有效学习,太低模型可能会过度偏离其初始能力。
结论
DeepSeek R1 论文代表了语言模型发展的一个重要里程碑。“群体相对策略优化 (GRPO)” 算法已经证明,纯粹的强化学习确实可以发展强大的推理能力,这挑战了之前关于有监督微调必要性的假设。
也许最重要的是,DeepSeek R1 已经表明,在高性能与成本效益和可访问性等实际考虑因素之间取得平衡是可能的。模型能力在从 15 亿到 700 亿参数的不同规模上的成功提炼,为更广泛地提供先进的 AI 能力展示了一条前进的道路。
在下一节中,我们将探讨这些概念的实际应用,重点介绍如何在您自己的语言模型开发项目中利用 GRPO 和 RFTrans。