DeepSeek系列模型技术报告的阅读笔记

DeepSeek系列模型技术报告的阅读笔记

之前仔细阅读了DeepSeek系列模型的主要技术方面内容与发展脉络,以下是DeepSeek系列模型技术报告的笔记,有错误的地方欢迎指正!

文章目录

  • DeepSeek系列模型技术报告的阅读笔记
    • GQA
    • Deepseek MoE
      • Abstract
      • Introduction
      • Preliminaries: Mixture-of-Experts for Transformers
      • DeepSeekMoE Architecture
        • Fine-Grained Expert Segementation
        • Shared Expert Isolation
        • Load Balance Consideration
      • Experiments
        • Experimental Setup
        • Results
    • DeepseekMath
      • PPO算法
      • GRPO算法
        • Outcome Supervision RL with GRPO
        • Process Supervision RL with GRPO
        • Iterative RL with GRPO
    • Deepseek V2
      • Abstract
      • Introduction
      • Architecture
        • Basic Architecture
      • Multi-Head Latent Attention: Boosting Inference Efficiency
        • Preliminaries: Standard Multi-Head Attention
        • Low-Rank Key-Value Joint Compression
        • Decoupled Rotary Position Embedding
      • Alignment
        • Supervised Fine-Tuning
        • Reinforcement Learning
    • Deepseek V3
      • Astract
      • Introduction
      • Architecture
      • Basic Architecture
        • Multi-Head Latent Attention
        • DeepSeekMoE with Auxiliary-Loss-Free Load Balancing
        • Multi-Token Prediction
      • Infrastructures
        • DualPipe and Computation-Communication Overlap
        • FP8 Mixed Precision Framework
    • DeepSeek-R1
      • Abstract
      • Introduction
      • Approach
        • DeepSeek-R1-Zero: Reinforcement Learning on the Base Model
        • DeepSeek-R1: Reinforcement Learning with Cold Start
        • Distillation: Empower Small Models with Reasoning Capability

GQA

论文:GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints

Deepseek LLM中用到的注意力机制

在K部分的尺度变化为:

GQA overview

之后分组注意力:

GQA comparison

Deepseek MoE

论文:DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models

单位:DeepSeek-AI

作者:Damai Dai et. al.

Abstract

问题:传统的 MoE 架构,如GShard,激活N个专家模型中的Top K个,面临专家模型专业性缺失的问题,例如:无法做到每个专家都获得了不重叠和集中的知识 (换句话说,专家模型太泛化,不够像不同领域的专家)

方法:DeepSeekMoE,专业化专家模型

两种主要的策略:

  1. 精细地切分专家模型到 m ⋅ N m\cdot N mN个规模,同时激活 m ⋅ K m\cdot K mK个模型,以允许更灵活地组合已激活的专家
  2. K s K_s Ks个专家隔离并作为共享的路由专家模型,以捕获通用的知识、减少专家模型冗余

结果:

  1. 从2B参数的模型规模开始,比GShard 2.9B模型规模、计算开销更小;
  2. DeepSeekMoE 2B 的性能几乎接近同类2B全连接层结构的模型性能
  3. 当使用DeepSeekMoE 145B模型时,效果远超GShard,在18.2-28.5%的计算量上表现出同Deepseek 67B相当的效果

Introduction

过去的MoE模型:Gshard, Switch Transformers

传统的MoE模型结构:传统的 MoE 架构用 MoE 层替换 Transformer 中的前馈网络 (FFN);每个 MoE 层由多个专家组成,每个专家在结构上与标准 FFN 相同,每个token都分配给一名或两名专家

因结构缺陷引发的问题:

  1. 知识混淆: 专家数量有限 -> 分配给特定专家的令牌可能会涵盖不同的知识,造成知识混淆;同时,不同类型的知识混合在一块也无法进行区分与分别利用
  2. 知识冗余: 分配给专家的token可能依赖常识 -> 不同专家收敛到相同的共享知识,导致模型规模与参数上的冗余

方法:DeepSeek-MoE

包括了两种主要的策略:

  1. 细粒度的专家细分 (Fine-Grained Expert Segmentation): 在保持参数不变的前提下通过切割FFN的中间隐含维度进一步细分专家,同时在相同计算开销时激活更多的细粒度专家以实现灵活且适应性强的已激活专家组合 -> 不同的细粒度专家更精细地分解、学习到多样化知识,并保持高度的专业性
  2. 共享专家隔离 (Share):分离出某些专家作为共享专家,这些专家始终处于激活状态,旨在在不同环境中捕获和整合共同知识,将常识压缩到这些共享的专家中以令其他路由专家之间的冗余将得到缓解 -> 确保每个路由的 Expert 通过专注于独特的方面来保持专业化

Preliminaries: Mixture-of-Experts for Transformers

标准的Transformer堆叠L层Transformer块,T为序列长度,第 l l l层Transformer块的表示为:

u 1 : T l = S e l f A t t n ( h 1 : T l − 1 ) + h 1 : T l − 1 \bold{u}^l_{1:T}=SelfAttn(\bold{h}^{l-1}_{1:T})+\bold{h}^{l-1}_{1:T} u1:Tl=SelfAttn(h1:Tl1)+h1:Tl1

h t l = F F N ( u t l ) + u t l \bold{h}^l_t=FFN(\bold{u}^l_t)+\bold{u}^l_t htl=FFN(utl)+utl

经典的MoE结构:用MoE层替换FFN,描述为:

h t l = ∑ i = 1 N ( g i , t F F N i ( u t l ) ) + u t l \bold{h}^l_t=\sum^N_{i=1}(g_{i,t}FFN_i(\bold{u}^l_t))+\bold{u}^l_t htl=i=1N(gi,tFFNi(utl))+utl

