Sebastian Raschka:關於DeepSeek R1和推理模型,我有幾點看法
机器之心發表於2025-02-09
著名 AI 研究者和博主 Sebastian Raschka 又更新部落格了。這一次,他將立足於 DeepSeek 技術報告,介紹用於構建推理模型的四種主要方法,也就是如何透過推理能力來增強 LLM。Sebastian Raschka 表示:「我希望這能提供有價值的見解,並幫助你瞭解圍繞這一主題的快速演變的文獻和話題炒作。」- 原文地址:https://sebastianraschka.com/blog/2025/understanding-reasoning-llms.html
2024 年,LLM 領域的專業化程度不斷提高。除了預訓練和微調之外,我們還見證了從 RAG 到程式碼助手等專業應用的興起。我預計這一趨勢將在 2025 年加速,也就是更加重視特定於具體領域和應用的最佳化(即專業化 /specialization)。 第 1-3 階段是開發 LLM 的常見步驟。第 4 階段是針對具體用例對 LLM 進行專門化。開發推理模型就是一種專業化。這能讓 LLM 更擅長處理複雜任務 —— 解決這些任務時最好使用中間步驟,例子包括解答謎題、高階數學和程式設計難題。但是,這種專業化並不能取代其他 LLM 應用。因為將 LLM 轉換為推理模型也會帶來某些缺點,我將在後面討論。如果你在 AI(或廣義上的機器學習)領域內工作,你可能已經很瞭解相關定義的模糊性了。「推理模型(reasoning model)」這個術語也不例外。最終,有人會在一篇論文中正式定義它,但卻又會在下一篇論文中重新定義它,如此連綿不斷。本文將「推理」定義為回答需要複雜、多步驟生成和中間步驟的問題的過程。例如,像「法國首都是哪裡?」這樣的事實性問答不需要推理。相比之下,像「如果一列火車以 60 英里 / 小時的速度行駛 3 小時,它會行駛多遠?」這樣的問題需要一些簡單的推理 —— 它需要識別距離、速度和時間之間的關係,方能得出答案。常規的 LLM 可能只提供簡短的答案(如左圖所示),而推理模型通常包括揭示部分思維過程的中間步驟。(請注意,許多沒有專門為推理任務開發的 LLM 也能在其答案中提供中間推理步驟。)大多數現代 LLM 都具有基本的推理能力,可以回答諸如「如果一列火車以 60 英里 / 小時的速度行駛 3 小時,它會行駛多遠?」這樣的問題。因此,今天當我們提到推理模型時,我們通常指的是擅長更復雜推理任務的 LLM,例如解決謎題、謎語和數學證明。此外,如今大多數被稱為推理模型的 LLM 都將「思維」或「思考」過程作為其響應的一部分。LLM 是否以及如何真正「思考」則是另一個話題了。推理模型中的中間步驟可以兩種方式出現。第一種,中間步驟可能顯式地出現在響應中,如上圖所示。第二種,一些推理 LLM(例如 OpenAI o1)則會執行多個迭代,中間步驟對使用者來說是不可見的。 使用「推理」的兩個不同層級:1)透過多箇中間步驟處理輸入和生成結果,2)將某種形式的推理放在響應中提供給使用者。現在我們已經定義了推理模型,接下來討論更有趣的部分:如何構建和改進用於推理任務的 LLM。然而,在深入研究技術細節之前,重要的是思考何時才真正需要推理模型。我們什麼時候需要推理模型?推理模型擅長解決複雜任務,例如解決難題、高階數學問題和高難度程式設計任務。但是,對於總結、翻譯或基於知識的問答等簡單任務,它們並不是必需的。事實上,如果你將推理模型用於所有事情,則可能遭遇低效率和高成本問題。例如,推理模型通常使用起來更昂貴、更冗長,有時由於「過度思考」而更容易出錯。很容易理解:為了完成任務,需要使用正確的工具(或 LLM 型別)。在下一節討論構建和改進推理模型的四種主要方法之前,這裡簡要概述一下 DeepSeek R1 的工作流程 —— 資訊來源是 DeepSeek R1 技術報告。該報告既是一個有趣的案例研究,也可作為一份開發推理 LLM 的藍圖。請注意,DeepSeek 並沒有釋出單一的 R1 推理模型,而是釋出了三個不同的變體:DeepSeek-R1-Zero、DeepSeek-R1 和 DeepSeek-R1-Distill。根據其技術報告中的描述,我在下圖中總結了這些模型的開發過程。 DeepSeek R1 技術報告中討論的三種不同推理模型的開發過程。接下來,我們簡單過一遍上圖所示的流程。下一節將介紹更多細節 —— 將討論構建和改進推理模型的四種主要方法。(1) DeepSeek-R1-Zero:該模型基於 2024 年 12 月釋出的 671B 預訓練版 DeepSeek-V3 基礎模型。該研究團隊使用強化學習(RL)對其進行了訓練,並提供了兩種型別的獎勵。這種方法被稱為「冷啟動(cold start)」訓練,因為它不包括監督微調(SFT)步驟,而這通常是基於人類反饋的強化學習(RLHF)的一部分。(2) DeepSeek-R1:這是 DeepSeek 的旗艦推理模型,基於 DeepSeek-R1-Zero 而構建。該團隊使用了額外的 SFT 階段和進一步的 RL 訓練對其進行了進一步微調,從而在「冷啟動」的 R1-Zero 模型基礎上實現了提升。(3) DeepSeek-R1-Distill:DeepSeek 團隊利用前面步驟生成的 SFT 資料對 Qwen 和 Llama 模型進行了微調,以增強其推理能力。雖然這不是傳統意義上的蒸餾,但這個過程也確實是在較大的 DeepSeek-R1 671B 模型的輸出上訓練較小的模型(Llama 8B 和 70B,以及 Qwen 1.5B-30B)。下面將概述當前用於增強 LLM 推理能力和構建專門的推理模型(如 DeepSeek-R1、OpenAI 的 o1 和 o3 等)的關鍵技術。注意:OpenAI 並未詳細說明 o1 和 o3 的具體工作原理。然而,據傳它們組合式地利用了推理和訓練技術。提高 LLM 推理能力(或任何能力)的一種方法是推理時間擴充套件(inference-time scaling)。這個術語可以有多種含義,但在這裡,它指的是在推理過程中增加計算資源以提高輸出質量。做個粗略的類比:人類在解決複雜問題時,如果給他更多時間,得到的答案往往會更好。類似地,我們可以應用一些技術來鼓勵 LLM 在生成答案時更多地「思考」。(不過 LLM 究竟是否真的會「思考」還有待討論。)推理時間擴充套件的一種直接簡單的方法是巧妙的提示詞工程。一個典型的例子是思維鏈(CoT)提示方法,即在輸入的提示詞中包含「think step by step」等短語。這能鼓勵模型生成中間推理步驟,而不是直接跳到最終答案,這通常(但並不一定)可以在更復雜的問題上得到更準確的結果。(請注意,對於更簡單的基於知識的問題,例如「法國的首都是什麼」,採用這種策略是沒有意義的,這又是一個很好的經驗法則,可以找出推理模型是否對給定的輸入查詢有用。) 一個經典 CoT 提示示例,來自論文《Large Language Models are Zero-Shot Reasoners》上述 CoT 方法可被視為一種推理時間擴充套件,因為它會生成更多輸出 token,使推理的成本也會更高。推理時間擴充套件的另一種方法是使用投票和搜尋策略。一個簡單的例子是多數投票 —— 讓 LLM 生成多個答案,然後我們透過多數投票選擇正確的答案。同樣,我們可以使用集束搜尋和其他搜尋演算法來生成更好的響應。- 論文標題:Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters
- 論文地址:https://arxiv.org/pdf/2408.03314
不同的基於搜尋的方法依賴於基於過程獎勵的模型來選擇最佳答案。DeepSeek R1 技術報告指出其模型沒有使用推理時間擴充套件。然而,這種技術通常在 LLM 之上的應用層實現,因此 DeepSeek 有可能會在其應用中使用它。我猜想 OpenAI 的 o1 和 o3 模型使用了推理時間擴充套件,這可以解釋為什麼它們與 GPT-4o 等模型相比相對昂貴。除了推理時間擴充套件之外,o1 和 o3 可能使用類似於 DeepSeek R1 使用的 RL 流程進行訓練。下面兩節將詳細介紹強化學習。DeepSeek R1 論文的亮點之一是他們發現推理是純 RL 湧現出的一種行為。讓我們更詳細地探討一下這意味著什麼。如前所述,DeepSeek 開發了三種型別的 R1 模型。第一個 DeepSeek-R1-Zero 建立在 DeepSeek-V3 基礎模型之上,這是他們於 2024 年 12 月釋出的標準預訓練 LLM。與典型的 RL 流程不同(即在 RL 之前應用監督微調(SFT)),DeepSeek-R1-Zero 僅使用 RL 進行訓練,沒有初始 SFT 階段,如下圖所示。 DeepSeek-R1-Zero 模型的開發過程。儘管如此,這種 RL 過程類似於常用的 RLHF 方法,後者通常應用於偏好微調 LLM。更多詳情可參閱《LLM 成功不可或缺的基石:RLHF 及其替代技術》。但是,如上所述,DeepSeek-R1-Zero 的主要區別在於他們跳過了用於指令調整的監督微調(SFT)階段。這就是他們將其稱為「純」RL 的原因。(不過需要指出,LLM 背景下的 RL 與傳統 RL 有很大不同。)對於獎勵,他們沒有使用根據人類偏好訓練的獎勵模型,而是採用了兩種型別的獎勵:準確度獎勵和格式獎勵。- 準確度獎勵使用 LeetCode 編譯器來驗證編碼答案,並使用確定性系統來評估數學響應。
- 格式獎勵依靠 LLM 評判員來確保響應遵循預期格式,例如將推理步驟放在標籤內。
令人驚訝的是,這種方法足以讓 LLM 發展出基本的推理技能。研究人員觀察到了一個「啊哈!」時刻,儘管沒有經過明確的訓練,但模型開始在其響應中生成推理痕跡,如下圖所示。 DeepSeek R1 技術報告展示的「啊哈」時刻,https://arxiv.org/abs/2501.12948雖然 R1-Zero 並不是表現最好的推理模型,但它確實透過生成中間的「思考」步驟展示了推理能力,如上圖所示。這證實了使用純 RL 開發推理模型是可能的,DeepSeek 團隊是第一個展示(或至少釋出)這種方法的團隊。接下來,讓我們看看 DeepSeek 的旗艦推理模型 DeepSeek-R1 的開發過程,這可作為構建推理模型的藍圖。其方法是透過結合額外的 SFT 和 RL 來改進 DeepSeek-R1-Zero,以提高其推理效能。請注意,在 RL 之前包含 SFT 階段實際上很常見,如標準 RLHF 流程那樣。OpenAI o1 很可能就使用了類似的方法。如上圖所示,DeepSeek 團隊使用 DeepSeek-R1-Zero 生成了所謂的「冷啟動」SFT 資料。術語「冷啟動」指的是這些資料是由 DeepSeek-R1-Zero 生成的,而 DeepSeek-R1-Zero 本身並未接受過任何 SFT 資料的訓練。DeepSeek 隨後使用此冷啟動 SFT 資料透過指令微調訓練模型,然後進行另一個 RL 階段。此 RL 階段保留了 DeepSeek-R1-Zero RL 過程中使用的相同準確度和格式獎勵。不過,他們還新增了一致性獎勵以防止語言混合 —— 當模型在響應中在多種語言之間切換時就會發生這種情況。RL 階段之後是另一輪 SFT 資料收集。在此階段,使用最新的模型檢查點生成 600K 思維鏈 SFT 樣本,同時使用 DeepSeek-V3 基礎模型建立另外 200K 基於知識的 SFT 樣本。然後將這些 600K + 200K SFT 樣本用於另一輪 RL。在此階段,他們再次使用基於規則的方法對數學和程式設計問題進行準確度獎勵,而對其他問題型別使用人類偏好標籤。最終模型 DeepSeek-R1 由於增加了 SFT 和 RL 階段,效能在 DeepSeek-R1-Zero 基礎上有了明顯提升,如下表所示。 OpenAI o1 和 DeepSeek R1 模型的基準評測結果比較,來自 DeepSeek-R1 技術報告。到目前為止,我們已經介紹了構建和改進推理模型的三種主要方法:- 推理時間擴充套件,這是一種無需訓練或以其他方式修改底層模型即可提高推理能力的技術。
- 純 RL,如 DeepSeek-R1-Zero,它表明推理可以在沒有監督微調的情況下成為一種學習行為。
- SFT + RL,這得到了 DeepSeek 的旗艦推理模型 DeepSeek-R1。
令人驚訝的是,DeepSeek 還發布了透過所謂「蒸餾」過程訓練的較小模型。然而,在 LLM 語境中,蒸餾並不一定遵循深度學習中使用的經典知識蒸餾方法。傳統上,在知識蒸餾中,較小的學生模型在較大的教師模型和目標資料集的 logits 上進行訓練。相反,這裡的蒸餾是指在較大的 LLM 生成的 SFT 資料集上對較小的 LLM(例如 Llama 8B 和 70B 以及 Qwen 2.5 模型(0.5B 到 32B))進行指令微調。具體來說,這些較大的 LLM 是 DeepSeek-V3 和 DeepSeek-R1 的中間檢查點。事實上,用於此蒸餾過程的 SFT 資料與用於訓練 DeepSeek-R1 的資料集相同,如上一節所述。他們為什麼要開發這些蒸餾模型?我認為有兩個主要原因:- 較小的模型效率更高。這意味著它們執行起來更便宜,但它們也可以在低端硬體上執行,這對許多像我一樣的研究人員和修補匠來說尤其有趣。
- 純 SFT 案例研究。這些蒸餾模型可作為有趣的基準,展示純監督微調 (SFT) 在沒有 RL 的情況下可以讓模型走多遠。
下表比較了這些蒸餾模型與其他流行模型以及 DeepSeek-R1-Zero 和 DeepSeek-R1 的效能。 蒸餾模型與非蒸餾模型的基準比較。註釋圖來自 DeepSeek-R1 技術報告。 我們可以看到,蒸餾後的模型明顯弱於 DeepSeek-R1,但與 DeepSeek-R1-Zero 相比,它們卻出奇地強大,儘管規模小了幾個數量級。值得注意的是,這些模型與 o1 mini 相比,表現非常好(我懷疑 o1-mini 本身可能是 o1 的一個類似的蒸餾版本)。在結束本節之前,還有一個有趣的比較值得一提。DeepSeek 團隊測試了 DeepSeek-R1-Zero 中出現的湧現推理行為是否也會出現在較小的模型中。為了研究這一點,他們將 DeepSeek-R1-Zero 中相同的純 RL 方法直接應用於 Qwen-32B。下表展示了實驗的結果,其中 QwQ-32B-Preview 是千問團隊基於 Qwen 2.5 32B 開發的參考推理模型(我認為訓練細節從未披露過)。此比較提供了一些額外的洞察,即純 RL 是否可以在比 DeepSeek-R1-Zero 小得多的模型中引導推理能力。 在較小的 32B 模型上對蒸餾和 RL 進行基準比較。註釋圖來自 DeepSeek-R1 技術報告。有趣的是,結果表明,對於較小的模型,蒸餾比純 RL 更有效。這與以下觀點一致:單靠 RL 可能不足以在這種規模的模型中產生強大的推理能力,而使用高質量推理資料進行 SFT 在使用小模型時可能是一種更有效的策略。- Qwen-32B 使用 SFT + RL 進行訓練,類似於 DeepSeek-R1 的開發方式。這將有助於確定當 RL 與 SFT 結合時,與純 RL 和純 SFT 相比可以取得多大的改進。
- DeepSeek-V3 使用純 SFT 進行訓練,與建立蒸餾模型的方式類似。這樣可以直接比較,看看 RL + SFT 相對於純 SFT 的效果如何。
- 推理時間擴充套件不需要額外的訓練,但會增加推理成本,隨著使用者數量或查詢量的增加,大規模部署的成本會更高。不過,對於已經很強大的模型來說,提高效能仍然是明智之舉。我強烈懷疑 o1 利用了推理時間擴充套件,這有助於解釋為什麼與 DeepSeek-R1 相比,它在每 token 基礎上的成本更高。
- 純 RL 對於研究目標來說很有趣,因為它可以提供推理作為一種湧現行為的洞察。然而,在實際的模型開發中,RL + SFT 是首選方法,因為它可以產生更強大的推理模型。我強烈懷疑 o1 也是使用 RL + SFT 進行訓練的。更準確地說,我相信 o1 從比 DeepSeek-R1 更弱、更小的基礎模型開始,但透過 RL + SFT 和推理時間擴充套件進行了補償。
- 如上所述,RL + SFT 是構建高效能推理模型的關鍵方法。DeepSeek-R1 是一個很好的藍圖,展示瞭如何做到這一點。
- 蒸餾是一種有吸引力的方法,尤其是用於建立更小、更高效的模型。然而,蒸餾的侷限性在於它不會推動創新或產生下一代推理模型。例如,蒸餾總是依賴於現有的、更強大的模型來生成監督微調 (SFT) 資料。
我預計接下來會看到的一個有趣的方面是將 RL + SFT(方法 3)與推理時間擴充套件(方法 1)相結合。這很可能是 OpenAI o1 正在做的事情,只不過它可能基於比 DeepSeek-R1 更弱的基礎模型,這解釋了為什麼 DeepSeek-R1 表現如此出色,同時在推理時間上保持相對低的成本。最近幾周,很多人都問我對 DeepSeek-R1 模型的看法。簡而言之,我認為它們是一項了不起的成就。作為一名研究工程師,我特別欣賞這份詳細的技術報告,它提供了我可以從中學習的方法論見解。最令人著迷的收穫之一是:推理可以基於純 RL 湧現出來。令人印象深刻的是,DeepSeek 已根據寬鬆的 MIT 開源許可證對其模型進行了開源,該許可證的限制甚至比 Meta 的 Llama 模型還要少。DeepSeek-R1 比 o1 好嗎?我認為兩者大致相同。然而,最突出的是 DeepSeek-R1 在推理時間上更高效。這表明 DeepSeek 可能在訓練過程中投入了更多,而 OpenAI 可能更多地依賴於 o1 的推理時間擴充套件。儘管如此,很難直接比較 o1 和 DeepSeek-R1,因為 OpenAI 尚未披露有關 o1 的太多資訊。- o1 可能只是 GPT-4o 的稍微改進版本,具有最少的 RL + SFT 和僅廣泛的推理時間擴充套件嗎?
另一個討論點是開發 DeepSeek-R1 的成本。有人提到訓練成本約為 600 萬美元,但他們可能將 DeepSeek-V3(去年 12 月釋出的基礎模型)和 DeepSeek-R1 混為一談。600 萬美元的估算是基於每 GPU 小時 2 美元的假設以及 DeepSeek-V3 最終訓練執行所需的 GPU 小時數,該估算最初於 2024 年 12 月進行討論。然而,DeepSeek 團隊從未透露 R1 的具體 GPU 小時數或開發成本,因此任何成本估算都還只是純粹的猜測。無論如何,最終 DeepSeek-R1 成為了開放權重推理模型的一個重要里程碑,並且其推理時的效率使其成為 OpenAI o1 的一個有趣替代品。開發 DeepSeek-R1 級推理模型可能需要數十萬到數百萬美元,即使從像 DeepSeek-V3 這樣的開放權重基礎模型開始也是如此。對於預算有限的研究人員或工程師來說,這可能會令人沮喪。幸運的是,模型蒸餾提供了一種更具成本效益的替代方案。DeepSeek 團隊透過 R1 蒸餾模型證明了這一點,儘管其比 DeepSeek-R1 小得多,但推理效能卻出奇地強大。然而,即使是這種方法也並不完全便宜。他們的蒸餾過程使用了 800K SFT 樣本,這需要大量計算。有趣的是,就在 DeepSeek-R1 釋出前幾天,我偶然看到了一篇關於 Sky-T1 的文章,這是一個令人著迷的專案,一個小團隊僅使用 17K 的 SFT 樣本訓練了一個開放權重 32B 模型。總成本是多少?僅需 450 美元,這比大多數 AI 會議的註冊費還低。這個例子表明,儘管大規模訓練仍然昂貴,但較小規模、有針對性的微調工作仍然可以以極低的成本產生出色的結果。 圖源:《Sky-T1:在 450 美元以內訓練你自己的 O1 預覽模型》一文。https://novasky-ai.github.io/posts/sky-t1/根據他們的基準測試,Sky-T1 的表現與 OpenAI o1 大致相當,考慮到其低廉的訓練成本,這一表現令人印象深刻。雖然 Sky-T1 專注於模型蒸餾,但我也在「純 RL」領域發現了一些有趣的工作。一個值得注意的例子是 TinyZero,這是一個 3B 引數模型,它複製了 DeepSeek-R1-Zero 方法(附註:訓練成本不到 30 美元)。令人驚訝的是,即使只有 3B 引數,TinyZero 也表現出一些湧現的自我驗證能力,這支援了推理可以透過純 RL 湧現的想法,即使在小模型中也是如此。TinyZero 庫提到研究報告仍在進行中,我一定會密切關注更多細節。 TinyZero 庫 (https://github.com/Jiayi-Pan/TinyZero) 中的一張圖片表明該模型能夠進行自我驗證。(相比之下,看看基礎模型的回覆會很有趣。)上述兩個專案表明,即使預算有限,也可以在推理模型上開展有趣的工作。雖然這兩種方法都復現了 DeepSeek-R1 的方法,一種專注於純 RL(TinyZero),另一種專注於純 SFT(Sky-T1),但探索如何進一步擴充套件這些想法將非常有趣。去年我偶然發現一種特別有趣的方法,論文《O1 Replication Journey: A Strategic Progress Report – Part 1》中對此進行了描述。儘管標題如此,但該論文實際上並沒有複製 o1。相反,它介紹了一種改進蒸餾(純 SFT)過程的另一種方法。- 捷徑學習是指指令微調的傳統方法,其中僅使用正確的解決方案路徑來訓練模型。
- 另一方面,旅程學習也包括錯誤的解決路徑,讓模型從錯誤中學習。
這種方法與 TinyZero 的純 RL 訓練中觀察到的自我驗證能力有點相似,但它專注於完全透過 SFT 改進模型。透過讓模型接觸錯誤的推理路徑及其修正,旅程學習還可以增強自我修正能力,從而可能透過這種方式使推理模型更加可靠。 與傳統的捷徑學習不同,旅程學習在 SFT 資料中包含了錯誤的解決方案路徑。註釋圖來自 https://arxiv.org/abs/2410.18982這可能是未來工作的一個令人興奮的方向,特別是對於低預算推理模型開發,因為基於 RL 的方法在計算上可能不切實際。無論如何,推理模型方面目前正在發生很多有趣的工作,我相信我們將在接下來的幾個月裡看到更多令人興奮的成果!