LLM 課程文件

理解 DeepSeek R1 論文

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

理解 DeepSeek R1 論文

本章是一次速成論文閱讀。我們將以簡單的語言講解論文,然後剖析其關鍵概念和要點。

DeepSeek R1 代表了語言模型訓練的重大進展,特別是在透過強化學習開發推理能力方面。該論文引入了一種新的強化學習演算法,稱為組相對策略最佳化(Group Relative Policy Optimization,簡稱 GRPO)。

DeepSeek R1 Overview

在下一章中,我們將在這些知識的基礎上,實踐 GRPO。

這篇論文的最初目標是探索純強化學習是否能在沒有監督微調的情況下開發推理能力。

在此之前,所有流行的 LLM 都需要一些監督微調,我們在第 11 章中探討過。

突破性的“Aha 時刻”

The 'Aha Moment'

R1-Zero 訓練中最顯著的發現之一是“Aha 時刻”現象的出現。這種現象與人類在解決問題時突然領悟的方式有些相似。其工作原理如下:

  1. 初次嘗試:模型初次嘗試解決問題。
  2. 識別:它識別出潛在的錯誤或不一致之處。
  3. 自我糾正:它根據識別結果調整方法。
  4. 解釋:它能解釋為什麼新方法更好。

這一突破引起了學習者的共鳴,感覺就像“尤里卡時刻”。它展示了學習而非單純的記憶,所以讓我們花點時間想象一下擁有“Aha 時刻”是什麼感覺。

例如,想象你正在解一個謎題。

  • 第一次嘗試:“這塊基於顏色應該放在這裡。”
  • 識別:“但是等等,形狀不太合適。”
  • 糾正:“啊,它實際上屬於那裡。”
  • 解釋:“因為顏色和形狀模式都與這個位置匹配。”

這種能力是在強化學習訓練中自然出現的,沒有經過明確程式設計,表明模型實現了學習,而不僅僅是記憶訓練資料中的某個過程。

理解“Aha 時刻”最簡單的方式是親眼看到它的實際運作。讓我們看一個例子。在下面的聊天中,我們要求模型解決一個問題,使用者介面會顯示模型解決問題時的思考過程。

如果你想嘗試 Deepseek 的 R1,你也可以訪問 Hugging Chat

訓練過程

R1 的訓練是一個多階段過程。讓我們分解每個階段及其關鍵創新。

最終過程產生兩個模型:

  • DeepSeek-R1-Zero:純粹使用強化學習訓練的模型。
  • DeepSeek-R1:在 DeepSeek-R1-Zero 的基礎上,增加了監督微調的模型。
特性 DeepSeek-R1-Zero DeepSeek-R1
訓練方法 純強化學習 多階段(SFT + RL)
微調 監督微調
推理能力 湧現 增強
AIME 效能 71.0% 79.8%
關鍵特性 推理能力強但可讀性問題 更好的語言一致性和可讀性

雖然 DeepSeek-R1-Zero 展示了純強化學習在開發推理能力方面的潛力,但 DeepSeek-R1 在此基礎上,採用了一種更平衡的方法,兼顧了推理效能和可用性。

訓練過程包括四個階段:

  1. 冷啟動階段
  2. 推理強化學習階段
  3. 拒絕取樣階段
  4. 多樣化強化學習階段

讓我們分解每個階段:

冷啟動階段(質量基礎)

Cold Start Phase

此階段旨在為模型的可讀性和響應質量奠定堅實基礎。它使用來自 R1-Zero 的少量高質量樣本來微調 V3-Base 模型。團隊從 DeepSeek-V3-Base 模型開始,使用數千個來自 R1-Zero 的經過驗證的高質量樣本進行監督微調。這種創新方法使用少量但高質量的資料集來建立強大的基線可讀性和響應質量。

推理強化學習階段(能力構建)

Reasoning RL Phase

推理強化學習階段側重於開發跨領域的核心推理能力,包括數學、編碼、科學和邏輯。此階段採用基於規則的強化學習,獎勵直接與解決方案的正確性掛鉤。

重要的是,此階段的所有任務都是“可驗證的”,因此我們可以檢查模型的答案是否正確。例如,在數學的情況下,我們可以透過使用數學求解器來檢查模型的答案是否正確。

