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 m?N個規模,同時激活 m ? K m\cdot K m?K個模型,以允許更靈活地組合已激活的專家
  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:Tl?1?)+h1:Tl?1?

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,t?FFNi?(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,t?0?si,t?TopK({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?(utl??eil?)

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,t?FFNi?(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,t?0?si,t?TopK({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?(utl??eil?)

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=1Ks??FFNi?(utl?)+i=1mN?(gi,t?FFNi?(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,t?0?si,t?TopK({sj,t?∣1jmN},mK?Ks?)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?(utl??eil?)

Load Balance Consideration

Expert-Level Balance Loss: 其中 α 1 \alpha_1 α1?為專家級平衡超參數, N ′ N' N ( m N ? K s ) (mN-K_s) (mN?Ks?) K ′ K' K ( m K ? K s ) (mK-K_s) (mK?Ks?) 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?=α1?i=1N?fi?Pi?

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?=KTN?t=1T?1(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?=T1?t=1T?si,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?=α2?i=1D?fi?Pi?

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

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

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)]o1?t=1o?min[πθold??(ot?q,o<t?)πθ?(ot?q,o<t?)?At?,clip(πθold??(ot?q,o<t?)πθ?(ot?q,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?(ot?q,o<t?)πθ?(ot?q,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)]G1?i=1G?oi?1?t=1oi??{min[πθold??(oi,t?q,oi,<t?)πθ?(oi,t?q,oi,<t?)?A^i,t?,clip(πθold??(oi,t?q,oi,<t?)πθ?(oi,t?q,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,t?q,oi,<t?)πref?(oi,t?q,oi,<t?)??logπθ?(oi,t?q,oi,<t?)πref?(oi,t?q,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)ri??mean(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)t?r 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=1Ns??FFNi(s)?(ut?)+i=1Nr??gi,t?FFNi(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,t?0?si,t?TopK({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?(ut??ei?)

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 ht?Rd,首先分別乘以三個矩陣得到 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} vt?Rdn?nh?,通過三個矩陣 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} WVRdh?nh?×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=1t?Softmaxj?(dh? ?qt,i??kj,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,i?Rdn? W O ∈ R d × d h n h W^O\in \mathbb{R}^{d\times d_hn_h} WORd×dh?nh?

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} ctKV?Rdc?, 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,WUVRdh?nh?×dc?是向上投影K、V的矩陣, d c ( < < d h n h ) d_c(<<d_hn_h) dc?(<<dh?nh?) 表示KV壓縮的維度

在推理過程中,MLA僅使用包含 d c l d_cl dc?l個元素的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} ctQ?Rdc? d c ′ ( < < d h n h ) d'_c (<<d_hn_h) dc?(<<dh?nh?) 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} WUQRdh?nh?×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,nh?R?]=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=1t?Softmaxj?(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} WQRRdhR?nh?×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×10?6

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?=c1??RMhelpful(oi?)?+c2??RMsafety?(oi?)+c3??RMrule?(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,nh?C?]=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,nh?C?]=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,nh?R?]=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=1t?Softmaxj?(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=1Ns??FFNi(s)?(ut?)+i=1Nr??gi,t?FFNi(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=1Nr??gj,t?gi,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,t?0?si,t?TopK({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(ut??ei?)

輔助無損負載均衡 (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,t?0?si,t?+bi?TopK({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=1Nr??fi?Pi?

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?=Kr?TNr??t=1T?1(si,t?TopK({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=1Nr??sj,t?si,t?? (不同于之前的專家級平衡損失之處,親和力分數做了歸一化)

P i = 1 T ∑ t = 1 T s i , t ′ P_i=\frac{1}{T}\sum^T_{t=1}s^{'}_{i,t} Pi?=T1?t=1T?si,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} Mk?Rd×2d

對于第 i i i個輸入token為 t i t_i ti?,在第 k k k個預測深度時,首先聯合第 i i i個token在第 ( k ? 1 ) (k-1) (k?1)個深度的表示 h i k ? 1 ∈ R d h^{k-1}_i\in \mathbb{R}^d hik?1?Rd以及第 ( 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(hik?1?);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:T?kk?=TRMk?(h1:T?kk?)

其中 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+kk?RV,其中 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?)=?T1?i=2+kT+1?logPik?[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=1D?LMTPk?

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)]G1?i=1G?(min[πθold??(oi?q)πθ?(oi?q)?Ai?,clip(πθold??(oi?q)πθ?(oi?q)?,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?)=πθ?(oi?q)πref?(oi?q)??logπθ?(oi?q)πref?(oi?q)??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?})ri??mean({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數據進行微調,見上圖所示的過程。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71604.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71604.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71604.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MyBatis @Param 注解詳解:多參數傳遞與正確使用方式

Param 注解主要用于 MyBatis 進行參數傳遞時給 SQL 語句中的參數 起別名&#xff0c;通常用于 多參數 方法&#xff0c;使參數在 XML Mapper 文件或注解 SQL 語句中更清晰易用。 1. 基本用法 在 Mapper 接口中使用 Param 來為參數命名&#xff0c;避免 MyBatis 解析時出現參數…

OpenBMC:BmcWeb connect讀取http請求

OpenBMC:BmcWeb構造connect對象-CSDN博客 OpenBMC:BmcWeb server.run-CSDN博客 1.構造了connect對象后,通過connection->start()開始處理來自客戶端的請求 //http\http_connection.hpp void start() {...startDeadline();readClientIp();boost::beast::async_detect_ssl…

SparkStreaming之04:調優

SparkStreaming調優 一 、要點 4.1 SparkStreaming運行原理 深入理解 4.2 調優策略 4.2.1 調整BlockReceiver的數量 案例演示&#xff1a; object MultiReceiverNetworkWordCount {def main(args: Array[String]) {val sparkConf new SparkConf().setAppName("Networ…

軟考初級程序員知識點匯總

以下是計算機技術與軟件專業技術資格&#xff08;水平&#xff09;考試&#xff08;簡稱“軟考”&#xff09;中 程序員&#xff08;初級&#xff09; 考試的核心知識點匯總&#xff0c;涵蓋考試大綱的主要方向&#xff0c;幫助你系統復習&#xff1a; 一、計算機基礎 計算機組…

Gauss數據庫omm用戶無法連接處理

確保gauss數據庫服務已經打開 重啟gauss服務 gs_om -t restart 連接gauss gsql -d postgres -p 26000 -r 結果發現 查看數據庫運行情況 gs_om -t status --detail 我們可以看到 cluster_state 的值是 Unavailable 不可用 那么問題大概率是出現在了這里 然后我們再查看一…

36-Openwrt wifi命令工具iwconfig、iwinfo、iwpriv、iwlist

增對wifi的調試命令有很多,這邊列出我們常用的命令提供參考,方便查看信息定位問題。 1、iwconfig 查看當前 WIFI 的工作信道以及工作帶寬模式: root@openwrt:/# iwconfig ra0 ra0 mt7603e ESSID:"openwrt" Mode:Managed Channel:8 Access Point: DC:4B…

Android 低功率藍牙之BluetoothGattDescriptor詳解

BluetoothGattDescriptor 詳解 BluetoothGattDescriptor 是 Android 中用于表示藍牙低功耗&#xff08;BLE&#xff09;設備中 GATT&#xff08;Generic Attribute Profile&#xff09;描述符 的類。描述符是 GATT 架構中的一種屬性&#xff0c;用于提供關于 特征值&#xff0…

計算機畢業設計Python+DeepSeek-R1大模型醫療問答系統 知識圖譜健康膳食推薦系統 食譜推薦系統 醫療大數據(源碼+LW文檔+PPT+講解)

溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 溫馨提示&#xff1a;文末有 CSDN 平臺官方提供的學長聯系方式的名片&#xff01; 作者簡介&#xff1a;Java領…

數字體驗推薦TOP8提升用戶參與

數字內容體驗推薦核心優勢 在數字化競爭日益激烈的市場環境中&#xff0c;數字內容體驗的差異化優勢已成為企業突圍的關鍵。通過智能算法驅動的個性化推薦系統&#xff0c;能夠精準捕捉用戶行為軌跡與興趣偏好&#xff0c;實現內容與受眾的動態匹配。這種技術不僅顯著提升頁面…

【每日學點HarmonyOS Next知識】動圖循環播放、監聽tab切換、富文本上下滾動、tab默認居中、a標簽喚起撥號

1、image加載網絡動圖播放一遍后不再播放,有什么方法可以 設置循環播放 目前ArkUI不支持gif圖片設置輪播次數&#xff0c;可通過三方庫ohos-gif-drawable設置輪播次數&#xff0c;在播放一次結束后的回調方法getLoopFinish()中更新播放次數&#xff0c;達到指定次數后設置播放…

redis數據遷移教程(使用RedisShake實現不停機遷移十分便捷)

1.我的場景 需要把本地的redis數據上傳到阿里云服務器上面,服務器上redis并沒有開aof持久化,但是將rdb文件上傳至服務器后每次重啟redis,rdb文件會被覆蓋導致無法同同步數據,最終決定使用RedisShake 2.RedisShake介紹 什么是 RedisShake? RedisShake 是一個用于處理和遷移…

C語言_數據結構總結4:不帶頭結點的單鏈表

純C語言代碼&#xff0c;不涉及C 0. 結點結構 typedef int ElemType; typedef struct LNode { ElemType data; //數據域 struct LNode* next; //指針域 }LNode, * LinkList; 1. 初始化 不帶頭結點的初始化&#xff0c;即只需將頭指針初始化為NULL即可 void Init…

78.StringBuilder簡單示例 C#例子 WPF例子

利用 StringBuilder 提升字符串操作性能 在 C# 中&#xff0c;字符串是不可變的&#xff0c;這意味著每次修改字符串時都會創建一個新的對象。這種特性雖然保證了安全性&#xff0c;但在頻繁修改字符串的場景中會導致性能問題。StringBuilder 正是為解決這一問題而設計的。 什…

【數據集】社區天氣資訊網絡CoWIN-香港小時尺度氣象數據(含MATLAB處理代碼)

社區天氣資訊網絡CoWIN-香港小時尺度氣象數據 數據概述氣象變量說明數據提取(MATLAB全代碼)輸出WRF所需站點氣溫數據參考數據概述 官網-Community Weather Information Network (CoWIN) data policy CoWIN 提供 2010 - 2024 年 的數據下載,每年數據均可單獨下載。下載數據…

【JAVA架構師成長之路】【Redis】第14集:Redis緩存穿透原理、規避、解決方案

30分鐘自學教程&#xff1a;Redis緩存穿透原理與解決方案 目標 理解緩存穿透的成因及危害。掌握布隆過濾器、空值緩存等核心防御技術。能夠通過代碼實現請求攔截與緩存保護。學會限流降級、異步加載等應急方案。 教程內容 0~2分鐘&#xff1a;緩存穿透的定義與核心原因 定義…

尚硅谷爬蟲note15

一、當當網 1. 保存數據 數據交給pipelines保存 items中的類名&#xff1a; DemoNddwItem class DemoNddwItem(scrapy.Item): 變量名 類名&#xff08;&#xff09; book DemoNddwItem(src src, name name, price price)導入&#xff1a; from 項目名.items import 類…

LVGL直接解碼png圖片的方法

通過把png文件解碼為.C文件&#xff0c;再放到工程中的供使用&#xff0c;這種方式隨時速度快&#xff08;應為已經解碼&#xff0c;代碼中只要直接加載圖片數據顯示出來即可&#xff09;&#xff0c;但是不夠靈活&#xff0c;適用于哪些簡單又不經常需要更換UI的場景下使用。如…

【計算機網絡】Socket

Socket 是網絡通信的核心技術之一&#xff0c;充當應用程序與網絡協議棧之間的接口。 1. Socket 定義 Socket&#xff08;套接字&#xff09;是操作系統提供的 網絡通信抽象層&#xff0c;允許應用程序通過標準接口&#xff08;如 TCP/IP 或 UDP&#xff09;進行數據傳輸。它…

Apache XTable:在數據湖倉一體中推進數據互作性

Apache XTable 通過以多種開放表格式提供對數據的訪問&#xff0c;在增強互作性方面邁出了一大步。移動數據很困難&#xff0c;在過去&#xff0c;這意味著在為數據湖倉一體選擇開放表格式時&#xff0c;您被鎖定在該選擇中。一個令人興奮的項目當在數據堆棧的這一層引入互作性…

anolis8.9-k8s1.32-node-二進制部署

一、系統 # cat /etc/anolis-release Anolis OS release 8.9 # uname -r 5.10.134-18.an8.x86_64 二、從master上拷貝dockers及cri-docker相關文件 # groupadd docker # mkdir /etc/docker# scp -P 4033 root192.168.7.201:/etc/systemd/system/containerd.service /etc/s…