細緻扒一下DeepSeek-R1論文到底講了些什麼
文章來源:騰訊科技工程
Image source: Generated by AI
1、 Approach
先前的大型語言模型(LLMs)相關的很多工作裏都依賴大量的人工標注的數據去提升模型效能。 但在Deep Seek R1這篇論文中指出:
模型的推理能力(reasoning capabilities)可以通過大規模的强化學習(Reinforcement learning)來提升
,甚至不需要用SFT(supervised fine-tune)來完成冷啟部分的工作。
P.S.通過少量的SFT完成模型的冷啟(cold-start)可以進一步提升模型表現。
個人隨想:少量的SFT在冷啟階段提升了模型的效能,使得在後續RL的訓練中能更好的找到答案。
通俗易懂版:如果把模型比作一個武俠小說中的習武人,‘少量的SFT’就猶如武功秘笈。 當提供一個秘笈給習武人去修煉(對應模型訓練),他能少走彎路且更快修成武功(優秀的模型表現)。 但如果沒有這個秘笈,習武人可能就會走上彎路,需要更多的修煉探索去修成武功,甚至一有不慎就走上歪路走火入魔了(訓練崩了)。
論文中提到的關鍵步驟及模型關係圖
1.1、 DeepSeek-R1-Zero
過往的LLM訓練工作嚴重依賴有監督的數據,而收集這些數據耗時費力。 而DeepSeek-R1-Zero的訓練過程與結果表現體現出LLMs在沒有任何監督數據的情况下發展推理能力的潜力,展現出其通過純粹的强化學習過程的自我進化。
P.S. DeepSeek-R1-Zero是基於DeepSeek-V3-Base純用RL的管道訓練出來的模型(沒使用任何SFT的數據)。
1.1.1强化學習算灋
Group Relative Policy Optimization(群體相對策略優化)
為了
節省强化學習的訓練成本
,採用了GRPO的管道進行訓練。 該方法捨棄了傳統PPO算灋中的Critic模型(通常與策略模型大小相同)部分,轉而通過直接從群體得分中估算baseline。
具體來說,對於每一個問題q,GRPO會從舊的策略模型參數 中採樣一組輸出,然後通過最大化GRPO目標函數以優化當前策略模型參數。
輔助理解:不同的策略模型實際上都是同一個模型在不同參數階段下的版本:具體可以按如下理解
:上一輪模型參數的模型,可以理解為上一個iteration的模型。
:最新的模型參數的模型(正在更新的)。
:初始模型參數。
原文公式如下圖所示:
ε控制學習步長上限,保證每一輪學習不至於與上一輪偏移過大。 主要是防止策略崩潰。
β控制原始能力偏移懲罰的程度。 主要是緩解災難性遺忘的問題。
是advantage,通過如下公式計算出:
個人圖解如下(便於理解):
從Policy Gradient到PPO到GRPO(個人推理版,數學推導警告 ⚠️, 如有錯誤歡迎指出糾正)
一些基礎概念(LLM訓練任務下好理解版):
π(Policy,策略):即LM模型
θ(Parameter,參數):即模型參數
τ(Trajectory,軌跡):即輸出序列,此處可以理解為輸出的一整個句子,每一個輸出token即為action。
s(State,互動狀態):即上文,初始狀態即為
a(Action,互動行為):即輸出的token,可以簡單理解為每個字元。 (實際上一個字不等於一個token)
那麼,我們可以得到模型參數θ下生成序列τ的概率如下:
Reward Function(獎勵函數定義,即輸出序列能獲得的獎勵):
囙此可得,模型參數下的Expected Reward(期望獎勵):
綜上,我們希望調整模型參數使這個期望獎勵越大越好,囙此可得Policy Gradient公式如下,期望做gradient ascent最大化期望獎勵:
#實際上就是N個軌跡近似期望,使期望reward最大化#環境無法作用gradient所以可以移除
直觀理解:在某個state(上文)下執行某個action(token)使得最後整個輸出的reward是正的時候,我們應該新增這個輸出的幾率,反之减少。
但是,如果仔細看上述公式,會發現即reward恒為正的情况,那會導致一直在新增任何token的輸出概率。 但我們實際操作中是用sample的管道來訓練,這就導致某些項實際上因為沒被sample到而導致輸出概率下降(實際ground truth是要提升)。 所以我們希望引入一個baseline(b)讓reward不是恒為正。 公式變成如下:
通常我們可以將baseline設定為reward的期望值,即
同時,我們知道最終輸出的是一個序列,且在算reward時是以的細微性計算的。 即使整體的reward是正的,也不意味著中的每一個action都是有收益的(如:說了一串廢話,最後才說對結果)。 囙此更合理的做法是我們需要給每一個action合適的credit。
首先,我們會有一些假設(注意:並不一定什麼情况下都適用,應根據具體情況使用不同的reward function):
1、reward應單獨為每個action計算(前面的)
#計算當前action後所有reward的總和作為當前action的reward
2、越快完成任務應越重要,距離越遠貢獻越小
#為時間衰减函數
實際上這一項其實是在算在某個state下執行某個action比執行其他action有多好,也就是我們常說的Advantage Function,可以表示為,囙此綜上公式可以寫作:
PPO(Proximal Policy Optimization)
由於Policy Gradient是一個on policy的管道,在每一輪更新後都需要重新收集訓練數據,這無疑是很麻煩的。 囙此我們希望將其改造為一個off policy的管道,能重複使用一批數據去更新參數。
Importance Sampling: 【解釋起來太複雜此處不過多贅述】
基於上述公式Policy Gradient可以寫作:
# 假設不受到影響
囙此我們能得到一個新的Objective Function:
# Note:
實際上是在互動,然後更新。
為了保證訓練後比之前不至於差距太大(基礎能力等不會變化太大),引入一個類正則項如下:
Note: 這個KL散度說的不是參數分佈距離,而是輸出分佈距離(behavior distance)。 實際應用中可以使用adaptive KL penalty用於動態調整,即
if , increase
if , decrease
但更多的大家會用以下PPO2公式,簡化計算(KL太難算):
本質上就是替換了adaptive KL penalty這一塊,保證兩個分佈間不要差距太大。
Note: clip(a,b,c); 當ac時,取c; 其餘取a。
其實GRPO就是在ppo2的思想基礎上調整了Advantage function的計算管道,同時引入正則項保證模型初始能力不會在訓練過程中有太大的偏移(一路看下來推理過程的話想必是能看明白了)。 【能力有限如有表達不清晰的地方歡迎討論】
1.1.2 Reward Modeling(獎勵建模)
Reward是訓練訊號的來源,决定了RL的優化方向。 該Reward採用了一種rule-based的reward system,該系統主要由兩種類型的Reward組成:
- Accuracy Reward(準確性獎勵):評估回答是否正確。
例如,在具有確定性結果的數學問題中,要求模型以指定格式(例如,放在方框內)給出最終答案,從而直接選取出LLM答案來驗證正確性。 同樣,對於LeetCode上的程式設計問題,可以使用編譯器根據預先定義的測試用例生成迴響判斷正誤。
P.S.從部署的蒸餾後的QWen模型看到數學問題的方框格式應是這樣的: [ \boxed{} ]
- Format Reward(格式獎勵):強制模型將其思考過程放在‘’和‘’標籤之間。
討論:獎勵實現管道原文沒有細說。 由於是rule-based,此處猜測只是單純的判斷輸出是否存在和標籤,並且判斷答案是不在標籤框住的部分內之類的。
為什麼不用結果導向或過程導向的神經獎勵模型(neural reward model)?
因為發現神經獎勵模型在大規模强化學習過程中可能會面臨獎勵濫用(reward hacking)問題。 此外,重新訓練獎勵模型需要額外的訓練資源,同時也會導致整個訓練流程的複雜度顯著增加。
知識注解:
神經獎勵模型(neural reward model)
:通過神經網路學習或預測獎勵訊號(Reward Signal),用於指導智慧體的決策行為。 一般用於解决傳統人工設計獎勵函數(Handcrafted Reward)難以覆蓋複雜場景的問題。
獎勵濫用(reward hacking)
:欺騙獎勵模型得分。 可以簡單理解為咱們小時候做數學題的‘格式分’(如:數學題前寫‘解:’來得分),但這些分數獎勵實際上並不能幫助模型很好的學習到如何解題。
1.1.3 Training Template(訓練格式)
為訓練DeepSeek-R1-Zero模型,首先設計了一個簡潔的指令範本來引導基座模型遵循預設規範。 如下圖所示,該範本要求模型必須先生成完整的推理過程,再輸出最終答案。 其刻意將約束條件限定於結構範式層面,規避任何內容導向的偏差(例如強制要求反思性推理或推廣特定解題策略),以此確保在强化學習過程中能精准捕捉模型的原生進化軌跡。
1.1.4 Performance, Self-evolution Process, and Aha Moment of DeepSeek-R1-Zero
【實驗performance在這不做過多贅述,有興趣的同學可以看原文,此處更多的是抽取科技相關內容討論】
DeepSeek-R1-Zero無需依賴任何監督微調數據即可實現强大的推理能力,其充分驗證了該模型僅通過强化學習(Reinforcement Learning,RL)即可完成高效學習與泛化的科技路徑。 此外,通過引入多數投票(Majority Voting)機制,可進一步顯著提升DeepSeek-R1-Zero的效能表現。
討論:Ensemble Learning的管道可能是可以進一步顯著提升表現的路徑。 意味著可以嘗試通過MoE(Mixture of Experts with TopN Gating)的管道在保持推理參數量不變的情况下進一步提升效能。
Self-evolution Process of DeepSeek-R1-Zero
DeepSeek-R1-Zero的自我進化過程生動地揭示了RL是如何驅動模型自主提升推理能力的。 通過直接從基座模型(Base Model)啟動RL訓練,能够完全排除監督微調(Supervised Fine-Tuning)階段的干擾,實現對模型進化軌跡的全程觀測。 這一方法論為追跡模型進化路徑提供了清晰的觀測視窗,尤其能有效揭示其在處理複雜推理任務時展現出的推理能力。
DeepSeek-R1-Zero通過擴展測試時計算(Test-time Computation)能力,實現了對複雜推理任務的自主攻克。 該過程涵蓋生成數百至數千個推理標記(Reasoning Tokens)的運算規模,使模型能够在更深層次上探索並優化其思維過程。 這種自我進化最顯著的特徵在於:隨著測試時計算量的新增,複雜行為的湧現現象(Emergence of Sophisticated Behaviors)開始顯現。 具體表現為:
1、反思機制(Reflection):模型會自主回溯並重新評估先前推理步驟
2、多路徑探索:系統自發嘗試不同的問題解决策略
值得注意的是,這些高階認知行為並非通過預設程式設計實現,而是完全源於模型與强化學習環境的持續互動。 這種自組織演化特性使DeepSeek-R1-Zero的推理能力產生質變,在效率與準確性維度同步提升,最終形成攻克複雜任務的系統性解決方案。
Aha Moment of DeepSeek-R1-Zero
【這裡不做過多贅述,看圖就能感受到RL所帶來的震撼。】
Aha moment有力印證了RL在人工智慧系統中解鎖智慧新層級的潜力,進而為構建更具自主性與自我調整能力的下一代模型開闢了科技路徑。 這一塊為後續工作,甚至是通往AGI的工作留下了更多想像空間。
The Drawback of DeepSeek-R1-Zero
誠然,純RL的訓練管道給我們帶來很多震撼,也讓模型能出人意料的自發發掘進化推理能力,但其還是有一些缺陷的。 其中,最顯著的是DeepSeek-R1-Zero產出的結果常常會出現語言混雜,難以閱讀等問題。 為了讓整個推理流程更為可讀,用人類可讀的冷開機數據完成訓練,得到了DeepSeek-R1,將在下一個section詳細介紹。
隨想&; 討論:
從直覺上來說,該現象是符合預期且合理的。
模型本質上是通過輸出所謂的‘思考過程’來影響後續token的輸出概率分佈(即輸出正確答案的概率)。 同時,BaseModel在預訓練的過程中存在多語言的訓練語料。 囙此只要是能影響後續輸出概率分佈的token,都可能被輸出,被看作‘思考過程’。
某種程度上可以看作是XAI(AI可解釋性)的一種形式,某種程度上可以看作是把深度學習模型內的參數計算(本質上也是在思考,即影響輸出的概率分佈)以自然語言形式展示出來了。 因為自然語言的可讀性,所以才讓人們更加直觀的感受到了所謂的‘智慧’。
1.2、 DeepSeek-R1: Reinforcement Learning with Cold Start
P.S. DeepSeek-R1並非是基於DeepSeek-R1-Zero訓練的,兩者都是以DeepSeek-V3-Base作為BaseModel訓練的。 可以粗暴理解為DeepSeek-R1是DeepSeek-R1-Zero的升級版,DeepSeek-R1-Zero更多的作為了一個數據生成器的角色。
DeepSeek-R1-Zero取得的突破性成果催生出兩個關鍵研究方向:
- 冷開機優化命題:能否通過引入少量高品質數據進行冷開機(Cold Start),從而進一步提升推理效能或加速收斂?
- 人機協同演進命題:如何訓練既具備清晰連貫的思維鏈(Chains of Thought,CoT)表達能力,又擁有强大綜合能力(General Capabilities)的用戶友好型模型?
針對上述問題,設計了DeepSeek-R1的訓練科技方案流程,其具體架構如下:
1.2.1 Cold Start
與DeepSeek-R1-Zero不同,為防止BaseModel在RL訓練初期出現不穩定的冷開機階段,針對DeepSeek-R1構建並收集了少量長思維鏈(long CoT)數據對模型進行微調,作為Actor模型的初始版本。
為收集此類數據,使用了多種方法融合,具體為:
1、構造一個提示詞,讓模型生成包含反思和驗證的詳細答案
2、使用帶有長思維鏈示例通過few-shot prompting的管道注入到提示詞
3、使用DeepSeek-R1-Zero以可讀格式輸出結果
4、使用人工標注完成最後的後處理以精煉結果
DS團隊收集了數千條冷開機數據對DeepSeek-V3-Base進行微調,將其作為强化學習的起點。 相較於DeepSeek-R1-Zero,該冷開機數據具有以下優勢:
•可讀性:DeepSeek-R1-Zero的覈心局限在於其生成內容往往不具備可讀性。 生成結果中可能混合使用多種語言或缺乏Markdown格式來為用戶突出顯示答案。 相比之下,在為DeepSeek-R1構建冷開機數據時,設計了包含可讀性模式的數據——每個回復末尾均包含摘要,並過濾了可讀性差的回復。 具體而言,將輸出格式定義為|special_token||special_token|
,其中對應思維鏈(CoT),部分用於總結推理結果。
•潜力優勢:通過基於人類先驗知識精心設計冷開機數據模式,觀察到模型效能較DeepSeek-R1-Zero有顯著提升。 基於此認為反覆運算式訓練是推理模型更優化的演進路徑。
1.2.2 Reasoning-oriented Reinforcement Learning
在基於冷開機數據對DeepSeek-V3-Base完成微調後,採用了與DeepSeek-R1-Zero相同的大規模强化學習訓練流程。 該階段旨在提升模型的推理能力,特別是針對程式設計、數學、科學和邏輯推理等需要明確解題路徑的强推理型任務。
在訓練過程中,觀察到思維鏈(CoT)常出現語言混雜現象,尤其是當强化學習提示包含多語言內容時。 為緩解語言混雜問題,我們在强化學習訓練中引入了語言一致性獎勵機制,該獎勵通過計算思維鏈中目標語言詞彙的比例來確定。 儘管消融實驗表明這種對齊管道會導致模型效能的輕微下降,但該獎勵機制更符合人類偏好,顯著提升了輸出的可讀性。 最終,將推理任務準確率與語言一致性獎勵直接加權求和,形成綜合獎勵函數。 隨後對微調後的模型實施强化學習訓練,直至其在推理任務上達到收斂狀態。
討論:此處的語言一致性獎勵機制的計算公式原文並沒有給出。 猜測可能仍是rule-based的管道,可能是剔除了數位、標點符號等語言無關的資訊後算CoT過程中的最大同一語言占比。
Rejection Sampling and Supervised Fine-Tuning
當Reasoning-oriented Reinforcement Learning達到收斂後,利用該訓練節點收集SFT數據以進行後續反覆運算。 與初期專注於推理的冷開機數據不同,這個階段綜合了其他領域的數據以提升模型在文字生成、角色扮演等通用任務中的表現。 具體而言,通過了以下方法生成數據並實施微調:
推理數據
:精選推理提示,使用上述RL後的模型checkpoint執行Rejection Sampling來生成reasoning trajectories(推理軌跡)。 在RL階段僅包含可通過規則獎勵評估的數據。 而在當前階段,通過加入額外的數據(不一定可用規則來評估獎勵)來擴展數据集。 囙此,其中部分數據採用生成式獎勵模型(generative reward model)來評估,即將標準答案與模型預測結果輸入DeepSeek-V3進行自動化評估。 由於模型輸出存在語言混雜、可讀性差等問題,我們過濾了包含多語言混合、冗長段落及程式碼塊的思維鏈。 對於每個Prompt,採樣了多個輸出結果並僅保留正確結果。 最終,共收集了約60萬條推理相關訓練樣本。
知識注解:
Rejection Sampling(拒絕採樣):覈心思想是通過一個已知的、易於採樣的提議分佈(proposal distribution)來近似目標分佈,並通過接受或拒絕樣本的機制,最終得到符合目標分佈的樣本集。
非推理數據
:針對寫作、事實問答、自我認知及翻譯等非推理數據,沿用了DeepSeek-V3的構建流程並複用其部分SFT數据集。 對於特定非推理任務,通過prompt的管道要求DeepSeek-V3在回答問題前生成潜在思維鏈; 而對於簡單査詢(如問候語句)則不生成對應的CoT。 最終收集約20萬條非推理訓練樣本。
基於上述約80萬條精選數据集,對DeepSeek-V3-Base實施兩輪SFT訓練。
1.2.3 Reinforcement Learning for All Scenarios
為實現模型與人類偏好的深度對齊,實施了第二階段的强化學習,其目標是在優化推理能力的同時,系統性提升模型的有用性(helpfulness)與無害性(harmlessness)。 具體而言,通過結合獎勵訊號(reward signals)與多樣化提示分佈(diverse prompt distributions)對模型進行訓練:
- 推理數據:沿用DeepSeek-R1-Zero提出的方法框架,在數學、程式設計及邏輯推理領域採用基於規則的獎勵機制(rule-based rewards)
- 通用數據:通過獎勵模型(reward models)捕捉複雜細微場景中的人類偏好。
對齊DeepSeek-V3的數據管線(pipeline)構建系統,採用與其一致的偏好對分佈(preference pair distribution)與training prompts:
- 有用性優化(helpfulness):評估機制僅聚焦最終summary的實用價值(utility)與用戶相關性(relevance),同時最小化對底層推理過程的干擾;
- 無害性保障(harmlessness):對模型輸出的完整內容(含推理鏈與結論)進行全流程檢測,識別並抑制生成過程中可能出現的潛在風險(risks)、認知偏差(biases)及有害內容(harmful content)。
最終,通過融合多維度獎勵訊號與異構數據分佈,我們成功訓練出在保持卓越推理能力的同時,嚴格遵循有用性與無害性優先原則的模型。
1.3、模型蒸餾: R1 -> 小模型
為使羽量級模型具備與DeepSeek-R1相當的推理能力,基於上述的DeepSeek-R1精選80萬樣本,直接對Qwen及Llama等開源模型進行了監督微調(SFT)。 實驗結果表明,這種直接蒸餾方法(straightforward distillation method)可顯著提升小模型的推理能力。 本研究所用基座模型包括:
- Qwen系列: Qwen2.5-Math-1.5B、Qwen2.5-Math-7B、Qwen2.5-14B、Qwen2.5-32B
- Llama系列: Llama-3.1-8B、Llama-3.3-70B-Instruct
針對蒸餾模型(distilled models),僅採用監督微調(SFT)流程,未引入强化學習(RL)階段——儘管RL可顯著增强模型效能。 文中表示研究覈心目標在於驗證蒸餾科技的有效性,而將RL階段的探索空間留給更廣泛學術界。
討論:在下游應用當中或許可以嘗試通過RL的管道讓小模型具備某一垂直領域更强的推理能力提升模型效能。
2. Discussion
2.1 Distillation v.s. Reinforcement Learning
如上所示,通過對DeepSeek-R1進行知識蒸餾(knowledge distillation),羽量級模型可取得顯著性能提升。 然而一個關鍵問題仍未解答:若不採用蒸餾科技,僅依賴本文所述的大規模强化學習(RL)訓練,模型能否達到可比效能? 為驗證此問題,在Qwen-32B-Base模型上開展以下實驗:
- 訓練設定:使用數學、程式設計及STEM領域數據,實施超過10000步的大規模RL訓練,得到DeepSeek-R1-Zero-Qwen-32B;
- 對比基準:基於相同基座模型,通過蒸餾DeepSeek-R1獲得DeepSeek-R1-Distill-Qwen-32B。
實驗結果表明:
- 純RL訓練的32B基座模型(DeepSeek-R1-Zero-Qwen-32B)效能與QwQ-32B-Preview相當;
- 蒸餾模型(DeepSeek-R1-Distill-Qwen-32B)在所有評測基準上顯著優於純RL訓練模型(效能差距顯著)。
覈心結論
- 將更强大模型的知識蒸餾至羽量級模型可取得卓越效果; 若僅依賴本文的大規模RL方法,小模型需消耗巨額計算資源,且最終效能仍無法超越蒸餾模型。
- 蒸餾策略兼具經濟性(低計算成本)與高效性(效能增益顯著); 但要突破智慧邊界(intelligence boundaries),仍需依賴更强大的基座模型與超大規模强化學習。
討論:小的模型其實表達能力是有限的,在做RL的時候其實是要求原始模型具備一定的推理理解能力(保證RL訓練過程中explore的效率,如果原模型很蠢,那可能要花更長的時間去尋找思路解題,甚至無法解决)並有足量的參數支持學習。 蒸餾的管道相當於直接教會了模型基礎的思路,個人認為這個和R1的cold start是異曲同工的,感覺可以將蒸餾這一塊的步驟替換掉cold start部分,然後後續沿用R1的思路嘗試再做一個對比實驗,或許效能還會有提升。
2.2 Unsuccessful Attempt
在DeepSeek-R1在研發初期,經歷了若干未達預期的方法嘗試。 文中分享了一些關鍵失敗案例,旨在為複雜推理模型的訓練提供洞見(注:此處的失敗分析並不否定相關方法的潜在價值)。
案例1:過程獎勵模型(Process Reward Model,PRM)
PRM曾被證明可有效引導模型優化推理任務解决路徑,但實際應用中發現三重瓶頸:
1、細粒度步驟定義困境:通用推理任務中難以顯式界定原子化推理步驟;
2、中間步驟驗證難題:自動化標注(模型判定)可靠性不足; 人工標注難以規模化擴展;
3、獎勵破解與系統複雜性:引入模型驅動的PRM會誘發reward hacking; 獎勵模型反覆運算需額外訓練資源,顯著增加訓練pipeline的複雜度。
結論:儘管PRM在模型生成響應的Top-N重排序與引導式蒐索中表現良好,但在大規模强化學習框架中,其收益無法覆蓋新增的計算開銷。
案例2:蒙特卡洛樹蒐索(Monte Carlo Tree Search,MCTS)
受AlphaGo與AlphaZero啟發,嘗試通過MCTS增强測試時計算可擴展性,方法設計:
1、將答案分解為可蒐索的子模塊;
2、通過prompt引導模型生成與蒐索步驟對應的推理標記(tags);
3、基於預訓練價值模型(value model)指導MCTS蒐索答案;
4、用生成的QA Pair反覆運算優化策略模型與價值模型。
規模化訓練挑戰:
- 蒐索空間爆炸:與圍棋的有限狀態空間不同,語言標記生成面臨指數級擴展的蒐索空間,即便設定節點最大擴展限制仍導致模型陷入局部最優;
- 價值模型依賴性:價值模型直接决定蒐索路徑質量,但細粒度價值模型訓練本身具有極高難度,阻礙模型反覆運算優化。
結論:MCTS雖能結合預訓練價值模型(value model)提升推理階段效能,但通過自蒐索實現模型效能持續反覆運算仍存在顯著障礙。
3. Future Work
Reference
- HungYi-Lee: Deep Reinforcement Learning【強烈推薦李宏毅老師的課】
- DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models
- A vision researcher’s guide to some RL stuff: PPO & amp; GRPO
- DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
原文網址:https://zh.gushiio.com/ai/2862.html