作者:江信陵,為AI發(fā)電
圖片來源:由無界AI生成
本文主要基于DeepSeek發(fā)布的技術(shù)報告,解讀 DeepSeek - R1 的訓(xùn)練過程;重點探討了構(gòu)建和提升推理模型的四種策略。
原文來自研究員 Sebastian Raschka,發(fā)表于:
https://magazine.sebastianraschka.com/p/understanding-reasoning-llms
本文會對其中R1推理模型核心訓(xùn)練部分進行總結(jié)。
首先,基于DeepSeek發(fā)布的技術(shù)報告,以下是一張R1的訓(xùn)練圖。
梳理一下上圖所示的過程,其中:
(1) DeepSeek - R1 - Zero:該模型是基于去年 12 月發(fā)布的 DeepSeek - V3 基模。使用具有兩種獎勵機制的強化學(xué)習(xí)(RL)對其進行訓(xùn)練。這種方法被稱為 “冷啟動” 訓(xùn)練,因為它不包括監(jiān)督微調(diào)(SFT)步驟,而監(jiān)督微調(diào)通常是人類反饋強化學(xué)習(xí)(RLHF)的一部分。
(2) DeepSeek - R1:這是 DeepSeek 的主打推理模型,基于 DeepSeek - R1 - Zero 構(gòu)建。團隊通過額外的監(jiān)督微調(diào)階段和進一步的強化學(xué)習(xí)訓(xùn)練對其進行了優(yōu)化,改進了 “冷啟動” 的 R1 - Zero 模型。
(3) DeepSeek - R1 - Distill:DeepSeek 團隊利用前幾步生成的監(jiān)督微調(diào)數(shù)據(jù)對 Qwen 和 Llama 模型進行了Fine Tuning,以增強它們的推理能力。雖然這并非傳統(tǒng)意義上的蒸餾,但該過程涉及到利用較大的 671B的 DeepSeek - R1 模型的輸出對較小的模型(Llama 8B 和 70B,以及 Qwen 1.5B - 30B)進行訓(xùn)練。
以下會介紹構(gòu)建與提升推理模型的四種主要方法
1、推理時擴展 / Inference-time scaling
提升 LLM 推理能力(或通常意義上的任何能力)的一種方法是推理時擴展 - 在推理過程中增加計算資源,以提高輸出質(zhì)量。
打個粗略的比方,就像人在有更多時間思考復(fù)雜問題時,往往能給出更好的回答。同樣,我們可以運用一些技術(shù),促使 LLM 在生成答案時 “思考” 得更深入。
實現(xiàn)推理時擴展的一種簡單方法是巧妙的提示工程 / Prompt Engineering。一個經(jīng)典例子是思維鏈提示 / CoT Prompting,即在輸入提示中加入諸如 “逐步思考” 這樣的短語。這會促使模型生成中間推理步驟,而不是直接跳到最終答案,這樣往往能在更復(fù)雜的問題上得出更準(zhǔn)確的結(jié)果。(注意,對于像 “法國的首都是什么” 這類較簡單的基于知識的問題,采用這種策略就沒有意義,這也是判斷推理模型對于給定輸入查詢是否適用的一個實用經(jīng)驗法則。)
上述思維鏈(CoT)方法可被視為推理時擴展,因為它通過生成更多輸出tokens,增加了推理成本。
推理時擴展的另一種方法是采用投票和搜索策略。一個簡單的例子是多數(shù)投票法,即讓LLM生成多個答案,然后通過多數(shù)表決選出正確答案。同樣,我們可以使用束搜索及其他搜索算法來生成更優(yōu)的回答。
這里推薦《Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters 》這篇論文。
不同的基于搜索的方法依賴于基于過程獎勵的模型來選擇最佳答案。
DeepSeek R1技術(shù)報告稱其模型并未采用推理時擴展技術(shù)。然而,這項技術(shù)通常在 LLM 之上的應(yīng)用層實施,所以DeepSeek有可能在其應(yīng)用程序中運用了該技術(shù)。
我推測 OpenAI 的 o1 和 o3 模型采用了推理時擴展技術(shù),這就能解釋為何與GPT - 4o這類模型相比,它們的使用成本相對較高。除了推理時擴展,o1和o3很可能是通過與DeepSeek R1類似的強化學(xué)習(xí)流程進行訓(xùn)練的。
2、純強化學(xué)習(xí) / Pure RL
DeepSeek R1論文中特別值得關(guān)注的一點,是他們發(fā)現(xiàn)推理能夠作為一種行為從純強化學(xué)習(xí)中涌現(xiàn)出來。下面我們來探討這意味著什么。
如前文所述,DeepSeek開發(fā)了三種R1模型。第一種是DeepSeek - R1 - Zero,它構(gòu)建于DeepSeek - V3基礎(chǔ)模型之上。與典型的強化學(xué)習(xí)流程不同,通常在強化學(xué)習(xí)之前會進行監(jiān)督微調(diào)(SFT),但DeepSeek - R1 - Zero完全是通過強化學(xué)習(xí)進行訓(xùn)練的,沒有初始的監(jiān)督微調(diào)/SFT階段,如下圖所示。
盡管如此,這種強化學(xué)習(xí)過程與常用于對LLM進行偏好微調(diào)的人類反饋強化學(xué)習(xí)(RLHF)方法類似。然而,如上文所述,DeepSeek - R1 - Zero 的關(guān)鍵區(qū)別在于,他們跳過了用于指令調(diào)整的監(jiān)督微調(diào)(SFT)階段。這就是為什么他們稱之為 “純” 強化學(xué)習(xí) / Pure RL。
在獎勵方面,他們沒有使用基于人類偏好訓(xùn)練的獎勵模型,而是采用了兩種獎勵類型:準(zhǔn)確性獎勵和格式獎勵。
準(zhǔn)確性獎勵 / accuracy reward 使用力扣(LeetCode)編譯器來驗證編程答案,并使用確定性系統(tǒng)來評估數(shù)學(xué)回答。
格式獎勵 / format reward 依賴于一個LLM評判器,以確保回答遵循預(yù)期格式,比如將推理步驟置于標(biāo)簽內(nèi)。
令人驚訝的是,這種方法足以讓 LLM 演化出基本的推理技能。研究人員觀察到了一個 aha moment,即模型開始在其回答中生成推理痕跡,盡管并沒有對其進行明確的相關(guān)訓(xùn)練,如下圖所示,出自 R1 技術(shù)報告。
雖然R1 - Zero并非最頂尖的推理模型,但如上圖所示,它確實通過生成中間 “思考” 步驟展現(xiàn)出了推理能力。這證實了利用純強化學(xué)習(xí)來開發(fā)推理模型是可行的,而且DeepSeek是首個展示(或至少是發(fā)表相關(guān)成果)這種方法的團隊。
3、監(jiān)督微調(diào)與強化學(xué)習(xí)(SFT + RL)
接下來看看DeepSeek的主打推理模型DeepSeek - R1的開發(fā)過程,它堪稱構(gòu)建推理模型的教科書。該模型在DeepSeek - R1 - Zero的基礎(chǔ)上,融入了更多的監(jiān)督微調(diào)(SFT)和強化學(xué)習(xí)(RL),以提升自身的推理性能。
需要注意的是,在強化學(xué)習(xí)之前加入監(jiān)督微調(diào)階段,這在標(biāo)準(zhǔn)的人類反饋強化學(xué)習(xí)(RLHF)流程中實屬常見。OpenAI的o1很可能也是采用類似方法開發(fā)的。
如上圖所示,DeepSeek團隊利用DeepSeek - R1 - Zero生成了他們所謂的“冷啟動”監(jiān)督微調(diào)(SFT)數(shù)據(jù)?!袄鋯印?這一術(shù)語意味著,這些數(shù)據(jù)是由DeepSeek - R1 - Zero生成的,而該模型本身并未在任何監(jiān)督微調(diào)數(shù)據(jù)上進行過訓(xùn)練。
利用這些冷啟動SFT數(shù)據(jù),DeepSeek首先通過指令微調(diào)來訓(xùn)練模型,隨后進入另一個強化學(xué)習(xí)(RL)階段。這個RL階段沿用了DeepSeek - R1 - Zero的RL過程中所使用的準(zhǔn)確性獎勵和格式獎勵。不過,他們新增了一致性獎勵,以防止模型在回答中出現(xiàn)語言混用的情況,即模型在一次回答中切換多種語言。
在RL階段之后,進入另一輪SFT數(shù)據(jù)收集。在此階段,使用最新的模型檢查點生成了60萬個思維鏈(CoT)SFT示例(600K CoT SFT exmaples),同時利用DeepSeek - V3基礎(chǔ)模型創(chuàng)建了額外20萬個基于知識的SFT示例(200K knowledge based SFT examples)。
然后,這60萬 + 20萬個SFT樣本被用于對DeepSeek - V3基礎(chǔ)模型進行指令微調(diào)/instruction finetuning,之后再進行最后一輪RL。在這個階段,對于數(shù)學(xué)和編程問題,他們再次使用基于規(guī)則的方法來確定準(zhǔn)確性獎勵,而對于其他類型的問題,則使用人類偏好標(biāo)簽??偠灾?,這與常規(guī)的人類反饋強化學(xué)習(xí)(RLHF)非常相似,只是SFT數(shù)據(jù)中包含(更多)思維鏈?zhǔn)纠?。并且,RL除了基于人類偏好的獎勵之外,還有可驗證的獎勵。
最終的模型DeepSeek - R1,由于額外的SFT和RL階段,相比DeepSeek - R1 - Zero有顯著的性能提升,如下表所示。
4、純監(jiān)督微調(diào)(SFT)與蒸餾
到目前為止,我們已經(jīng)介紹了構(gòu)建和改進推理模型的三種關(guān)鍵方法:
1/ 推理時擴展,這是一種無需對底層模型進行訓(xùn)練或以其他方式修改,就能提升推理能力的技術(shù)。
2/ Pure RL,如DeepSeek - R1 - Zero中所采用的純強化學(xué)習(xí)(RL),它表明推理可以作為一種習(xí)得行為出現(xiàn),無需監(jiān)督微調(diào)。
3/ 監(jiān)督微調(diào)(SFT)+ 強化學(xué)習(xí)(RL),由此產(chǎn)生了DeepSeek的推理模型DeepSeek - R1。
還剩下 - 模型 “蒸餾”。DeepSeek還發(fā)布了通過他們所謂的蒸餾過程訓(xùn)練的較小模型。在LLM的背景下,蒸餾并不一定遵循深度學(xué)習(xí)中使用的經(jīng)典知識蒸餾方法。傳統(tǒng)上,在知識蒸餾中,一個較小的 “學(xué)生” 模型會在較大 “教師” 模型的邏輯輸出以及目標(biāo)數(shù)據(jù)集上進行訓(xùn)練。
然而,這里的蒸餾是指在由較大的LLM生成的監(jiān)督微調(diào)(SFT)數(shù)據(jù)集上,對較小的LLM進行指令微調(diào)/instruction finetuning,比如Llama 8B 和70B模型,以及Qwen 2.5B(0.5B - 32B)。具體來說,這些較大的 LLM 是DeepSeek - V3和DeepSeek - R1的一個中間檢查點 / checkpoint。事實上,用于這個蒸餾過程的監(jiān)督微調(diào)數(shù)據(jù)/SFT data,與上一節(jié)中描述的用于訓(xùn)練DeepSeek - R1的數(shù)據(jù)集是相同的。
為了闡明這個過程,我在下圖中突出顯示了蒸餾部分。
他們?yōu)槭裁匆_發(fā)這些蒸餾模型?有兩個關(guān)鍵原因:
1/ 更小的模型效率更高。這意味著它們的運行成本更低,而且還能在低端硬件上運行,對許多研究人員和愛好者來說特別有吸引力。
2/ 作為純監(jiān)督微調(diào)(SFT)的案例研究。這些蒸餾模型是一個有趣的基準(zhǔn),展示了在沒有強化學(xué)習(xí)的情況下,純監(jiān)督微調(diào)能讓模型達到何種程度。
下面的表格將這些蒸餾模型的性能與其他流行模型以及DeepSeek - R1 - Zero和DeepSeek - R1進行了對比。
正如我們所見,盡管蒸餾模型比DeepSeek - R1小幾個數(shù)量級,但它們明顯比DeepSeek - R1 - Zero要強大得多,不過相對于DeepSeek - R1還是較弱。同樣有趣的是,與o1 - mini相比,這些模型的表現(xiàn)也不錯(懷疑o1 - mini本身可能是o1的類似蒸餾版本)。
還有一個有趣的對比值得一提。DeepSeek團隊測試了DeepSeek - R1 - Zero中出現(xiàn)的突發(fā)推理行為是否也能出現(xiàn)在較小的模型中。為了對此進行研究,他們將DeepSeek - R1 - Zero中相同的純強化學(xué)習(xí)方法直接應(yīng)用于Qwen - 32B。
下面的表格總結(jié)了該實驗的結(jié)果,其中QwQ - 32B - Preview是基于Qwen團隊開發(fā)的Qwen 2.5 32B的參考推理模型。這一對比為僅靠純強化學(xué)習(xí)是否能在比DeepSeek - R1 - Zero小得多的模型中誘導(dǎo)出推理能力提供了一些額外的見解。
有趣的是,結(jié)果表明:對于較小的模型而言,蒸餾比純強化學(xué)習(xí)要有效得多。這與一種觀點相契合,即僅靠強化學(xué)習(xí)可能不足以在這種規(guī)模的模型中誘導(dǎo)出強大的推理能力,而在處理小模型時,基于高質(zhì)量推理數(shù)據(jù)進行監(jiān)督微調(diào)可能是一種更有效的策略。
我們探討了構(gòu)建和提升推理模型的四種不同策略:
推理時擴展:無需額外訓(xùn)練,但會增加推理成本。隨著用戶數(shù)量或查詢量的增長,大規(guī)模部署的成本會更高。不過,對于提升已有強大模型的性能而言,這仍是一種簡單有效的方法。我強烈懷疑o1運用了推理時擴展,這也解釋了為何與DeepSeek - R1相比,o1每生成一個token的成本更高。
純強化學(xué)習(xí) Pure RL:從研究角度來看很有趣,因為它能讓我們深入了解推理作為一種涌現(xiàn)行為的過程。然而,在實際模型開發(fā)中,強化學(xué)習(xí)與監(jiān)督微調(diào)相結(jié)合(RL + SFT)是更優(yōu)選擇,因為這種方式能構(gòu)建出更強的推理模型。我同樣強烈懷疑o1也是通過RL + SFT進行訓(xùn)練的。更確切地說,我認為o1起始于一個比DeepSeek - R1更弱、規(guī)模更小的基礎(chǔ)模型,但通過RL + SFT和推理時擴展來彌補差距。
如上文所述,RL + SFT是構(gòu)建高性能推理模型的關(guān)鍵方法。DeepSeek - R1為我們展示了實現(xiàn)這一目標(biāo)的出色藍本。
蒸餾:是一種頗具吸引力的方法,尤其適用于創(chuàng)建更小、更高效的模型。然而,其局限性在于,蒸餾無法推動創(chuàng)新或產(chǎn)生下一代推理模型。例如,蒸餾始終依賴于現(xiàn)有的更強模型來生成監(jiān)督微調(diào)(SFT)數(shù)據(jù)。
接下來,我期待看到的一個有趣方向是將RL + SFT(方法3)與推理時擴展(方法1)相結(jié)合。這很可能就是OpenAI的o1正在做的,只不過o1可能基于一個比DeepSeek - R1更弱的基礎(chǔ)模型,這也解釋了為什么DeepSeek - R1在推理時性能出色且成本相對較低。
登載此文出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其描述。文章內(nèi)容僅供參考,不構(gòu)成投資建議。投資者據(jù)此操作,風(fēng)險自擔(dān)。