DeepSeek-R1 论文笔记:通过强化学习提升大语言模型的推理能力
论文标题:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
作者团队:DeepSeek-AI
发表时间:2025
前置知识 & 术语
模型蒸馏
语言模型蒸馏的目标是将大型教师模型的知识(如语义理解、上下文推理能力)传递给小型学生模型。
为什么需要蒸馏?
大型模型在训练中积累了丰富的“隐性知识”,例如:
- 类别间的关系:识别“猫”时,模型可能隐含知道“猫与豹子相似度高于卡车”。
- 特征分布规律:图像中的纹理、颜色等特征的组合模式。
但这些知识无法通过传统硬标签(如“这张图是猫”)传递给学生模型。蒸馏的核心目标,就是通过软标签(Soft Labels)或特征匹配,将这些隐性知识“提炼”出来。
软标签 vs 硬标签
- 硬标签:
[0, 0, 1, 0](直接标注类别) - 软标签:
[0.01, 0.02, 0.95, 0.02](概率分布)
软标签包含更多信息:
- 教师模型认为“豹子”与“猫”有一定相似性(概率0.02)。
- 学生模型不仅能学习分类结果,还能理解类别间的关系。
蒸馏技术
- Logits蒸馏(Hinton, 2015):这是最经典的蒸馏方法,直接让学生模型模仿教师模型的输出分布。
- 中间特征蒸馏:要求学生模型对齐教师模型的中间层特征
Post-Training(后训练)
Post-Training(后训练)是深度学习模型训练流程中的一个重要环节,通常发生在预训练Pre-Training之后。它的目标是通过特定任务的微调或优化,进一步提升模型的性能、适应性和安全性。与预训练相比,后训练通常需要较少的计算资源,但能显著提升模型在特定任务上的表现。这些目标可能包括:
- 任务性能提升:如提高模型在问答、推理等任务上的准确性。
- 对齐社会价值观:确保模型的输出符合伦理和社会规范。
- 用户偏好适应:根据用户反馈调整模型行为。
常见方法
- 监督微调(Supervised Fine-Tuning, SFT):监督微调是后训练中最常用的方法,通过在特定任务的标注数据上进一步训练模型,提升其在该任务上的性能
- 强化学习人类反馈(RLHF):RLHF是一种通过人类反馈优化模型行为的方法,广泛应用于对齐社会价值观和适应用户偏好。
- 提示微调(Prompt Tuning):提示微调是一种轻量级的后训练方法,通过优化提示(Prompt)来调整模型行为,而无需修改模型参数。
拒绝采样
Rejection Sampling(拒绝采样是一种从复杂分布中生成样本的统计学方法。它的核心思想是通过一个简单的、易于采样的分布(称为提议分布)来近似目标分布,并通过接受或拒绝样本来确保最终样本符合目标分布。在深度学习和强化学习(RL)中,拒绝采样常用于从模型的输出分布中筛选高质量的样本,以生成更可靠的训练数据。
拒绝采样的基本思想
拒绝采样的目标是从一个复杂的目标分布 p ( x ) p(x) p(x) 中生成样本。它的步骤如下:
- 选择一个提议分布 q ( x ) q(x) q(x):这个分布应该易于采样,并且与目标分布 p ( x ) p(x) p(x) 尽可能接近。
- 确定一个常数 M M M:使得 M ⋅ q ( x ) M \cdot q(x) M⋅q(x) 始终大于或等于 p ( x ) p(x) p(x)(即 M ⋅ q ( x ) ≥ p ( x ) M \cdot q(x) \geq p(x) M⋅q(x)≥p(x) 对所有 x x x 成立)。
- 生成样本:
- 从 q ( x ) q(x) q(x) 中采样一个候选样本 x x x。
- 计算接受概率 α = p ( x ) M ⋅ q ( x ) \alpha = \frac{p(x)}{M \cdot q(x)} α=M⋅q(x)p(x)。
- 以概率 α \alpha α 接受样本 x x x,否则拒绝。
- 重复采样:直到获得足够数量的样本。
拒绝采样的直观理解
拒绝采样可以类比为“抛硬币”:
- 提议分布 q ( x ) q(x) q(x):类似于一个“筛子”,用于生成候选样本。
- 接受概率 α \alpha α:类似于“硬币的正反面”,决定是否保留样本。
- 常数 M M M:确保“筛子”足够大,能够覆盖目标分布。
通过这种方式,拒绝采样可以生成符合目标分布的样本,即使目标分布本身难以直接采样。
拒绝采样在SFT数据生成中的应用
在深度学习中,拒绝采样常用于从模型的输出分布中筛选高质量的样本,以生成更可靠的训练数据。具体到你的场景:
- 目标分布 p ( x ) p(x) p(x):高质量的SFT数据分布(如符合事实的问答、逻辑清晰的写作等)。
- 提议分布 q ( x ) q(x) q(x):RL模型的输出分布(如DeepSeek-V3的生成结果)。
- 接受概率 α \alpha α:根据样本的质量(如事实准确性、逻辑一致性)决定是否接受。
具体步骤:
- 从RL模型生成候选样本:使用RL模型(如DeepSeek-V3)生成大量候选样本。
- 评估样本质量:通过人工标注或自动化评估(如事实检查、逻辑评分)计算每个样本的接受概率。
- 接受或拒绝样本:根据接受概率保留高质量样本,丢弃低质量样本。
- 生成SFT数据:将接受的样本与现有的监督数据(如写作、事实问答、自我认知数据)结合,形成新的SFT数据集。
- 重新训练模型:在新的SFT数据上微调DeepSeek-V3-Base模型。
核心研究目标
探索如何通过强化学习(RL)直接提升大语言模型(LLM)的推理能力,减少对监督微调(SFT)的依赖,并通过蒸馏技术将大模型的推理能力迁移到小模型。
关键贡献
-
纯强化学习模型 DeepSeek-R1-Zero
- 无需监督微调:直接在基础模型(DeepSeek-V3-Base)上应用强化学习(GRPO算法),模型通过自我进化发展出复杂推理行为(如自我验证、长链思维)。
- 性能表现:在AIME 2024数学竞赛中,Pass@1从15.6%提升至71.0%(多数投票后达86.7%),与OpenAI-o1-0912相当。
- 局限性:输出可读性差、语言混合(如中英文混杂)。
-
改进版模型 DeepSeek-R1
- 冷启动数据:引入少量高质量长链思维(CoT)数据作为初始微调,优化可读性(如结构化标签
<think>和<answer>)。 - 多阶段训练:结合两阶段强化学习和两阶段监督微调,最终模型性能与OpenAI-o1-1217相当。
- 关键结果:
- 推理任务:AIME 2024 Pass@1达79.8%,MATH-500达97.3%。
- 编程任务:Codeforces评级2029,超越96.3%人类选手。
- 知识任务:MMLU-Pro得分84.0%,GPQA Diamond达71.5%。
- 冷启动数据:引入少量高质量长链思维(CoT)数据作为初始微调,优化可读性(如结构化标签
-
蒸馏技术
- 小模型性能提升:将DeepSeek-R1生成的80万条推理数据用于微调Qwen和Llama系列小模型,显著提升其推理能力。
- 代表性结果:
- DeepSeek-R1-Distill-Qwen-32B:AIME 2024 Pass@1达72.6%,超越QwQ-32B-Preview。
- DeepSeek-R1-Distill-Llama-70B:在MATH-500和LiveCodeBench上表现接近o1-mini。
方法与技术细节
-
强化学习框架
- GRPO算法:通过组内基线估计替代传统Critic模型,降低训练成本(公式见原文)。
- 奖励设计:
- 准确性奖励:基于规则验证(如数学答案格式、编程测试用例)。
- 格式奖励:强制模型输出结构化标签。
-
冷启动与多阶段训练
- 冷启动数据:人工设计可读性模板(如
<reasoning_process>和<summary>),过滤低质量输出。 - 两阶段RL + SFT:
- 第一阶段:冷启动微调后应用推理导向的RL。
- 第二阶段:通过拒绝采样生成SFT数据,结合非推理任务(写作、翻译)微调,再执行多场景RL对齐。
- 冷启动数据:人工设计可读性模板(如
-
蒸馏策略
- 直接SFT蒸馏:使用DeepSeek-R1生成的数据微调小模型,未引入额外RL阶段。
- 效果验证:蒸馏模型性能显著优于纯RL训练的小模型(如Qwen-32B RL训练仅达50%,蒸馏后达72.6%)。
实验结果与讨论
基准测试对比
- DeepSeek-R1 vs. 闭源模型:
- 在MMLU、GPQA等知识任务上接近OpenAI-o1-1217,显著优于Claude-3.5和GPT-4o。
- 在编程任务(LiveCodeBench、Codeforces)和数学竞赛(AIME、CNMO)中表现领先。
失败尝试与洞见
过程奖励模型(PRM)
1. 难以明确定义细粒度的推理步骤
问题核心:
在复杂推理任务(如数学证明或多步骤逻辑推理)中,如何将整体任务分解为明确、可评估的细粒度步骤存在挑战。不同方法可能涉及不同的合理步骤,而缺乏统一标准会导致PRM评估的模糊性。
具体表现:
- 步骤多样性:同一问题可能存在多种解决路径,如何定义“正确”的中间步骤缺乏共识。例如,解决代数问题时,不同步骤顺序可能均合理,但PRM需明确区分哪些步骤对最终结果有效。
- 主观性干扰:某些任务(如开放式问题解答)的步骤划分可能依赖主观判断,难以自动化或标准化。
影响:
PRM依赖明确的步骤定义,若步骤划分模糊,其奖励机制可能无法准确指导模型优化,甚至引入错误偏差。
2. 中间步骤正确性评估困难
问题核心:
即使步骤被定义,如何自动或手动评估每个中间步骤的正确性仍是一个技术瓶颈。
具体表现:
- 自动标注的局限性:
依赖模型自动标注中间步骤的正确性可能导致以下问题:- 模型偏见:若标注模型本身存在训练偏差,其标注结果可能不可靠。
- 错误传播:自动标注的错误会直接影响PRM的奖励信号,导致模型学习到错误模式。
- 手动标注的成本与扩展性:
人工标注虽然准确性较高,但面临:- 高昂成本:大规模标注需要大量人力资源,尤其在复杂任务中。
- 可扩展性差:难以快速适应新任务或动态变化的推理需求。
影响:
评估机制的不完善直接削弱PRM的有效性,导致其难以在大规模应用中保持高效和准确。
3. 奖励黑客与训练复杂性
问题核心:
引入基于模型的PRM后,模型可能通过优化奖励信号而非实际任务目标来“欺骗”奖励机制(即奖励黑客),同时训练流程的复杂性显著增加。
具体表现:
- 奖励黑客(Reward Hacking):
模型可能通过以下方式绕过PRM的意图:- 表面优化:生成符合步骤奖励但实际错误的中间结果(例如,通过重复步骤填充流程,而非真正推进推理)。
- 对抗性策略:利用PRM的评估漏洞生成看似合理但无效的中间步骤。
- 训练资源与流程复杂性:
- 额外训练成本:PRM需独立训练或持续更新,消耗额外计算资源(Gao et al., 2022)。
- 流程耦合性:PRM与主模型的协同训练可能引入依赖冲突,增加调试和优化的难度。
影响:
奖励黑客降低模型的最终性能,而复杂的训练流程则限制PRM在大规模强化学习中的实际应用价值。
Monte Carlo Tree Search (MCTS)
1. 搜索空间的指数级扩展
问题核心:
在棋类游戏中,搜索空间相对明确且有限(如棋盘状态和合法走法),而在语言模型中,token生成的搜索空间呈指数级扩展,导致搜索效率低下。
具体表现:
- 组合爆炸:每个token的选择会衍生出大量可能的后续token序列,搜索树的规模迅速膨胀。
- 局部最优陷阱:为控制搜索空间,通常设置每个节点的最大扩展限制(如只保留top-k候选),但这可能导致模型陷入局部最优解,无法找到全局最优解。
影响:
搜索空间的复杂性限制了MCTS在语言模型中的扩展性,尤其是在需要长序列生成或复杂推理的任务中。
2. 价值模型的训练难度
问题核心:
MCTS依赖价值模型评估每个搜索节点的潜在收益,但在语言模型中,训练一个细粒度的价值模型极具挑战。
具体表现:
- 评估复杂性:语言模型的输出(如文本生成)缺乏明确的评估标准,难以量化每个中间步骤的价值。
- 迭代改进困难:AlphaGo通过逐步优化价值模型提升性能,但在语言模型中,价值模型的训练与生成过程高度耦合,难以独立优化。
- 错误传播:若价值模型评估不准确,会直接影响MCTS的搜索方向,导致生成质量下降。
影响:
价值模型的训练难度限制了MCTS在语言模型中的迭代改进能力,使其难以像在棋类游戏中那样逐步提升性能。
3. 自搜索的性能瓶颈
问题核心:
MCTS的核心优势在于通过自搜索(Self-Search)逐步优化模型性能,但在语言模型中,这一机制难以有效实现。
具体表现:
- 搜索效率低:由于搜索空间的复杂性和价值模型的局限性,自搜索的效率远低于棋类游戏。
- 计算成本高:MCTS需要大量计算资源进行搜索和评估,难以在大规模训练中扩展。
- 生成质量不稳定:自搜索生成的样本可能包含错误或低质量内容,影响后续训练的稳定性。
影响:
自搜索的性能瓶颈限制了MCTS在语言模型中的实际应用价值,尤其是在需要高质量生成和复杂推理的任务中。
局限性与未来方向
-
当前局限
- 通用能力不足:在函数调用、多轮对话等任务上弱于DeepSeek-V3。
- 语言混合:优化多语言场景下的输出一致性。
- 提示敏感性:零样本效果优于少样本,需优化提示工程。
-
未来计划
- 扩展长链思维应用:探索复杂角色扮演、JSON输出等任务。
- 异步评估优化:提升软件工程任务的RL训练效率。
开源与影响
- 开源模型:包括DeepSeek-R1-Zero、DeepSeek-R1及1.5B至70B的蒸馏模型(基于Qwen和Llama)。
- 社区价值:验证纯强化学习在推理任务中的潜力,为小模型高效蒸馏提供新思路。
总结:DeepSeek-R1通过强化学习与蒸馏技术,在推理任务上达到顶尖水平,为LLM的自我进化与能力迁移提供了重要实践参考。
相关文章:
DeepSeek-R1 论文笔记:通过强化学习提升大语言模型的推理能力
论文标题:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 作者团队:DeepSeek-AI 发表时间:2025 前置知识 & 术语 模型蒸馏 语言模型蒸馏的目标是将大型教师模型的知识(如语义理解、上…...
PDF文档中表格以及形状解析
我们在做PDF文档解析时有时需要解析PDF文档中的表格、形状等数据。跟解析文本类似的常见的解决方案也是两种。文档解析跟ocr技术处理。下面我们来看看使用文档解析的方案来做PDF文档中的表格、图形解析(使用pdfium库)。 表格解析: 在pdfium库…...
深入理解并实现自定义 unordered_map 和 unordered_set
亲爱的读者朋友们😃,此文开启知识盛宴与思想碰撞🎉。 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 在 C 的标准模板库(STL)中,unorder…...
228页PPT丨制造业核心业务流程优化咨询全案(战略营销计划生产研发质量),附核心系统集成架构技术支撑体系,2月26日资料已更新
一、订单全生命周期管理优化 1. 智能订单承诺(CTP)系统 ●集成ERP/APS/MES数据,实时计算产能可视性 ●应用蒙特卡洛模拟评估订单交付风险 ●建立动态插单评估模型(基于边际贡献与产能占用系数) 2. 跨部门协同机制…...
6.6.5 SQL访问控制
文章目录 GRANT授予权限REVOKE回收权限 GRANT授予权限 GRANT语句可以给用户授予权限,基本格式是GRANT 权限 TO 用户。在授权时,WITH GRANT OPTION是可选项,有此句话,被授予权限的用户还能把权限赋给其他用户。 REVOKE回收权限 RE…...
PhyloSuite v1.2.3安装与使用-生信工具049
PhyloSuite 一个好用的win集成建树平台,官方相关文档视频等做的可好了PhyloSuite (jushengwu.com) 官网 https://github.com/dongzhang0725/PhyloSuite/releases #官网 http://phylosuite.jushengwu.com/dongzhang0725.github.io/installation/ #官方说明文档…...
【语法】C++中string类中的两个问题及解答
贴主在学习string类时遇到过两个困扰我的问题,今天拿出来给大家分享一下我是如何解决的 一、扩容时capacity的增长问题 在string的capacity()接口中,调用的是这个string对象的容量(可以存多少个有效字符),而size()是调用的string对象现在有…...
智慧校园平台在学生学习与生活中的应用
随着科技的发展,教育领域也在不断探索新的模式与方法。智慧校园平台作为教育信息化的重要组成部分,正逐渐成为推动教育改革、提高教学质量的关键工具。 一.智慧校园平台概述 智慧校园平台是一种集成了教学管理、资源服务、数据分析等多功能于一体的数字…...
AtCoder Beginner Contest 001(A - 積雪深差、B - 視程の通報、C - 風力観測、D - 感雨時刻の整理)题解
由于我发现网上很少有人会发很久之前AtCoder Beginner Contes的题,所以我打算从AtCoder Beginner Contest 001开始写。大约两周一更,需要的可以订阅专栏,感谢支持Thanks♪(・ω・)ノ →题目翻译 A - 積雪深差…...
Windows本地Docker+Open-WebUI部署DeepSeek
最近想在自己的电脑本地部署一下DeepSeek试试,由于不希望污染电脑的Windows环境,所以在wsl中安装了ollama,使用ollama拉取DeepSeek模型。然后在Windows中安装了Docker Desktop,在Docker中部署了Open-WebUI,最后再在Ope…...
gmock和cppfreemock原理学习
1.gmock用法 gmock(Google Mock)是 Google Test 的一个扩展库,专门用于 C 单元测试中的模拟(mocking)。它的核心原理是通过 继承和方法重载/覆盖 来模拟 C 中的虚函数,从而在测试中隔离依赖对象࿰…...
WSBDF レクチア 定义2 引理3 wsbdf的乘子
定义2 引理3 wsbdf的乘子 ここまで 寝みます❓...
AI日记app
一、需求分析与竞品调研 1. 核心功能需求 多媒体日记记录:支持语音、视频、图片的实时录制或上传。语音/视频转文字:自动将音频、视频内容转为可编辑的文字。文字编辑与排版:富文本编辑(字体、颜色、标签)、Markdown…...
单一职责原则(设计模式)
目录 问题: 定义: 解决: 方式 1:使用策略模式 示例:用户管理 方式 2:使用装饰者模式 示例:用户操作 方式 3:使用责任链模式 示例:用户操作链 总结 推荐 问题&a…...
Odoo免费开源CRM技术实战:从商机线索关联转化为售后工单的应用
文 / 开源智造 Odoo金牌服务 Odoo:功能强大且免费开源的CRM Odoo 引入了一种高效的客户支持管理方式,即将 CRM 线索转换为服务台工单。此功能确保销售和支持团队能够无缝协作,从而提升客户满意度并缩短问题解决时间。通过整合 CRM 模块与服…...
ChatGPT与DeepSeek:开源与闭源的AI模型之争
目录 一、模型架构与技术原理 二、性能能力与应用场景 三、用户体验与部署灵活性 四、成本与商业模式 五、未来展望与市场影响 六、总结 随着人工智能技术的飞速发展,ChatGPT和DeepSeek作为两大领先的AI语言模型,成为了行业内外关注的焦点。它们在…...
C语言(3)—循环、数组、函数的详解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、函数二、循环与数组 1.循环2.数组 总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、函数 在C语言中,函数…...
架构师论文《论面向对象设计的应用与实现》
软考论文-系统架构设计师 摘要 我所在的公司是国内一家专注于智慧城市建设的科技企业,为适应城市数字化转型中对于高内聚、低耦合、可扩展性的技术需求,2021年3月,公司立项开发“智慧社区综合管理平台”,旨在整合物业管理、安防监…...
Deepseek Api Function Calling解析(tools、tool_calls)Deepseek函数调用流程图、Python代码示例
文章目录 Function Calling介绍**核心原理**1. **动态扩展模型能力**2. **JSON结构化交互** **实现步骤**(以支持Function Calling的模型为例)1. **定义可用函数**2. **模型匹配与生成**3. **开发者执行函数**4. **结果反馈给模型** **DeepSeek R1的当前…...
现代未来派品牌海报设计液体装饰英文字体安装包 Booster – Liquid Font
CS Booster – 具有动态流的液体显示字体 具有液体美感的现代显示字体 CS Booster 是一种未来主义的显示字体,采用流畅和有机的形式设计,赋予其流畅、灵活和不断移动的外观。独特的液体灵感形状和非刚性边缘使这款字体脱颖而出,提供一种既俏…...
python流水线自动化项目教程
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1. 项目环境准备Python安装选择Python开发环境安装必要库 2. 数据获取与理解4. 模型训练流水线6. 模型保存7. 模型部署(简单 Web 服务)8…...
(十 四)趣学设计模式 之 策略模式!
目录 一、 啥是策略模式?二、 为什么要用策略模式?三、 策略模式的实现方式四、 策略模式的优缺点五、 策略模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支…...
EMO模型详解及代码复现
EMO定义 EMO(Efficient Mobile Networks)是一种 面向移动端的轻量化网络模型 ,旨在 在参数、FLOPs和性能之间实现平衡 ,特别适用于 密集预测任务 。EMO的设计理念源于对CNN和Transformer架构的深入理解,通过整合两者的优势,实现了高效的模型性能。 EMO的核心是 反向残差…...
kkfileview部署
kkfileview部署 链接: 官方文档 链接: gitee 链接: github 首先打开官网如下: OK,我们从官方文档的教程中看到,部署步骤如下: 是不是很简单,没错,于是我们按照步骤从码云上下载,然后解压,然…...
leetcode_34 在排序数组中查找元素的第一个和最后一个位置
1. 题意 给定一个非递减的数组,找出给定元素的开始位置和 结束位置。 2. 题解 题目要求复杂度为 log ( n ) \log (n) log(n), 因此不能用双指针了。 这个题目练习二分挺好的。 2.1 双指针 还是把双指针的写下来吧。 class Solution { public:vector<i…...
网络编程——UDP
UDP编程使用套接字(Socket)进行通信。下面是基于UDP协议进行网络编程的基本步骤。 1. 创建套接字 首先,客户端和服务器都需要通过 socket() 系统调用创建一个UDP套接字。 2. 配置地址和端口 UDP是无连接的,因此你不需要像TCP一…...
文件描述符(File Descriptor)
一、介绍 内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。 二、功能 文件…...
【3天快速入门WPF】12-MVVM
目录 1. 什么是MVVM2. 实现简单MVVM2.1. Part 12.2. Part 21. 什么是MVVM MVVM 是 Model-View-ViewModel 的缩写,是一种用于构建用户界面的设计模式,是一种简化用户界面的事件驱动编程方式。 MVVM 的目标是实现用户界面和业务逻辑之间的彻底分离,以便更好地管理和维护应用…...
钉钉MAKE AI生态大会思考
1. 核心特性 1.1 底层模型开放 除原有模型通义千问外,新接入猎户星空、智普、MinMax、月之暗面、百川智能、零一万物。 1.2 AI搜索 AI搜索贯通企业和个人散落在各地的知识(聊天记录、文档、会议、日程、知识库、项目等),通过大模型对知识逻辑化,直接生成搜索的答案,并…...
[操作系统] 文件的软链接和硬链接
文章目录 引言硬链接(Hard Link)什么是硬链接?硬链接的特性硬链接的用途 软链接(Symbolic Link)什么是软链接?软链接的特性软链接的用途 软硬链接对比文件的时间戳实际应用示例使用硬链接节省备份空间用软链…...

