從零開始繪製DeepSeekR1架構和訓練流程

MLNLP

社群是國內外知名的機器學習與自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。


社群的願景是促進國內外自然語言處理,機器學習學術界、產業界和廣大愛好者之間的交流和進步,特別是初學者同學們的進步。
來源 | 知乎
作者 | lucas大叔

快速概覽

在討論技術細節之前,先簡單介紹一下 DeepSeek-R1 並非是從無到有從頭開始訓練的。相反,他們從一個相當聰明的 LLM 開始,他們已經有了DeepSeek-V3[1],但他們想讓它成為一個推理超級明星。
為了做到這一點,他們使用了強化學習(簡稱 RL),當 LLM 做出有利於推理的事情時,就會獎勵它,否則就會懲罰它。
但這不僅僅是一個簡單的訓練環節。它就像是一大堆步驟,稱之為管道。他們首先嚐試了純RL,看看推理是否會自行出現,這就是 DeepSeek-R1-Zero,有點像一個實驗。然後對於真正的 DeepSeek-R1,他們透過不同的階段使其更有條理。他們給它一些起始資料令其執行,然後進行 RL,然後是更多資料,然後是更多 RL……就像是一步步升級!
關鍵在於讓這些語言模型更好地思考問題並給出明智的答案,而不僅僅是說出一些單詞。在研究每個步驟的細節之前,這就是超簡短的概覽介紹。

DeepSeek V3(MOE)如何思考?

正如之前所說,DeepSeek R1 訓練不是從零開始構建的,而是使用 DeepSeek V3 作為基座模型。所以我們需要了解 V3 的工作原理以及為什麼它被稱為 MOE?
DeepSeek V3 的執行主要有兩條路徑。當輸入一個問題時,它首先會經過記憶系統,透過查詢相關資訊來快速構建上下文。可以把它想象成快速回憶你以前遇到過的類似情況。
它的主要優勢在於其決策系統。在理解輸入後,它會使用智慧路由在兩條路徑之間做出決定:快速處理器用於處理簡單任務(如簡單問題或常見請求),專家系統用於處理複雜問題(如分析或專業知識)。
路由讓 DeepSeek V3 成為混合專家模型 (MOE)
因為它會動態地將每個請求定向到最合適的專家元件以進行有效處理。
簡單的問題透過快捷方式獲得快速、直接的答案,而複雜的查詢則透過專家系統得到詳細關注。最後,這些響應被組合成清晰、準確的輸出。

DeepSeek V3 作為 RL 設定中的策略模型(Actor)

現在我們已經瞭解了 DeepSeek v3 的思維方式,它是 DeepSeek R1 實現的起點,我所說的起點是指它建立了 DeepSeek R1 Zero版本,這是在建立最終版本之前存在一些錯誤的初始版本。
初始版本 (R1 Zero) 是使用強化學習建立的,其中 DeepSeek v3 充當 RL 代理(採取行動的參與者)。讓我們首先直觀地瞭解一下它的工作原理。
RL 代理 (DeepSeek V3) 首先採取行動(Action),這意味著它會針對放入其Environment中的給定問題生成答案和一些推理。在這種情況下,Environment 就是推理任務本身。
採取行動後,環境會給出獎勵(Reward)。此獎勵就像反饋,它告訴 DeepSeek V3 基座模型其行動有多好。積極的獎勵意味著它做對了某件事,可能得到了正確的答案或推理得很好。然後,此反饋訊號返回到 DeepSeek-V3-Base,幫助它學習和調整未來如何採取行動以獲得更好的獎勵。
在接下來的部分中,我們將討論這個帶有獎勵模型的 RL 設定以及他們使用的 RL 演算法,並嘗試使用我們的文字輸入來解決它。

GRPO 演算法如何工作?

