圖文詳解:帶你讀懂 DeepSeek-R1 的核心原理 原創 精華
編者按: DeepSeek-R1到底有什么特別之處?它為什么能在推理任務上取得如此出色的表現?這背后的訓練方法又蘊含著怎樣的創新?
當我們需要模型處理數學題、編程任務,或是進行邏輯分析時,高質量的推理能力顯得尤為重要。然而,傳統的訓練方法往往需要耗費大量人力物力,這對許多研究團隊和企業來說都是不小的負擔。
今天這篇深度解析 DeepSeek-R1 訓練方法的文章,將展示一個令人耳目一新的解決方案:如何通過創新的強化學習方法,在少量高質量人工標注數據的情況下,打造出一個推理能力出眾的 AI 模型。文章詳細介紹了 DeepSeek 團隊如何通過"自動驗證機制"來訓練模型,這種方法不僅大大降低了對人工標注數據的依賴,還能持續提升模型的推理質量。
作者 | Jay Alammar
編譯 | 岳揚
DeepSeek-R1 代表了人工智能發展的又一重要里程碑。對于機器學習領域的研究人員與開發者群體而言,這次發布之所以備受關注,主要有以下兩點:
- 首先,這是一款開源權重的模型,并且提供了更小的、經過蒸餾的版本;
- 其次,它公布并深入探討了訓練方法,該方法能夠復現類似于 OpenAI O1 的推理模型。
本文將帶您了解這一模型的構建過程。
目錄
01 回顧:大語言模型(LLMs)的訓練方法
02 DeepSeek-R1 的訓練步驟
2.1- 長推理鏈的 SFT 數據
2.2- 一個過渡性的、擅長推理的高質量大語言模型(但在非推理任務上表現稍遜)
2.3- 利用大規模強化學習(RL)構建推理模型
2.3.1- 以推理為導向的大規模強化學習(R1-Zero)
2.3.2- 利用過渡性推理模型生成 SFT 推理數據
2.3.3- 常規強化學習訓練階段
03 模型架構
01 回顧:大語言模型(LLMs)的訓練方法
與大多數現有的大語言模型一樣,DeepSeek-R1 也是逐個生成 token,但其獨特之處在于擅長解決數學和推理問題。這是因為它能夠通過生成一系列思考 tokens 來詳細闡述其思考過程,從而更加深入地處理問題。
下圖摘自書籍《Hands-On Large Language Models》的第 12 章,展示了創建高質量大語言模型的三個主要步驟:
1)語言建模階段,我們利用海量的網絡數據訓練模型預測下一個詞匯,從而得到一個基礎模型。
2)監督式微調階段,這一步驟讓模型在執行指令和回答問題時更加得心應手,進而得到一個指令調優的模型或稱為監督式微調/SFT模型。
3)最后是偏好調優階段,這一步驟進一步優化模型的行為,使其更符合人類偏好,最終形成的是你在各種平臺和應用中使用的偏好調優后的 LLM。
02 DeepSeek-R1 的訓練步驟
DeepSeek-R1 遵循了這一通用框架。其第一步的具體內容源自于之前關于 DeepSeek-V3 模型的研究論文[1]。R1 使用的是該論文中的基礎模型(并非最終的 DeepSeek-V3 模型),并且同樣經歷了 SFT(監督式微調)和偏好調優階段,但它的獨特之處在于這些階段的具體操作方法。
在 R1 的構建過程中,有三個關鍵點值得特別關注。
2.1 長推理鏈的 SFT 數據
這些長思維鏈推理的實例數量龐大(總共達到 60 萬個)。如此大規模的實例獲取難度極高,且若要依靠人工標注,成本也將極為昂貴。 因此,這些實例的創建過程是我們需要強調的第二個獨特之處。
2.2 一個過渡性的、擅長推理的高質量 LLM(但在非推理任務上表現稍遜)
這些數據是由 R1 的前身,一個專注于推理但尚未命名的姊妹模型所生成的。這個姊妹模型受到了另一個模型 R1-Zero 的啟發(我們將在稍后討論)。它之所以意義重大,并不是因為它是一個非常好用的 LLM,而在于在它的創建過程中,幾乎無需依賴標注數據,僅通過大規模的強化學習,就能培育出一個擅長處理推理問題的模型。
接著,這個未命名的推理專家模型的輸出結果,可以用來訓練一個更為多能的模型,它不僅能夠處理推理任務,還能應對其他類型的任務,滿足用戶對大語言模型(LLM)的普遍期待。
2.3 利用大規模強化學習(RL)構建推理模型
此處分為兩個步驟:
2.3.1- 以推理為導向的大規模強化學習(R1-Zero)
在此過程中,我們利用強化學習(RL)來構建一個臨時的推理模型。隨后,這個模型被用于生成用于監督式微調(SFT)的推理示例。然而,能夠創建這個模型的關鍵,在于之前的一項實驗,該實驗成功打造了一個名為 DeepSeek-R1-Zero 的早期模型。
R1-Zero 的獨特之處在于,它能夠在沒有經過標注的 SFT 訓練集的情況下,依然在推理任務上表現卓越。它的訓練過程直接從預訓練的基礎模型出發,通過強化學習訓練(跳過了 SFT 階段)。它的表現非常出色,能夠與 O1 模型相媲美。
這一成就重要重大,因為數據一直是機器學習模型能力的助推器。那么,這個模型是如何打破這一傳統的呢?這主要歸功于以下兩點:
1- 現代基礎模型在質量和能力上已經達到了一個臨界點(這個基礎模型是在高達 14.8 萬億的高質量 tokens 上訓練而成的)。
2- 與通用聊天或寫作請求不同,推理問題可以實現自動驗證或標注。 可以通過以下這個示例來說明這一點。
示例:推理問題的自動驗證
以下是一個可能出現在 RL 訓練步驟中的提示詞/問題:
編寫一段 Python 代碼,獲取一個數字列表,返回排序后的列表,并在列表開頭添加數字 42。
這樣的問題非常適合自動驗證。假設我們將這個問題拋給正在訓練的模型,它會生成:
- 使用軟件語法檢查器可以驗證生成的代碼是否為有效的 Python 代碼。
- 我們可以運行這段 Python 代碼,以檢查其是否能夠成功執行。
- 其他現代代碼生成 LLM 可以創建單元測試來驗證代碼的行為是否符合預期(它們自身無需具備推理能力)。
- 我們甚至可以進一步,通過測量代碼的執行時間,讓訓練過程偏好那些性能更優的解決方案,即使其他解決方案也是正確的 Python 程序。
在訓練步驟中,我們可以向模型提出這樣的問題,并生成多種可能的解決方案。
我們可以不依賴人工干預,自動進行檢查,發現第一個輸出根本不是代碼。第二個輸出是代碼,但并非 Python 代碼。第三個輸出看似是一個解決方案,卻未能通過單元測試,而第四個輸出則是正確的解決方案。
這些反饋都是可以直接用來優化模型的信號。這一過程當然是在大量示例(以小批量形式)和連續的訓練步驟中完成的。
這些獎勵信號和模型更新是模型在強化學習訓練過程中不斷進步的關鍵,如下圖所示。
與此能力提升相伴的是,模型生成了更長的響應,即使用了更多的思考 tokens 來處理問題。
盡管這個過程很有價值,但 R1-Zero 模型在推理問題上的高分表現背后,仍存在一些問題,使其實際可用性未達理想狀態。
雖然 DeepSeek-R1-Zero 展現出了卓越的推理能力,并自主發展出了出人意料的強大推理行為,但它也遭遇了一些挑戰,比如文本可讀性不佳和語言混雜等問題。
R1 模型的設計目標是提高可用性。因此,它(DeepSeek-R1-Zero)不僅僅完全依賴于強化學習過程,而是如前文所述,在以下兩個方面發揮作用:
1- 創建一個過渡性的推理模型,用以生成監督式微調(SFT)的數據點。
2- 訓練 R1 模型,以在推理和非推理問題上取得進步(利用其他類型的驗證器)。
2.3.2- 利用過渡性推理模型生成 SFT 推理數據
為了提升過渡性推理模型的實際效用,我們對其進行了監督式微調(SFT)訓練,這一步驟在數千個推理問題示例上進行(部分示例由 R1-Zero 生成并篩選)。在論文中,這些示例被稱為“冷啟動數據”。
2.3.1. 冷啟動階段
與 DeepSeek-R1-Zero 不同,為了防止基礎模型在強化學習訓練初期出現不穩定的冷啟動問題,對于 DeepSeek-R1,我們構建并收集了少量長思維鏈(CoT)數據對模型進行微調,將其作為初始的強化學習策略模型。為收集這類數據,我們探索了多種方法:使用帶有長 CoT 示例的小樣本提示技術、直接提示模型生成帶有反思和驗證的詳細答案、收集 DeepSeek-R1-Zero 生成的易讀格式輸出,并通過人工標注員對結果進行后處理細化。
但或許你會問,既然我們已經有了這些數據,為什么還需要依賴強化學習過程呢?答案在于數據的規模。我們可以獲取的可能只有 5,000 個示例的數據集,而訓練 R1 則需要 600,000 個示例。 這個過渡性模型幫助我們縮小了這一差距,并使我們能夠合成生成那些極為重要的數據。
對于監督式微調(SFT)這一概念,可能你還不太熟悉,它是一種訓練過程,通過向模型展示形式為提示詞和正確補全的訓練示例來進行。下面這個圖展示了書籍《Hands-On Large Language Models》第 12 章中的一些 SFT 訓練示例:
2.3.3- 常規強化學習訓練階段
這樣,R1 模型不僅在推理任務上表現卓越,還能有效地應對其他非推理類任務。這一過程與我們之前提到的強化學習過程相似,但因為它涵蓋了非推理領域的應用,所以它還引入了一個實用性獎勵模型和安全性獎勵模型(與 Llama 模型有相似之處),用于處理這些應用領域的提示詞。
03 模型架構
與 GPT2[2] 和 GPT3[3] 等同源的早期模型一樣,DeepSeek-R1 也是由 Transformer[4] 解碼器塊堆疊而成,總共包含了 61 個這樣的塊。其中,前三個塊是密集層,而后續的則是采用了混合專家層(MoE)。
關于模型的維度大小和其他超參數配置,具體信息如下:
有關模型架構的更多詳細信息,可以在他們之前發表的兩篇論文中找到:
- DeepSeek-V3 Technical Report[1]
- DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models[5]
04 Conclusion
通過上述內容,相信你現在應該對 DeepSeek-R1 模型有了基本的理解。
如果你覺得需要更多基礎知識來理解這篇文章,我建議你獲取一本《Hands-On Large Language Models》[6]或者在線在 O’Reilly[7] 上閱讀,并在 Github[8] 上查看相關內容。
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the author
Jay Alammar
Machine learning R&D. Builder. Writer. Visualizing artificial intelligence & machine learning one concept at a time. @CohereAI.
END
本期互動內容 ??
?你覺得AI模型最難掌握的是哪種推理能力?歡迎在評論區分享你的觀點??
??文中鏈接??
[1]??https://arxiv.org/pdf/2412.19437v1??
[2]??https://jalammar.github.io/illustrated-gpt2/??
[3]??https://jalammar.github.io/how-gpt3-works-visualizations-animations/??
[4]??https://jalammar.github.io/illustrated-transformer/??
[5]??https://arxiv.org/pdf/2401.06066??
[6]??https://www.llm-book.com/??
[7]??https://learning.oreilly.com/library/view/hands-on-large-language/9781098150952/??
[8]??https://github.com/handsOnLLM/Hands-On-Large-Language-Models??
原文鏈接:
??https://newsletter.languagemodels.co/p/the-illustrated-deepseek-r1??
