DeepSeek-R1:是如何讓 OpenAI 級別的推理模型如此高效的?
最近我們都看到了關於 DeepSeek-R1 的討論。它取得了一些驚人的成績,在推理任務中經常匹敵甚至超過 OpenAI 的 o1 系列……而且它只用一小部分引數和低得多的成本就做到了。所以,自然而然地,我不得不深入研究他們是如何做到這一點的。
免責宣告: 我只是一名對這項技術著迷的隨機 ML 愛好者/開發者。我與 DeepSeek-AI 沒有任何關係。只是分享我從閱讀他們的研究論文和其他資料中學到的東西!
那麼,秘訣是什麼?
一切都與RL強化學習以及他們如何使用它有關。
大多數語言模型都結合了預訓練、監督微調 (SFT),然後使用一些 RL 來完善模型。
DeepSeek 的方法有所不同,正是這種差異帶來了效率。
他們表明 LLM 能夠僅使用 RL 就實現了推理。
打個比喻:
普通AI模型就像先背課本(預訓練),再做模擬題(監督微調),最後刷真題(強化學習)。
但DeepSeek不走尋常路,直接讓模型從零開始"打怪升級"——完全靠強化學習練就解題能力!
DeepSeek-R1-Zero:純 RL 模型(純野生學霸模式):
他們從一個僅使用 RL 從頭開始學習推理的模型開始!沒有最初的監督訓練。它透過反覆試驗來學習推理的藝術。
- 就像不報補習班的自學天才,完全不給參考答案
這意味著他們在沒有任何標記資料的情況下訓練了一個推理模型。這是一個概念證明,表明模型可以僅透過它們透過行動(反應)獲得的激勵(獎勵)來學習推理。
- 每解一道題就獲得"積分獎勵",做錯了就自己覆盤
該模型還可以自我進化。它會利用之前的思考步驟,隨著時間的推移不斷改進。
- 還能記住之前的解題思路,像整理錯題本一樣持續進化
DeepSeek-R1:最佳化的管道:
但是,DeepSeek-R1-Zero 模型存在問題(混合語言、輸出混亂)。因此,他們利用該模型透過多階段訓練來建立更強大的模型:
1、冷啟動微調(基礎規範課):
他們建立了一個小但質量非常高的資料集,其中包含較長的思維鏈COT示例(思考、逐步推理)和非常易讀的資料。這是為了啟動推理模型並幫助其實現早期穩定性
- 用精選的"標準答案模板"(長思維鏈示例)教它規範解題步驟
2、以推理為導向的強化學習(推理導向強化學習):
然後,他們用強化學習來訓練它,以提高數學和編碼等特定領域的推理能力,同時還引入了“語言一致性獎勵”。此獎勵會懲罰混合語言,並使輸出像人類一樣易於理解。
打個比喻,這一步類似:
- 主攻數學、程式設計等硬核科目
- 新增"語言流暢度加分項",混用語言會扣分
- 確保解題過程像老師板書一樣清晰易懂
3、拒絕取樣 + 監督微調(錯題集特訓):
一旦 RL 有所收斂,他們就會透過拒絕取樣建立一個大型資料集,然後對其進行微調以獲得來自其他領域的能力
類似:
- 把模型最優秀的解題思路整理成習題庫
- 用這個題庫繼續訓練,解鎖更多技能
第二個 RL 階段(終極衝刺營):
完成所有微調之後,還有另一個 RL 階段來改善模型的對齊和效能。
類似:
- 後再來一輪強化訓練
- 像體育生賽前集訓,把狀態調整到最佳
關鍵點在於:
DeepSeek 積極引導模型透過多個階段來學習成為優秀的推理者,而不是僅僅向其輸入資料並希望獲得最佳結果。
- 他們做的不是簡單的強化學習。
- 他們透過多次迭代和階段來完成。
打個比喻:
普通AI像填鴨式教育,先背完所有知識再做題。DeepSeek-R1更像進階打怪:先掌握思考方法 → 專項提升核心能力 → 查漏補缺 → 最終打磨這種"分階段重點突破"的策略,讓它用更小的腦容量(引數少),花更少的補習費(成本低),考出了學霸成績!
強化學習(就像打遊戲學技巧)
學強化學習的時候會遇到兩個重要概念——獎勵(Reward)和策略(Policy)
舉個例子就明白啦 :
比如方程 x² -5x +6=0,答案明明是2和3。但我們的目標不只是算出正確答案,還要找出最好的解題方法。
這裡說的解題方法就是策略(Policy),而每個方法我們都會給個獎勵分(Reward)——就像老師給不同的解題步驟打分一樣。比如:
- 用公式法解得快準狠 ➡️ 獎勵90分
- 用試數法慢慢湊答案 ➡️ 獎勵70分
- 畫圖法雖然直觀但費時間 ➡️ 獎勵60分
(假設這裡有個獎勵分和方法的對應關係圖)我們可以分析:獎勵分越高的策略,就是越值得學習的好方法!就像考試時老師總說"不僅要答案對,步驟也要漂亮"一個道理~
知識蒸餾(就像老師教學生)
簡單來說有兩個模型:一個是老師模型,一個是學生模型
老師模型就是引數更多的那個,學生模型引數少很多。要執行老師模型,得用超級厲害的電腦和超多資源!
所以他們想了個辦法:用原來的大語言模型(LLM)訓練一個縮小版。這樣引數數量就大大減少啦。DeepSeek R1裡的老師模型會先示範如何一步步思考問題(就像寫解題過程),然後把這些示範當作題目提示交給學生模型,學生模型就能學著像老師那樣回答問題,但需要的資源少超多!
神奇的是,經過這樣"濃縮"的DeepSeek R1版本,雖然引數少了一大截,但表現比現在很多最先進的模型都要厲害!
思維鏈推理(就像老師讓你寫解題步驟)
這其實是一種對話引導技術——我們不讓AI直接給答案,而是逼它像學霸一樣把思考過程"碎碎念"出來!方法就是在使用者的問題前偷偷加個小提示。
舉個數學作業的例子 :
使用者原問題
- ➡️ "2+2等於多少?"
- ➡️ "請像數學老師批改作業那樣,一步一步解釋計算過程,包括所有思考細節"
於是AI的回答就會變成這樣:
- 1️⃣ 先識別這是加法問題
- 2️⃣ 回憶數字系統知識:表示兩個單一物體
- 3️⃣ 執行加法運算:2個蘋果 + 2個蘋果 = 4個蘋果
- 4️⃣ 驗證計算:用手指頭數一遍確認(最後才給出答案:2+2=4)
DeepSeek R1用的提示類似這樣
<思考步驟>
- 理解問題:首先仔細閱讀並解釋問題,以明確問題的要求。
- 識別關鍵組成部分:將問題分解為其基本要素。涉及的主要概念或變數是什麼?
- 概述相關資訊:考慮適用於此問題的任何公式、定義或先驗知識。我需要哪些資訊來解決這個問題?
- 逐步推理:
- 清晰地闡述推理過程的每一步。
- 應用邏輯推理從提供的資訊中得出結論。
- 如果適用,以系統化的方式進行必要的計算或分析。
舉個作業幫幫忙的例子 :
使用者原問題
- ➡️ "解方程 3x + 5 = 20 的解是多少?" 我們偷偷加的咒語
- ➡️ "請像數學課代表那樣,先列出已知條件,再分步解方程,最後驗證答案是否合理"
於是AI會這樣思考:
1️⃣ 梳理問題:識別這是線性方程問題
2️⃣ 拆解步驟:
- 第一步:20 - 5 = 15(等式兩邊減5)
- 第二步:15 ÷ 3 = 5(等式兩邊除3)
3️⃣ 反向驗證:把x=5代入原式 → 3×5+5=20
✅4️⃣ 總結格式:用【】框住最終答案
DeepSeek R1的真實咒語長這樣(簡化版):"現在你遇到一個需要仔細思考的問題。請像教小學生那樣,把解題過程拆解成容易理解的步驟,包括:
- 題目給了什麼資訊?
- 需要用哪個公式/方法?
- 每一步怎麼變形/計算?
- 最後怎麼檢查答案對不對?請用數字標號分步說明,並在最後用彩筆️【答案】標出結果"
這樣做的好處就像老師要求寫解題步驟:
- 避免跳步驟導致粗心錯誤
- 方便檢查哪裡想錯了
- 就算答案錯了,也能透過步驟找到"病因"
因此,閱讀完本文後,我希望您最終能夠理解 DeepSeek-R1 如何能夠以比其競爭對手少得多的引數實現如此出色的表現。