DeepSeek R1 技术和训练流程
🥇

DeepSeek R1 技术和训练流程

Tags
AI
LLM
Published
February 27, 2025
Author
YidaHu

强化学习的必要性

对比监督微调(SFT)和强化学习从人类反馈中学习(RLHF)。

SFT的局限性

  • 缺乏负反馈:SFT无法提供负反馈,只能引导模型往正确方向学习,不能有效纠正错误。
  • 概率连带提升问题:在提高某一条件概率(如Prob(E | ABCD) )时,会顺带提高其他相关概率(如Prob(E | ACD) ),缺乏精准调控。
  • 无向后审视能力:SFT不具备让模型回顾检查前面内容正误的能力,像“上海是中国的首都”,SFT可能只关注局部而判断正确。
  • 反馈粒度问题:SFT的反馈粒度是token(词元),对每个样本赋予同样权重的惩罚,只能教会模型做正确的事,难以考虑整体影响。

强化学习的优势

  • 提供正负反馈:RLHF能提供正负反馈,可通过类似排除法的方式优化模型决策。
  • 考虑整体影响:RLHF的反馈粒度是整个文本,更倾向于从整体角度影响模型,纠正模型输出,避免类似幻觉(错误关联)的问题。
 
例子
  • 喜好判断例子: “我不喜欢->猫”和“我喜欢->猫”,说明SFT可能因缺乏负反馈,导致模型在学习时出现类似 “幻觉”(错误关联) 的情况。
  • 地理知识例子 : “上海是中国的首都,这句话是错误的”,但SFT可能只依据 “上海是中国的->首都” 局部信息判断正确,体现SFT不具备向后审视对错的能力。

反馈粒度

SFT的反馈粒度是token(词元),即它在训练中对每个词元进行反馈。这样导致每条样本都被赋予同样权重的惩罚,只能教会模型做正确的事,无法从整体文本层面考虑影响。
相比强化学习从人类反馈中学习(RLHF) 以整个文本为反馈粒度,SFT缺乏对整体语义和正确性的把控。

强化学习的几个方法

这张幻灯片是关于DeepSeekV3 - R1技术详解,主要介绍强化学习方法及其统一公式:
  • 强化学习方法
    • PPO:被标注为在ChatGPT中使用,效果最好,通过提高获得高奖励token的概率,降低获得低奖励token的概率来优化模型。
    • DPO:用于Llama,特点是速度最快。
    • GRPO:DeepSeek使用的方法,优势是成本最低。
  • 统一公式:列出了SFT(监督微调)、RFT(可能是某种相关微调)、DPO、PPO、GRPO的统一公式,公式涉及数据来源(Data Source)和梯度系数(Gradient Coefficient)等概念 ,用于对这些强化学习方法在数学层面进行统一描述和计算。
notion image
这个公式用于统一描述SFT(监督微调)、RFT、DPO、PPO、GRPO的统一公式,公式涉及数据来源(Data Source)和梯度系数(Gradient Coefficient)等方法,其中涉及数据期望(从数据分布 $\mathcal{D}$ 中采样 $(q, o)$ ) 、序列长度 $|o|$ 、梯度系数 $GC_{\mathcal{A}}(q, o, t, \pi_{rf})$ 以及策略网络 $\pi_{\theta}$ 对参数 $\theta$ 的梯度计算。

强化学习的奖励方法

强化学习中的奖励方法,分为训练和推理时的奖励两类:
  • 训练时候的奖励
    • 面向过程奖励(PRM):每一个步骤都有对应的奖励,ChatGPT和Llama采用这种方式。优点是每一步都能精确校正和优化;缺点是所需标注量大,还可能存在Reward hacking(奖励操控)问题 。
    • 面向结果的奖励(orm):DeepSeek-Zero-R1使用该方法,只需标注最终正确结果,较为简单,但缺点是奖励稀疏。
  • 推理时候的奖励:以GPT-O1模型为例,采用面向过程奖励。
notion image
 
 

近端策略优化(PPO)

近端策略优化(PPO)相关的几个模型,内容如下:
  • Reference Model(参考模型):即SFT(监督微调)后的模型,作为后续优化的基础参考。
  • Reward Model(奖励模型):基于人类标注数据构建。输入查询(query)和模型响应(response),输出一个介于0到1之间的得分,用于评估响应的质量,以此来指导模型优化。
  • Value Model(价值模型):预测生成一个token(词元)后,该token所能带来的后续收益,帮助评估不同决策的长期价值。
  • Policy Model(策略模型):最终要得到的模型,通过与其他模型协作,在PPO算法框架下不断优化自身策略,以生成更符合预期的输出。
 
 