訓練 LLM 的計算成本極其昂貴,而 RL 則增加了更多的複雜性。
因此,有許多 RL 演算法可用,但正如你所知,傳統 RL 使用一種稱為“ctritic”的東西來幫助主要決策部分(“參與者(actor)”,即 DeepSeek V3)。這個critic通常與actor本身一樣大和複雜,這基本上使計算成本翻倍。
然而,GRPO 的做法有所不同,因為它會根據一組操作的結果直接找出基線,即良好操作的參考點。因此,GRPO 根本不需要單獨的critic模型。這節省了大量計算並提高了效率。
它首先向稱為“舊策略(Old Policy)”的模型提出問題或提示。GRPO 不會只得到一個答案,而是指示舊策略針對同一問題生成一組不同的答案。然後評估每個答案並給出獎勵分數,以反映其好壞或可取性。
GRPO透過將每個答案與同一組中其他答案的平均質量進行比較來計算其“優勢(Advantage)” 。高於平均水平的答案獲得正優勢,低於平均水平的答案獲得負優勢。至關重要的是,這無需單獨的critic模型即可完成。
然後,這些優勢分數會用於更新舊策略,使其更有可能在未來產生優於平均水平的答案。更新後的模型將成為新的“舊策略”,這個過程不斷重複,不斷改進模型。

GRPO的目標函式

顯然,在GRPO 背後是複雜的數學。總之,我們可以稱之為 GRPO 背後的目標函式。
GRPO 的目標函式有兩個目標,一個是給出好的輸出(高獎勵),同時確保訓練過程穩定且不會失控。原始函式很嚇人,但我們會將其重寫為更簡單的形式,而不會失去其實際意義。
讓我們逐一分析。首先,AverageResult[…]或 1/n[…]指的是評估在許多不同情況下平均發生的情況。我們提出包含各種問題的模型。對於每個問題,該模型都會生成一組答案。透過檢視許多問題及其各自的答案組中的這些答案,我們可以計算出平均結果。
在此過程中,問題被輸入到舊模型中,該模型會產生多個答案(例如,答案 1、答案 2、……、答案 G)。這些答案形成一組,透過評估不同問題中該組答案,我們得出平均結果。
SumOf[..] 或 ∑[…]是指對一組答案(例如,答案 1、答案 2、…、答案 G)中的每個答案進行計算,然後將所有這些計算的結果相加。
接下來是獎勵部分。這是獎勵模型給出良好答案的部分。它的內部有點複雜,讓我們放大一下:
ChangeRatio告訴我們,使用新模型後,給出此答案的機率是增加了還是減少了。具體來說,它關注的是:
  • • 新模型的答案機會:新模型給出特定答案的可能性有多大。
  • • 舊模型的答案機會:舊模型給出相同答案的可能性有多大。
接下來,Advantage分數表明一個答案與同一組中的其他答案相比有多好或多差。其計算方法如下:
  • • Answer’s Score:對特定答案給予的獎勵。
  • • Average Score of Group:組內所有答案的平均獎勵分數。
  • • Spread of Scores in Group:組內答案分數的差異有多大。
Advantage分數告訴我們一個答案是否比小組內的平均水平更好,以及好多少。
LimitedChangeRatio是 ChangeRatio 的修改版本。它確保ChangeRatio不會波動太大,從而保持模型的學習穩定。限制由一個稱為Epsilon的小值決定,以確保變化不會太劇烈。
最後,SmallerOf[ … ]函式在兩個選項中選取較小的值:
  • • ChangeRatio × Advantage:答案可能性的變化乘以其優勢得分。
  • • LimitedChangeRatio × Advantage:相同,但變化率有限。
最後,我們減去StayStablePart。這是為了防止新模型與舊模型變化太大。它不是很複雜,但讓我們放大它:
DifferenceFromReferenceModel衡量新模型與參考模型(通常是舊模型)的差異程度。本質上,它有助於評估新模型與前一個模型相比所做的更改。
Beta值控制模型應與參考模型保持多近的距離。較大的Beta 值意味著模型將優先保持與舊模型的行為和輸出的接近程度,從而防止偏差過大。讓我們將其形象化:
簡而言之,StayStablePart確保模型逐步學習並且不會出現瘋狂的跳躍。

DeepSeek R1 Zero 的獎勵建模

