文章目录
- [DeepSeek R1原理](#DeepSeek R1原理)
这是系列博客,记录了我学习DeepSeek V3/R1时的学习笔记。其他博客:
- DeepSeek 简介
- DeepSeek R1原理
- DeepSeek V3原理
- DeepSeek 优化方式
- 在Deepseek-R1-ZERO出现前,为何无人尝试放弃微调对齐,通过强化学习生成思考链推理模型?
- MoE硬件部署
DeepSeek R1原理
DeepSeek-R1 技术全景解析:从原理到实践的"炼金术配方" ------附多阶段训练流程图与核心误区澄清
强化学习介绍
强化学习是智能体(agent)与环境(environment)进行交互的过程,智能体在环境中采取一系列行动(action),环境根据智能体的行动给出相应的奖励(reward)和下一个状态(state),智能体的目标是通过学习找到一个最优策略,使得长期累积奖励最大化。这个过程就像一个人在不断尝试不同的行为,以获得最大的回报,如机器人学习行走、游戏玩家学习玩游戏等场景都可以用强化学习来建模。
Policy Model
- 定义 :策略模型(Policy Model)是强化学习中用于表示智能体行为策略的模型,它定义了智能体在给定状态下选择行动的方式,可分为确定性策略和随机性策略。前者在每个状态下都确定地选择一个特定行动;后者则根据一个概率分布来选择行动。
- 作用:策略模型是智能体决策的核心,通过学习环境中的规律,策略模型能够根据当前状态生成合适的行动,使智能体在环境中朝着最大化累积奖励的目标前进。
- 举例:在一个机器人导航任务中,策略模型可以是一个神经网络,它以机器人当前的位置、周围环境信息等作为输入,输出机器人应该采取的行动,如前进、左转、右转等。
Critic Model
- 定义 :Critic Model即价值模型,用于评估智能体 在某个状态下采取某个行动的价值(好坏程度)。它通常学习一个价值函数,该函数可以估计从某个状态开始遵循特定策略所能获得的长期累积奖励。
- 作用:Critic Model为策略模型的学习提供反馈和指导。它通过评估策略模型采取的行动的价值,帮助策略模型了解哪些行动是好的,哪些是不好的,从而引导策略模型朝着更优的方向更新。
- 举例:在玩围棋游戏时,Critic Model可以评估当前棋局状态下每个落子位置的价值,告诉智能体哪些位置可能更有利于最终获胜,进而帮助智能体(策略模型)选择更好的落子策略。
Reward Model
- 定义 :奖励模型是一种用于根据智能体的行为和环境状态向智能体提供即时反馈的模型。它基于预先设定的规则或条件,为智能体在特定状态下采取的每个行动分配一个数值型的奖励信号,这个信号直观地表示了该行动在当前时刻对于智能体目标达成的贡献程度。
- 作用:奖励模型是驱动智能体学习和决策的核心因素之一。它为智能体的行为提供了明确的激励方向,让智能体知道哪些行动是对实现目标有利的,会得到正奖励,哪些行动是不利的,会得到负奖励或零奖励。智能体通过最大化长期累积奖励来学习最优策略,奖励模型的反馈直接影响着智能体对自身行为的调整和优化。
- 举例:在一个机器人导航任务中,当机器人成功到达目标地点时,奖励模型会给予一个较高的正奖励;如果机器人碰撞到障碍物,就会得到一个负奖励;在移动过程中,每成功前进一步可能会得到一个较小的正奖励,以此引导机器人学习如何以最佳方式到达目标。
三者关系
策略模型负责决定智能体的行动,奖励模型依据智能体行动和环境状态给予即时奖励,引导策略调整。价值模型评估行动价值,为策略优化提供方向,其评估依赖奖励模型提供的即时奖励。
简单示意图如下:
选择行动 给予奖励 反馈奖励 提供状态等 提供奖励 评估价值反馈 策略模型 环境 奖励模型 价值模型
智能体包含的内容
- 感知系统:用于接收来自环境的信息,例如视觉、听觉、触觉等传感器输入,相当于智能体的 "感官",使它能够了解周围环境的状态。
- 决策系统 :根据感知到的环境信息和自身的目标,运用价值网络、策略网络等进行推理和决策,决定采取何种行动,是智能体的 "大脑"。
- 执行系统:负责将决策系统生成的决策转化为实际的行动,作用于环境,如机器人的机械臂运动、车辆的行驶控制等。
- 记忆系统:用于存储智能体在与环境交互过程中获取的经验、知识等信息,这些记忆可以帮助智能体进行学习和优化决策,比如经验回放缓冲区等。
- 学习系统:通过对环境反馈的奖励信号等进行学习,更新价值网络和策略网络等模型参数,以提高自身的性能和决策能力,常见的学习算法有深度 Q 网络、策略梯度算法等。
环境包含的内容
- 状态空间:环境所有可能状态的集合,包括物理世界的状态、其他智能体的状态等。例如在自动驾驶场景中,道路状况、交通信号、其他车辆的位置和速度等都属于环境的状态空间。
- 行动空间:智能体在环境中可以执行的所有可能行动的集合。不同的环境具有不同的行动空间,比如在游戏环境中,可能是上下左右移动、攻击、跳跃等操作;在工业控制环境中,可能是调节温度、压力、流量等参数。
- 奖励机制:用于向智能体提供反馈,告诉智能体其采取的行动是否正确或有效。奖励可以是正的(表示积极的结果),也可以是负的(表示不良的结果)。例如在机器人任务中,完成任务目标可能会得到一个正奖励,而碰撞到障碍物可能会得到一个负奖励。
- 动态规则:描述环境如何根据智能体的行动以及环境自身的规律进行状态转移的规则。例如在一个棋类游戏中,玩家的落子行动会根据游戏规则导致棋盘状态的变化。
- 其他智能体或实体:在多智能体环境或复杂环境中,还包括其他智能体以及各种物理实体等,它们与智能体相互作用,共同构成了整个环境。比如在交通场景中,其他车辆和行人就是环境中的重要组成部分。
知识蒸馏
简介
知识蒸馏(Knowledge Distillation),是一种模型压缩和加速的技术方法,旨在将一个复杂的、性能较高的教师模型(Teacher Model)的知识迁移到一个相对简单的学生模型(Student Model)中,使得学生模型能够在保持较好性能的同时,具有更小的模型规模、更低的计算成本和更快的推理速度。
其核心原理是,教师模型通常在大规模数据上进行训练,具有丰富的知识和强大的表征能力,但可能因为结构复杂而难以部署和应用。而知识蒸馏就是让学生模型学习教师模型的输出分布等知识,不仅仅是学习训练数据中的标签信息,从而引导学生模型模仿教师模型的行为。在训练过程中,通过损失函数来衡量学生模型与教师模型输出之间的差异,并通过优化算法来最小化这个差异,使学生模型逐渐逼近教师模型的性能。
知识蒸馏的作用主要体现在以下几个方面:
- 模型压缩:将大型复杂模型的知识提炼到小型模型中,实现模型参数的大幅减少,便于存储和传输。
- 推理加速:简化后的模型结构可以显著提高推理速度,在不降低太多精度的情况下,满足实时性要求较高的应用场景,如移动端、嵌入式设备等。
- 提高泛化能力:学生模型通过学习教师模型的软标签等知识,能够更好地捕捉数据中的复杂模式,增强模型的泛化能力,在面对新的未知数据时表现更稳定。
- 降低计算资源需求:使得模型可以在计算资源有限的设备上运行,降低了对硬件的要求,节约成本。

例如,在图像识别领域,假设教师模型是一个非常深的卷积神经网络(CNN),如ResNet-152,它在大规模图像数据集上进行训练,对各种图像的分类具有很高的准确率,但模型参数众多,计算量很大。而学生模型可以是一个相对简单的CNN结构,如MobileNet。通过知识蒸馏技术,让MobileNet学习ResNet-152对图像分类的输出概率分布等知识。在训练过程中,将ResNet-152对图像的预测结果作为软标签,与MobileNet的预测结果进行对比,计算损失并进行优化。最终,MobileNet能够在保持较高图像分类准确率的同时,模型体积更小,推理速度更快,更适合部署在手机等移动设备上,用于实时的图像识别应用,如拍照识物、图像分类检索等。
目前最常用的蒸馏方法有三种:数据蒸馏 、Logits蒸馏 、特征蒸馏。下面分别介绍下这三种蒸馏方法。
数据蒸馏
数据蒸馏是知识蒸馏的一种方法。在这种方法里,教师模型会先生成<问题, 答案>的配对数据 。这些数据对是教师模型经过自身学习和训练后生成的成果体现。
之后,这些生成的<问题, 答案> pair就会被当作训练材料,用于训练学生模型。通过让学生模型学习这些数据对,学生模型能够从教师模型已经掌握的知识中汲取经验,从而提升自身的能力。
以DeepSeekR1-Distill-Qwen-32B模型为例,它就是借助DeepSeek-r1生成的80万条数据来进行训练的。在Qwen2.5-32B的基础上,直接使用这些数据进行SFT(Supervised Fine-Tuning,监督微调),最终得到了DeepSeekR1-Distill-Qwen-32B模型,这充分展示了数据蒸馏在模型训练过程中的应用。

Logits 蒸馏
Logits蒸馏是知识蒸馏的一种方法,它聚焦于神经网络在应用softmax函数之前的原始输出分数,也就是Logits。在这种蒸馏方式里,学生模型的训练目标不只是模仿教师模型的最终预测结果,更要去模仿教师模型的Logits,这样能让学生模型保留教师模型更多的信息。

教师模型的输出是每个token的概率分布,例如输出可能是[0.7, 0.2, 0.1, 0, 0, 0, 0, 0, 0, 0]。为了帮助学生模型更好地学习这些知识,会引入温度系数T。这个温度参数T是Logits蒸馏中的关键超参数,它主要用来调节教师模型输出的软标签的概率分布。
教师模型的输出经过温度调整后,公式为 p i = exp ( z i / T ) ∑ j = 1 N exp ( z j / T ) p_i=\frac{\text{exp}(z_i/T)}{\sum_{j=1}^N \text{exp}(z_j/T)} pi=∑j=1Nexp(zj/T)exp(zi/T),这里的 z i z_i zi代表教师模型的logits输出。在训练学生模型时,学生模型的输出也要应用和教师模型相同的温度调整,之后通过一个损失函数来评估两者输出的差异。
常用的损失函数是KL散度,公式为 Loss distill = 1 T 2 ∑ i = 1 N p t i log ( p t i p s i ) \text{Loss}{\text{distill}}=\frac{1}{T^2}\sum{i=1}^N p_{ti}\text{ log}\left(\frac{p_{ti}}{p_{si}}\right) Lossdistill=T21∑i=1Npti log(psipti) ,其中 p t i p_{ti} pti是教师模型的Logits输出, p s i p_{si} psi是学生模型的Logits输出,且二者都引入了温度系数T。通过不断最小化这个损失函数,学生模型就能逐渐学习到教师模型的概率分布,获取教师模型的知识。
此外,学生模型除了要学习教师模型的知识(即蒸馏损失部分),还需要学习真实标签。所以总损失函数一般是蒸馏损失和交叉熵损失的加权和,公式为 Loss total = α ⋅ Loss distill + ( 1 − α ) Loss CE \text{Loss}{\text{total}}=\alpha \cdot \text{Loss}{\text{distill}} + (1-\alpha)\text{Loss}_{\text{CE}} Losstotal=α⋅Lossdistill+(1−α)LossCE,这里的 α \alpha α是超参数,用于调整蒸馏损失和交叉熵损失之间的权重平衡。通过这样的训练方式,学生模型既能从教师模型那里汲取知识,又能很好地拟合真实标签,在实际应用中可以表现出优秀的性能。

特征蒸馏
特征蒸馏是一种在知识蒸馏领域使用的方法。当人们认为Logits蒸馏在知识传递上不够全面时,就会考虑采用特征蒸馏。它的核心操作是对教师模型的中间层进行蒸馏。

教师模型中间层包含着丰富的特征基知识,这些知识是对Logits知识的有效补充。对于训练更精简且更深层的网络来说,特征蒸馏有着独特的优势。它能让学生模型学习到教师模型中间层所蕴含的知识,从而使学生模型在结构更精简、层数更深的情况下,也能获得较好的性能。
在基于特征的知识蒸馏过程中,有专门的特征蒸馏损失函数来衡量教师模型和学生模型中间层特征的差异,公式为 L FeaD ( f t ( x ) , f s ( x ) ) = L F ( Φ ( f x ( x ) ) , Φ ( f s ( x ) ) ) {L}_{\text{FeaD}}\left(f_t(x),f_s(x)\right)= \mathcal{L}_F\left( \Phi (f_x(x)),\Phi (f_s(x))\right) LFeaD(ft(x),fs(x))=LF(Φ(fx(x)),Φ(fs(x)))。通过最小化这个损失函数,学生模型能够不断调整自身,学习教师模型中间层的特征知识 ,进而提升自身能力。
训练流程
一个网络可视化的网站:https://bbycroft.net/llm


DeepSeek-R1-Zero 训练
参考链接:三张图速通 DeepSeek-R1 论文和技术原理 - 知乎

DeepSeek-R1-Zero 首次通过纯 RL 而不用任何 SFT 激发 LLM 的推理能力,让模型自己探索解决复杂问题的 CoT(chain-of-thought),生成能自我验证(self-verification)、反思(reflection)的 long-CoT。
策略与价值设计
参考资料:[GRPO:Group Relative Policy Optimization](GRPO:Group Relative Policy Optimization - 知乎)
在DeepSeek-R1-Zero的训练过程中,使用了GRPO算法来优化训练过程,其具体原理如下:
- 节省训练成本:传统的强化学习中,Critic Model(价值网络)常与策略模型配合使用,但它的大小与策略模型相同,这增加了训练成本。GRPO算法放弃了这种与策略模型大小相同的Critic Model,从而节省了RL训练成本。
- 采样输出 :对于每个问题q,GRPO从旧策略模型 π θ o l d \pi_{\theta_{old}} πθold中采样一组输出 { o 1 , o 2 , ... , o G } \{o_1, o_2, \ldots, o_G\} {o1,o2,...,oG} 。这些采样输出是后续计算的基础,通过对旧策略模型的采样,可以利用之前模型的经验和知识。
- 优化策略模型 :通过最大化目标函数来优化策略模型 π θ \pi_{\theta} πθ ,这里的 θ \theta θ是待优化的参数。具体做法是,针对从分布P(Q)中采样的问题q,计算这一组G个输出结果的奖励得分的期望,这个期望值就是整个目标函数的值。简单理解,就是把对每个问题的采样输出的奖励得分进行平均,用这个平均结果来优化策略模型,使得模型在整体上能获得更好的奖励。
- 优势函数的作用 :优势函数 A i A_i Ai用于衡量当前策略相较于旧策略的优势。如果 A i A_i Ai的值较大,说明当前策略在该状态下的表现优于旧策略;反之,则不如旧策略。通过计算优势函数,可以让模型清楚地知道当前策略的改进方向,从而更有针对性地优化策略。
- 约束策略更新 :使用KL散度来度量当前策略 π θ \pi_{\theta} πθ与参考策略 π r e f \pi_{ref} πref之间的差异。之所以这样做,是为了约束策略的更新幅度。如果不进行约束,策略在更新过程中可能会发生过大的变化,导致模型不稳定甚至性能下降。而通过KL散度的约束,可以使策略的更新更加平稳,避免出现过度调整的情况。
奖励方式
在DeepSeek-R1-Zero的训练过程中,涉及到奖励建模部分。由于发现使用Reward Model存在reward hacking(奖励作弊)问题,所以没有采用该模型,而是选择基于规则的奖励方式,具体包含准确性奖励和格式奖励两方面:
- 准确性奖励 :利用准确性RM模型来评估答案的正确性。对于答案明确的数学问题,让模型将答案放在 b o x box box 里,这样就能够依据设定的规则来验证答案是否正确。以LeetCode问题为例,通过执行测试用例这种方式,判断模型给出的解答是否正确,进而给予相应的奖励,以此鼓励模型生成正确答案。
- 格式奖励:对模型输出格式作出要求,规定模型要把思考过程放在 和 标签之间,符合这种格式要求的输出,模型会获得相应奖励,旨在规范模型的输出格式,使思考过程更清晰呈现 。
训练模板
由于是基于预训练模型开展后续训练,所以没有采用 chat template(聊天模板)。在这个训练模版中,采用的方式是直接将各种 prompt(提示)拼接到模型中,让模型根据这些提示往后续写输出结果。

实验观察到模型自我进化
在对DeepSeek-R1-Zero模型进行实验的过程中,研究人员观察到了模型出现自我进化的现象。这里的自我进化与test-time computation(即生成token数)紧密相关,随着生成token数的不断增加,模型展现出了一系列复杂行为。
首先是反思行为,模型能够对自身生成的内容或解决问题的过程进行思考和回顾,分析其中的合理性和不足之处。其次,模型还会探索解决问题的替代方法,不再局限于常规的思路和方式,展现出了思维的灵活性和创新性。此外,还观察到了有趣的"顿悟时刻"(aha moment),在这一瞬间,模型似乎突然找到了更好的解决方案或理解方式。
值得注意的是,这些复杂行为并不是在人类明确引导下产生的。通常情况下,模型的训练和表现可能会受到人类预设规则、数据标注等方面的引导,但DeepSeek-R1-Zero的这些行为是它与强化学习环境相互作用、自主产生的结果。这种自发性的自我进化意义重大,它显著提升了DeepSeek-R1-Zero的推理能力,让模型在面对更具挑战性的任务时,能够以更高的效率和准确性去处理。这一结果有力地验证了基于强化学习(RL)训练模型这一方案的可行性,表明通过这种方式能够训练出具有强大推理能力的模型 。

缺点
在对DeepSeek-R1-Zero模型的研究中发现,尽管通过纯强化学习训练使得该模型的推理能力有所提升,却也暴露出一些明显的问题。
首先是可读性方面的问题。该模型输出内容缺乏像Markdown这样的格式规范,这就导致呈现给用户的信息排版不整齐、不清晰,视觉体验不佳,让使用者难以快速准确地获取关键信息。
其次,在处理非中英语种的提示(prompt)时,模型容易出现语种混杂的情况。多种语言在输出结果中混乱交织,不仅影响了内容的专业性和准确性,还极大地降低了用户理解和使用的便利性。
鉴于以上这些问题,DeepSeek-R1-Zero模型在当前状态下还无法达到作为一个合格的类OpenAI o1模型的标准,不能直接面向用户发布。为了解决这些问题,进一步优化模型性能,研究人员开展了后续图二所示的DeepSeek-R1的训练工作 。
DeepSeek-R1 训练

在训练DeepSeek-R1模型时,整个训练过程包含四个大步骤,冷启动、推理任务强化学习、拒绝采样与sft、全场景强化学习。这四个步骤层层递进,逐步提升模型的性能和能力。
构建冷启动数据
**第一步是Cold Start(冷启动)。**在DeepSeek-R1-Zero训练中,直接对预训练base模型进行强化学习(RL)在早期可能会不稳定。因此在DeepSeek-R1训练的冷启动阶段,构建几千条长思维链(long CoT)数据来微调模型,以此作为RL的初始化actor。同时,还设计了可读性高的模式,将输出格式定义为|special token|<思考过程>|special token|<答案总结> 。
在构建数据方面,探索了多种方法:
- 一是使用long CoT作为example的few-shot提示,为模型提供参考示例;
- 二是通过prompt让模型生成包含**反思(reflection)和验证(verification)**的详细答案,增强模型的思考和验证能力;
- 三是收集DeepSeek-R1-Zero的可读格式输出,并通过人工标注后处理来完善结果,借助人工干预提升数据质量 。
推理任务RL训练
首先是训练操作,在利用冷启动数据对DeepSeek-V3-Base完成微调后,会采用和DeepSeek-R1-Zero一样的RL策略 来持续训练,直至训练收敛。这一阶段有着明确的训练目标,就是着重提升模型在推理密集型任务方面的推理能力,像编码、数学、科学以及逻辑推理这类任务,它们的问题定义清晰,解决方案也很明确 。
其次是奖励建模 的技巧。在训练期间,研究人员发现当prompt涉及多种语言时,思维链(CoT)经常出现语言混用的情况。为了改善这一问题,便在强化学习训练里引入了语言一致性奖励,它是通过计算链式推理中目标语言单词的比例来确定的。虽然消融实验显示,这种处理方式会让模型性能有小幅度的下降,但它却符合人类的偏好,能够让模型输出的内容可读性更强。在实际训练时,会把推理任务的准确性奖励和语言一致性奖励直接相加,以此形成最终的奖励,用于引导模型训练 。
拒绝采样与sft
这一步骤会利用上一步RL收敛后的检查点(ckpt)来生成用于监督微调(sft)的数据 。与冷启动阶段主要聚焦推理任务不同,此阶段纳入其他领域的数据,目的是增强模型在写作、角色扮演等通用任务方面的能力。
- 在推理数据处理 上,会借助reasoning prompts,采用拒绝采样的方式生成推理轨迹。前一阶段只纳入能通过基于规则的奖励评估的数据,而这一阶段则通过引入额外数据 来扩展数据集,部分数据运用生成式奖励模型,将真实结果和模型预测输入DeepSeek-V3进行判断。由于模型输出可能存在混乱难读的情况,会过滤掉语言混用、长段落和代码块的链式推理内容。针对每个提示会采样多个回答,仅保留正确的回答,最终收集到约60万条推理相关的训练样本。
- 对于非推理数据,像写作、事实问答、自我认知和翻译等,会重用DeepSeek-V3的部分监督微调数据集。具体做法是通过提示DeepSeek-V3生成思维链(CoT)后再回答问题,对于类似"你好"这种简单问题,回答中则不提供CoT 。最终收集到大约20万条与推理无关的训练样本。
reasoning prompts:可以理解为推理提示,即用于生成推理轨迹的提示内容,通过这些提示可以让模型进行推理并产生相应的输出。例如在第三步拒绝采样与 sft 的过程中,通过"reasoning prompts"用拒绝采样生成推理轨迹,以收集约 60 万条推理相关的训练样本。这些提示可能是一些特定的问题或任务描述,引导模型进行逻辑推理、编码、数学等推理密集型任务的思考和回答。
拒绝采样:具体操作是,对于每个提示采样多个回答,仅保留正确的回答,并过滤掉语言混用、长段落和代码块的链式推理 。
推理数据是在训练模型时,通过reasoning prompts采用拒绝采样的方式生成推理轨迹得到的数据,最终收集到约60万条。它主要用于提升模型在推理密集型任务(如编码、数学、科学和逻辑推理)中的推理能力。
非推理数据指写作、事实问答、自我认知和翻译等方面的数据,最终收集到约20万条。它的作用是增强模型在写作、角色扮演等通用任务中的能力。
最后,把这总共80万条数据集整合起来,直接对预训练模型DeepSeek-V3-Base进行2轮(epoch)的微调(sft),以此来优化模型性能。
全场景强化学习
在DeepSeek-R1的训练过程中,第四步是全场景强化学习,其目的在于让模型更好地契合人类偏好,提升模型的有用性和无害性,同时进一步优化推理能力,具体做法是运用组合的奖励信号和多样化的提示分布来训练模型。
在数据处理 上,针对不同类型的数据采用不同方式。对于推理数据 ,延续DeepSeek-R1-Zero中利用基于规则的奖励方法 ,引导模型在数学、编码和逻辑推理领域学习。而对于通用数据 ,通过采用奖励模型来捕捉复杂微妙场景下的人类偏好。数据流程以DeepSeek-V3为基础,使用类似的偏好对和训练集的prompt分布 。
在评估标准 方面,分别从有用性和无害性两个维度进行考量。有用性主要聚焦于最终总结,重点评估模型响应对于用户的实用性和相关性,尽量避免干扰底层推理过程;无害性则对模型的整个答案,包括推理过程和最终总结进行评估,以此识别并降低生成内容中潜在的风险、偏见或有害信息。
通过综合运用组合奖励和多样化的数据分布进行训练,最终成功训练出DeepSeek-R1模型。该模型在推理方面表现优异,将有用性和无害性放在优先位置,其性能能够与OpenAI o1相媲美,在AI领域引起了广泛关注。
失败尝试
在DeepSeek-R1的训练过程中,早期曾尝试过o1发布时流行的过程奖励模型(PRM)和蒙特卡洛树搜索(MCTS)方案,然而最终效果却未达预期,具体原因如下:
- PRM方案的问题:首先,PRM难以定义细粒度步骤。在模型训练过程中,对于复杂任务,要精确划分并定义每个细微步骤的标准和要求十分困难,这使得模型在执行任务时缺乏明确的指导。其次,判断每一步正确与否也存在难题,由于缺乏清晰的评判标准,很难确定模型在每个步骤的执行是否符合预期,从而无法准确地给予奖励反馈 。此外,PRM的引入还可能导致reward hacking问题,即模型可能会利用奖励机制的漏洞,采取一些并非真正解决问题的策略来获取高奖励,这严重影响了训练的有效性。最后,使用PRM还需要耗费大量资源重新训练奖励模型,成本较高,综合这些因素,导致PRM方案效果不理想。
- MCTS方案的问题:MCTS在处理next token prediction任务时面临困境。与下象棋这类有明确搜索空间的任务不同,token生成的搜索空间呈指数级增长,这使得MCTS难以有效探索所有可能的路径。如果为了控制搜索范围给每个节点设置最大扩展限制,虽然能减少计算量,但又可能使模型陷入局部最优解,无法找到全局的最佳路径,进而影响模型的性能,所以MCTS方案也未能达到预期效果。
DeepSeek-R1-Distill 系列小知识蒸馏

训练方式
在DeepSeek-R1-Distill系列小知识蒸馏过程中,采用了特定的训练方式。
研究人员直接使用训练DeepSeek-R1时所得到的80万数据,对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。
在对这些蒸馏模型的训练中,仅运用了监督微调这一手段,并没有纳入强化学习阶段。尽管从提升模型性能的角度来看,加入强化学习能够显著提升模型的表现,但此次训练并未这样做。其主要目的在于展示蒸馏技术本身的有效性,也就是验证使用大规模数据对不同架构的模型进行微调,是否能够让小模型获得较好的性能表现。同时,将强化学习阶段的探索工作留给更广泛的学术界,让其他研究人员可以基于此进行更深入的研究和探索。
过程总结
DeepSeek-R1-Distill系列的蒸馏过程主要分为三个核心阶段:数据生成 、模型微调 和性能评估,通过将大模型(教师模型)的推理能力迁移到小模型(学生模型),实现高效且轻量化的部署。具体流程如下:
数据生成:构建高质量的"知识库"
- 教师模型的作用:DeepSeek-R1作为教师模型,生成约80万条高质量训练样本,涵盖推理任务(如数学解题、代码生成)和非推理任务(如写作、事实问答)。例如,在数学推理任务中,模型需输出完整的思维链(Chain-of-Thought, CoT)。
- 数据筛选机制 :对于推理任务,采用 拒绝采样(Rejection Sampling) 筛选出逻辑正确的推理过程;非推理任务则复用DeepSeek-V3的监督微调(SFT)数据集。这一过程确保数据兼具多样性和准确性。
模型微调:知识迁移的核心步骤
- 目标模型选择:以Qwen、Llama等开源模型为基础(如Qwen2.5-Math-1.5B、Llama3-70B),仅进行监督微调(SFT),不涉及强化学习(RL)阶段。
- 微调方法 :
- 单阶段或多阶段训练:对小模型进行1-2轮SFT,学习教师模型的输出风格和推理模式。例如,DeepSeek团队对每个目标模型进行两轮微调以强化知识迁移。
- 冷启动数据支持:在初始阶段引入少量人工标注的长思维链数据,提升小模型的初始推理能力。
性能评估与优化
- 基准测试验证 :蒸馏后的模型需在多个推理基准(如AIME 2024、MATH-500、GPQA Diamond)上评估。例如:
- DeepSeek-R1-Distill-Qwen-7B在MATH-500测试中达到92.8%的准确率,接近教师模型的性能。
- DeepSeek-R1-Distill-Llama-70B在AIME 2024的Pass@1分数达72.6%,优于OpenAI的o1-mini。
- 效率优化:通过减少参数量(如1.5B至70B)和简化模型结构(如减少层数或隐藏单元),显著降低计算资源需求和推理延迟。
技术特点与优势
- 成本效益:相比完整版DeepSeek-R1,蒸馏模型的训练成本仅为十分之一,推理成本更低。
- 任务适应性:支持数学、编程、事实问答等多类任务,且能部署于资源受限环境(如边缘设备)。
- 开源生态:提供基于Qwen和Llama架构的六个蒸馏模型(1.5B至70B参数),推动AI应用普及。
总结
DeepSeek-R1-Distill通过数据生成→监督微调→评估优化的流程,将大模型的推理能力高效迁移至小模型,兼顾性能与效率。这一技术不仅降低了AI应用门槛,还为国产算力的自主可控提供了实践路径。
推理能力转移
在DeepSeek的蒸馏过程中,即使小模型未采用强化学习(RL),其推理能力仍能有效转移到蒸馏后的模型中,主要原因包括以下几个方面:
-
大模型的复杂推理模式迁移
大模型在RL训练阶段能够发展出高阶的推理模式(如多步骤逻辑链、复杂策略选择等),这些能力通过蒸馏以"推理轨迹"形式被编码到监督微调(SFT)数据中。小模型通过模仿这些预生成的优质推理流程(例如DeepSeek-R1整理的80万样本),可以直接继承大模型的推理能力,而无需自主探索复杂的模式。
-
小模型的结构限制与学习效率
小模型由于参数规模较小,其表示能力和探索空间有限。直接对小模型进行RL训练时,难以通过自主探索有效学习到复杂的推理模式,且需要消耗巨大的计算资源(如DeepSeek-R1-Zero-Qwen-32B模型的表现仅与基线模型相当)。相比之下,蒸馏通过"教师-学生"模式,让小模型专注于模仿大模型已优化的推理路径,显著提升了学习效率。
-
数据驱动的知识压缩
蒸馏过程利用大模型生成的标准化推理样本(如数学解题步骤、逻辑推导链),通过监督微调将推理能力编码为小模型参数。这种方式绕过了RL训练中奖励函数设计、策略稳定性等挑战,直接传递结构化知识。实验表明,仅用SFT的蒸馏模型(如DeepSeek-R1-Distill-Qwen-32B)在多项任务中已显著优于纯RL训练的小模型。
-
资源效率的权衡
直接对小模型进行大规模RL训练需要极高的计算成本(如GPU集群和长时间迭代),而蒸馏仅需对大模型生成的推理数据进行微调,资源消耗更低。例如,Qwen2.5-Math-7B通过蒸馏即可达到超越32B模型RL训练的效果,体现了蒸馏策略的经济性。
需要注意的是,尽管蒸馏在现阶段更具优势,但研究也指出:若要突破模型能力的边界(例如实现人类水平的通用推理),仍需依赖更强大的基础模型和大规模RL训练。蒸馏技术更多是在现有模型能力范围内实现高效迁移。
结论
在DeepSeek-R1-Distill系列小知识蒸馏过程中,得到了两个重要结论:
第一个结论表明,将更强大的知识蒸馏到小型模型中能够收获优异成果。因为直接使用训练DeepSeek-R1的80万数据对Qwen和Llama系列等小模型进行监督微调(SFT),能让小模型获取强大模型的部分能力 。相比之下,若小模型仅依靠本文所讨论的大规模强化学习来提升性能,一方面可能需要投入巨大的计算资源,这无疑会增加成本与技术难度;另一方面,即便耗费大量资源,小模型仅通过大规模强化学习,也可能无法达到蒸馏所带来的性能提升效果。这凸显了知识蒸馏在提升小模型性能方面的优势。
第二个结论指出,虽然蒸馏策略具备经济高效的特点,能在不消耗过多资源的情况下有效提升小模型性能。然而,若想要超越当前智能水平的边界,实现更高层次的智能突破,仅依靠蒸馏策略是不够的。可能还需要更强大的基础模型作为支撑,这类模型具有更丰富的知识储备和更强的学习能力;同时,还需要更大规模的强化学习,以此来进一步优化模型,让模型在复杂任务处理、智能表现等方面实现质的飞跃 。
DeepSeek-R1-Distill系列模型对比
参考链接:DeepSeek-R1系列模型对比及部署
DeepSeek-R1的蒸馏模型是借助蒸馏技术,从更大版本的DeepSeek-R1模型提取而来的,具有紧凑高效的特点。在这个过程中,大型模型的知识和推理能力被转移到了更小的模型中。这使得小模型在执行推理任务时,也能有不错的表现,而且还具备了更轻便、节省资源、易于部署的优势。
DeepSeek-R1的蒸馏模型有不同系列,其中DeepSeek-R1-Distill-Qwen系列包含1.5B、7B、14B、32B这几种参数规模的模型;DeepSeek-R1-Distill-Llama系列则有8B和70B两种参数规模的模型。
从模型特点来看,1.5B - 70B这些模型的参数数量相对较少,随着参数的增加,模型容量逐渐变大,捕捉语言知识和语义关系的能力也在逐步增强,但相比拥有671B参数的模型,它们在这方面的能力还是稍显不足。而671B模型参数数量最多,模型容量极大,能够学习和记忆海量知识信息,对复杂语言模式和语义关系的捕捉能力最为强大。
在所需硬件方面,不同硬件配置适配不同的模型版本。
- 低配硬件,即显卡为集成显卡或独立显卡但显存不足2GB、内存8GB以下、CPU是老旧双核或四核处理器的情况下,推荐使用DeepSeek-R1-1.5B模型。
- 中配硬件,显卡显存4 - 6GB、内存16GB、CPU为英特尔酷睿i5系列或AMD锐龙5系列时,DeepSeek-R1-7B模型更为合适。
- 高配硬件,显卡显存8GB及以上,如NVIDIA GeForce RTX30系列、AMD Radeon RX 6000系列等高性能独立显卡,内存32GB及以上,CPU为英特尔酷睿i7/i9系列或AMD锐龙7/9系列,这种配置可以选用DeepSeek-R1-32B甚至更高版本的模型。
- 若具备更高硬件,显卡为A100/H100时,推荐使用DeepSeek-R1-70B以上版本的模型。
有人使用戴尔Precision 7560进行了实测体验,该设备内存64GB,独立显卡是NVIDIA T1200 Laptop GPU,显存4GB。在运行7B、8B模型时表现尚可,而运行14B模型时,笔记本风扇转速瞬间加快,噪音很大,对显卡的消耗也比较大。