g i , t = { s i , t s i , t ∈ T o p K ( { s j , t ∣ 1 ≤ j ≤ N } , K ) 0 o t h e r w i s e g_{i,t}=\begin{cases}s_{i,t}&s_{i,t}\in TopK(\{s_{j,t}|1\leq j\leq N\},K)\\ 0 & otherwise\end{cases} gi,t={si,t0si,tTopK({sj,t∣1jN},K)otherwise

s i , t = S o f t m a x i ( u t l ⊤ e i l ) s_{i,t}=Softmax_i(\bold{u}^{l\top}_t \bold{e}^l_i) si,t=Softmaxi(utleil)

N N N为专家数量, g i , t g_{i,t} gi,t表示为第 i i i个专家的阈值并且是稀疏的, s i , t s_{i,t} si,t表示为token到专家的关联性, T o p K ( ⋅ ) TopK(\cdot) TopK()表示为前 K K K个关联性最高的分数并代表了第 t 个标记和所有 N 个专家计算的分数, e i l \bold{e}^l_i eil表示第 l l l层第 i i i个专家的中心

DeepSeekMoE Architecture

DeepSeekMoE-v1

Fine-Grained Expert Segementation

通过减少FFN的中间隐藏层为原来的 1 m \frac{1}{m} m1,切片每个专家FFN到m个更小的专家,因此公式描述为:

h t l = ∑ i = 1 m N ( g i , t F F N i ( u t l ) ) + u t l \bold{h}^l_t=\sum^{mN}_{i=1}(g_{i,t}FFN_i(\bold{u}^l_t))+\bold{u}^l_t htl=i=1mN(gi,tFFNi(utl))+utl

g i , t = { s i , t s i , t ∈ T o p K ( { s j , t ∣ 1 ≤ j ≤ m N } , m K ) 0 o t h e r w i s e g_{i,t}=\begin{cases}s_{i,t}&s_{i,t}\in TopK(\{s_{j,t}|1\leq j\leq mN\},mK)\\ 0 & otherwise\end{cases} gi,t={si,t0si,tTopK({sj,t∣1jmN},mK)otherwise

s i , t = S o f t m a x i ( u t l ⊤ e i l ) s_{i,t}=Softmax_i(\bold{u}^{l\top}_t \bold{e}^l_i) si,t=Softmaxi(utleil)

Shared Expert Isolation

单独利用 K s K_s Ks个专家实现共享专家隔离,公式描述为:

h t l = ∑ i = 1 K s F F N i ( u t l ) + ∑ i = 1 m N ( g i , t F F N i ( u t l ) ) + u t l \bold{h}^l_t=\sum^{K_s}_{i=1}FFN_i(\bold{u}^l_t)+\sum^{mN}_{i=1}(g_{i,t}FFN_i(\bold{u}^l_t))+\bold{u}^l_t htl=i=1KsFFNi(utl)+i=1mN(gi,tFFNi(utl))+utl

g i , t = { s i , t s i , t ∈ T o p K ( { s j , t ∣ 1 ≤ j ≤ m N } , m K − K s ) 0 o t h e r w i s e g_{i,t}=\begin{cases}s_{i,t}&s_{i,t}\in TopK(\{s_{j,t}|1\leq j\leq mN\},mK - K_s)\\ 0 & otherwise\end{cases} gi,t={si,t0si,tTopK({sj,t∣1jmN},mKKs)otherwise

s i , t = S o f t m a x i ( u t l ⊤ e i l ) s_{i,t}=Softmax_i(\bold{u}^{l\top}_t \bold{e}^l_i) si,t=Softmaxi(utleil)

Load Balance Consideration

Expert-Level Balance Loss: 其中 α 1 \alpha_1 α1为专家级平衡超参数, N ′ N' N ( m N − K s ) (mN-K_s) (mNKs) K ′ K' K ( m K − K s ) (mK-K_s) (mKKs) 1 ( ⋅ ) \mathbb{1}(\cdot) 1()为指示函数

L E x p B a l = α 1 ∑ i = 1 N ′ f i P i L_{ExpBal} = \alpha_1\sum^{N'}_{i=1}f_iP_i LExpBal=α1i=1NfiPi

f i = N ′ K ′ T ∑ t = 1 T 1 ( Token  t  selects Expert  i ) f_i=\frac{N'}{K'T}\sum^T_{t=1}\mathbb{1}(\text{Token} \ t \ \text{selects Expert} \ i) fi=KTNt=1T1(Token t selects Expert i)

P i = 1 T ∑ t = 1 T s i , t P_i=\frac{1}{T}\sum^T_{t=1}s_{i,t} Pi=T1t=1Tsi,t

Device-Level Balance Loss: 其中 α 2 \alpha_2 α2为设备级平衡超参数,将所有路由到的专家分组为 D D D个,表示为 { ϵ 1 , ϵ 2 , ⋯   , ϵ D } \{\epsilon_1,\epsilon_2,\cdots,\epsilon_D\} {ϵ1,ϵ2,,ϵD},则每组在一个设备上,则损失函数为:

L D e v B a l = α 2 ∑ i = 1 D f i ′ P i ′ L_{DevBal}=\alpha_2\sum^D_{i=1}f'_iP'_i LDevBal=α2i=1DfiPi

f i ′ = 1 ∣ ϵ i ∣ ∑ j ∈ ϵ i f j f'_i=\frac{1}{|\epsilon_i|}\sum_{j\in \epsilon_i}f_j fi=ϵi1jϵifj

P i ′ = ∑ j ∈ ϵ i P j P'_i=\sum_{j\in \epsilon_i}P_j Pi=jϵiPj

Experiments

Experimental Setup

采样自Deepseek AI公司自建的多语言语料库, 100B个token,训练BPE

训练工具:HAI-LLM (幻方自家的训练平台),包含了张量并行、ZeRO数据并行、PipeDream管道并行

显卡:H800、A100集群节点 (有NVLink、NVSwitch连接节点)

优化器:AdamW

对齐方式:SFT

下游任务验证:

  1. 语言建模 (Language Modeling)
  2. 语言理解与推理 (Language Understanding and Reasoning)
  3. 阅读理解 (Reading Comprehension)
  4. 代码生成 (Code Generation)
  5. 闭卷问答 (Close-Book Question Answering)
Results
  1. DeepSeekMoE 与 MoE 模型的上限紧密结合
  2. DeepSeekMoE 在路由专家中表现出较低的冗余
  3. 共享专家无法被路由专家取代
  4. DeepSeekMoE 更准确地获取知识
  5. 在 2T 令牌上训练 DeepSeekMoE 16B,并展示其可与 DeepSeek 7B 和 LLaMA2 7B 相媲美的出色性能,计算量仅为 40% 左右
  6. 将 DeepSeekMoE 扩展到 145B 参数时,DeepSeekMoE 145B 仍然保持了与 GShard 架构相比的巨大优势,并表现出与 DeepSeek 67B 相当的性能

DeepseekMath

论文:DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
作者:Zhihong Shao et. al.
单位:Deep Seek AI et. al.

该论文中讲解了GRPO

PPO算法

PPO是一种演员-评论家算法

优化的替代目标:

J P P O ( θ ) = E [ q ∼ P ( Q ) , o ∼ π θ o l d ( O ∣ q ) ] 1 ∣ o ∣ ∑ t = 1 ∣ o ∣ min ⁡ [ π θ ( o t ∣ q , o < t ) π θ o l d ( o t ∣ q , o < t ) A t , c l i p ( π θ ( o t ∣ q , o < t ) π θ o l d ( o t ∣ q , o < t ) , 1 − ϵ , 1 + ϵ ) A t ] J_{PPO}(\theta)=\mathbb{E}[q\sim P(Q), o\sim \pi_{\theta_{old}}(O|q)]\frac{1}{|o|}\sum^{|o|}_{t=1}\min[\frac{\pi_\theta(o_t|q,o_{<t})}{\pi_{\theta_{old}}(o_t|q,o_{<t})}A_t,clip(\frac{\pi_\theta(o_t|q,o_{<t})}{\pi_{\theta_{old}}(o_t|q,o_{<t})},1-\epsilon, 1+\epsilon)A_t] JPPO(θ)=E[qP(Q),oπθold(Oq)]o1t=1omin[πθold(otq,o<t)πθ(otq,o<t)At,clip(πθold(otq,o<t)πθ(otq,o<t),1ϵ,1+ϵ)At]

其中 π θ \pi_{\theta} πθ π θ o l d \pi_{\theta_{old}} πθold为当前与旧的策略模型, q q q o o o分别为从问题数据集与旧策略中采样得到的问题与输出, ϵ \epsilon ϵ为剪枝先骨干的超参数, A t A_t At为优势函数

优势函数由GAE进行计算,基于奖励 { r ≥ t } \{r_{\geq t}\} {rt}和可学习的值函数 V ϕ V_{\phi} Vϕ,通过KL散度计算:

r t = r ϕ ( q , o ≤ t ) − β log ⁡ π θ ( o t ∣ q , o < t ) π r e f ( o t ∣ q , o < t ) r_t=r_{\phi}(q,o_{\leq t}) - \beta\log\frac{\pi_{\theta}(o_t|q, o_{<t})}{\pi_{ref}(o_t|q,o_{<t})} rt=rϕ(q,ot)βlogπref(otq,o<t)πθ(otq,o<t)

其中 r ϕ r_{\phi} rϕ为奖励模型, π r e f \pi_{ref} πref为参考模型,用于初始化SFT模型, β \beta β为KL惩罚系数

问题:由于 PPO 中采用的价值函数通常是另一个与策略模型大小相当的模型,因此它带来了大量的内存和计算负担

GRPO算法

与PPO的区别:

GRPO vs PPO

优化目标:

J G R P O ( θ ) = E [ q ∼ P ( Q ) , { o i } i = 1 G ∼ π θ o l d ( O ∣ q ) ] 1 G ∑ i = 1 G 1 ∣ o i ∣ ∑ t = 1 ∣ o i ∣ { min ⁡ [ π θ ( o i , t ∣ q , o i , < t ) π θ o l d ( o i , t ∣ q , o i , < t ) A ^ i , t , c l i p ( π θ ( o i , t ∣ q , o i , < t ) π θ o l d ( o i , t ∣ q , o i , < t ) , 1 − ϵ , 1 + ϵ ) A ^ i , t ] − β D K L [ π θ ∣ ∣ π r e f ] } J_{GRPO}(\theta)=\mathbb{E}[q\sim P(Q), \{o_i\}^G_{i=1}\sim \pi_{\theta_{old}}(O|q)]\frac{1}{G}\sum^G_{i=1}\frac{1}{|o_i|}\sum^{|o_i|}_{t=1}\{\min[\frac{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,o_{i,<t})}\hat{A}_{i,t},clip(\frac{\pi_{\theta}(o_{i,t}|q,o_{i,<t})}{\pi_{\theta_{old}}(o_{i,t}|q,o_{i,<t})},1-\epsilon, 1+\epsilon)\hat{A}_{i,t}]-\beta\mathbb{D}_{KL}[\pi_{\theta}||\pi_{ref}]\} JGRPO(θ)=E[qP(Q),{oi}i=1Gπθold(Oq)]G1i=1Goi1t=1oi{min[πθold(oi,tq,oi,<t)πθ(oi,tq,oi,<t)A^i,t,clip(πθold(oi,tq,oi,<t)πθ(oi,tq,oi,<t),1ϵ,1+ϵ)A^i,t]βDKL[πθ∣∣πref]}

其中 ϵ \epsilon ϵ β \beta β为超参数, A ^ i , t \hat{A}_{i,t} A^i,t为相关输出奖励的优势, D K L [ π θ ∣ ∣ π r e f ] = π r e f ( o i , t ∣ q , o i , < t ) π θ ( o i , t ∣ q , o i , < t ) − log ⁡ π r e f ( o i , t ∣ q , o i , < t ) π θ ( o i , t ∣ q , o i , < t ) − 1 > 0 \mathbb{D}_{KL}[\pi_\theta||\pi_{ref}]=\frac{\pi_{ref}(o_{i,t}|q,o_{i,<t})}{\pi_\theta(o_{i,t}|q,o_{i,<t})}-\log{\frac{\pi_{ref}(o_{i,t}|q,o_{i,<t})}{\pi_\theta(o_{i,t}|q,o_{i,<t})}}-1 > 0 DKL[πθ∣∣πref]=πθ(oi,tq,oi,<t)πref(oi,tq,oi,<t)logπθ(oi,tq,oi,<t)πref(oi,tq,oi,<t)1>0

Outcome Supervision RL with GRPO

形式上,对于每个问题 q q q,一组输出 { o 1 , o 2 , ⋯   , o G } \{o_1,o_2,\cdots,o_G\} {o1,o2,,oG}从旧策略模型 π θ o l d \pi_{\theta_{old}} πθold中采样。然后使用奖励模型对输出进行评分,相应地产生 G G G奖励 r = { r 1 , r 2 , ⋯   , r G } \bold{r}=\{r_1,r_2,\cdots,r_G\} r={r1,r2,,rG}。随后,通过减去组平均值并除以组标准差来归一化这些奖励。结果监督在每个输出 o i o_i oi 的末尾提供归一化奖励,并将输出中所有token的优势 A ^ i , t \hat{A}_{i,t} A^i,t设置为归一化奖励,即 A ^ i , t = r ~ i = r i − m e a n ( r ) s t d ( r ) \hat{A}_{i,t}=\widetilde{r}_i=\frac{r_i-mean(\bold{r})}{std(\bold{r})} A^i,t=r i=std(r)rimean(r),然后通过GRPO中定义的目标来优化策略

Process Supervision RL with GRPO

过程监督,在每个推理步骤结束时提供奖励。形式上,给定问题 q q q G G G采样输出 { o 1 , o 2 , ⋯   , o G } \{o_1,o_2,\cdots,o_G\} {o1,o2,,oG},使用过程奖励模型对输出的每一步进行评分,产生相应的奖励: R = { { r 1 i n d e x ( 1 ) , ⋯   , r 1 i n d e x ( K 1 ) } , ⋯   , { r G i n d e x ( 1 ) , ⋯   , r G i n d e x ( K G ) } } \bold{R}=\{\{r^{index(1)}_1,\cdots,r^{index(K_1)}_1\},\cdots,\{r^{index(1)}_G,\cdots,r^{index(K_G)}_G\}\} R={{r1index(1),,r1index(K1)},,{rGindex(1),,rGindex(KG)}},其中 i n d e x ( j ) index(j) index(j) 是第 j j j步的结束标记索引, Ki 是第 i 个输出中的总步数。用平均值和标准差对这些奖励进行归一化,即 r ^ i i n d e x ( j ) = r i i n d e x ( j ) − m e a n ( R ) s t d ( R ) \hat{r}^{index(j)}_i=\frac{r^{index(j)}_i-mean(\bold{R})}{std(\bold{R})} r^iindex(j)=std(R)riindex(j)mean(R) 。随后,过程监督将每个token的优势计算为以下步骤的归一化奖励之和,即 A ^ i , t = ∑ i n d e x ( j ) ≥ t r ~ i i n d e x ( j ) \hat{A}_{i,t}=\sum_{index(j)\geq t}\widetilde{r}^{index(j)}_{i} A^i,t=index(j)tr iindex(j),然后通过GRPO中定义的目标来优化策略。

Iterative RL with GRPO

随着强化学习训练过程的进行,旧的奖励模型可能不足以监督当前的策略模型。因此,进一步探索了 GRPO 的迭代 RL。如下 所示,在迭代 GRPO 中,根据策略模型的采样结果为奖励模型生成新的训练集,并使用包含 10% 历史数据的重放机制持续训练旧的奖励模型。然后,将参考模型设置为策略模型,并使用新的奖励模型不断训练策略模型。

GRPO Algorithm

Deepseek V2

论文:DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model

单位:Deepseek AI

Abstract

Deepseek V2,基于MoE架构,总共236B,对于每个token激活21B,支持最大128K的上下文长度

结构的提升:Multi-head Latent Attention (MLA),Key-Value缓存压缩

同Deepseek 67B比较:5.76倍生成速度、42.5%的训练成本节省、93.3%的kv cache节约

预训练语料量:8.7T个token

微调方式:SFT+RL

Introduction

问题:

  1. 过去的LLM改进是以更大的训练计算资源和推理吞吐量的潜在降低为代价,阻碍 LLM 的广泛适应与使用
  2. Multi-Head Attention的Key-Value (KV) cache对 LLM 的推理效率构成重大障碍
  3. 已有的GQA、MQA都是在尝试减少 KV 缓存,这些方法通常会牺牲性能

方法:在Transformer架构上优化了attention机制与FFN,提出了Multi-head Latent Attention (MLA)和DeepSeekMoE

  1. MLA是一种利用低秩key-value联合压缩 (low rank key-value joint compression) 的注意力机制
  2. Transformer中的FFN替换为DeepseekMoE,包含fine-grained expert segmentation和shared expert isolation

数据集:8.1T个token的多源预训练语料库,1.5M个对话场景用于SFT

对齐方式:SFT + GRPO进行模型对齐

Architecture

基于Transformer架构,具体模块如下:

DeepSeek-V2 MoE & MLA

Basic Architecture

t t t个token的FFN输入为 u t \bold{u}_t ut,计算的输出 h t ′ \bold{h}'_t ht为:

h t ′ = u t + ∑ i = 1 N s F F N i ( s ) ( u t ) + ∑ i = 1 N r g i , t F F N i ( r ) ( u t ) \bold{h}'_t=\bold{u}_t+\sum^{N_s}_{i=1}FFN^{(s)}_i(\bold{u}_t)+\sum^{N_r}_{i=1}g_{i,t}FFN_i^{(r)}(\bold{u}_t) ht=ut+i=1NsFFNi(s)(ut)+i=1Nrgi,tFFNi(r)(ut)

g i , t = { s i , t s i , t ∈ T o p K ( { s j , t ∣ 1 ≤ j ≤ N r } , K r ) 0 o t h e r w i s e g_{i,t}=\begin{cases}s_{i,t} & s_{i,t}\in TopK(\{s_{j,t}|1\leq j \leq N_r\},K_r)\\ 0 & otherwise\end{cases} gi,t={si,t0si,tTopK({sj,t∣1jNr},Kr)otherwise

s i , t = S o f t m a x i ( u t ⊤ e i ) s_{i,t}=Softmax_i(\bold{u}^{\top}_t\bold{e}_i) si,t=Softmaxi(utei)

Multi-Head Latent Attention: Boosting Inference Efficiency

Preliminaries: Standard Multi-Head Attention

embedding维度为 d d d,头数为 n h n_h nh,单头注意力维度为 d h d_h dh,在注意力层中第 t t t个token的注意力输入为 h t ∈ R d \bold{h}_t\in \mathbb{R}^d htRd,首先分别乘以三个矩阵得到 q t \bold{q}_t qt k t \bold{k}_t kt v t ∈ R d n n h \bold{v}_t\in \mathbb{R}^{d_nn_h} vtRdnnh,通过三个矩阵 W Q W^Q WQ, W K W^K WK, W V ∈ R d h n h × d W^V\in\mathbb{R}^{d_hn_h\times d} WVRdhnh×d,有:

q t = W Q h t \bold{q}_t=W^Q\bold{h}_t qt=WQht

k t = W K h t \bold{k}_t=W^K\bold{h}_t kt=WKht

V t = W V h t \bold{V}_t=W^V\bold{h}_t Vt=WVht

对于多头注意力,则为:

[ q t , 1 ; q t , 2 ; ⋯   ; q t , n h ] = q t [\bold{q}_{t,1};\bold{q}_{t,2};\cdots;\bold{q}_{t,n_h}]=\bold{q}_t [qt,1;qt,2;;qt,nh]=qt

[ k t , 1 ; k t , 2 ; ⋯   ; k t , n h ] = k t [\bold{k}_{t,1};\bold{k}_{t,2};\cdots;\bold{k}_{t,n_h}]=\bold{k}_t [kt,1;kt,2;;kt,nh]=kt

[ v t , 1 ; v t , 2 ; ⋯   ; v t , n h ] = v t [\bold{v}_{t,1};\bold{v}_{t,2};\cdots;\bold{v}_{t,n_h}]=\bold{v}_t [vt,1;vt,2;;vt,nh]=vt

o t , i = ∑ j = 1 t S o f t m a x j ( q t , i ⊤ k j , i d h ) v j , i \bold{o}_{t,i}=\sum^t_{j=1}Softmax_j(\frac{\bold{q}^\top_{t,i}\bold{k}_{j,i}}{\sqrt{d_h}})\bold{v}_{j,i} ot,i=j=1tSoftmaxj(dh qt,ikj,i)vj,i

u t = W O [ o t , 1 ; o t , 2 ; ⋯   ; o t , n h ] \bold{u}_t=W^O[\bold{o}_{t,1};\bold{o}_{t,2};\cdots;\bold{o}_{t,n_h}] ut=WO[ot,1;ot,2;;ot,nh]

其中 q t , i , k t , i , v t , i ∈ R d n \bold{q}_{t,i},\bold{k}_{t,i},\bold{v}_{t,i}\in \mathbb{R}^{d_n} qt,i,kt,i,vt,iRdn W O ∈ R d × d h n h W^O\in \mathbb{R}^{d\times d_hn_h} WORd×dhnh

Low-Rank Key-Value Joint Compression

c t K V = W D K V h t \bold{c}^{KV}_t=W^{DKV}\bold{h}_t ctKV=WDKVht

k t C = W U K c t K V \bold{k}^C_t=W^{UK}\bold{c}^{KV}_t ktC=WUKctKV

v t C = W U V c t K V \bold{v}^C_t=W^{UV}\bold{c}^{KV}_t vtC=WUVctKV

c t K V ∈ R d c \bold{c}^{KV}_t\in\mathbb{R}^{d_c} ctKVRdc, W D K V ∈ R d c × d W^{DKV}\in\mathbb{R}^{d_c\times d} WDKVRdc×d是一个向下投影矩阵, W U K , W U V ∈ R d h n h × d c W^{UK},W^{UV}\in \mathbb{R}^{d_hn_h\times d_c} WUK,WUVRdhnh×dc是向上投影K、V的矩阵, d c ( < < d h n h ) d_c(<<d_hn_h) dc(<<dhnh) 表示KV压缩的维度

在推理过程中,MLA仅使用包含 d c l d_cl dcl个元素的KV Cache c t K V c^{KV}_t ctKV l l l为层数。

进一步利用低秩压缩分解 q q q,有:

c t Q = W D Q h t \bold{c}^Q_t=W^{DQ}\bold{h}_t ctQ=WDQht

q t C = W U Q c t Q \bold{q}^C_t=W^{UQ}\bold{c}^Q_t qtC=WUQctQ

其中, c t Q ∈ R d c ′ \bold{c}^Q_t\in\mathbb{R}^{d'_c} ctQRdc d c ′ ( < < d h n h ) d'_c (<<d_hn_h) dc(<<dhnh) q q q压缩的维度, W D Q ∈ R d c ′ × d W^{DQ}\in\mathbb{R}^{d'_c\times d} WDQRdc×d W U Q ∈ R d h n h × d c ′ W^{UQ}\in \mathbb{R}^{d_hn_h\times d'_c} WUQRdhnh×dc

MLA Comparison

Decoupled Rotary Position Embedding

RoPE紧耦合将导致 W U K W^{UK} WUK无法被 W Q W^Q WQ吸收,因为与当前生成的标记相关的 RoPE 矩阵将位于 W Q W^Q WQ W U K W^{UK} WUK 之间,并且矩阵乘法不遵循交换定律

[ q t , 1 R ; q t , 2 R ; ⋯   ; q t , n h R ] = q t R = R o P E ( W Q R c t Q ) [\bold{q}^R_{t,1};\bold{q}^R_{t,2};\cdots;\bold{q}^R_{t,n_h}]=\bold{q}^R_t=RoPE(W^{QR}\bold{c}^Q_t) [qt,1R;qt,2R;;qt,nhR]=qtR=RoPE(WQRctQ)

k t R = R o P E ( W K R h t ) \bold{k}^R_t=RoPE(W^{KR}\bold{h}_t) ktR=RoPE(WKRht)

q t , i = [ q t , i C ; q t , i R ] \bold{q}_{t,i}=[\bold{q}^C_{t,i};\bold{q}^R_{t,i}] qt,i=[qt,iC;qt,iR]

k t , i = [ k t , i C ; k t R ] \bold{k}_{t,i}=[\bold{k}^C_{t,i};\bold{k}^R_t] kt,i=[kt,iC;ktR]

o t , i = ∑ j = 1 t S o f t m a x j ( q t , i ⊤ d h + d h R ) v j , i C \bold{o}_{t,i}=\sum^t_{j=1}Softmax_j(\frac{\bold{q}^\top_{t,i}}{\sqrt{d_h+d^R_h}})\bold{v}^C_{j,i} ot,i=j=1tSoftmaxj(dh+dhR qt,i)vj,iC

u t = W O [ o t , 1 ; o t , 2 ; ⋯   ; o t , n h ] \bold{u}_t=W^O[\bold{o}_{t,1};\bold{o}_{t,2};\cdots;\bold{o}_{t,n_h}] ut=WO[ot,1;ot,2;;ot,nh]

W Q R ∈ R d h R n h × d c ′ W^{QR}\in \mathbb{R}^{d^R_hn_h\times d'_c} WQRRdhRnh×dc W K R ∈ R d h R × d W^{KR}\in\mathbb{R}^{d^R_h}\times d WKRRdhR×d R o P E ( ⋅ ) RoPE(\cdot) RoPE()表示应用RoPe矩阵, [ ⋅ ; ⋅ ] [\cdot;\cdot] []表示拼接操作

因此,Deepseek-V2只要求 ( d c + d h R ) l (d_c+d^R_h)l (dc+dhR)l个元素的KV cache

Alignment

Supervised Fine-Tuning

数据集:共1.5M个样本作为指令调优数据集,1.2M 个用于有用的实例、0.3M个用于安全目的,并提高了数据质量

训练细节:2个epoch微调,学习率 5 × 1 0 − 6 5\times 10^{-6} 5×106

IFEval作为指令遵循评估

Reinforcement Learning

训练算法:GRPO

训练策略:

  1. 训练一个推理奖励模型 R M r e a s o n i n g RM_{reasoning} RMreasoning用于代码与推理任务,优化策略模型: r i = R M r e a s o n i n g ( o i ) r_i=RM_{reasoning}(o_i) ri=RMreasoning(oi)
  2. 人类偏好对齐:利用多奖励框架,包有用性奖励模型 R M h e l p f u l RM_{helpful} RMhelpful、安全性奖励模型 R M s a f e t y RM_{safety} RMsafety、规则约束的奖励模型 R M r u l e ( O i ) RM_{rule}(O_i) RMrule(Oi),有: r i = c 1 ⋅ R M h e l p f u l ( o i ) + c 2 ⋅ R M s a f e t y ( o i ) + c 3 ⋅ R M r u l e ( o i ) r_i=c_1 \cdot RM_{helpful(o_i)}+c_2\cdot RM_{safety}(o_i)+c_3\cdot RM_{rule}(o_i) ri=c1RMhelpful(oi)+c2RMsafety(oi)+c3RMrule(oi)

Deepseek V3

论文:DeepSeek-V3 Technical Report

单位:DeepSeek AI

Astract

DeepSeek V3,规模671B,激活模型37B

技术点:

  1. MLA
  2. DeepSeek MoE
  3. 辅助无损策略:auxiliary-loss-free strategy
  4. 多令牌预测训练目标
  5. DualPipe算法
  6. GRPO + SFT对齐

训练时间:2.788M H800 GPU小时

Introduction

模型结构:DeepSeek-MoE + MLA

预训练策略:auxiliary-loss-free策略,FP8混合精度训练框架

并行算法:DualPipe算法

两阶段上下文预训练:

  • 第一阶段:32K上下文拓展
  • 第二阶段:128K上下文拓展
  • 数据量:14.8T 高质量多样化Token

后训练:

  • 从DeepSeek-R1系列模型中蒸馏推理能力
  • 基本思想:SFT + RL (GRPO)

Architecture

Basic Architecture

沿用V2架构,MLA + DeepSeek MoE

DeepSeek V3

Multi-Head Latent Attention

基本不变。

c t K V = W D K V h t \bold{c}^{KV}_t=W^{DKV}\bold{h}_t ctKV=WDKVht (需要caching)

[ k t , 1 C ; k t , 2 C ; ⋯   ; k t , n h C ] = k t C = W U K c t K V [\bold{k}^C_{t,1};\bold{k}^C_{t,2};\cdots;\bold{k}^C_{t,n_h}]=\bold{k}^C_t=W^{UK}\bold{c}^{KV}_t [kt,1C;kt,2C;;kt,nhC]=ktC=WUKctKV

k t R = R o P E ( W K R h t ) \bold{k}^R_t=RoPE(W^{KR}\bold{h}_t) ktR=RoPE(WKRht) (需要caching)

k t , i = [ k t , i C ; k t R ] \bold{k}_{t,i}=[\bold{k}^C_{t,i};\bold{k}^R_t] kt,i=[kt,iC;ktR]

v t C = W U V c t K V \bold{v}^C_t=W^{UV}\bold{c}^{KV}_t vtC=WUVctKV

对于Attention queries,使用低秩压缩:

c t Q = W D Q h t \bold{c}^Q_t=W^{DQ}\bold{h}_t ctQ=WDQht

[ q t , 1 C ; q t , 2 C ; ⋯   ; q t , n h C ] = q t C = W U Q c t Q [\bold{q}^C_{t,1};\bold{q}^C_{t,2};\cdots;\bold{q}^C_{t,n_h}]=\bold{q}^C_t=W^{UQ}\bold{c}^Q_t [qt,1C;qt,2C;;qt,nhC]=qtC=WUQctQ

[ q t , 1 R ; q t , 2 R ; ⋯   ; q t , n h R ] = q t R = R o P E ( W Q R c t Q ) [\bold{q}^R_{t,1};\bold{q}^R_{t,2};\cdots;\bold{q}^R_{t,n_h}]=\bold{q}^R_t=RoPE(W^{QR}\bold{c}^Q_t) [qt,1R;qt,2R;;qt,nhR]=qtR=RoPE(WQRctQ)

q t , i = [ q t , i C ; q t , i R ] \bold{q}_{t,i}=[\bold{q}^C_{t,i};\bold{q}^R_{t,i}] qt,i=[qt,iC;qt,iR]

o t , i = ∑ j = 1 t S o f t m a x j ( q t , i ⊤ d h + d h R ) v j , i C \bold{o}_{t,i}=\sum^t_{j=1}Softmax_j(\frac{\bold{q}^\top_{t,i}}{\sqrt{d_h+d^R_h}})\bold{v}^C_{j,i} ot,i=j=1tSoftmaxj(dh+dhR qt,i)vj,iC

u t = W O [ o t , 1 ; o t , 2 ; ⋯   ; o t , n h ] \bold{u}_t=W^O[\bold{o}_{t,1};\bold{o}_{t,2};\cdots;\bold{o}_{t,n_h}] ut=WO[ot,1;ot,2;;ot,nh]

DeepSeekMoE with Auxiliary-Loss-Free Load Balancing

基本的DeepSeekMoE:跟v2有点区别,先sigmoid之后算分数

h t ′ = u t + ∑ i = 1 N s F F N i ( s ) ( u t ) + ∑ i = 1 N r g i , t F F N i ( r ) ( u t ) \bold{h}'_t=\bold{u}_t+\sum^{N_s}_{i=1}FFN^{(s)}_i(\bold{u}_t)+\sum^{N_r}_{i=1}g_{i,t}FFN_i^{(r)}(\bold{u}_t) ht=ut+i=1NsFFNi(s)(ut)+i=1Nrgi,tFFNi(r)(ut)

g i , t = g i , t ′ ∑ j = 1 N r g j , t ′ g_{i,t}=\frac{g'_{i,t}}{\sum^{N_r}_{j=1}g'_{j,t}} gi,t=j=1Nrgj,tgi,t

g i , t ′ = { s i , t s i , t ∈ T o p K ( { s j , t ∣ 1 ≤ j ≤ N r } , K r ) 0 o t h e r w i s e g'_{i,t}=\begin{cases}s_{i,t} & s_{i,t}\in TopK(\{s_{j,t}|1\leq j \leq N_r\},K_r)\\ 0 & otherwise\end{cases} gi,t={si,t0si,tTopK({sj,t∣1jNr},Kr)otherwise

s i , t = S i g m o i d ( u t ⊤ e i ) s_{i,t}=Sigmoid(\bold{u}^{\top}_t\bold{e}_i) si,t=Sigmoid(utei)

辅助无损负载均衡 (Auxiliary-Loss-Free Load Balancing)

效果:在负载均衡和模型性能之间实现更好的权衡

为每个专家引入bias b i b_i bi,添加到 s i , t s_{i,t} si,t,以确定前 K K K个路由: g i , t ′ = { s i , t s i , t + b i ∈ T o p K ( { s j , t + b j ∣ 1 ≤ j ≤ N r } , K r ) 0 o t h e r w i s e g^{'}_{i,t}=\begin{cases}s_{i,t} & s_{i,t} + b_i \in TopK(\{s_{j,t}+b_j|1\leq j\leq N_r\},K_r)\\ 0 & otherwise\end{cases} gi,t={si,t0si,t+biTopK({sj,t+bj∣1jNr}Kr)otherwise

其中 b i b_i bi仅用于路由,在每个步骤结束后,如果相应的专家超载了,将偏差衰减 γ \gamma γ,若负载不足,则增加 γ \gamma γ,为 b i b_i bi更新速度的超参数

互补序列辅助损失 (Complementary Sequence-Wise Auxiliary Loss)

基于DeepSeek MoE的平衡损失推导而出。

L B a l = α ∑ i = 1 N r f i P i L_{Bal}=\alpha\sum^{N_r}_{i=1}f_iP_i LBal=αi=1NrfiPi

f i = N r K r T ∑ t = 1 T 1 ( s i , t ∈ T o p K ( { s j , t ∣ 1 ≤ j ≤ N r } , K r ) ) f_i=\frac{N_r}{K_rT}\sum^T_{t=1}\mathbb{1}(s_{i,t}\in TopK(\{s_{j,t}|1\leq j \leq N_r\}, K_r)) fi=KrTNrt=1T1(si,tTopK({sj,t∣1jNr},Kr))

s i , t ′ = s i , t ∑ j = 1 N r s j , t s^{'}_{i,t}=\frac{s_{i,t}}{\sum^{N_r}_{j=1}s_{j,t}} si,t=j=1Nrsj,tsi,t (不同于之前的专家级平衡损失之处,亲和力分数做了归一化)

P i = 1 T ∑ t = 1 T s i , t ′ P_i=\frac{1}{T}\sum^T_{t=1}s^{'}_{i,t} Pi=T1t=1Tsi,t

更多的技巧:

  1. 节点有限路由:使用受限路由机制来限制训练期间的通信成本
  2. 无token丢失:DeepSeek-V3 在训练期间不会掉落任何标记
Multi-Token Prediction

设定了多token预测 (MTP) 目标,将预测范围扩展到每个位置的多个后续token。

MTP

作用:

  1. 提高数据效率,使训练信号更加稠密
  2. MTP 可能使模型能够预先规划其表示形式,以便更好地预测后续的token

与传统的MTP不同:按顺序预测额外的 Token,并在每个预测深度保留完整的因果链

MTP模块:使用 D D D个序列模块预测 D D D个额外的token,第 k k k个MTP模块包含了共享的嵌入层 E m b ( ⋅ ) Emb(\cdot) Emb()、共享的输出头 O u t H e a d ( ⋅ ) OutHead(\cdot) OutHead(),一个Transformer块 T R M k ( ⋅ ) TRM_k(\cdot) TRMk(),一个拼接矩阵 M k ∈ R d × 2 d M_k\in \mathbb{R}^{d\times 2d} MkRd×2d

对于第 i i i个输入token为 t i t_i ti,在第 k k k个预测深度时,首先联合第 i i i个token在第 ( k − 1 ) (k-1) (k1)个深度的表示 h i k − 1 ∈ R d h^{k-1}_i\in \mathbb{R}^d hik1Rd以及第 ( i + k ) (i+k) (i+k)个token的嵌入 E m b ( t i + k ) ∈ R d Emb(t_{i+k})\in \mathbb{R}^d Emb(ti+k)Rd,用线性拼接:

h i ′ k = M k [ R M S N o r m ( h i k − 1 ) ; R M S N o r m ( E m b ( t i + k ) ) ] \bold{h}^{'k}_i=M_k[RMSNorm(\bold{h}^{k-1}_i);RMSNorm(Emb(t_{i+k}))] hik=Mk[RMSNorm(hik1);RMSNorm(Emb(ti+k))]

k k k为1时,为main model的表示

联合的 h i ′ k \bold{h}^{'k}_i hik作为第 k k k深度的Transofmrer块输入,输出当前深度的 h i k \bold{h}^k_i hik h 1 : T − k k = T R M k ( h 1 : T − k ′ k ) \bold{h}^k_{1:T-k}=TRM_k(h^{'k}_{1:T-k}) h1:Tkk=TRMk(h1:Tkk)

其中 T T T为输入的序列长度, i : j i:j i:j表示切片操作。最后将 h i k \bold{h}^k_i hik作为输入,通过共享输出头计算第 k k k个额外预测的token的概率分布 p i + 1 + k k ∈ R V p^k_{i+1+k}\in \mathbb{R}^V pi+1+kkRV,其中 V V V为词表长度: p i + k + 1 k = O u t H e a d ( h i k ) p^k_{i+k+1}=OutHead(h^k_i) pi+k+1k=OutHead(hik)

输出头 O u t H e a d ( ⋅ ) OutHead(\cdot) OutHead()线性地映射输出并应用 S o f t m a x ( ⋅ ) Softmax(\cdot) Softmax()计算预测的第 k k k个token概率分布

维持预测因果链的原理与 EAGLE 相似,但通过MTP改善训练

MTP训练目标:交叉熵, L M T P k = CrossEntropy ( p 2 + k : T + 1 k , t 2 + k : T + 1 ) = − 1 T ∑ i = 2 + k T + 1 log ⁡ P i k [ t i ] L^k_{MTP}=\text{CrossEntropy}(p^k_{2+k:T+1},t_{2+k:T+1})=-\frac{1}{T}\sum^{T+1}_{i=2+k}\log P^k_i[t_i] LMTPk=CrossEntropy(p2+k:T+1k,t2+k:T+1)=T1i=2+kT+1logPik[ti]

T T T表示为输入长度, t i t_i ti表示预测的第 i i i个位置的token, p i k [ t i ] p^k_{i}[t_i] pik[ti] t i t_i ti对应的概率分布。最后,引入权重因子 λ \lambda λ计算MTP的额外训练目标: L M T P = λ D ∑ k = 1 D L M T P k L_{MTP}=\frac{\lambda}{D}\sum^D_{k=1}L^k_{MTP} LMTP=Dλk=1DLMTPk

MTP推理:可直接丢弃MTP模块,通过主模型推理

Infrastructures

对这块外行就没细看了,截了技术示意图跟示例。

DualPipe and Computation-Communication Overlap

这里涉及的并行计算算法,如图示所示:

DualPipe

例子:

Example 1

FP8 Mixed Precision Framework

FP8 Mixed Precision

Fine-Grained Quantization:

fine-grained quantization method

DeepSeek-R1

论文:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

单位:DeepSeek AI

Abstract

R1-Zero:纯强化学习训练的模型,展现了可观的推理能力

R1:在强化学习之前进行多阶段训练与引入冷启动数据

Introduction

问题:

  1. 有效测试时间扩展的挑战仍然是研究界的一个悬而未决的问题
  2. 已有方法都没有达到与 OpenAI 的 o1 系列模型相当的一般推理性能。

目标:探索 LLM 在没有任何监督数据的情况下发展推理能力的潜力,专注于它们通过纯 RL 过程的自我进化。

技术路线:DeepSeek-V3-Base作为基础模型,GRPO作为RL训练框架

DeepSeek-Zero出现的问题:低可读性、语言混淆

方法:DeepSeek-R1

  1. 数千条冷启动数据微调DeepSeek-V3-Base模型
  2. 应用基于推理的RL (DeepSeek-R1Zero)
  3. 在RL过程中接近收敛后,对RL的检查点进行拒绝采样创建新的SFT数据,结合来自DeepSeek-V3的监督数据(如写作、事实QA、自我认知等),重新训练DeepSeek-V3-Base模型
  4. 此后再次进行额外的RL过程,考虑所有场景的提示词

此后,探索了DeepSeek-R1以蒸馏更小的模型

Approach

DeepSeek-R1-Zero: Reinforcement Learning on the Base Model

强化学习

优化目标:

J G R P O ( θ ) = E [ q ∼ P ( Q ) , { o i } i = 1 G ∼ π θ o l d ( O ∣ q ) ] 1 G ∑ i = 1 G ( min ⁡ [ π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) A i , c l i p ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) , 1 − ϵ , 1 + ϵ ) A i ] − β D K L ( π θ ∣ ∣ π r e f ) ) J_{GRPO}(\theta)=\mathbb{E}[q\sim P(Q), \{o_i\}^G_{i=1}\sim \pi_{\theta_{old}}(O|q)]\frac{1}{G}\sum^G_{i=1}(\min[\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)}A_{i},clip(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)},1-\epsilon, 1+\epsilon)A_{i}]-\beta\mathbb{D}_{KL}(\pi_{\theta}||\pi_{ref})) JGRPO(θ)=E[qP(Q),{oi}i=1Gπθold(Oq)]G1i=1G(min[πθold(oiq)πθ(oiq)Ai,clip(πθold(oiq)πθ(oiq),1ϵ,1+ϵ)Ai]βDKL(πθ∣∣πref))

其中 ϵ \epsilon ϵ β \beta β为超参数, A ^ i , t \hat{A}_{i,t} A^i,t为相关输出奖励的优势, D K L ( π θ ∣ ∣ π r e f ) = π r e f ( o i ∣ q ) π θ ( o i ∣ q ) − log ⁡ π r e f ( o i ∣ q ) π θ ( o i ∣ q ) − 1 > 0 \mathbb{D}_{KL}(\pi_\theta||\pi_{ref})=\frac{\pi_{ref}(o_{i}|q)}{\pi_\theta(o_{i}|q)}-\log{\frac{\pi_{ref}(o_{i}|q)}{\pi_\theta(o_{i}|q)}}-1 > 0 DKL(πθ∣∣πref)=πθ(oiq)πref(oiq)logπθ(oiq)πref(oiq)1>0

对于每组奖励 { r 1 , r 2 , ⋯   , r G } \{r_1,r_2,\cdots, r_G\} {r1,r2,,rG},有: A i = r i − m e a n ( { r 1 , r 2 , ⋯   , r G } ) s t d ( { r 1 , r 2 , ⋯   , r G } ) A_i=\frac{r_i-mean(\{r_1,r_2,\cdots,r_G\})}{std(\{r_1,r_2,\cdots,r_G\})} Ai=std({r1,r2,,rG})rimean({r1,r2,,rG})

奖励建模

基于规则的两种奖励,没有应用process neural reward model或outcome neural reward model

  • 准确奖励:准确率奖励模型评估响应是否正确
  • 格式奖励:将它的思考过程放在 <think></think>标签之间

训练模板

A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>.
User: prompt.
Assistant:

顿悟时刻

aha moment

缺陷:糟糕的可读性,语言混淆

DeepSeek-R1: Reinforcement Learning with Cold Start

两个问题:

  1. 通过纳入少量高质量数据作为冷启动,是否可以进一步提高推理性能或加速收敛?
  2. 我们如何训练一个用户友好的模型,该模型不仅产生清晰连贯的思维链 (CoT),而且还展示了强大的通用能力?

来源:X

冷启动数据微调

  • 数据获取:以长 CoT 的 few-shot prompting 为例,直接提示模型通过反射和验证生成详细的答案,以可读格式收集 DeepSeek-R1-Zero 输出,并通过人工标注者进行后处理来提炼结果
  • 冷启动特点:
    • 高可读性:在为 DeepSeek-R1 创建冷启动数据时,我们设计了一个可读的模式,在每个响应的末尾包含一个摘要,并过滤掉对读者不友好的响应。在这里,我们将输出格式定义为 |special_token|<reasoning_process>|special_token|<summary>,其中推理过程是查询的 CoT,摘要用于总结推理结果
    • 可能性:通过使用人类先验仔细设计冷启动数据的模式,我们观察到与 DeepSeek-R1-Zero 相比性能更好

面向推理的强化学习

  • 目的:增强在推理密集型任务上的推理能力
  • CoT中混淆不同语言 -> 引入语言一致性奖励,计算目标语言词在 CoT 中的比例 -> 可能损失推理性能,但显著提升了可读性

拒绝采样与有监督微调

  • 目的:整合来自其他域的数据,以增强模型在编写、角色扮演和其他通用任务方面的能力
  • 推理数据:600k,通过RL训练的拒绝采样获取,将RL多次生成的答案投喂到DeepSeek-V3进行判断
  • 非推理数据:200K,Deepseek pipeline,复用Deepseek-v3 SFT部分数据。对于特定的非推理任务,调用DeepSeek-V3在回答问题之前生成CoT。

适用于所有场景的强化学习

  • 目的:对齐人类偏好
  • 使用奖励信号与多元化提示分布的组合训练模型
  • 对于推理数据:利用基于规则的奖励引导学习过程
  • 对于通用数据:采用奖励模型来捕捉复杂而细微的场景中的人类偏好
Distillation: Empower Small Models with Reasoning Capability

拒绝采样DeepSeek-R1的800K数据进行微调,见上图所示的过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/983209.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

海思Hi3516DV300交叉编译opencv

OpenCV是一个开源的跨平台计算机视觉库&#xff0c;支持C、Python等多种语言&#xff0c;适用于图像处理、目标检测、机器学习等任务。其核心由C编写&#xff0c;高效轻量&#xff0c;提供实时视觉处理功能&#xff0c;广泛应用于工业自动化、医疗影像等领域。 1 环境准备 1…

React + React-intl @3.xx + TypeScript

声明&#xff1a;此篇文章使用的版本是 "react-intl": "^3.12.0"。 因为react-intl3.xx版本相较于react-intl2.xx版本差别较大&#xff0c;有些API是break change, 所以这篇文章的实现方式&#xff0c;不适用于react-intl2.xx版本。 一: 安装react-intl np…

(二 十 二)趣学设计模式 之 备忘录模式!

目录 一、 啥是备忘录模式&#xff1f;二、 为什么要用备忘录模式&#xff1f;三、 备忘录模式的实现方式四、 备忘录模式的优缺点五、 备忘录模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;…

20250307确认荣品PRO-RK3566开发板在Android13下的以太网络共享功能

20250307确认荣品PRO-RK3566开发板在Android13下的以太网络共享功能 2025/3/7 13:56 缘起&#xff1a;我司地面站需要实现“太网络共享功能”功能。电脑PC要像连接WIFI热点一样连接在Android设备/平板电脑上来实现上网功能/数据传输。 Android设备/平板电脑通过4G/WIFI来上网。…

HMC7043和HMC7044芯片配置使用

一,HMC7043芯片 MC7043独特的特性是对14个通道分别进行独立灵活的相位管理。所有14个通道均支持频率和相位调整。这些输出还可针对50 Ω或100 Ω内部和外部端接选项进行编程。HMC7043器件具有RF SYNC功能,支持确定性同步多个HMC7043器件,即确保所有时钟输出从同一时钟沿开始…

RSA的理解运用与Pycharm组装Cryptodome库

1、RSA的来源 RSA通常指基于RSA算法的密码系统&#xff0c;令我没想到的是&#xff0c;其名字的来源竟然不是某个含有特别意义的单词缩写而成&#xff08;比如PHP&#xff1a;Hypertext Preprocessor(超文本预处理器)&#xff09;&#xff0c;而是由1977年提出该算法的三个歪果…

嵌入式 ARM Linux 系统构成(3):根文件系统(Root File System)

目录 一、根文件系统的原理与重要性 二、根文件系统的构成 2.1. 基本目录结构 2.2. 核心组件 2.3. 设备驱动 2.4. 网络工具和协议 2.5. 调试工具 三、根文件系统的制作方法 四、根文件系统的测试 五、构建根文件系统的关键技术 5.1. 最小化构建工具 5.2. 关键配置文…

SpringBoot知识点及其源码解析(1)

自动配置 以web启动器为例&#xff0c;在spring-boot-starter-test-3.4.3.pom文件整合了一系列的依赖&#xff0c;那么当启动程序后会不会进行自动配置&#xff1f;当获取到这个容器后&#xff0c;可以从容器中获取所有bean的名字&#xff0c;此时就可以在控制台发现很多bean的…

网络安全配置截图 网络安全i

网络安全概念及规范 1.网络安全定义 网络安全的概述和发展历史 网络安全 广义的网络安全&#xff1a;Cyber Security&#xff08;网络空间安全&#xff09; 网络空间有独立且相互依存的信息基础设施和网络组成&#xff0c;包括互联网、电信网、计算机系统、嵌入式处理器和控…

【ThreeJS Basics 09】Debug

文章目录 简介从 dat.GUI 到 lil-gui例子安装 lil-gui 并实例化不同类型的调整改变位置针对非属性的调整复选框颜色 功能/按钮调整几何形状文件夹调整 GUI宽度标题关闭文件夹隐藏按键切换 结论 简介 每一个创意项目的一个基本方面是能够轻松调整。开发人员和参与项目的其他参与…

第六课:数据存储三剑客:CSV/JSON/MySQL

在Python的数据存储与处理领域&#xff0c;CSV、JSON和MySQL被广大开发者誉为“数据存储三剑客”。它们各自在不同的场景下发挥着重要作用&#xff0c;无论是简单的数据交换、轻量级的数据存储&#xff0c;还是复杂的关系型数据库管理&#xff0c;都能找到它们的身影。本文将详…

CSS设置文字渐变色样式(附带动画效果)

最近用DeepSeek问了一下如何使用css设置文字的渐变色效果&#xff0c;并且希望可以有动画效果&#xff0c;然而DeepSeek给出的答案动画效果有些bug&#xff0c;于是自己动手改了改。 下面是CSS样式设置代码 .gradient-text {background-image: linear-gradient(to right, #ff6…

三维建模与视频融合(3D-Video Integration)技术初探。

三维建模与视频融合&#xff08;3D-Video Integration&#xff09;是一种将虚拟三维模型无缝嵌入实拍视频场景的技术&#xff0c;广泛应用于影视特效、增强现实&#xff08;AR&#xff09;、游戏开发、广告制作 、视频监控 等领域。 一、技术核心流程 三维建模与动画 使用工具…

electron + vue3 + vite 主进程到渲染进程的单向通信

用示例讲解下主进程到渲染进程的单向通信 初始版本项目结构可参考项目&#xff1a;https://github.com/ylpxzx/electron-forge-project/tree/init_project 主进程到渲染进程&#xff08;单向&#xff09; 以Electron官方文档给出的”主进程主动触发动作&#xff0c;发送内容给渲…

第八节:基于Winform框架的串口助手小项目---完结优化《C#编程》

C# 实战串口助手完成&#xff01; ----------------------------不竭余力&#xff0c;方能成长&#xff01;-----------WHAPPY 源码&#xff1a;我会分享开源平台&#xff0c;可以艾特me&#xff01;&#xff08;2025/3/5&#xff09;时间紧张任务中&#xff01; 文章上所说的…

SpringBoot接入DeepSeek(硅基流动版)+ 前端页面调试(WebSocket连接模式)

文章目录 前言正文一、项目环境二、项目代码2.1 pom.xml2.2 DeepSeekController.java2.3 启动类2.4 logback-spring.xml2.5 application.yaml2.6 WebsocketConfig.java2.7 AiChatWebSocketHandler.java2.8 SaveChatSessionParamRequest.java2.9 index.html 三、页面调试3.1 主页…

计算机视觉之dlib人脸关键点绘制及微笑测试

dlib人脸关键点绘制及微笑测试 目录 dlib人脸关键点绘制及微笑测试1 dlib人脸关键点1.1 dlib1.2 人脸关键点检测1.3 检测模型1.4 凸包1.5 笑容检测1.6 函数 2 人脸检测代码2.1 关键点绘制2.2 关键点连线2.3 微笑检测 1 dlib人脸关键点 1.1 dlib dlib 是一个强大的机器学习库&a…

进程控制 ─── linux第15课

目录 进程控制 1.进程创建 fork函数 写时拷贝 fork常规用法 fork调用失败的原因 进程终止 进程退出的场景 退出码 ​编辑 进程终止的方法 _exit函数 exit函数 exit与_exit 进程等待 进程等待必要性 进程等待的方法(wait 和waitpid) 阻塞非阻塞问题 ​编辑 非…

Kubernetes 的正式安装

1.基础的网络结构说明 软件路由器 ikuai 当然同一个仅主机模式 相当于在 同一个我们所谓的广播域内 所以相当于它们的几张网卡 是被连接起来的 为了防止出现问题 我们可以把第二块网卡临时关闭一下 2.准备路由器 ikuai 爱快 iKuai-商业场景网络解决方案提供商 (ikuai8.com)…

【为什么会有 map、weakmap 类型?】

为什么会有 map、weakmap 类型? 传统对象的局限性催生 Map‌1. 键类型单一性‌2. 有序性与迭代支持‌3. 性能优化场景‌ 内存管理需求催生 WeakMap‌1.弱引用机制‌2. 私有数据存储‌3. 规避循环引用问题‌ 总结 传统对象的局限性催生 Map‌ 1. 键类型单一性‌ 传统对象&…