unsloth复现GRPO
如果无法正常显示,请先停止浏览器的去广告插件。
1. 基于unsloth高效复现GRPO
汇报人:致Great
2025年02月22日
2. 目 录
01 DeepSeek-R1模型简介
02 GRPO原理讲解
03 开源方案梳理解析
04 使用Unsloth低成本训练
2
3. DeepSeek-R1模型简介
Ø DeepSeek-R1:通过强化学习提升大型语言模型的推理能力
Ø 论文题目:《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning》
Ø 论文链接:https://arxiv.org/abs/2501.12948
这篇论文介绍了一种新的第一代推理模型——DeepSeek-R1系
列,旨在通过强化学习(Reinforcement Learning, RL)提升
大型语言模型(Large Language Models, LLMs)的推理能力。
具体来说,论文试图解决以下几个问题:
n
n
n
n
n
无监督数据的推理能力培养
推理时的性能扩展
模型的自进化能力
提高模型的可读性和泛化能力
小型模型的推理能力提升
3
4. DeepSeek-R1模型简介
Ø DeepSeek-R1 论文提出了多个模型,但其中最主要的是 R1 和 R1-Zero。
Ø DeepSeek-R1 主要思想:
n 多阶段训练:其中一小组冷启动数据启动模型,然后进行大规模 RL。
n 群体相对策略优化 (GRPO):一种强化学习方法,依赖于比较每个提示的多个模型输出,以避免需要单
独的批评者。
Ø DeepSeek-R1-Zero:
Ø DeepSeek-R1-Zero将强化学习 (RL) 直接应用于 DeepSeek-V3-Base,无需监督微调 (SFT),RL 用于优
化模型的策略以最大化奖励。
Ø DeepSeek-R1-Zero 实现了出色的准确率,但有时会产生令人困惑的输出,例如在单个响应中混合多种
语言和格式混乱。
Ø DeepSeek-R1 通过结合有限的监督微调和多阶段RL 训练来解决这个问题,从而提高了正确性和可读性。
备注:R1 和 R1-Zero 都是推理模型,意味着它们在回答之前会进行思维链。对于 R1 系列模型,这表现为在<think>标签
内思考,然后回答最终的总结。
4
5. DeepSeek-R1模型简介
① 冷启动微调:基于几千个思维链 (CoT) 样本对 DeepSeek-
V3-Base 进行微调,以确保 RL 过程有一个不错的起点。这
为启动 RL 提供了一个良好的模型。
② 第一阶段强化学习:应用基于规则的奖励的 GRPO 来提高
推理的正确性和格式(例如将思路链强制为思维标签)。当
它们在强化学习过程中接近收敛时,它们将进入下一步。此
步骤的结果是一个强大的推理模型,但通用能力较弱,例如
格式差和语言混合。
③ 拒绝采样+ 普通数据:通过对 RL 检查点(来自步骤 2)进
行拒绝采样来创建新的 SFT 数据,并结合来自 DeepSeek-
V3-Base 模型的监督数据。他们收集了大约 600k 个高质量
推理样本。
④ 第二次微调:在总共 80 万个样本(60 万个推理任务 + 20
万个通用任务)上再次对 DeepSeek-V3-Base 进行微调,
以扩大其能力。此步骤产生了一个具有一般能力的强大推理
模型。
⑤ 第二阶段强化学习:除了推理奖励之外,还添加更多奖励信
号(有用性、无害性)来完善最终模型。结果就是
DeepSeek-R1。
图片来源:https://x.com/SirrahChan/status/1881488738473357753
5
6. DeepSeek-R1模型简介
图一:DeepSeek-R1-Zero 训练
Ø 之前通常的训练策略:在大数据集上进行预训练(训练预测下一个单词)以获得基础模型→监督微调→通过
RLHF 进行偏好调整
Ø 研究动机:RL在推理任务中已被证明具有显著的效果,然而之前的工作严重依赖于监督数据,收集耗时费力。
所以能不能让 LLM 通过纯 RL 进行自我进化?
图片来源:三张图速通 DeepSeek-R1 论文和技术原理
木尧 https://zhuanlan.zhihu.com/p/20538667476
6
7. DeepSeek-R1模型简介
图二:DeepSeek-R1 训练
n 第一步,Cold Start(冷启动):构建几千
条 long CoT 数据来微调模型作为 RL 的初始
化模型
n 第二步,推理任务RL训练:在使用冷启动数
据对 DeepSeek-V3-Base 进行微调后,使用
与DeepSeek-R1-Zero 相同的 RL 策略进行训
练直到收敛
n 第三步,拒绝采样与sft:拿上一步RL收敛的
ckpt用于生成sft数据。与冷启动主要关注推
理任务不同,这一阶段纳入了其他领域的数
据,以增强模型在写作、角色扮演等通用任
务中的能力
图片来源:三张图速通 DeepSeek-R1 论文和技术原理
木尧 https://zhuanlan.zhihu.com/p/20538667476
n 第四步,全场景强化学习:为了进一步使模
型与人类偏好对齐,这里再进行强化学习,
旨在提升模型的有用性和无害性,同时优化
其推理能力。具体使用了组合的奖励信号和
多样化的提示分布来训练模型
7
8. DeepSeek-R1模型简介
图三:DeepSeek-R1-Distill 系列小模型蒸馏
Ø 直接用刚才训 DeepSeek-R1 的 80w 数据对 qwen 和 llama 做 sft,包括 Qwen2.5-Math-1.5B、
Qwen2.5-Math-7B、Qwen2.5-14B、Qwen2.5-32B、Llama-3.1-8B和Llama-3.3-70B-Instruct。
Ø 对于蒸馏模型,仅应用监督微调(SFT),并未包括强化学习阶段(尽管加入强化学习可以显著提
升模型性能),这里的主要目标是展示蒸馏技术的有效性,将强化学习阶段的探索留给更广泛的学
术界。
图片来源:三张图速通 DeepSeek-R1 论文和技术原理
木尧 https://zhuanlan.zhihu.com/p/20538667476
8
9. GRPO原理讲解
Ø 群体相对策略优化 (GRPO,Group Relative Policy Optimization)是一种强化学习 (RL) 算法,专门用于增
强大型语言模型 (LLM) 中的推理能力。与严重依赖外部评估模型(价值函数)指导学习的传统 RL 方法不同,
GRPO 通过评估彼此相关的响应组来优化模型。这种方法可以提高训练效率,使 GRPO 成为需要复杂问题解
决和长链思维的推理任务的理想选择。
DeepSeekMath,https://arxiv.org/pdf/2402.03300
GRPO 的本质思路:通过在同一个问题上生成多条回答,把它们彼此之间做“相对比较”,来代替传统
PPO 中的“价值模型”。
9
10. GRPO原理讲解
Ø GRPO 目标函数:群体相对策略优化 (GRPO) 中的目标函数定义了模型如何学习改进其策略,从而提高其生
成高质量响应的能力。
这个函数主要由三部分组成:
n 重要性采样比 (Policy Ratio):衡量新旧策略之间的变化。
n 裁剪的目标函数 (Clipped Objective):限制策略更新幅度,以避免剧烈变化导致模型崩溃。
n KL 散度正则项 (KL Divergence Regularization):确保新策略不会偏离参考策略太远,以保持稳定性。
10
11. GRPO原理讲解
Ø 通过例子理解 GRPO 目标函数:GRPO(群体相对策略优化)目标函数就像一个配方,通过比较模型自身的
响应并逐步改进,让模型能够更好地生成答案。让我们将其分解成一个易于理解的解释:
Ø 目标:想象一下,你正在教一群学生解决一道数学题。你不会直接告诉他们谁答对了谁答错了,而是比较所
有学生的答案,找出谁答得最好(以及原因)。然后,你通过奖励更好的方法和改进较弱的方法来帮助学生
学习。这正是 GRPO 所做的——只不过它教的是 AI 模型,而不是学生。
Ø 步骤1:从训练数据集 P(Q) 中选择一个查询 (q)
示例:假设查询是“8 + 5 的总和是多少?”
11
12. GRPO原理讲解
Ø 通过例子理解 GRPO 目标函数:GRPO(群体相对策略优化)目标函数就像一个配方,通过比较模型自身的
响应并逐步改进,让模型能够更好地生成答案。让我们将其分解成一个易于理解的解释:
Ø 目标:想象一下,你正在教一群学生解决一道数学题。你不会直接告诉他们谁答对了谁答错了,而是比较所
有学生的答案,找出谁答得最好(以及原因)。然后,你通过奖励更好的方法和改进较弱的方法来帮助学生
学习。这正是 GRPO 所做的——只不过它教的是 AI 模型,而不是学生。
Ø 步骤2:生成一组响应(G)
示例:该模型生成以下响应:
o1:“答案是13。”
o2:“十三。”
o3:“是12。”
o4:“总数是 13。”
12
13. GRPO原理讲解
Ø 通过例子理解 GRPO 目标函数:GRPO(群体相对策略优化)目标函数就像一个配方,通过比较模型自身的
响应并逐步改进,让模型能够更好地生成答案。让我们将其分解成一个易于理解的解释:
Ø 目标:想象一下,你正在教一群学生解决一道数学题。你不会直接告诉他们谁答对了谁答错了,而是比较所
有学生的答案,找出谁答得最好(以及原因)。然后,你通过奖励更好的方法和改进较弱的方法来帮助学生
学习。这正是 GRPO 所做的——只不过它教的是 AI 模型,而不是学生。
Ø 步骤 3:计算每个响应的奖励,奖励是通过量化模型的响应质量来指导模型的学习。
GRPO 中的奖励类型:
n 准确性奖励:基于响应的正确性(例如,解决数学问题)。
n 格式奖励:确保响应符合结构指南(例如,标签中包含的推理)。
n 语言一致性奖励:惩罚语言混合或不连贯的格式。
根据每个回复的优劣程度为其分配奖励 (ri) 。例如,奖励可能取决于:
n 准确性:答案正确吗?
n 格式:回复是否结构良好?
例如:
r1=1.0(正确且格式良好)
r2=0.9(正确但不太正式)
r3=0.0(错误答案)
r4=1.0(正确且格式良好)
13
14. GRPO原理讲解
Ø 通过例子理解 GRPO 目标函数:GRPO(群体相对策略优化)目标函数就像一个配方,通过比较模型自身的
响应并逐步改进,让模型能够更好地生成答案。让我们将其分解成一个易于理解的解释:
Ø 目标:想象一下,你正在教一群学生解决一道数学题。你不会直接告诉他们谁答对了谁答错了,而是比较所
有学生的答案,找出谁答得最好(以及原因)。然后,你通过奖励更好的方法和改进较弱的方法来帮助学生
学习。这正是 GRPO 所做的——只不过它教的是 AI 模型,而不是学生。
Ø 步骤 4:比较答案(团体优势),计算每个响应相对于该组的优势 (Ai) :
n 群体均值(Group Mean): 群体的平均奖励。
n 标准差(Standard Deviation): 奖励的分布情况,表示奖励值的分散程度。
简单讲,计算该组的平均分数,每个回答的分数都会与组平均分数进行比较。
14
15. GRPO原理讲解
Ø 通过例子理解 GRPO 目标函数:GRPO(群体相对策略优化)目标函数就像一个配方,通过比较模型自身的
响应并逐步改进,让模型能够更好地生成答案。让我们将其分解成一个易于理解的解释:
Ø 目标:想象一下,你正在教一群学生解决一道数学题。你不会直接告诉他们谁答对了谁答错了,而是比较所
有学生的答案,找出谁答得最好(以及原因)。然后,你通过奖励更好的方法和改进较弱的方法来帮助学生
学习。这正是 GRPO 所做的——只不过它教的是 AI 模型,而不是学生。
Ø 步骤 5:使用裁剪更新策略,避免大幅度的不稳定更新。如果新策略与旧策略的比率超出范围,则会被裁剪以
防止过度修正。
Ø 步骤 6:使用 KL 散度惩罚偏差,例如如果模型开始生成格式差异极大的输出,KL 散度项会对其进行抑制。
15
16. 开源方案梳理解析
Ø Open R1:HuggingFace 复现 DeepSeek-R1 全流程
Ø 项目地址:https://github.com/huggingface/open-r1
由huggingface组建,目前刚上线2周,发布了最新进展
open-r1/update-1,在MATH-500任务上接近deepseek的指
标,2 月 11 日,Open R1 发布了 OpenR1-Math-220k,这
是一个大规模的数学推理数据集。
HuggingFace 表示,将以 DeepSeek-R1 的技术报告为指
导,分 3 个步骤完成这个项目:
n step 1:从 DeepSeek-R1 中蒸馏高质量数据,复现 R1-
Distill 模型。
n step 2:复现通过纯强化学习训练 R1-Zero 的过程,包
括如何生成推理数据集
n step 3:复现训练 R1 的完整 pipeline,包括两阶段 SFT、
两阶段 RL。
16
17. 开源方案梳理解析
Ø mini-deepseek-r1:用 GRPO 和倒计时游戏复制出一个简单版本的 R1。
Ø 项目地址:https://github.com/philschmid/deep-learning-pytorch-huggingface/blob/main/training/mini-
deepseek-r1-aha-grpo.ipynb
n 在大约 50 步时,模型学会了正确的格式,即…\n…;在 100 步时,解方程的成功率约为 25%,并
且模型开始用文字进行 “推理”;在 200 步时,收敛变慢,成功率约为 40%。
n 模型开始学习一种新的“格式”,它通过尝试不同的组合并检查结果来解方程,这种方式类似于编
程解决问题的方式;在 450 步时,解方程的成功率为 50%,性能仍然在缓慢提升,并且模型保
持了从 200 步开始的新格式。
17
18. 开源方案梳理解析
Ø Open-Thoughts: UC 伯克利复现 DeepSeek-Distill-Qwen-32B
Ø 项目地址:https://github.com/open-thoughts/open-thoughts
n 该项目目标是策划一个推理数据集来训练最先进的小型推理模型,该模型在数学和代码推理基准
上超越DeepSeek-R1-Distill-Qwen-32B和DeepSeek-R1-Distill-Qwen-7B 。
n 仅使用了 114k(OpenThoughts-114k) 数据(DeepSeek-Distill-Qwen-32B 的1/8),就与同尺
寸 DeepSeek-Distill-Qwen-32B 打成平手。
18
19. 开源方案梳理解析
Ø DeepScaleR: 重现 DeepSeek R1 和 OpenAI O1/O3
Ø 项目地址:https://github.com/agentica-project/deepscaler
n DeepScaleR 是一个开源项目,旨在使 LLM 的强化学习 (RL) 完全普及,并在实际任务中大规模
重现 DeepSeek R1 和 OpenAI O1/O3。对于所有版本,我们在此开源所有努力,包括训练脚本
(包括超参数)、模型、数据集和日志。
n 第一步,研究人员会训练模来型进行短思考。他们使用DeepSeek的GRPO方法,设定了8k的上
下文长度来训练模型,以鼓励高效思考。经过1000步训练后,模型的token使用量减少了3倍,并
比基础模型提升了5%。
n 接下来,模型被训练进行长思考。强化学习训练扩展到16K和24K token,以解决更具挑战性、以
前未解决的问题。随着响应长度增加,平均奖励也随之提高,24K的魔力,就让模型最终超越了
o1-preview!
19
20. 开源方案梳理解析
Ø LIMO:少即是多
Ø 项目地址:https://github.com/GAIR-NLP/LIMO
n 在之前很长的时间里,大家的共识是“海量数据”才能训练出强大的模型。尤其在数学领域,业界
普遍坚信,唯有依托海量数据与复杂的强化学习,才能取得突破性进展。
n 然而,上交大的最新研究成果却给出了一个另外答案:仅需 817 条精心策划的样本,便能让模型
在数学竞赛级别的难题上超越众多现有的顶尖模型。这一发现不仅颠覆了传统认知,更揭示了一
个我们可能一直忽视的事实:大模型的数学潜能或许始终存在,关键在于如何有效激发它。
“少即是多”(LIMO)假设形式化表述为:在预训练基座模型中,通过最小却精确协调的认知过程展示,
可以激发出复杂的推理能力。这一假设建立在两个基本前提之上:
Ø 模型参数空间中蕴含着潜在的先决知识;
Ø 将复杂问题精确拆解为详尽、逻辑清晰的推理链,能够使认知过程变得明确且可追溯。
20
21. 开源方案梳理解析
Ø LIMO:少即是多
Ø 项目地址:https://github.com/GAIR-NLP/LIMO
为了验证这一假设,LIMO 提出了一种系统化的方法来构建高质量、最小化的数据集,以有效唤醒模型的内
在推理潜能。
n 问题选择 :高质量的问题应该能自然地引发扩展的推理过程。选择标准包括以下几点:
n 难度等级 : 优先考虑具有复杂推理链、多样化的思维过程和知识整合的问题,这些问题能够使大语言模
型有效利用预训练知识进行高质量的推理。
n 泛化性 : 那些偏离模型训练分布的问题可以更好地挑战其固定的思维模式,鼓励探索新的推理方法,从
而扩展其推断搜索空间。
n 知识多样性 :选择的问题应涵盖各种数学领域和概念,要求模型在解决问题时整合和连接遥远的知识。
21
22. 开源方案梳理解析
Ø 相关R1复现数据集整理:
n open-r1/OpenR1-Math-220k:OpenR1-Math-220k 是一个大规模数学推理数据集,包含 220k 道数学题,
每道题都有DeepSeek R1针对 NuminaMath 1.5 中的问题生成的 2 到 4 条推理痕迹。
n open-thoughts/OpenThoughts-114k:拥有 114,000 个高质量示例,涵盖数学、科学、代码和谜题等。
n bespokelabs/Bespoke-Stratos-17k:对伯克利 Sky-T1 数据的复制,使用 DeepSeek-R1 创建了一个
包含问题、推理过程和答案的数据集。
n R1-Distill-SFT:目前有 17000 个样本,目的是创建数据以支持 Open-R1 项目。
n cognitivecomputations/dolphin-r1:包含 80 万个样本的数据集,其中的数据来自 DeepSeek-R1 和
Gemini flash 的生成结果,同时还有来自 Dolphin chat 的 20 万个样本。
n GSM8K:GSM8K(小学数学 8K)是一个包含 8.5K 道高质量、语言多样化的小学数学应用题的数据集。
该数据集的创建是为了支持需要多步推理的基本数学问题的问答任务。
n LIMO:LIMO(Less Is More for Reasoning)仅用 817 条精心设计的训练样本,通过简单的 SFT,就全
面超越了那些使用几十万数据训练的主流模型,如 o1-preview 和 QwQ。
n agentica-org/DeepScaleR-Preview-Dataset:在训练数据集方面,研究人员精心收集了 1984 至 2023
年的美国国际数学邀请赛(AIME)题目、2023年之前的美国数学竞赛(AMC)题目,以及来自 Omni-
MATH 和 Still 数据集的各国及国际数学竞赛题目。约4万个问题-答案对,作为训练数据集。
n ......
22
23. 开源方案梳理解析
Ø 参考资料
n
n
n
n
Deepseek R1 最新复现进展:https://zhuanlan.zhihu.com/p/20992071041
deepseek-r1开源复现方法整理:https://zhuanlan.zhihu.com/p/21062322587
一文汇总 deepseek R1 最新复现进展:https://www.zhihu.com/tardis/zm/art/24906803874
DeepSeek-R1复现方案梳理:https://zhuanlan.zhihu.com/p/25478198795
23
24. 使用Unsloth低成本训练
Ø Unsloth是一个开源项目,它可以比HuggingFace快2-5倍地微调Llama 3、Mistral和Gemma语言模型,同时
内存消耗减少80%。
和鲸项目地址:
https://www.heywhale.com/mw/proj
ect/67b54bba021c373d3a1fd15c
24
25. 使用Unsloth低成本训练
Ø 使用 Unsloth,现在只需使用 5GB VRAM 即可为 Qwen2.5-1.5B 训练您自己的推理模型,且不会造成任何准
确性损失。
Ø 可以使训练推理模型 (GRPO) 的上下文长度增加 10 倍,并且 VRAM 减少 90%。
目前,实现更长的上下文长度是 GRPO 面临的最大挑战之一。新衍生
的 Unsloth Efficient GRPO 算法可实现10 倍的上下文长度,同时使用的
VRAM比所有其他 GRPO LoRA/QLoRA 实现(甚至那些使用 Flash
Attention 2 (FA2) 的实现)少 90%。
https://colab.research.google.com/github/unslothai/notebooks/blob/ma
in/nb/Llama3.1_(8B)-GRPO.ipynb
25
26. 不足之处 请批评指正
谢谢各位聆听