現在已經瞭解了主要的理論概念,讓我們使用文字輸入來了解建立 R1 Zero 的獎勵模型是如何運作的。
請記住,對於 R1 Zero,他們保持了簡單和直接。他們沒有使用複雜的神經網路來判斷答案(就像他們在後期階段可能使用的那樣),而是使用了基於規則的獎勵系統。
對於我們的數學問題:“2 + 3 * 4 等於多少?”

基於規則的檢查

系統知道正確答案是14。它將檢視 DeepSeek V3(我們的 RL 代理)生成的輸出,並特別檢查<answer>標籤內部。
如果<answer>標籤包含“14”(或數值相同的內容),它會得到正獎勵,比如說+1。如果它錯了,它會得到0獎勵,甚至可能是負獎勵(儘管本文現階段為了簡單起見重點關注 0)。

格式獎勵

但是 DeepSeek R1 Zero 還需要學習正確地構建其推理,並且可以使用標籤,正確使用格式的獎勵較小。
檢查模型輸出是否正確地將推理過程包含在<think>…</think>內,並將最終答案包含在<answer>…</answer>內。
DeepSeek R1 論文明確提到避免使用DeepSeek-R1-Zero 的神經獎勵模型,以防止獎勵駭客攻擊並降低初始探索階段的複雜性

獎勵訓練模板

為了使獎勵模型有效,研究人員設計了特定的訓練模板。該模板充當藍圖,指導 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:
{prompt} 是插入數學問題的地方,例如2 + 3 * 4 等於多少?。重要的是<think>和<answer>標籤。這種結構化輸出對於研究人員以後窺探模型的推理步驟非常重要。
當訓練 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 團隊有意讓這個模板保持簡單並專注於結構,而不是告訴模型如何推理。

DeepSeek R1 Zero 的 RL 訓練過程

儘管論文沒有指定RL 預訓練的確切初始資料集,但我們假設它應該以推理為中心。
第一步是使用舊策略(即強化學習更新之前的DeepSeek-V3-Base模型)生成多個可能的輸出。在一次訓練迭代中,假設 GRPO 取樣一組G = 4 個輸出。
例如,模型針對我們的文字輸入生成以下四個輸出:What is 2 + 3 * 4?
  • • o1:(<think> 2 + 3 = 5, 5 * 4 = 20 </think> <answer> 20 </answer>操作順序不正確)
  • • o2:(<think> 3 * 4 = 12, 2 + 12 = 14 14 正確)
  • • o3:(<answer> 14 </answer>正確,但缺少<think>標籤)
  • • o4:(<think> …some gibberish reasoning… </think> <answer> 7 </answer>不正確且推理不充分)
每個輸出將根據正確性和推理質量進行評估並分配獎勵。
為了引導模型更好地推理,基於規則的獎勵系統開始發揮作用。每個輸出都會根據以下條件分配獎勵:
  • • 準確度獎勵:答案是否正確。
  • • 格式獎勵:推理步驟是否用標籤正確格式化
假設獎勵分配如下:
該模型應該學會青睞具有更高獎勵的輸出,同時降低產生不正確或不完整輸出的機率。
為了確定每個輸出對模型效能的改善或惡化程度,我們使用獎勵值計算優勢(advantage)。優勢有助於透過強化更好的輸出來最佳化策略。
為此,讓我們計算平均第一次獎勵。
標準差(近似)=0.5,現在計算每個輸出的優勢。
產出o2 和 o3獲得正優勢,意味著應鼓勵它們。產出o1 和 o4獲得負優勢,意味著應阻止它們。
然後,GRPO 使用計算出的優勢來更新策略模型(DeepSeek-V3-Base),以增加生成具有高優勢的輸出(如 o2 和 o3)的機率,並降低具有低優勢或負優勢的輸出(如 o1 和 o4)的機率。
更新根據以下內容調整模型權重:
  • • 政策比率(Policy Ratios):新政策與舊政策下產生產出的機率。
  • • 剪輯機制(Clipping Mechanism):防止過大的更新導致訓練不穩定。
  • • KL散度懲罰(KL-Divergence Penalty):確保更新不會偏離原始模型太遠。