大语言模型(LLM)相关的Reward Model(奖励模型)和Value Model(价值模型)的作用,内容如下:
  • LLM部分:图中的蓝色区域代表大语言模型(LLM)。它接收输入 “query” ,并逐步生成输出序列 “t1 t2 t3 t4 t5 t6” 。
  • Reward Model:该模型用于计算从 “t1” 到 “t6” 整个序列符合人类偏好的得分,评估的是整个生成序列与人类偏好的匹配程度。
  • Value Model:主要计算在生成 “t1” 之后,后续生成内容能符合人类偏好的得分,更侧重于从生成某个词元(token)后,对后续内容符合人类偏好程度的预测评估。
 
notion image
notion image

actor - critic 算法

这张图片介绍了近端策略优化(PPO)算法,这是一种actor - critic算法,相关内容如下:

算法流程部分

  1. 输入与策略生成:输入“q”(可能代表查询或状态)到策略模型(Policy Model),策略模型输出“o”(可能代表动作或输出)。
  1. 模型交互
      • Reference Model(参考模型):与输出“o”进行交互,通过计算KL散度(KL),与奖励模型(Reward Model)的结果合并,得到“r”。
      • Reward Model(奖励模型):对输出“o”进行评估打分。
      • Value Model(价值模型):输出“v”(价值估计)。“r”和“v”进入广义优势估计(GAE)模块,计算出优势函数“A” ,用于指导策略模型的更新。

奖励计算部分

  1. 真实奖励计算:公式 “$a[i, j] = return[i, j] - values[i, j]$” 表示真实奖励(优势函数),是回报($return[i, j]$)与价值估计($values[i, j]$)的差值。
  1. 回报计算:“$return[i, j]=\sum_{k = j}^{N} reward[i, k]=reward[i, j]+... +reward[i, N]$” ,即从当前位置“j”到序列末尾“N”所有token的奖励总和,是向后看的累计奖励。
  1. 单token奖励计算:当 “$j<N$” 时,“$reward[i, j]=ref\_log\_prob[i, j] - log\_prob[i, j]$” ;当 “$j = N$” 时,“$reward[i, j]=ref\_log\_prob[i, N] - log\_prob[i, N]+score$” ,这里涉及参考模型的对数概率($ref\_log\_prob$)和当前策略模型的对数概率($log\_prob$)的差值,末尾时还加上奖励模型给出的得分($score$) 。
 
 
 
notion image
 
 

广义近端策略优化(GRPO)算法

算法流程部分

对于输入的“q”(可能代表问题或状态),策略模型(Policy Model)生成一组输出“$o_1, o_2, ... , o_G$”。这些输出分别与参考模型(Reference Model)进行KL散度计算,同时输入到奖励模型(Reward Model)中打分,得到相应的奖励“$r_1, r_2, ... , r_G$”。接着,通过组计算(Group Computation)处理这些奖励,得到优势函数“$A_1, A_2, ... , A_G$” 。

与PPO算法对比部分

  • 模型结构差异:相比PPO算法,GRPO少了一个价值(评论)模型(Value Model),即没有Critic模型。
  • 优势计算方式:PPO通过结合奖励模型和价值模型的输出来计算优势函数;而GRPO从旧策略$\pi_{\theta_{old}}$中采样一组输出,利用奖励模型对其评分,通过减去组平均值并除以组标准差来归一化这些奖励,从而计算优势,公式为$\hat{A}_{i,t} = \tilde{r}_i = \frac{r_i - mean(r)}{std(r)}$,其中$r_i$是单个奖励,$mean(r)$是奖励组的平均值,$std(r)$是奖励组的标准差 。 这种方式利用组内相对奖励来计算优势,是GRPO与PPO在计算逻辑上的关键不同点。
 
notion image
 

DS R1 训练流程

 
zero模型和O1模型的特点,以及三种搜索算法,具体如下:

模型介绍

  • zero模型:具有实验性质,该模型不借助监督微调(SFT)的方式,仅依靠强化学习(RL)和基于规则的奖励模型(RM),就能促使模型生成带有反思的长思维链(long CoT )。
  • O1模型:通过生成思维链,然后利用模型进行打分,或者采用蒙特卡洛树搜索(MCTS)方法进行探索。

O1 搜索算法

  • Best-of-N:从多个生成的答案路径(图中不同颜色曲线表示)中,使用验证器(verifier)选择最终最佳答案。每个路径末端的方块代表答案,被验证器选中的答案以特定颜色标识 。
  • Beam Search(集束搜索):从问题出发,每一步保留若干个得分较高的节点(以红绿圆圈表示)继续扩展搜索路径,最终同样使用验证器选择最佳答案。
  • Lookahead Search(前瞻搜索):不仅向前探索多个路径,还会对路径进行评估,根据评估结果从排名靠前的选项继续搜索(图中黑色箭头所示) ,包含完整解决方案(Full Solution)和中间解决方案步骤(Intermediate solution step),并由验证器对各步骤结果进行筛选。
 