這個階段的特別創新之處在於其直接最佳化方法,消除了對單獨獎勵模型的需求,從而簡化了訓練過程。

拒絕取樣階段(質量控制)

Rejection Sampling Phase

在拒絕取樣階段,模型生成樣本,然後透過質量控制過程進行過濾。DeepSeek-V3 作為質量評判者,評估超出純推理任務範圍的廣泛輸出。然後,過濾後的資料用於監督微調。此階段的創新之處在於其能夠結合多個質量訊號,以確保高標準的輸出。

多樣化強化學習階段(廣泛對齊)

Diverse RL Phase

最後的“多樣化強化學習階段”採用複雜的混合方法處理多種任務型別。對於確定性任務,它採用基於規則的獎勵;而主觀任務則透過 LLM 反饋進行評估。此階段旨在透過其創新的混合獎勵方法實現人類偏好對齊,該方法結合了基於規則系統的精確性和語言模型評估的靈活性。

演算法:組相對策略最佳化 (GRPO)

既然我們已經很好地理解了訓練過程,現在來看看用於訓練模型的演算法。

作者將 GRPO 描述為模型微調方面的一項突破。

GRPO Process

GRPO 的新穎之處在於它能夠“直接最佳化偏好糾正”。這意味著一種更直接、更高效的方式來使模型與所需輸出對齊,這與傳統的強化學習演算法(如 PPO)形成對比。讓我們透過其三個主要組成部分來分解 GRPO 的工作原理。

組形成:建立多個解決方案

GRPO 的第一步非常直觀——它類似於學生如何透過嘗試多種方法來解決難題。當給定一個提示時,模型不只生成一個響應;相反,它會嘗試解決相同問題多次(通常是 4、8 或 16 次不同的嘗試)。

想象你正在教一個模型解決數學問題。對於一個關於農場數雞的問題,模型可能會生成幾種不同的解決方案:

  • 一種解決方案可能會逐步分解問題:首先計算總雞數,然後減去公雞,最後計算非產蛋母雞。
  • 另一種可能會使用不同的但同樣有效的方法。
  • 有些嘗試可能包含錯誤或效率較低的解決方案。

所有這些嘗試都作為一個組儲存在一起,就像有多個學生的解決方案可以比較和學習一樣。

Group Formation

偏好學習:理解什麼是好的解決方案

這就是 GRPO 簡單之處的真正亮點。與其他需要單獨獎勵模型來預測解決方案優劣的 RLHF 方法不同,GRPO 可以使用任何函式或模型來評估解決方案的質量。例如,我們可以使用長度函式來獎勵更短的響應,或者使用數學求解器來獎勵準確的數學解決方案。

評估過程著眼於每個解決方案的各個方面:

  • 最終答案是否正確?
  • 解決方案是否遵循了正確的格式(例如使用了正確的 XML 標籤)?
  • 推理過程與提供的答案是否匹配?

這種方法特別巧妙之處在於其評分方式。GRPO 不僅僅給出絕對分數,而是對每個組內的獎勵進行歸一化。它使用一個簡單但有效的公式進行組相對優勢估計。

Advantage = (reward - mean(group_rewards)) / std(group_rewards)

Preference Learning

這種標準化就像是人工智慧的“按曲線評分”。它幫助模型理解組內哪些解決方案比其他同類更好或更差,而不是隻看絕對分數。

最佳化:從經驗中學習

最後一步是 GRPO 根據從評估解決方案組中學到的知識來改進模型。這個過程既強大又穩定,使用了兩個主要原則:

  1. 它鼓勵模型生成更多成功的解決方案,同時遠離效率較低的方法。
  2. 它包含一個安全機制(稱為 KL 散度懲罰),可防止模型一次性發生過於劇烈的變化。

這種方法比傳統方法更穩定,因為:

  • 它同時考慮多個解決方案,而不是一次只比較兩個。
  • 基於組的歸一化有助於防止獎勵縮放問題。
  • KL 懲罰就像一個安全網,確保模型在學習新事物的同時不會忘記它已經知道的東西。

GRPO 的關鍵創新是:

  • 直接從任何函式或模型中學習,消除了對獨立獎勵模型的依賴。
  • 基於組的學習,比傳統的配對比較方法更穩定、更高效。

這個分解很複雜,但關鍵在於 GRPO 是一種更高效、更穩定的模型訓練推理方法。

