前言
人工智能随着 DeepSeek R1 的发布迈出了重要的一步,这是一款开源模型,在高级推理任务上对 OpenAI 的 o1 发起了挑战。DeepSeek R1 采用了一种创新技术——群体相对策略优化(Group Relative Policy Optimisation,GRPO),并结合多阶段训练方法,在数学、编程和通用推理等领域树立了新的基准。
DeepSeek R1 的独特之处在于,它能够以惊人的准确性和推理深度解决复杂任务,同时保持高效的训练流程。本篇博客将深入探讨其基础方法、训练流程及创新点,以展示 DeepSeek R1 在人工智能研究中的卓越表现。
理解群体相对策略优化(GRPO)
群体相对策略优化(Group Relative Policy Optimisation,GRPO)是推动 DeepSeek R1 具备卓越推理能力的核心创新点。这一强化学习算法最早在 DeepSeekMath 论文中提出,通过重新设计奖励分配和优化方式,提升了模型训练的效率。GRPO 取代了传统方法(如 PPO,即近端策略优化),为大语言模型提供了一种更简单、高效的优化策略。
GRPO 的关键特性
-
无价值函数模型:与 PPO 不同,GRPO 不需要单独的价值函数模型,从而简化了训练流程,降低了内存消耗,提高了训练效率。
-
基于群体的优势计算:GRPO 针对每个输入生成一组输出,并将该组的平均得分作为基准奖励。这种群体化的方法使奖励模型训练更加稳定,特别适用于推理任务。
-
直接优化 KL 散度:PPO 将 KL 散度作为奖励信号的一部分,而 GRPO 则直接将 KL 散度整合进损失函数,从而在优化过程中提供更精细的控制。
GRPO 的工作流程
-
采样(Sampling):模型使用当前策略为每个提示生成多个输出。
-
奖励评分(Reward Scoring):使用奖励函数对每个输出进行评分,评分方式可以基于规则(如格式或准确性)或基于结果(如数学或编程任务的正确性)。
-
优势计算(Advantage Calculation):群体的平均奖励作为基准,每个输出的相对优势基于该基准计算,并在群体内进行归一化。
-
策略优化(Policy Optimisation):模型利用计算出的优势来更新策略,以最大化表现。同时,KL 散度项被直接纳入损失函数,确保模型在探索新策略和保持稳定性之间取得平衡。
深入解析 GRPO
如果你只是想了解一个大致概览,可以跳过这一部分——前面的内容已经足够。我不希望你感到信息过载,所以如果不需要深入理解,也无需勉强阅读本节内容。
群体相对策略优化(GRPO)详解
群体相对策略优化(GRPO) 是 近端策略优化(PPO) 的一种变体,在提升数学推理能力的同时,还优化了 PPO 的内存使用效率。
GRPO 的全面解析
1. PPO 与 GRPO 的对比
PPO(近端策略优化)与 GRPO(群体相对策略优化)的核心区别在于 优势估计方式 和 计算效率。
-
PPO 依赖单独的价值模型 来评估策略的优势,而 GRPO 去除了这一依赖,改用 基于群体的相对优势估计。
-
这一改进 降低了内存占用和计算成本,使得 GRPO 在处理复杂推理任务时更加高效。
2. 图示概览
在上图所示的结构中:
PPO(近端策略优化)
-
策略模型(Policy Model)针对输入 q 生成输出 O。
-
独立的 价值模型(Value Model) 预测基准值 v,并结合 广义优势估计(GAE) 计算优势 A。
-
奖励 r 由 奖励模型(Reward Model) 计算,并包含基于参考模型的 KL 罚项。
-
由于额外的价值模型和 KL 计算,该架构导致 较高的资源消耗。
GRPO(群体相对策略优化)
-
每个输入q 生成 多个输出 \{o_1, o_2, …, o_G\},并通过奖励模型计算它们的奖励\{r_1, r_2, …, r_G\}。
-
通过 群体计算 对这些奖励进行归一化,计算出相对优势A_1, A_2, …, A_G,无需价值模型。
-
KL 散度 直接添加到损失函数中,使训练过程更加简单高效。
PPO 的数学公式
PPO 是一种强化学习算法,它通过最大化 代理目标函数(Surrogate Objective Function) 来优化策略模型,同时使用 剪切约束(Clipping-Based Constraints) 来保证训练稳定性。其关键组成部分如下:
PPO 的关键要点
-
优势计算(Advantage Calculation):PPO 采用 广义优势估计(GAE) 来减少A_t的方差,并使用 学习到的价值函数 V_{\psi} 作为基准值。
-
剪切正则化(Clipping Regularization):代理目标函数中的 剪切(Clipping) 机制可确保训练稳定性,并防止策略更新幅度过大。
-
KL 散度正则化(KL Divergence Regularization):奖励中的 KL 罚项 避免策略偏离参考模型过多,从而促进稳定学习。
GRPO 的数学公式
群体相对策略优化(GRPO) 通过移除 价值模型(Value Model) 并使用 基于群体的相对奖励 进行基准估计,从而简化了 PPO。GRPO 旨在高效地微调大语言模型(LLMs),同时降低计算成本。
GRPO 的关键要点
-
去除价值模型(Eliminates the Value Model):GRPO 用 基于群体的奖励归一化 取代了计算成本高昂的价值模型,大幅降低了资源消耗。
-
利用群体比较(Leverages Group Comparisons):通过在群体内部对奖励进行归一化,GRPO 与大多数奖励模型的 成对比较机制 更加契合,确保更精确的相对奖励估计。
-
简化 KL 正则化(Simplifies KL Regularization):GRPO 直接在 损失函数 中对策略进行 KL 散度正则化,避免了在奖励中引入复杂的 KL 罚项。
基于 GRPO 的结果监督强化学习(Outcome Supervision RL with GRPO)
基于 GRPO 的过程监督强化学习(Process Supervision RL with GRPO)
GRPO 训练包括 迭代更新策略模型和奖励模型 以保持对齐。具体步骤如下:
PPO 与 GRPO 的主要区别
-
价值模型(Value Model):PPO 依赖 价值模型 进行优势估计,而 GRPO 去除了价值模型,转而使用 群体归一化奖励。
-
KL 正则化(KL Regularization):PPO 在奖励中包含 KL 罚项,而 GRPO 直接在损失函数中 进行 KL 散度正则化。
-
奖励粒度(Reward Granularity):PPO 直接计算 令牌级(Token-Level)奖励,而 GRPO 基于群体的相对奖励,在采样输出之间进行归一化。
-
计算效率(Computational Efficiency):GRPO 更高效,因为它移除了价值模型,并简化了优势估计方法。
DeepSeek R1 的多阶段训练
训练一个 高级推理模型(如 DeepSeek R1)不仅需要强大的计算能力,还需要 精心设计的训练流程。为了提升模型的 推理能力和连贯性,DeepSeek 团队采用了一种 多阶段训练方法,结合 监督微调(SFT) 和 基于 GRPO 的强化学习(RL),有效克服了强化学习训练初期的不稳定性,确保模型能够在多种任务上表现出色。
第一阶段:基础模型到监督微调(SFT)
训练开始于 DeepSeek V3 基础模型,并使用 高质量的思维链(CoT)数据 进行微调。
-
数据收集:
-
由 R1-zero 模型 和 人工标注 生成 最长 10K tokens 的推理补全(CoT)。
-
训练重点:
-
提高模型输出的 可读性、连贯性和逻辑流畅度。
-
阶段成果:
-
强化学习的稳固基础,减少后续训练中的不稳定性。
第二阶段:基于 RL 的推理优化
在该阶段,引入 GRPO 以提升模型在 数学、编程和结构化问题求解 方面的推理能力。
-
规则奖励(Rule-Based Rewards):
-
强调 准确性(如解决编程问题、验证数学结果)。
-
设定 格式化规则,确保清晰表达(如用特定标签
<reasoning>
包围思考过程)。 -
新奖励信号(New Reward Signal):
-
“语言一致性”奖励,鼓励模型在整个输出过程中保持相同语言风格。
-
阶段成果:
-
推理能力显著提升,在 AIME 2024 竞赛中 pass@1 分数提升至 71.0%。
第三阶段:拒绝采样与 SFT
为拓展模型能力,团队采用 拒绝采样(Rejection Sampling, RS) 方法,生成了大规模的合成数据集。
-
数据集构建:
-
第二阶段模型 生成 60 万条推理相关样本。
-
额外生成 20 万条 通用任务(如写作、角色扮演)样本。
-
数据来源:DeepSeek V3 SFT 数据集,或基于 思维链(CoT) 重新生成。
-
训练重点:
-
扩展模型能力,使其不仅擅长推理任务,还能处理 创意类和通用任务。
-
阶段成果:
-
模型在更广泛任务上的通用性和连贯性增强。
第四阶段:基于 RL 的“有帮助性”优化
最后,GRPO 训练的重点从 推理能力 扩展到 有帮助性(helpfulness)和无害性(harmlessness)。
-
奖励模型的结合(Combination of Reward Models):
-
规则奖励:确保推理能力和准确性持续提升。
-
基于结果的奖励:鼓励模型生成 有帮助且安全 的输出。
-
阶段成果:
-
模型在复杂推理任务中保持清晰度、安全性,并符合用户需求。
多阶段训练的核心见解
- 早期 SFT 稳定 RL 训练:
- 在强化学习前进行 监督微调 可 减少训练不稳定性,加速收敛。
- 规则奖励机制高效:
- 简单、针对性的奖励(如准确性、格式要求)往往 比复杂奖励模型更有效。
- 拒绝采样提升模型适应性:
- 通过 拒绝采样生成合成数据,可以 增强模型的泛化能力,适应不同任务。
通过在 SFT 和 RL 之间****交替训练,DeepSeek 团队成功解决了强化学习的冷启动问题及任务过拟合问题,使 DeepSeek R1 在推理和更广泛的应用场景中都能表现卓越。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。