R1 zero模型的特点和训练表现

  • 模型能力验证:r1 zero模型证明了不通过监督微调(SFT),直接基于基础模型(base model)进行强化学习(RL),就能让模型获得强大的推理(reasoning)能力。
  • 提升模型性能策略:采用多数投票策略,即对一条提示(prompt)多次采样,选取出现次数最多的答案,可进一步提升模型性能。
  • 模型训练中的自我进化:随着训练步数(steps)增加,r1 zero模型倾向于生成更长的回复(long CoT,长思维链),还出现了反思行为,这些都是在无外部干预下,模型自我进化的结果。
  • 训练结果图示:下方的折线图展示了DeepSeek - R1 - Zero模型在训练过程中,每条回复的平均长度变化。随着训练步数从0逐步增加,回复的平均长度总体呈上升趋势,表明模型在训练中思考更深入,生成的内容更丰富 。
 

DeepSeek - R1模型的训练过程

  • 基础模型:以DeepSeek - v3 - Base模型为起点。
  • 训练阶段一(Phrase I)
    • 冷启动时,利用少量包含问题、推理轨迹CoT(Chain of Thought)和答案的数据,对DeepSeek V3进行监督微调(SFT - 1),赋予模型初步的深度思考能力和规范的输出格式。
    • 接着针对推理(reason)能力进行强化学习后的训练(RL - 1),此阶段依赖人工标注的千量级长CoT数据。
 
  • 训练阶段二(Phrase 2)
    • 使用阶段一得到的Model - RL - 1生成更高质量的CoT数据和非推理数据(如写作、事实性问答数据等,分别为60万条推理数据和20万条非推理数据),再次进行监督微调(SFT - 2),提升模型的通用能力。
    • 然后再次进行强化训练(RL - 2),进一步增强模型的推理能力,最终得到DeepSeek - R1模型。
  • 模型关系:r1即DeepSeek - R1,是最终训练完成的模型,其训练过程整合了监督微调与强化学习,不同阶段利用不同类型和数量的数据逐步优化。

对比:OpenAI的O1模型和DeepSeek的R1模型

OpenAI-O1模型

  • 核心思想:借助大规模强化学习和思维链技术提升推理能力。
  • 推理方式:回答前通过生成系列中间推理步骤 “思考”,将复杂问题拆分为子问题逐步解决,提高推理准确性和效率。
  • 训练过程
    • 预训练:在大规模文本和代码数据集上进行。
    • 思维链生成:模型按提示生成推理问题的思维链。
    • 奖励信号:用奖励函数评估思维链和最终答案质量。
    • 策略优化:依据奖励信号更新模型参数,提升生成有效思维链的能力 。

DeepSeek-R1模型

  • 核心思想:在预训练模型基础上直接用强化学习,无需监督微调,验证了仅靠强化学习能让推理能力自主进化。
  • 算法应用:使用广义相对策略优化(GRPO)算法,通过组内奖励对比优化策略,避免对复杂价值模型的依赖。
  • 训练过程
    • 阶段一:冷启动时用少量含问题、推理轨迹CoT和答案的数据监督微调DeepSeek V3,赋予初步深度思考和规范输出能力,再对推理能力强化学习post-training。
    • 阶段二:用阶段一的Model - RL - 1生成更高质量的CoT数据和非推理数据,再次监督微调提升通用能力,然后再次强化训练增强推理能力。

总结

  • 基础大模型:拥有6710亿参数的DeepSeek V3预训练大模型是关键基础,为后续创新提供支撑,如同先天禀赋,没有它后续的改进都难以实现。
  • 强化学习
    • 大模型虽知识储备丰富(参数量大),但思考能力较弱。
    • 采用只注重结果的强化学习奖励模式,可激发大模型进行复杂思考,通过大规模强化后训练,能实现通用智能。
    • 这表明可以借助后天强化学习的方式提升行业大模型的能力 。
  • 知识蒸馏
    • 小模型因参数量少,知识储备不足,直接使用强化学习(RL)性能一般。但将大模型的能力通过知识蒸馏转化到小模型,效果较好。
    • 小模型蒸馏后的效果取决于基础大模型的能力。
    • 利用大模型生成大量高质量的推理数据(如CoT逻辑推理过程数据)和非推理数据,再用这些数据对小模型进行监督微调(SFT),为增强小模型能力提供了可行途径。