GRPO 演算法的虛擬碼

現在我們已經理解了 GRPO 的關鍵組成部分,接下來我們來看看演算法的虛擬碼。這是一個簡化版的演算法,但它捕捉了核心思想。

Input: 
- initial_policy: Starting model to be trained
- reward_function: Function that evaluates outputs
- training_prompts: Set of training examples
- group_size: Number of outputs per prompt (typically 4-16)

Algorithm GRPO:
1. For each training iteration:
   a. Set reference_policy = initial_policy (snapshot current policy)
   b. For each prompt in batch:
      i. Generate group_size different outputs using initial_policy
      ii. Compute rewards for each output using reward_function
      iii. Normalize rewards within group:
           normalized_advantage = (reward - mean(rewards)) / std(rewards)
      iv. Update policy by maximizing the clipped ratio:
          min(prob_ratio * normalized_advantage, 
              clip(prob_ratio, 1-epsilon, 1+epsilon) * normalized_advantage)
          - kl_weight * KL(initial_policy || reference_policy)
          
          where prob_ratio is current_prob / reference_prob

Output: Optimized policy model

該演算法展示了 GRPO 如何將基於組的優勢估計與策略最佳化相結合,同時透過裁剪和 KL 散度約束保持穩定性。

結果和影響

現在我們已經探討了演算法,接下來看看結果。DeepSeek R1 在多個領域取得了最先進的效能:

領域 主要結果
數學 • AIME 2024 上達到 79.8%
• MATH-500 上達到 97.3%
程式設計 • Codeforces 評分:2029
• LiveCodeBench:65.9%
通用知識 • MMLU:90.8%
• GPQA Diamond:71.5%
語言任務 • AlpacaEval 2.0:勝率 87.6%
• FRAMES:82.5%

該模型的實際影響超越了基準測試,透過其經濟高效的 API 定價(每百萬輸入令牌 0.14 美元)和成功跨各種規模(1.5B 到 70B 引數)進行模型蒸餾。值得注意的是,即使是 7B 模型也在 AIME 2024 上達到了 55.5%,而 70B 蒸餾版本在 MATH-500 上接近 o1-mini 效能(94.5%),這表明在不同規模下都能有效保持能力。

GRPO 的侷限性和挑戰

雖然 GRPO 代表了語言模型強化學習的重大進步,但瞭解其侷限性和挑戰也很重要:

  • 生成成本:為每個提示生成多個完成(4-16個)與僅生成一兩個完成的方法相比,增加了計算要求。
  • 批處理大小限制:需要同時處理多個完成組可能會限制有效的批處理大小,增加訓練過程的複雜性並可能減慢訓練速度。
  • 獎勵函式設計:訓練質量很大程度上取決於設計良好的獎勵函式。設計不當的獎勵可能導致意外行為或針對錯誤目標的最佳化。
  • 組大小權衡:選擇最佳組大小需要在解決方案多樣性與計算成本之間取得平衡。樣本太少可能無法提供足夠的多樣性,而樣本太多則會增加訓練時間和資源需求。
  • KL 散度調整:為 KL 散度懲罰找到正確的平衡點需要仔細調整——太高則模型無法有效學習,太低則可能偏離其初始能力太遠。

結論

DeepSeek R1 論文代表了語言模型發展的一個重要里程碑。組相對策略最佳化 (GRPO) 演算法已經證明,純強化學習確實可以發展強大的推理能力,這挑戰了先前關於監督微調必要性的假設。

也許最重要的是,DeepSeek R1 表明,在高效能和成本效益、可訪問性等實際考量之間取得平衡是可能的。該模型在不同規模(從 1.5B 到 70B 引數)上成功蒸餾其能力,展示了使先進 AI 能力更廣泛可用的前進道路。


在下一節中,我們將探討這些概念的實際應用,重點是如何在您自己的語言模型開發專案中使用 GRPO 和 RFTrans。

測驗

1. DeepSeek R1 論文的主要創新點是什麼?

2. DeepSeek R1 訓練過程的四個階段是什麼?

3. R1-Zero 訓練中的“Aha 時刻”現象是什麼?

4. GRPO 的組形成如何運作?

5. DeepSeek-R1-Zero 和 DeepSeek-R1 的主要區別是什麼?

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.