這確保在下一次迭代中,模型更有可能生成正確的推理步驟,同時減少不正確或不完整的響應。
因此,強化學習是一個迭代過程。使用不同的推理問題重複上述步驟數千次。每次迭代都會逐漸提高模型的以下能力:
  • • 執行正確的操作順序
  • • 提供邏輯推理步驟
  • • 始終使用正確的格式
  • • 整體訓練迴圈如下:
隨著時間的推移,模型會從錯誤中學習,從而變得更加準確和有效地解決推理問題。

R1 Zero的兩個主要問題

在 V3 模型上使用強化學習訓練流程建立 DeepSeek-R1 Zero 後,研究人員發現訓練後的模型在推理測試中表現非常出色,甚至在AIME 2024等任務上的得分與OpenAI-01-0912等更高階的模型相當。這表明使用強化學習 (RL) 來鼓勵語言模型進行推理是一種很有前途的方法。
但他們也注意到 DeepSeek-R1-Zero 存在一些關鍵問題,需要修復才能在實際中使用和進行更廣泛的研究。
DeepSeek 的研究人員表示,該模板刻意設計得簡單且注重結構。它避免對推理過程本身施加任何特定於內容的限制。例如,它沒有說:
  • • “你必須使用逐步的推理”(它只是說“推理過程”,而讓模型來定義其含義)。
  • • “你必須運用反思推理”
  • • “你必須使用特定的解決問題策略”主要問題是<think>標籤內的推理過程難以閱讀,從而導致人類難以理解和分析。
另一個問題是語言混合,當被問及多語言問題時,模型有時會在同一個回答中混合多種語言,導致輸出不一致和混亂。如果你用西班牙語問它問題。突然間,它的“思維”就會變成英語和西班牙語的混雜!這些問題,混亂的推理和語言混亂,是明顯的障礙。
這是他們將最初的 R1 Zero 模型改造為 R1 的兩個主要原因
在下一部分中,將介紹他們如何將 R1 zero模型改進為 R1 模型,從而提高其效能並幫助其勝過所有其他模型(無論是開源的還是封閉的)。

冷啟動資料

為了解決 R1 Zero 問題並真正正確地進行 DeepSeek 推理,研究人員進行了冷啟動資料收集並加入了監督微調。
你可以將其視為在真正激烈的強化學習訓練之前為模型打下良好的推理基礎。基本上,他們想教會DeepSeek-V3Base良好的推理是什麼樣的以及如何清晰地呈現它。

具備長CoT的Few-shot提示

他們為 DeepSeek-V3 Base 提供了一些問題示例以及非常詳細的分步解決方案,稱為思維鏈 (CoT)。這個想法是讓模型透過示例進行學習,並開始模仿這種分步推理風格。
讓我們直觀地理解基於示例的學習:
對於示例問題 What is 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 | 只是將推理步驟與Summary分開的標記,使模型能夠清楚地學習結構。
看到這些例子後,模型應該學會以類似的格式給出答案,例如 What is 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.

直接提示
他們收集資料的另一種方式是直接提示模型不僅解決問題,而且還逐步明確地展示其推理,然後仔細檢查其答案。
這是為了促進更加謹慎和周到的解決問題。
對於 What is 2 + 3 * 4? 提示可能是:

Problem: Solve this, show reasoning step-by-step, and verify:

What is 2 + 3 * 4?

他們確實期望輸出包含推理步驟和驗證部分:

| special_token | Reasoning: To solve 2 + 3 * 4, I need to use order of 

operations. Multiplication comes before addition.

Step 1: Calculate 3 * 4 = 12.

Step 2: Add 2 to the result from step 1: 2 + 12 = 14.

Verification:  Checking order of operations again, yes, multiplication 

is before addition.  Calculation looks right.

| special_token | Summary: The answer is 14.

後處理細化
他們甚至使用了已經訓練過的 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)。

監督微調

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.

