近来,DeepSeek R1 一鸣惊人,迅速席卷各大平台,成为科技领域的热议焦点。从专业论坛到社交媒体,甚至那些原本与人工智能毫无交集的亲朋好友,也纷纷开始询问:“你知道 DeepSeek 吗?” 这一现象让人不禁意识到,深入探讨这个在国产和开源 LLM 发展史上具有里程碑意义的模型,已显得尤为必要。
OpenAI 的模型因其闭源特性,其 o1 的实现方式始终是外界无法知晓的谜团。然而,对于 NLP 从业者而言,尽管无法直接窥探其训练细节,但通过对模型输出的观察,训练思路仍然能被推测出大致框架。尽管媒体宣传铺天盖地,DeepSeek 的表现也相当亮眼,但它仍然是 OpenAI 的追随者。诚然,从 0 到 1 的创新往往更具挑战性,OpenAI 在这一过程中所付出的探索尤为艰辛。然而,DeepSeek 的崛起无疑标志着一次重大突破。它不仅为研究者和开发者提供了一个开放、可深入研究的平台,还为未来开源 LLM 超越闭源 LLM 指明了方向。
经验表明,最有效的方法往往源自最朴素的初衷。试想一下,如果没有 DeepSeek-R1 提供的方法,若让你自己实现一个类似 GPT-O1 这样具备思维过程的 LLM,你会如何着手呢?
一个最直接、自然的思路便是收集大量带有 Chain-of-Thought (CoT) 的训练数据。在这一过程中,我们还可以借助普通 LLM,通过提示工程生成符合要求的数据。数据中,推理过程可以用 <think></think>
标签标记,最终的回答则用 <answer></answer>
标签进行标注,接着利用这些数据进行微调训练,从而得到一个具备思维过程的 LLM。
回顾一下 DeepSeek-R1 的论文,其训练模板正是这一思路。但或许为了进一步提升效果,DeepSeek 团队在训练 DeepSeek-R1 Zero 时完全摒弃了传统的 SFT(监督微调),而是采用了纯强化学习的方法,采用 GRPO(群组相对策略优化) 作为强化学习框架。通过对多个答案进行采样,计算其相对优势并加以优化,从而对原始的 DeepSeek V3 模型进行微调,赋予其推理能力。
GRPO:DeepSeek 成功的关键优化
GRPO (Group Relative Policy Optimization) 是deepseek团队在2024年2月提出的一种用于强化学习的优化方法,用以 减少计算开销 并提升推理能力。 众所周知,在强化学习中,常见的方法是 近端策略优化(PPO, Proximal Policy Optimization),这个算法自从被OpenAI提出来的,几乎一直雄踞强化学习SOTA方法之榜首,因此openai在训练他们LLM模型中使用的RLHF中的必然一直是PPO,GRPO这个微小的改进或许是deepseek成功的非常关键的一环。
GRPO 的核心思想
GRPO 的独特之处在于它通过比较同一批次中不同答案的相对优势,来指导策略的优化。与传统方法中的 Critic 网络相比,GRPO 直接通过群体间的评分差异进行学习,从而节约了大量的计算资源,并且能够提高强化学习的效率。具体来说,GRPO 的优势计算不依赖外部的价值模型,而是通过 同一问题多个答案之间的分数对比 来得出优势,这使得它特别适用于推理任务。
GRPO 公式与计算方法
GRPO 的优化过程可以通过以下公式描述:
目标优化函数(Objective Function):
其中:
和
分别表示当前策略模型和旧策略模型生成答案的概率。
表示优势函数,衡量当前答案相对于其他答案的质量。
- 裁剪项 用于限制策略更新幅度,以避免训练的不稳定。
- KL 散度惩罚项 用于防止策略与参考模型之间的差异过大,从而保证训练的稳定性。
优势计算(Advantage Estimation):
在 GRPO 中,优势函数 Ai 不是通过传统的 Critic 网络来估算,而是通过同一问题多个答案之间的相对奖励来计算。具体而言:
其中,
表示答案的奖励分数,
和
分别是该组答案奖励的平均值和标准差。这种基于群体之间评分对比的方式,不仅减少了计算复杂度,还提升了训练的稳定性和推理的精度。
GRPO 的优势
GRPO 相较于传统的强化学习方法,具有以下几个显著优势:
- 计算开销降低:GRPO 不使用 Critic 网络,而是通过直接对比多答案之间的相对优势来优化策略,从而大大减少了计算资源的消耗,节省了 50% 以上的计算资源。
- 提高稳定性:传统的强化学习方法可能面临 Critic 网络误差传播和过拟合的问题,而 GRPO 通过群组评分的方式降低了估计误差,提高了训练的稳定性。
- 特别适合推理任务:GRPO 适用于需要推理的任务,因为它通过比较不同答案的相对优势,能够更好地引导策略优化,避免了对复杂价值网络的依赖。
GRPO 在 DeepSeek-R1-Zero 训练中的应用
DeepSeek-R1-Zero 采用 GRPO(Generalized Reward Policy Optimization)优化其推理能力。具体训练流程如下:
-
采样多个答案:对于每个问题,使用当前策略
生成多个不同的答案。
-
计算奖励:通过规则奖励的方式,为每个答案分配奖励分数,奖励计算包括以下几项:
-
准确性奖励(Accuracy Rewards)
- 目标:评估生成的答案是否正确,尤其是对于那些具有确定性结果的问题(如数学、编程等)。
-
实现方法:
- 对于数学问题或其他标准答案可验证的任务,模型需要提供一个格式化的最终答案,例如将结果放入括号或按照特定格式进行验证。
- 对于编程问题(如 LeetCode 等),可以使用 编译器 或 测试用例 来验证模型生成的代码是否正确。
-
格式奖励(Format Rewards)
- 目标:确保模型生成的答案符合特定的格式要求。
-
实现方法:
-
思维链(Chain-of-Thought,CoT)格式:模型需要将推理过程放在
<think>
和</think>
标签之间,最终答案放在<answer>
和</answer>
标签中。 - 这种格式化不仅提升了模型的可读性和结构化推理能力,也帮助开发者或用户快速定位问题的解答过程。
-
思维链(Chain-of-Thought,CoT)格式:模型需要将推理过程放在
-
语言一致性奖励(Language Consistency Rewards)
- 目标:减少语言混杂现象,使生成的推理过程和答案保持同一语言环境。
-
实现方法:
- 在多语言任务中,模型会根据生成文本的语言一致性给予奖励。如果在同一推理过程中保持一致的语言(例如全程使用英语或中文),则会获得奖励;如果语言切换(例如从中文转到英文),则会受到惩罚。
-
推理过程的可读性奖励(Readability Rewards)
- 目标:评估推理过程的简洁性、清晰性和易理解性。
-
实现方法:
- 生成的推理过程不应过于复杂或冗长。如果模型生成的推理过程过于繁琐,导致人类理解困难,奖励将相应降低。
- 例如,推理过程中若包含过多无关的步骤或细节(如不必要的解释),将被认为不符合可读性标准。
-
准确性验证奖励(Correctness Verification)
- 目标:通过验证工具或外部机制确认模型答案的正确性。
-
实现方法:
- 对于特定任务,可能会使用外部验证工具来帮助评估答案的正确性。例如,数学计算任务中的答案通过自动计算器进行验证;编程任务中,通过编程环境或测试框架来验证代码的正确性。
-
反思奖励(Reflection Rewards)
- 目标:鼓励模型在推理过程中进行自我反思和修正。
-
实现方法:
- 如果模型在推理过程中发现某些步骤可能存在问题,并能主动进行回溯和修正,则会获得奖励。这一奖励机制有助于增强模型的推理深度和修正错误的能力。
-
准确性奖励(Accuracy Rewards)
- 计算相对优势:基于多个答案的奖励分数,计算标准化的优势函数。
- 更新策略:采用 GRPO 的目标优化函数,更新策略,增加高分答案的生成概率。
实验表明,GRPO 训练的 DeepSeek-R1-Zero 在数学和编程推理任务中取得了显著进展。例如,在 AIME 2024 数学竞赛中,Pass@1 得分从 15.6% 提升至 71.0%,多数投票后的得分可达到 86.7%。尽管如此,由于缺乏传统的监督微调(SFT),DeepSeek-R1-Zero 存在语言混杂和可读性差的问题,这一问题在后续的 DeepSeek-R1 训练中得到了有效改进。
DeepSeek-R1:结合冷启动和多阶段强化学习
为了弥补 DeepSeek-R1-Zero 的缺陷,deepseek研究团队设计了多阶段训练流程:
-
冷启动(Cold Start)
- 使用 高质量长链式推理(CoT)数据 进行初步微调。
- 数据来源:
- 少样本提示(Few-Shot Prompting)
- DeepSeek-R1-Zero 生成的可读性数据
- 人工筛选和优化
- 目标:提高模型可读性,减少语言混杂问题。
-
推理导向的强化学习(Reasoning-oriented RL)
- 在经过冷启动微调的模型上进行 RL 训练,增强推理能力。
- 采用 语言一致性奖励(Language Consistency Reward),确保回答使用单一语言,提高可读性。
-
拒绝采样和监督微调(Rejection Sampling + SFT)
- 在 RL 训练后,使用拒绝采样收集高质量数据。
- 结合 DeepSeek-V3 的监督数据进行额外微调,增强写作、问答、角色扮演等能力。
-
全场景强化学习(RL for all Scenarios)
- 进一步对齐人类偏好,优化推理和非推理任务。
- 采用多种奖励信号,包括:
- 推理任务的规则奖励
- 一般任务的偏好模型(Preference Model)
- 帮助性(Helpfulness)和无害性(Harmlessness)评估
经过这一番操作,使得DeepSeek-R1在数学、编程、综合推理方面的跑分达到了最先进水平,尽管在很多实际场景中还是逊色于openai-o1,但重点在于deepseek训练这个模型花费成本之低,足以让OpenAI感到恐慌,这也导致了山姆奥特曼后来的逐步开放的计划。
DeepSeek 的成功:一个小公司如何打破行业常规
DeepSeek 的崛起令人惊讶,因为它并未出现在那些资金雄厚的大公司,而是一个曾被低估的小公司。其成功可归因于以下几个关键因素:
- 站在巨人的肩膀上:DeepSeek 明智地利用了全球开源社区的技术成果,并以开放的姿态将自己的技术回馈给社区。这种开源精神使其始终站在行业的前沿。
- 人才哲学:DeepSeek 更注重员工的潜力和创新能力,而非单纯的经验和背景。其招聘哲学帮助吸引了真正符合团队文化和目标的人才,激发了团队成员的创造力。
- 打破成熟体系的局限性:大公司往往存在创新受限的问题,优秀人才未必能在固有的层级结构中发挥所长。DeepSeek 通过灵活的团队架构,充分挖掘每个成员的潜力。
讨论
从deepseek的实验结果来看,直接从大模型蒸馏到相对小的模型比小模型直接RL会更直接有效。但是如果智能要进一步发展,或许还是要进一步拜托人类经验的束缚,如果有一天能像alpha zero那样完全摆脱人类经验才是真正的无敌。