MLNLP
社群是國內外知名的機器學習與自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。
社群的願景 是促進國內外自然語言處理,機器學習學術界、產業界和廣大愛好者之間的交流和進步,特別是初學者同學們的進步。
今天刷到Sebastian的blog,《Understanding Reasoning LLMs》,特此翻譯一下,帶給大家。
原文: https://magazine.sebastianraschka.com/p/understanding-reasoning-llms
如何定義“推理模型”?
如果你在AI(或機器學習)領域工作,你可能對模糊且備受爭議的定義很熟悉。“推理模型”這個術語也不例外。最終,會有人在論文中正式定義它,但很快就會在下一篇論文中被重新定義~
在本文中,我將“推理”定義為回答需要複雜、多步驟生成幷包含中間步驟的問題的過程。例如,像“法國的首都是哪裡?”這樣的事實問答不涉及推理。相反,像“如果一列火車以每小時60英里的速度行駛3小時,它能走多遠?”這樣的問題需要一些簡單的推理。例如,它需要認識到距離、速度和時間之間的關係,然後才能得出答案。
一個普通的LLM可能只提供一個短的答案(如左圖所示),而推理模型通常包括顯示部分思維過程的中間步驟(請注意,許多未專門為推理任務訓練的LLMs也可以在其答案中提供中間推理步驟)
大多數LLMs都具備基本的推理能力,能夠回答像“如果一列火車以每小時60英里的速度行駛3小時,它能走多遠?”這樣的問題。所以,當我們提到推理模型時,指的是那些在更復雜的推理任務(如解決謎題、謎語和數學證明)中表現出色的LLMs。
此外,現在大多數被稱為推理模型的LLMs在其回覆中都包含一個“思考”或“思維”過程。
而推理模型的中間步驟可以以兩種方式出現,第一種可能明確地包含在回覆中,如圖所示。第二種,如OpenAI的o1等一些推理LLMs,會執行多個迭代的中間步驟,且不顯示給使用者。
"推理"在兩個不同的層次上使用:1)處理輸入並透過多箇中間步驟生成,2)在響應中向用戶提供某種推理
何時使用推理模型?
推理模型旨在擅長解決複雜任務,如解決謎題、高階數學問題和具有挑戰性的程式設計任務。然而,對於簡單的任務(如摘要、翻譯或基於知識的問題回答)並不是必需的。如果將推理模型用於所有任務,會導致效率低下且昂貴,並且有時由於“過度思考”而更容易出錯。推理模型的推理模型的優劣勢如下圖所示,我們需要為任務選擇合適的工具或LLM。
概述 DeepSeek 訓練流程
DeepSeek釋出了三個不同的變體:DeepSeek-R1-Zero、DeepSeek-R1和DeepSeek-R1-Distill。
DeepSeek-R1-Zero:在DeepSeek-V3基模基礎上,直接應用強化學習,不使用任何SFT資料進行冷啟動。
DeepSeek-R1:在DeepSeek-V3基模基礎上,先透過額外的SFT階段和進一步的RL訓練進一步精煉,改進了“冷啟動”的R1-Zero模型。
DeepSeek-R1-Distill*:使用前面步驟中生成的SFT資料,對Qwen和Llama模型進行了微調,以增強其推理能力,純SFT。
四種構建和改進推理模型的方法
概述目前用於增強LLMs推理能力和構建專門推理模型(如DeepSeek-R1、OpenAI的o1和o3等)的關鍵技術。
Inference-time scaling
推理時間擴充套件,指的是在推理時增加計算資源以提高輸出質量。
一個粗略的類比是,人類在有更多時間思考複雜問題時往往會生成更好的回答。同樣,我們可以應用一些技術,鼓勵LLM在生成答案時“多思考”。
一個直接的推理時擴充套件方法是提示工程。一個經典例子是思維鏈(CoT)提示,在輸入提示中加入“逐步思考”之類的短語。鼓勵模型生成中間推理步驟,而不是直接跳到最終答案,會在更復雜的問題上通常(但不總是)會導致更準確的結果。
來自https://arxiv.org/abs/2205.11916
上述CoT方法可以被視為推理時間擴充套件,因為它透過生成更多的輸出標記使推理變得更昂貴。
另一種推理時間擴充套件的方法是使用投票和搜尋策略。一個簡單的例子是多數投票,讓LLM生成多個答案,然後透過多數投票選擇正確答案。同樣,可以使用束搜尋和其他搜尋演算法來生成更好的回答。
想了解更多關於這些不同策略的詳細資訊可閱讀《Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters》文章。
不同的基於搜尋的方法依賴於基於過程-獎勵的模型來選擇最佳答案
純強化學習
DeepSeek R1論文中的一大亮點是,發現推理可以從純的強化學習(RL)中學習。與典型的RL方法(在RL之前先監督微調SFT)不同,DeepSeek-R1-Zero僅使用強化學習進行訓練,沒有初始的SFT階段,也就是為什麼其為“純”的RL。,如下圖所示。
對於獎勵,沒有使用基於人類偏好的訓練獎勵模型,而是使用了兩種型別的獎勵:準確性和格式獎勵。
準確性獎勵,使用LeetCode編譯器驗證編碼答案,並使用確定性系統評估數學回答。
格式獎勵,依賴於一個LLM裁判,以確保回答遵循預期的格式,例如將推理步驟放在<think>標籤內。
令人驚訝的是,這種方法是可以讓LLM具備更強推理能力的。儘管R1-Zero不是表現最好的推理模型,但透過生成中間“思考”步驟展示了推理能力,如上圖所示。證實了使用純粹的RL訓練推理模型是可能的,DeepSeek團隊是第一個展示(或者至少是發表)這種方法的團隊。
監督微調和強化學習
實際上在RL之前包含一個SFT階段是很常見的。OpenAI的o1很可能是使用類似的方法訓練的。
如上圖所示,使用DeepSeek-R1-Zero生成了所謂的“冷啟動”SFT資料。
首先使用這些“冷啟動”SFT資料,透過指令微調訓練了模型;然後再經過一個RL階段,在這個RL階段中,不僅保留了DeepSeek-R1-Zero的RL過程中使用的準確性和格式獎勵,還增加了一個一致性獎勵,以防止語言混合,在回答中切換多種語言情況。
在RL階段之後是又一輪的SFT資料收集,使用最新的模型checkpoint生成了600k 個思維鏈(CoT)SFT樣本,同時使用DeepSeek-V3基礎模型建立了額外的200K個基於知識的SFT樣本。再經過另一輪RL,使用基於規則的方法為數學和編碼問題提供準確性獎勵,而人類偏好標籤用於其他問題型別。
最終的模型,DeepSeek-R1,與DeepSeek-R1-Zero相比,效能有了顯著提升,如下表所示。
純監督微調(SFT)和蒸餾
DeepSeek還發布了透過“蒸餾”過程訓練的較小模型。這裡的蒸餾指的是在由較大LLMs生成的SFT資料集上對較小的LLMs(如Llama 8B和70B以及Qwen 2.5模型(0.5B到32B))進行指令微調。在下圖中突出了蒸餾部分。
DeepSeek-R1-Distill模型的訓練過程
較小的模型更高效。這意味著它們執行成本更低,而且可以在較低端的硬體上執行,更吸引研究者和大模型愛好者。
純SFT的方法研究。這些蒸餾模型作為一個有趣的基準,展示了純監督微調(SFT)可以在沒有強化學習的情況下將模型帶到多遠。
下表比較了這些蒸餾模型與其他流行模型的效能,以及DeepSeek-R1-Zero和DeepSeek-R1。
正如我們所見,蒸餾模型明顯弱於DeepSeek-R1,但與DeepSeek-R1-Zero相比,儘管它們小了幾個數量級,但效果卻很強。與o1 mini相比,這些模型的表現也相當不錯(我懷疑o1-mini本身可能是o1的一個類似的蒸餾版本)。
同時還測了在DeepSeek-R1-Zero中看到的純RL方法,是否也能出現在較小的模型中,將DeepSeek-R1-Zero的相同純RL方法直接應用於Qwen-32B。
結果表明,對於較小的模型來說,蒸餾比純RL更有效。
四種方法小結
推理時擴充套件不需要額外的訓練,但會增加推理成本,隨著使用者數量或查詢量的增加,大規模部署會變得更加昂貴。然而,對於已經表現強勁的模型來說,它仍然是一個不假思索的選擇。我強烈懷疑o1利用了推理時擴充套件,這有助於解釋為什麼它在每個標記上的成本比DeepSeek-R1更高。
純RL對於研究目的很有趣,因為它提供了關於推理作為一種新興行為的見解。然而,在實際的模型訓練中,RL + SFT是首選方法,因為它可以產生更強大的推理模型。
蒸餾是一種有吸引力的方法,特別是用於建立更小、更高效的模型。然而,它的侷限性在於蒸餾不能推動創新或產生下一代推理模型。例如,蒸餾總是依賴於一個現有的、更強的模型來生成監督微調(SFT)資料。
關於 DeepSeek R1 的思考
在最近幾周,許多人問我對DeepSeek-R1模型的看法。簡而言之,我認為它們是一個了不起的工作。作為一名工程師,我特別欣賞詳細的技術報告,它提供了我可以學習的方法論見解。
其中一個最有趣的收穫是推理作為一種行為從純RL中出現。而且令人印象深刻的是,DeepSeek在一個寬鬆的開源MIT許可證下開源了他們的模型,這比Meta的Llama模型限制更少。
它與o1的比較
我會說它們大致在同一水平。但DeepSeek-R1在推理時更高效。這表明DeepSeek可能在訓練過程中投入了更多,而OpenAI可能更多地依賴於o1的推理時間擴充套件。
也就是說,直接比較o1和DeepSeek-R1是困難的,因為OpenAI沒有披露太多關於o1的資訊。例如,我們不知道:
o1是否只是GPT-4o的一個稍微改進的版本,只有最少的RL + SFT和廣泛的推理時擴充套件?
在不知道這些細節的情況下,直接比較仍然是蘋果與橙子的比較。
訓練DeepSeek-R1的成本
另一個討論點是訓練DeepSeek-R1的成本。有人提到約600萬美元的訓練成本,但他們可能混淆了DeepSeek-V3和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小得多,但在推理效能上卻很出色。當然這種方法也不是完全便宜的,蒸餾80萬個SFT樣本,也需要大量的計算資源。
就在DeepSeek-R1釋出前幾天,我看到了一篇關於Sky-T1的文章,使用僅1.7w SFT樣本訓練了一個開源32B模型,總成本只有450美元。
這個說明,較小的、有針對性的微調工作仍然可以取得令人印象深刻的結果。
Sky-T1:在450美元內訓練你自己的推理模型-https://novasky-ai.github.io/posts/sky-t1/
根據他們的基準測試,Sky-T1的表現大致與o1相當。
預算上的純RL:TinyZero
Sky-T1專注於模型蒸餾,也有在“純RL”領域的一些工作-TinyZero,一個3B引數模型,複製了DeepSeek-R1-Zero的方法(訓練成本不到30美元)。
即使只有3B引數,TinyZero也表現出一些新興的自我驗證能力,這支援了“推理可以透過純RL在小模型中出現”的觀點。
對應Github:https://github.com/Jiayi-Pan/TinyZero
上述兩個專案都是在有限的預算下,訓練推理模型的工作,一個專注於純RL(TinyZero),另一個專注於純SFT(Sky-T1)。
超越傳統SFT:旅程學習
去年我看到一個特別有趣的論文《 O1 Replication Journey: A Strategic Progress Report – Part1》。
論文中的關鍵思想是“旅程學習”作為“捷徑學習”的替代方法。
捷徑學習指的是傳統的指令微調方法,模型只使用正確的解決路徑進行訓練。
旅程學習則包括錯誤的解決路徑,讓模型從錯誤中學習。
這種方法與TinyZero純RL訓練中觀察到的自我驗證能力有關,但它專注於透過SFT完全改進模型。透過將模型暴露於錯誤的推理路徑及其修正,旅程學習可能也會強化自我糾正能力,從而使推理模型在這方面更可靠。
來自https://arxiv.org/abs/2410.18982
這可能是未來工作的一個令人興奮的方向,特別是對於低預算推理模型訓練,RL方法可能在計算上不可行。
寫在最後
目前在推理模型前言技術上有很多有趣的工作,相信在接下來的幾個月裡我們會看到更多令人興奮的工作!
掃描二維碼新增小助手微信
即可申請加入自然語言處理/Pytorch 等技術交流群
關於我們
MLNLP 社群 是由國內外機器學習與自然語言處理學者聯合構建的民間學術社群,目前已經發展為國內外知名的機器學習與自然語言處理社群,旨在促進機器學習,自然語言處理學術界、產業界和廣大愛好者之間的進步。
社群可以為相關從業者的深造、就業及研究等方面提供開放交流平臺。歡迎大家關注和加入我們。