這是希望模型學習生成的理想輸出。我們在告訴模型:
當你看到這個輸入(問題),我們希望你給出這個目標輸出(合理的推理和答案)。
與其用詳細的文字解釋它,讓你很難理解,讓我們先把它形象化,以便有一個更容易的SFT解釋。
微調過程從輸入開始:提示 + 目標推理,我們提供問題和結構化的推理示例。這會訓練模型(DeepSeek-V3-Base 模型)生成結構良好的響應。
在預測下一個token時,模型生成推理序列中的下一個單詞。使用損失函式將其與比較目標token中的實際下一個token進行比較。損失越大,意味著預測距離正確token越遠。
在更新模型引數時,反向傳播和最佳化器會調整模型的權重以改善其預測。此過程迴圈往復,在許多輸入-目標對上重複,每次迭代都會逐漸改善模型結構化推理能力。

面向推理的強化學習

他們在SFT中為 DeepSeek V3 提供了推理教育,但為了真正提高其推理能力,研究人員引入了面向推理的學習!
在這裡,我們採用 SFT 微調的 DeepSeek-V3 模型,並透過強化學習推動它變得更好。
他們確實使用了相同的GRPO 演算法,但此階段真正的升級是獎勵系統。他們添加了一些新的、非常重要的語言一致性獎勵!
還記得 R1 Zero 有時會對語言感到困惑並開始混雜它們嗎?為了解決這個問題,專門增加了對保持語言一致性的獎勵。這個想法很簡單,如果你用英語問問題,我們希望推理和答案也是用英語。
讓我們直觀地看一下語言一致性獎勵的計算:
為了理解上圖,讓我們重新回顧之前的示例輸出o1和o2,並看看獎勵如何隨著這一新的語言一致性獎勵而變化。為簡單起見,我們假設目標語言是英語。
讓我們看看這些獎勵如何在示例輸出中發揮作用。考慮第一個輸出 o1,它錯誤地計算了“2 + 3 * 4”,但用英語呈現了其有缺陷的推理:
<think> 2 + 3 = 5, 5 * 4 = 20 </think> <answer> 20 </answer>
對此,準確度獎勵自然為 0,因為答案是錯誤的。但是,由於假設推理 100% 使用目標語言(本例中為英語),因此語言一致性獎勵為 1。
當我們計算 RL 階段的總獎勵時,我們會將這些結合起來。如果我們為準確度獎勵分配權重 1,為語言一致性獎勵分配較小的權重(例如 0.2),則 o1 的總獎勵變為。

Total Reward = (1 * Accuracy Reward) + (0.2 * Language Consistency Reward)

(1 * 0) + (0.2 * 1) = 0.2

現在考慮輸出 o2,它正確地解決了問題並且用英語給出了理由:
<think> 3 * 4 = 12, 2 + 12 = 14 </think> <answer> 14 </answer>
此輸出因正確答案而獲得完美準確度獎勵 1。假設其推理也是 100% 英語,它還會獲得語言一致性獎勵 1。使用與之前相同的權重,o2 的總獎勵為
(1 * 1)+(0.2 * 1)= 1.2
請注意,只要保持語言一致性,語言一致性獎勵就會略微提高正確答案的總獎勵,甚至會為錯誤答案 o1 提供小幅正獎勵。
這個 RL 訓練迴圈遵循我們之前看到的相同的 DeepSeek R1 Zero 訓練迴圈:
  • 生成多個輸出。
  • 完善獎勵,包括語言一致性。
  • 使用 GRPO 進行優勢估計。
  • 訓練模型以支援高優勢輸出。
  • 重複該過程!

拒絕取樣

