deepseek(2)——deepseek 關鍵技術

1 Multi-Head Latent Attention (MLA)

在這里插入圖片描述

MLA的核心在于通過低秩聯合壓縮來減少注意力鍵(keys)和值(values)在推理過程中的緩存,從而提高推理效率:

c t K V = W D K V h t c_t^{KV} = W^{DKV}h_t ctKV?=WDKVht?

[ k t , 1 C ; k t , 2 C ; ? ; k t , n h C ] = k t C = W U K c t K V [k_{t, 1} ^{C}; k_{t, 2} ^{C}; \cdots; k_{t, n_h} ^{C}] = k_t^C = W^{UK}c^{KV}_t [kt,1C?;kt,2C?;?;kt,nh?C?]=ktC?=WUKctKV?

k t R = R o P E ( W K R h t ) k_t^R = RoPE(W^{KR}h_t) ktR?=RoPE(WKRht?)

h t , i = [ k t , i C ; k t R ] h_{t, i} = [k_{t, i} ^C; k_t^R] ht,i?=[kt,iC?;ktR?]

[ v t , 1 C ; v t , 2 C ; ? ; v t , n h C ] = v t c = W U V c t K V [v_{t, 1} ^{C}; v_{t, 2} ^{C}; \cdots; v_{t, n_h} ^{C}] = v_t^c = W^{UV}c_t^{KV} [vt,1C?;vt,2C?;?;vt,nh?C?]=vtc?=WUVctKV?

對于 query,也會做類似的處理:

c t Q = W D Q h t c_t^Q = W^{DQ}h_t ctQ?=WDQht?

$$
[q_{t, 1} ^C; q_{t, 2} ^C; \cdots; q_{t, n_h} ^C] = q_t^C = W{UQ}c_tQ

$$

[ 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 ) [q_{t, 1} ^R; q_{t, 2} ^R; \cdots; q_{t, n_h} ^R] = q_t^R = RoPE(W^{QRc_t^Q}) [qt,1R?;qt,2R?;?;qt,nh?R?]=qtR?=RoPE(WQRctQ?)

q t , i = [ q t , i C ; q t , i R ] q_{t, i} = [q_{t, i}^C; q_{t, i}^R] qt,i?=[qt,iC?;qt,iR?]

最終的注意力輸出 u t u_t ut? 是通過將 Query q t q_t qt? 和 Key k t k_t kt? 進行 softmax 歸一化之后的點積,在乘以 Value v t v_t vt? 得到:

O t i = ∑ j = 1 t S o f t m a x j ( q t , i T k j , i d h + d h R ) v j , i ′ C O_t^i = \sum _{j=1} ^{t} Softmax _j\left( \frac{q_{t, i}^T k_{j, i}}{\sqrt{d_h + d_h^R}} \right) v_{j, i^{'}} ^{C} Oti?=j=1t?Softmaxj? ?dh?+dhR? ?qt,iT?kj,i?? ?vj,iC?

u t = W O [ O t , 1 ; O t , 2 ; ? ; O t , n h ] u_t = W^O [O_{t, 1}; O_{t, 2}; \cdots; O_{t, n_h}] ut?=WO[Ot,1?;Ot,2?;?;Ot,nh??]

1.1 無輔助損失負載平衡的 DeepSeekMoE

在混合專家(MoE)模型中,專家負載的不平衡會導致路由崩潰或增加計算開銷。傳統的方法通常采用輔助損失來鼓勵負載平衡,但過大的輔助損失會引入不可忽視的干擾梯度,從而損害模型性能。

為了避免在訓練過程中產生不良梯度,DeepSeek 提出了一種無輔助損失的負載平衡策略(Loss-Free Balancing),通過動態調整每個專家的偏差來控制負載平衡,而不引入干擾梯度。

DeepSeekMoE 的基本流程:

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 ) h_t^{'} = u_t + \sum _{i=1} ^{N_s} {FFN _i ^{(s)}} (u_t) + \sum _{i=1} ^{N_r}g_{i, t} FFN _i ^{(r)} (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 _{j=1} ^{N_r} g_{j, t} ^{'}} gi,t?=j=1Nr??gj,t?gi,t??

g j , 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_{j, 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} gj,t?={si,t?,0,?si,t?Topk(sj,t?∣1jNr?,Kr?),otherwise,?

s i , t = S i g m o i d ( u t T e i ) s_{i, t} = Sigmoid(u_t^T e_i) si,t?=Sigmoid(utT?ei?)

針對專家負載不均衡的問題,為每個專家引入了一個偏置項 b i b_i bi?,并將其加到親和力得分 s i , t s_{i,t} si,t?? 上:

g j , t ′ = { s i , t + b i , s i , t ∈ T o p k ( s j , t + b i ∣ 1 ≤ j ≤ N r , K r ) , 0 , o t h e r w i s e , g_{j, t} ^{'} = \begin{cases} s_{i, t} + b_i, & s_{i, t} \in Topk({s_{j, t} + b_i | 1 \leq j \leq N_r}, K_r), \\ 0, & otherwise, \end{cases} gj,t?={si,t?+bi?,0,?si,t?Topk(sj,t?+bi?∣1jNr?,Kr?),otherwise,?

偏置項僅用于路由。與FFN輸出相乘的門控值仍然來源于原始得分 s i , t s_{i,t} si,t?

在訓練過程中,持續監控每個訓練步驟中整個 batch 的專家負載。在每個步驟的末尾,如果相應的專家過載,將減少偏置項 b i b_i bi?;如果相應的專家欠載,將增加偏置項 b i b_i bi?。通過動態調整,DeepSeek-V3 在訓練期間保持專家負載平衡,并比通過純輔助損失鼓勵負載平衡的模型實現了更好的性能。

1.2 互補序列級輔助損失

為了防止任何單個序列內的極端不平衡,還采用了互補序列級輔助損失。這種損失鼓勵每個序列中的專家負載保持平衡。

L B a l = α ∑ i = 1 N r f i P i , \mathcal{L} _{Bal} = \alpha \sum _{i=1} ^{N_r}f_i P_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_r T} \sum _{t=1} ^T \mathcal{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 _{j=1} ^{N_r} 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=1} ^T s_{i, t} ^{'} Pi?=T1?t=1T?si,t?

其中 1 ( ? ) \mathcal{1}(\cdot) 1(?) 標識指標函數。

1.3 節點限制路由

DeepSeek-V3 采用了一種受限的路由機制來限制訓練過程中的通信成本。確保每個 token 最多被發送到 M 個節點,這些節點是根據每個節點上分布的專家的最高 T r T_r Tr? 個親和分數之和來選擇的。

1.4 無 Token 丟棄

由于有效的負載平衡策略,DeepSeek-V3 在完整的訓練過程中保持了良好的負載平衡。因此,在訓練期間,DeepSeek-V3 不會丟棄任何 token。此外,還實施了特定的部署策略以確保推理時的負載平衡,所以 DeepSeek-V3 在推理期間也不會丟棄 token。

2 多 Token 預測(Multi-Token Prediction/MTP)

在這里插入圖片描述

Multi-Token Prediction / MTP 實現使用 K 個順序模塊來預測 K 個額外的 Token。

第 i個 MTP 模塊包括一個共享的特征層 E m b ( ? ) Emb(·) Emb(?),一個共享的輸出頭 O u t H e a d ( ? ) OutHead(·) OutHead(?),一個 Transformer 塊 T R M i ( ? ) TRM_i(·) TRMi?(?),以及一個投影矩陣 W i ∈ R d × 2 d W_i \in R^{d×2d} Wi?Rd×2d。對于第 i 個輸入 T o k e n t i Tokent_i Tokenti?,在第 i 個預測深度,首先結合第 (i-1) 深度的第 i 個 Token 的表示 h i ? 1 ∈ R d h_{i-1} \in R^d hi?1?Rd 和第 (i+1) 個 Token 的嵌入 d ( t i + 1 ) ∈ R d d(t_{i+1}) \in R^d d(ti+1?)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 ) ) ] h_i ^{'k} = M_k [RMSNorm(h_i ^{k-1}); RMSNorm(Emb(t_{i+k}))] hik?=Mk?[RMSNorm(hik?1?);RMSNorm(Emb(ti+k?))]

對于每個 MTP 模塊,其嵌入層與主模型共享。結合后的 h i ′ h_{i} ^{'} hi? 作為第 i 深度的 Transformer 塊的輸入,產生當前深度的輸出表示 h i h_i hi?

h 1 : T ? k k = T R M k ( h 1 : T ? k ′ k ) h_{1 : T-k} ^ {k} = TRM _k (h_{1 : T-k} ^ {'k}) h1:T?kk?=TRMk?(h1:T?kk?)

其中 T 標識輸入序列的長度,:表示切片操作(包括左右邊界)。

最后,以 h i h_i hi? 為輸入,共享的輸出頭將計算第 i 個額外預測 Token 的概率分布:

p i + k + 1 k = O u t H e a d ( h i k ) p _{i+k+1} ^k = OutHead(h_i ^k) pi+k+1k?=OutHead(hik?)

輸出頭 O u t H e a d ( ? ) OutHead(·) OutHead(?) 將表示線性映射到logits,然后應用 S o f t m a x ( ? ) Softmax(·) Softmax(?)函數計算第 i 個額外 Token 的預測概率。同時,對于每個 MTP 模塊,其輸出頭與主模型共享。

2.1 MTP 訓練目標

計算一個交叉熵損失 L M T P k \mathcal{L}^k _{MTP} LMTPk?

L M T P k = C r o s s E n t r o p y ( p 2 + k : T + 1 k , t 2 + k : T + 1 ) = ? 1 T ∑ i = 2 + k T + 1 log ? P i k [ t i ] \mathcal{L}^k _{MTP} = CrossEntropy(p_{2+k:T+1}^{k}, t_{2+k:T+1}) = -\frac{1}{T} \sum _{i=2+k} ^{T+1} \log P_{i} ^{k}[t_i] LMTPk?=CrossEntropy(p2+k:T+1k?,t2+k:T+1?)=?T1?i=2+kT+1?logPik?[ti?]

其中 T 表示輸入序列長度, t i t_i ti? 表示第 i 個位置的 ground-truth Token, P i k [ t i ] P_{i} ^{k}[t_i] Pik?[ti?] 表示第 i 個 MTP 模塊給出的 t i t_i ti? 的相應預測概率。

最后,計算所有深度的 MTP 損失的平均值,并乘以一個權重因子 λ \lambda λ,得到整體 MTP 損失 L M T P \mathcal{L} _{MTP} LMTP?,它作為 DeepSeek-V3 的訓練目標:

L M T P = λ D ∑ k = 1 D L M T P k \mathcal{L} _{MTP} = \frac{\lambda}{D} \sum _{k=1} ^{D} \mathcal{L}^k _{MTP} LMTP?=Dλ?k=1D?LMTPk?

2.2 推理中的 MTP

MTP 策略主要旨在提高主模型的性能,在推理過程中,可以直接丟棄 MTP 模塊,主模型可以獨立且正常地工作。

此外,還可以將這些 MTP 模塊用于推理的 decoding,以進一步改善生成延遲。

3 deepseek 是如何生成思考過程的

3.1 基于規則的檢查

對于數學問題:“2 + 3 * 4 等于多少?”

系統知道正確答案是 14。它將查看 DeepSeek V3(RL 代理)生成的輸出,并專門檢查 <answer>標簽內的內容。如果 <answer>標簽包含14(或數字相同的內容),它會得到正獎勵,比如說 +1。如果它錯了,它會得到 0 獎勵,甚至可能是負獎勵。 --> (正確性檢查)

3.2 格式化獎勵

DeepSeek R1 Zero 還需要學習正確構建其推理,并且可以使用 <think><answer> 標簽,正確設置格式的獎勵較少。

檢查模型輸出是否正確地將推理過程包含在 <think> …</think> 中,并將最終答案包含在 <answer>… </answer>中。

3.3 獎勵訓練模板

為了使獎勵模型有效,研究人員設計了一個特定的訓練模板。該模板充當藍圖,指導 DeepSeek-V3-Base 如何在強化學習過程中構建其響應。

原始模板:

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:

這種結構化輸出對于研究人員以后窺視模型的推理步驟非常重要。

訓練 DeepSeek-R1-Zero 時,使用此模板為其提供提示。例如對于這里的數學問題,輸入如下:

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: What is 2 + 3 * 4?. Assistant:

期望模型生成符合模板的輸出:

<think>
Order of operations:
multiply before add. 3 * 4 = 12. 2 + 12 = 14
</think>
<answer>
14
</answer>

DeepSeek 團隊有意保持這個模板簡單并專注于結構,而不是告訴模型如何推理。

3.4 DeepSeek R1 Zero 的強化學習訓練過程

第一步是使用舊策略(即強化學習更新之前的 DeepSeek-V3-Base 模型)生成多個可能的輸出。在一次訓練迭代中,假設 GRPO 采樣一組 G = 4 個輸出:

  • o1: <think>2 + 3 = 5, 5 * 4 = 20</think> <answer> 20</answer> (運算順序不正確
  • o2: <think>3 * 4 = 12, 2 + 12 = 14</think> <answer>14</answer> (正確)
  • o3: <answer>14</answer> (正確,但缺少 標簽)
  • o4: <think>...一些胡言亂語的推理...</think> <answer> 7<answer> (不正確且推理不佳)

每個輸出將根據正確性和推理質量進行評估并分配獎勵。

為了引導模型進行更好的推理,基于規則的獎勵系統應運而生。每個輸出都根據以下條件分配獎勵:

  • 準確度獎勵:答案是否正確。
  • 格式獎勵:推理步驟是否使用 標簽正確格式化。

獎勵分配如下:

輸出準確率獎勵格式獎勵總獎勵
o100.10.1
o210.11.1
o3101
o400.10.1

模型應該學會偏愛獎勵更高的輸出,同時降低生成不正確或不完整輸出的概率。

為了確定每個輸出對模型性能的改善或惡化程度,使用獎勵值計算優勢。優勢有助于通過強化更好的輸出來優化策略。計算平均第一個獎勵:

M e a n R e w a r d = 0.1 + 1.1 + 1 + 0.1 4 = 0.575 Mean Reward = \frac{0.1 + 1.1 + 1 + 0.1}{4} = 0.575 MeanReward=40.1+1.1+1+0.1?=0.575

標準差(近似值)= 0.5,現在計算每個輸出的優勢:

A i = r i ? M e a n R e w a r d S t a n d a r d D e v i a t i o n A_i = \frac{r_i - Mean Reward}{Standard Deviation} Ai?=StandardDeviationri??MeanReward?

即:

A 1 = 0.1 ? 0.575 0.5 ≈ ? 0.95 A_1 = \frac{0.1 - 0.575}{0.5} \approx -0. 95 A1?=0.50.1?0.575??0.95

A 2 = 1.1 ? 0.575 0.5 ≈ 1.05 A_2 = \frac{1.1 - 0.575}{0.5} \approx 1.05 A2?=0.51.1?0.575?1.05

A 3 = 1 ? 0.575 0.5 ≈ 0.85 A_3 = \frac{1 - 0.575}{0.5} \approx 0.85 A3?=0.51?0.575?0.85

A 4 = 0.1 ? 0.575 0.5 ≈ ? 0.95 A_4 = \frac{0.1 - 0.575}{0.5} \approx -0. 95 A4?=0.50.1?0.575??0.95

輸出 o2 和 o3 獲得正優勢,這意味著應該鼓勵它們。輸出 o1 和 o4 獲得負優勢,這意味著應該阻止它們。

然后,GRPO 使用計算出的優勢來更新策略模型 (DeepSeek-V3-Base),以增加生成具有高優勢的輸出(如 o2 和 o3)的概率,并降低具有低優勢或負優勢的輸出(如 o1 和 o4)的概率。

更新根據以下內容調整模型權重:

  • 策略比率:在新策略與舊策略下生成輸出的概率。
  • 裁剪機制:防止過大的更新,這可能會破壞訓練的穩定性。
  • KL 發散懲罰:確保更新不會偏離原始模型太遠。

這確保在下一次迭代中,模型更有可能生成正確的推理步驟,同時減少不正確或不完整的響應。

因此,RL 是一個迭代過程。使用不同的推理問題重復上述步驟數千次。每次迭代都會逐漸提高模型的能力:

  • 執行正確的操作順序
  • 提供邏輯推理步驟
  • 始終使用正確的格式

隨著訓練的深入,模??型會從錯誤中吸取教訓,在解決推理問題方面變得更加準確和有效。

4 由 deepseek R1 ZERO 到 deepseek R1

4.1 R1 Zero 的兩個主要問題
  • 標簽內的推理過程難以閱讀,使人類難以理解和分析
  • 語言混合,當被問到多語言問題時,模型有時會在同一個回答中混合使用多種語言,導致輸出不一致和混亂。

為了修復 R1 Zero 問題并真正讓 DeepSeek 推理正確,研究人員進行了冷啟動數據收集監督微調

4.1 冷啟動數據
4.1.2 使用長 CoT 進行少量提示

他們為 DeepSeek-V3 Base 提供了一些問題示例以及非常詳細的分步解決方案,稱為思維鏈 (CoT)。這個想法是讓模型通過示例學習并開始模仿這種分步推理風格。

對于示例問題 2 + 3 * 4 等于多少?,他們可能會顯示如下提示:

Problem Examples with Solutions:Problem: What's the square root of 9 plus 5?
Solution: | special_token | First, find the square root of 9, which is 3. 
Then, add 5 to 3.  3 + 5 equals 8. | special_token | Summary: The answer is 8.Problem: Train travels at 60 mph for 2 hours, how far?
Solution: | special_token | Use the formula: Distance = Speed times Time. 
Speed is 60 mph, Time is 2 hours. Distance = 60 * 2 = 120 miles. 
| special_token | Summary: Train travels 120 miles.Problem: What is 2 + 3 * 4?
Solution:

那些 | special_token | 東西只是將推理步驟與摘要分開的標記,使模型可以清楚地學習結構。

看到這些示例后,模型應該學會以類似的格式給出答案,例如 2 + 3 * 4 等于多少?

| special_token |  Following order of operations (PEMDAS/BODMAS), 
do multiplication before addition.  So, first calculate 3 * 4 = 12. 
Then, add 2 to 12. 2 + 12 = 14. | special_token | Summary: The answer is 14.
4.1.2 直接提示

他們收集數據的另一種方法是直接提示模型不僅解決問題,而且還要逐步明確地展示其推理,然后仔細檢查其答案。這是為了促進更仔細和周到的問題解決。

對于 12 + 3 * 4 等于多少?,提示可能是:

Problem: Solve this, show reasoning step-by-step, and verify:
What is 2 + 3 * 4?
4.1.3 后處理細化

他們甚至使用了已經訓練過的 R1 Zero 模型的輸出。盡管 R1 Zero 存在問題,但它可以進行一些推理。因此,他們采用了 R1 Zero 的輸出,并讓人類標注者使其更清晰、更結構化,并糾正其中存在的錯誤。

例如,混亂的 R1 Zero 輸出可能是:

<think>  ummm... multiply 3 and 4... get 12... then add 2...</think>
<answer> 14 </answer>

然后人類會對其進行改進,使其更清晰、格式更好:

| special_token | Reasoning: To solve this, we use order of operations,
doing multiplication before addition.
Step 1: Multiply 3 by 4, which is 12.
Step 2: Add 2 to the result: 2 + 12 = 14.
| special_token | Summary: The answer is 14.

最終獲得了非常好的冷啟動數據:

  • 高質量推理示例:每個示例都展示了良好的逐步推理。
  • 一致、可讀的格式: | special_token | 格式使所有內容統一且易于處理。
  • 人工檢查:他們確保過濾掉任何不好的例子,因此數據干凈可靠。

獲得此冷啟動數據后,他們進行了監督微調 (SFT)。

4.2 監督微調

SFT 第 1 階段的核心思想是使用監督學習來教 DeepSeek-V3-Base 如何產生高質量、結構化的推理輸出。向模型展示了許多良好推理的例子,并要求它學習模仿這種風格。

對于 SFT,需要將冷啟動數據格式化為輸入-目標對。對于數據集中的每個推理問題,都會創建一個這樣的對:

輸入 = 提示或問題描述本身

User: What is 2 + 3 * 4? Assistant:

目標是希望模型學習生成的理想輸出:

| special_token | According to the order of operations (PEMDAS/BODMAS) ... 
Summary: The answer is 14.

微調過程從輸入開始:

  • 提示 + 目標推理,在此提供一個問題和一個結構化的推理示例。這會訓練模型(DeepSeek-V3-Base 模型)以生成結構良好的響應。
  • 在預測下一個標記中,模型會生成推理序列中的下一個單詞。使用損失函數將其與比較目標標記(計算損失)中的實際下一個標記進行比較。損失越大,意味著預測距離正確標記越遠。
  • 在更新模型參數中,反向傳播和優化器會調整模型的權重以改進其預測。這個過程循環往復,重復許多輸入目標對,每次迭代逐漸提高模型結構化推理能力。
4.3 推理導向強化學習

前面說明了基于 deepseek V3 base 的 STF 訓練,為了真正提高其推理能力,研究人員引入了推理導向強化學習。

這一階段,依然使用相同的 GRPO 算法,但是獎勵系統有所改變,添加了語言一致性獎勵,來解決 R1 Zero 的語言混淆的問題。簡單說就是使用英語問問題,期望得到的回答是英語的。

在計算 RL 階段的總獎勵時,會將語言一致性的獎勵得分考慮在內,為語言一致性獎勵分配的權重較小。

4.4 拒絕抽樣

對于推理數據,DeepSeek 團隊希望獲得絕對最佳示例以進一步訓練模型。為此,他們使用了一種稱為拒絕抽樣的技術。

為了改進推理數據,DeepSeek 使用了拒絕抽樣。對于“2 + 3 * 4 等于多少?”,他們會從上一階段模型生成許多輸出。然后他們會評估每個輸出的正確性(答案“14”)和推理的可讀性。只有正確且推理充分的最佳輸出才會被保留,而其他輸出則被拒絕。對于復雜的推理,生成獎勵模型用于判斷推理質量。嚴格的過濾器會刪除混合語言、漫無邊際的推理或不相關的代碼。此過程會產生約 600k 個高質量推理樣本。

除了精煉推理數據外,他們還添加了非推理數據(約 20 萬個樣本),用于一般技能:寫作、問答、翻譯等,有時還會使用思維鏈來完成復雜任務。

最后,SFT 第 2 階段使用下一個標記預測在組合數據集(精煉推理 + 非推理)上訓練前一個模型檢查點。此階段使用來自拒絕采樣的頂級示例進一步改進推理,并將模型推廣到更廣泛的任務,同時保持用戶友好性。

4.5 適用于所有場景的 RL

獎勵系統現在還考慮:

  • 有用性,評估摘要(如果生成)是否提供了除答案之外的有用背景。
  • 無害性,檢查整個輸出是否安全且無偏見。這些通常由根據人類偏好訓練的單獨獎勵模型進行評估。

最終的獎勵信號是準確度有用性無害性分數的加權組合。

現在,訓練數據包括:

  • 多樣化組合,包括推理問題
  • 一般 QA 提示
  • 寫作任務
  • 偏好對,其中人類指出兩個模型輸出中的哪一個在有用性和無害性方面更好

5 模型蒸餾

在 DeepSeek 團隊能夠創建性能良好的 DeepSeek R1 后,他們進一步將更大的模型提煉為性能更高的小型模型,供社區使用,蒸餾過程的工作原理如下:

  • 數據準備:收集 800k 個推理樣本。
  • DeepSeek-R1 輸出:對于每個樣本,教師模型(DeepSeek-R1)的輸出用作學生模型的目標。
  • 監督式微調 (SFT):學生模型(例如 Qwen-1.5B、Llama-14B)基于這 800k 個樣本進行微調,以匹配 DeepSeek-R1 輸出。
  • 蒸餾模型:學生模型現在被精煉成更小的版本,但保留了 DeepSeek-R1 的大部分推理能力。
  • 結果:獲得更小、更快且具有良好推理能力的模型,隨時可以部署。

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

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

相關文章

OpenGL繪制文本

一&#xff1a;QPainter繪制 在 OpenGL 渲染的窗口中&#xff08;如 QOpenGLWidget&#xff09;&#xff0c;通過 QPainter 直接繪制文本。Qt 會自動將 2D 內容&#xff08;文本、圖形&#xff09;與 OpenGL 內容合成。在paintGL()里面繪制&#xff0c;如果有其他紋理&#xf…

從零構建大語言模型全棧開發指南:第二部分:模型架構設計與實現-2.1.3前饋網絡(FFN)與激活函數(GELU)優化

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 2.1.3 前饋網絡(FFN)與激活函數(GELU)優化1. 前饋網絡(FFN)的架構設計與數學原理1.1 FFN在Transformer中的核心作用2. GELU激活函數的數學特性與優化2.1 GELU的數學形式與近似計算3. 逐行代碼實現…

React 中的錯誤邊界(Error Boundaries),如何使用它們捕獲組件錯誤

大白話React 中的錯誤邊界&#xff08;Error Boundaries&#xff09;&#xff0c;如何使用它們捕獲組件錯誤 在 React 里&#xff0c;錯誤邊界就像是一個“小衛士”&#xff0c;專門負責在組件出現錯誤時挺身而出&#xff0c;避免整個應用因為一個小錯誤就崩潰掉。接下來我會詳…

數據庫DBA認證,選哪個認證合適?

從 Oracle、MySQL 到 云數據庫&#xff0c;結合市場認可度、考試難度及職業回報&#xff0c;為你精選高性價比認證。 一、企業級數據庫認證&#xff08;傳統場景&#xff09; 1. Oracle認證 認證等級考試代碼核心內容費用適合人群OCA1Z0-082SQL基礎、數據庫安裝與配置$245零基…

力扣刷題-熱題100題-第24題(c++、python)

234. 回文鏈表 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/palindrome-linked-list/description/?envTypestudy-plan-v2&envIdtop-100-liked 常規法 數組是連續的存儲空間&#xff0c;可以根據索引到達任意位置&#xff0c;鏈表只能一個個的順…

調用通義千問實現語音合成并將合成的音頻通過揚聲器播放

1. 作者介紹 郭建東&#xff0c;男&#xff0c;西安工程大學電子信息學院&#xff0c;2024級研究生 研究方向&#xff1a;機器視覺與人工智能 電子郵件&#xff1a;1229963266qq.com 高金年&#xff0c;男&#xff0c;西安工程大學電子信息學院&#xff0c;2024級研究生&…

Ubuntu軟件包離線下載安裝

1、下載軟件包tcpd&#xff0c;并在/var/cache/apt/archives目錄中查看。 rooteducoder:~# apt-get install -d tcpd Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed:tcpd …

您的數據是如何出現在暗網上的?

暗網是互聯網上的一個隱秘角落&#xff0c;人們可以在那里保持匿名。暗網經常與深網混淆&#xff0c;但它們并不完全相同。 深網是指網絡上所有未被搜索引擎索引的內容。這包括電子郵件帳戶、私人數據庫和付費服務等。這并不違法&#xff0c;只是無法通過簡單的 Google 搜索找…

原型模式及其應用

引言 原型模式&#xff08;Prototype Pattern&#xff09;是一種創建型設計模式&#xff0c;它允許通過復制現有對象來創建新對象&#xff0c;而無需通過構造函數來創建。這種模式通過克隆現有對象來創建新對象&#xff0c;從而避免了復雜的初始化過程。本文將探討原型模式的好…

thinkphp漏洞再現

Thinkphp5x遠程命令執行及getshell 1、開環境 2、使用工具攻擊 開啟工具 輸入地址&#xff0c;點擊漏洞檢測 存在漏洞之后&#xff0c;選擇漏洞&#xff0c;執行命令 3、也可以執行遠程命令 執行命令 ?sindex/think\app/invokefunction&functioncall_user_func_array&…

Day16 -實例:Web利用郵箱被動繞過CDN拿真實ip

本想測試一下全局ping&#xff0c;剛好注冊的時候收到了郵件&#xff0c;剛好去做一下復現。 原理&#xff1a;主動讓對方站點給我們發郵件&#xff08;注冊、修改密碼、訂閱推送等&#xff09;我們查看郵件原文&#xff0c;原文里存在真實的郵件站點ip 特點&#xff1a;郵件…

vue3 數據監聽(watch、watchEffect)

1、watch 1.1基本使用 作用&#xff1a;數據監聽 語法&#xff1a; watch(監聽的數據, (改變后的數據, 改變前的數據) > { console.log(newVal, oldVal); }) 注意點&#xff1a;watch寫法上支持一個或者多個監聽源&#xff0c;這些監聽源必須只能是getter/effect函數…

網盤解析工具更新,解決了一些bug

解析工具v1.2.1版本更新&#xff0c;本次是小版本更新&#xff0c;修復了一些bug。 之前小伙伴反應的網盤進入文件后不能返回上一級&#xff0c;現在這個bug修復了&#xff0c;已經可以點擊了。 點擊資源后會回到資源那一級目錄&#xff0c;操作上是方便了不少。 增加了檢查自…

推薦1款簡潔、小巧的實用收音機軟件,支持手機和電腦

聊一聊 沒想到現在還有人喜歡聽廣播。 我一直以為聽廣播必須要用那種小廣播機才可以。 原來手機或電腦上也是可以的。 今天給大家分享一款可以在電腦和手機上聽廣播的軟件。 軟件介紹 龍卷風收音機 電臺廣播收音機分電腦和手機兩個版本。 電腦端無需安裝&#xff0c;下載…

六十天前端強化訓練之第三十一天之Webpack 基礎配置 大師級講解(接下來幾天給大家講講工具鏈與工程化)

歡迎來到編程星辰海的博客講解 看完可以給一個免費的三連嗎&#xff0c;謝謝大佬&#xff01; 目錄 一、Webpack 核心概念解析 二、實戰&#xff1a;多資源打包配置&#xff08;含完整代碼&#xff09; 三、配置深度解析&#xff08;重點部分說明&#xff09; 四、效果演示…

機器學習——Bagging、隨機森林

相比于Boosting的集成學習框架&#xff0c;Bagging(Bootstrap Sampling&#xff0c;自助聚集法&#xff0c;又稱為自助采樣)作為一種自助聚集且并行化的集成學習方法&#xff0c;其通過組合多個基學習器的預測結果來提高模型的穩定性和泛化能力。其中隨機森林是Bagging學習框架…

【藍橋杯】每日練習 Day13

前言 今天做了不少題&#xff0c;但是感覺都太水了&#xff0c;深思熟慮之下主播決定拿出兩道相對不那么水的題來說一下&#xff08;其實還是很水&#xff09;。 兩道問題&#xff0c;一道是日期問題&#xff08;模擬&#xff09;&#xff0c;一道是區間合并問題。 日期差值 …

HTML輸出流

HTML 輸出流 JavaScript 中**「直接寫入 HTML 輸出流」**的核心是通過 document.write() 方法向瀏覽器渲染過程中的數據流動態插入內容。以下是詳細解釋&#xff1a; 一、HTML 輸出流的概念 1. 動態渲染過程 HTML 文檔的加載是自上而下逐行解析的。當瀏覽器遇到 <script&…

理解文字識別:一文讀懂OCR商業化產品的算法邏輯

文字識別是一項“歷久彌新”的技術。早在上世紀初&#xff0c;工程師們就開始嘗試使用當時有限的硬件設備掃描并識別微縮膠片、紙張上的字符。隨著時代和技術的發展&#xff0c;人們在日常生活中使用的電子設備不斷更新換代&#xff0c;文字識別的需求成為一項必備的技術基礎&a…

開源模型應用落地-語音轉文本-whisper模型-AIGC應用探索(五)

一、前言 在上一節中&#xff0c;學習了如何使用vLLM來部署Whisper-large-v3-turbo模型。不過&#xff0c;在實際使用時&#xff0c;模型一次只能處理30秒的音頻。今天&#xff0c;將結合實際業務&#xff0c;介紹如何處理一段完整的音頻&#xff0c;并生成相應的字幕文件。 相…