對於推理資料,DeepSeek 團隊希望獲得絕對最佳的示例來進一步訓練模型。為此,他們使用了一種稱為拒絕抽樣的技術。
為了完善推理資料,DeepSeek 使用了拒絕抽樣。對於“What is 2 + 3 * 4?”,他們會從上一階段的模型中生成許多輸出。想象一下得到<answer>20</answer>(錯誤)和<answer>14</answer><think>…</think>(正確,推理)這樣的輸出。
然後,他們會評估每個輸出的正確性(答案“14”)和推理的可讀性。只有正確且推理充分的最佳輸出才會被保留,而其他輸出則會被拒絕。
對於複雜推理,使用生成獎勵模型來判斷推理質量。嚴格的過濾器會刪除混合語言、雜亂無章的推理或不相關的程式碼。此過程會產生約 600k 個高質量推理樣本。
除了細化的推理資料外,他們還添加了用於通用技能的非推理資料(約 20 萬個樣本):寫作、問答、翻譯等,有時還使用思路鏈來完成複雜的任務。
最後,SFT 第 2 階段使用下一個token預測在組合資料集(細化推理 + 非推理)上訓練上一個模型checkpoint。此階段使用來自拒絕取樣的頂級示例進一步改進推理,並將模型推廣到更廣泛的任務,同時保持使用者友好性。
這就是拒絕抽樣,拒絕低於標準的樣本,只保留最好的樣本,以生成高質量的訓練資料

適用於所有場景的強化學習

在SFT 第 2 階段之後,我們已經讓 DeepSeek V3 能夠推理、一致地說話,甚至可以很好地處理一般任務!但為了真正使其成為頂級的 AI 助手,我們進行了研究,使其與人類價值觀保持一致。這就是強化學習適用於所有場景(RL 第 2 階段)的使命!將其視為使 DeepSeek R1 真正安全的最後潤色。
對於我們的例子“What is 2 + 3 * 4?”雖然準確性獎勵仍然強化正確答案,但獎勵系統現在還會考慮:
  • • 有用性,評估摘要(如果生成)是否除了答案之外還提供了有用的背景資訊。
  • • 無害性,檢查整個輸出內容是否安全且無偏見。這些通常由根據人類偏好訓練的單獨獎勵模型進行評估。最終的獎勵訊號成為準確性、有用性和無害性分數的加權組合。
現在,訓練資料包括
  • • 多樣化組合,包括推理問題
  • • 常規 QA 提示
  • • 寫作任務
  • • 以及偏好對,其中人類指出兩個模型輸出中哪一個在有用性和無害性方面更好。
訓練過程遵循迭代 RL 迴圈(可能使用 GRPO),根據來自這些多樣化資料的組合獎勵訊號來最佳化模型。
經過多次迭代訓練,模型會不斷完善,在推理效能和對齊(有用性/無害性)之間取得良好的平衡。一旦達到這種平衡,該模型就會在流行的基準資料集上進行評估,並超越其他模型的效能。
他們的最終檢查點,高度最佳化的版本被命名為 DeepSeek-R1

蒸餾

在 DeepSeek 團隊能夠建立效能良好的 DeepSeek R1 之後,他們進一步將更大的模型蒸餾成更小的模型,以便為社群提供效能更高的模型,蒸餾過程的工作方式如下:
  • • 資料準備:收集800k個推理樣本。
  • • DeepSeek-R1 輸出:對於每個樣本,來自教師模型(DeepSeek-R1)的輸出用作學生模型的目標。
  • • 監督微調(SFT):學生模型(例如,Qwen-1.5B、Llama-14B)在這 800k 個樣本上進行微調,以匹配 DeepSeek-R1 輸出。
  • • 蒸餾模型:學生模型現在被蒸餾成更小的版本,但保留了 DeepSeek-R1 的大部分推理能力。
  • • 結果:獲得更小、更快、具有良好推理能力的模型,隨時可以部署。

引用連結

[1] DeepSeek-V3: https://github.com/deepseek-ai/DeepSeek-V3
技術交流群邀請函
△長按新增小助手
掃描二維碼新增小助手微信
請備註:姓名-學校/公司-研究方向
(如:小張-哈工大-對話系統)
即可申請加入自然語言處理/Pytorch等技術交流群

關於我們

MLNLP 社群是由國內外機器學習與自然語言處理學者聯合構建的民間學術社群,目前已經發展為國內外知名的機器學習與自然語言處理社群,旨在促進機器學習,自然語言處理學術界、產業界和廣大愛好者之間的進步。
社群可以為相關從業者的深造、就業及研究等方面提供開放交流平臺。歡迎大家關注和加入我們。

相關文章