理解什么是推理模型,看懂這篇就夠了 精華
DeepSeek-R1、OpenAI o3-mini 和 Google Gemini 2.0 Flash Thinking 是通過“推理”框架將 LLMs 擴展到新高度的典范。
它們標志著從擴展訓練時計算轉變?yōu)閿U展測試時計算的范式轉變。
在這篇文章中,有超過 40 個自定義視覺效果,你將探索推理領域、測試時計算,并深入研究 DeepSeek-R1。
什么是推理 LLMs?
與常規(guī)的LLMs相比,推理LLMs通常會在回答給定問題之前將問題分解為更小的步驟(通常稱為推理步驟或思維過程)。
那么,“思考過程”、“推理步驟”或“思維鏈”究竟意味著什么呢?
盡管我們可以哲學地探討LLMs是否真的能夠像人類一樣思考 ,這些推理步驟將過程分解為更小的、結構化的推斷。
為了理解如何創(chuàng)建推理LLMs,我們首先探討從關注訓練( 訓練 -時間計算)轉向推理( 測試 -時間計算)的范式轉變。
什么是訓練時間計算?
直到 2024 年中,為了在預訓練階段提高LLMs的表現,開發(fā)者們增加以下參數的大?。?/p>
- 模型(參數數量 )
- 數據集(token數量 )
- 計算能力(浮點運算數量)
綜合起來,這被稱為訓練計算量 ,指的是預訓練數據是“人工智能的化石燃料”的概念。簡而言之,預訓練預算越大,最終得到的模型效果越好.
訓練時計算可能包括訓練和微調期間所需的計算。
共同成為提高 LLM 性能的主要關注點。
縮放法則
模型的規(guī)模(通過計算、數據集大小和模型大小)如何與模型的性能相關,通過各種縮放定律進行研究。
它們是所謂的“冪律”,其中一個變量(例如計算)的增加會導致另一個變量(例如性能)的比例變化。
這些通常是在對數-對數尺度下顯示的(這會結果為一條直線),以展示計算能力的大幅增加。
最著名的有“Kaplan” 和“Chinchilla” 規(guī)律。這些規(guī)律大致表明,模型的性能會隨著計算量、標記數和參數數的增加而提高。
它們建議,為了實現最佳性能,這三個因素必須同步擴大規(guī)模。
Kaplan 的擴展定律指出,通常情況下,增加模型規(guī)模比增加數據更為有效(給定固定的計算資源)。相比之下,Chinchilla 的擴展定律表明,模型規(guī)模和數據同樣重要。
然而,從 2024 年起,計算能力、數據集規(guī)模和模型參數 steadily 增長,但收益已經開始遞減。
就像這些冪律一樣,隨著規(guī)模的擴大,邊際收益遞減。
這個問題引發(fā)了思考:“我們是否已經到達了瓶頸?”
測試時的計算是什么?
而不是不斷增加預訓練預算,推理時的計算允許模型在推理時“ 思考更長時間 ”。
使用非推理模型時,它通常只會輸出答案并跳過任何“推理”步驟:
然而,推理模型會通過一個系統的“ 思考 ”過程使用更多的令牌來推導出答案:
想法是,LLM 必須花費資源(例如 VRAM 計算能力)來生成答案。然而,如果所有的計算資源都用于生成答案,這似乎有些效率低下!
相反,通過預先創(chuàng)建包含更多信息、關系和新想法的標記,模型在生成最終答案時消耗了更多的計算資源。
規(guī)模法則
首先,是一篇來自 OpenAI 的文章,展示了測試時計算量實際上可能與訓練時計算量的擴展趨勢一致。
因此,他們認為可能會出現一種范式轉變,即在測試時增加計算量,因為這仍是一個新興領域。
第二,一篇名為“棋盤游戲中的擴展擴展定律”的論文探討了 AlphaZero,并將其訓練到不同程度的計算能力來玩六角棋。
他們的研究顯示,訓練時的計算量和測試時的計算量密切相關。每條虛線表示達到特定 ELO 分數所需的最小計算量。
在測試時計算擴展與訓練時計算擴展類似,正發(fā)生著一種范式轉變,即使用更多測試時計算來構建“推理”模型。
在這種范式轉變中,這些“推理”模型不再僅僅專注于訓練時的計算(預訓練和微調),而是平衡了訓練與推理。
測試時的計算甚至可以按長度進行擴展:
在深入探討深度搜索-R1 時,我們還將研究長度上的擴展問題!
測試時的計算類別
類似 DeepSeek R-1 和 OpenAI o1 這樣的推理模型取得了令人難以置信的成功,這表明除了“思考更長時間”之外,還有其他更多技術手段。
作為我們將要探討的內容,測試時的計算可以包括多種方式,如鏈式思考、修正答案、回溯、采樣等。
這可以大致分為兩個類別
- 在驗證器中進行搜索(從生成中采樣并選擇最佳答案)
- 修改提案分配(訓練中的“思考”過程)
對驗證器的搜索側重于輸出,而修改提案分布則側重于輸入。
我們將探討兩種類型的驗證者:
- 結果獎勵模型(ORM)
- 過程獎勵模型 (PRM)
他們的名字已經表明,ORM 只關注結果而不考慮底層過程:
相反,PRM 也會評估導致結果的推理過程:
為了讓這些推理步驟更加清晰:
注意第 2 步是一個糟糕的推理步驟,PRM 會給出較低的評分!
現在你已經了解了 ORMs 和 PRMs 的區(qū)別,接下來讓我們探討一下它們在各種驗證技術中的應用吧!
在驗證器中搜索
- 首先,創(chuàng)建了多個推理過程和答案的示例。
- 第二,一個驗證器(獎勵模型)會評估生成的輸出得分
驗證器通常是LLM,經過微調以判斷結果(ORM)或過程(PRM)。
使用驗證器的一個主要優(yōu)勢是,無需重新訓練或微調用于回答問題的模型。
多數投票法
最簡單的方法其實是不使用獎勵模型或驗證器,而是進行多數表決。
我們讓模型生成多個答案,出現頻率最高的那個答案將是最終答案。
這種方法也稱為自我一致性,旨在強調生成多個答案和推理步驟的重要性。
最佳 N 個樣本
首先,LLM(通常稱為提案者)生成多個答案,使用的是高溫度或不同的溫度。
第二,每個答案都會通過輸出獎勵模型(ORM)進行評分,根據答案的質量打分。得分最高的答案會被選中:
而不是評判答案,過程獎勵模型(PRM)也可以用來評估每一步推理的質量,最終選擇總權重最高的候選答案。
使用這兩種驗證器類型,我們也可以根據 RM 對每個答案候選項進行加權,并選擇總權重最高的一個。這被稱為加權的 N 選一樣本:
基于過程獎勵模型的束搜索算法
這種方法可以快速停止那些最終評分較低的“推理”路徑。
結果的答案隨后使用我們之前探討的 Best-of-N 方法進行加權。
蒙特卡洛樹搜索算法
- 選擇(根據預設公式選擇給定的葉節(jié)點)
- 擴展(創(chuàng)建額外節(jié)點)
- 隨機生成新節(jié)點直至到達終點
- 根據輸出更新父節(jié)點得分(反向傳播)
這些步驟的主要目標是不斷擴展最佳推理步驟,同時探索其他可能的路徑。
因此,這是一個探索與利用之間的平衡。以下是一個節(jié)點評分和選擇的示例:
因此,當我們選擇新的推理步驟來探索時,這不一定是最優(yōu)路徑。
使用這種類型的公式,我們首先選擇一個節(jié)點(推理步驟),然后通過生成新的推理步驟來擴展它。如前所述,這可以通過使用合理且不同的溫度值來實現:
選擇并多次展開其中一個擴展的推理步驟,直到得到多個答案。
這些迭代可以根據推理步驟(PRM)、獎勵(ORM)或兩者的組合來進行評估。
父節(jié)點的分數將被更新(反向傳播),然后我們可以從選擇步驟重新開始這個過程。
修改提案分發(fā)
換句話說,采樣完成/想法/令牌的分布被改變了。
假設我們有一個問題和一個可以從其中抽樣標記的分布。一種常見的策略是獲取最高分的標記:
請注意,上面的圖片中有一些標記為紅色的標記。這些標記更有可能引發(fā)推理過程:
雖然選擇貪婪標記不一定錯誤,但選擇能引發(fā)推理過程的標記通常能得到更好的答案。
當我們調整建議分布(即標記的概率分布),實際上就是讓模型重新排序這個分布,使得“推理”標記被更頻繁地選擇:
修改建議分布的方法有很多種,但通常可以歸為兩大類:
- 通過提示工程更新提示內容
- 訓練模型專注于推理標記和過程
提示調用
通過提示,我們可以向模型提供示例(上下文學習),使其生成類似推理的行為:
這個過程可以通過簡單地說“讓我們一步一步地思考”來進一步簡化。同樣地,這會改變建議分布的方式,使得LLM在回答之前更傾向于先分解過程:
然而,模型并沒有天生學會遵循這個過程。此外,這是一個靜態(tài)且線性的過程,這限制了自我改進。如果模型一開始使用了一個錯誤的推理過程,它往往會保持這個過程而不進行修正。
STaR
一個備受爭議的技術被稱為 STaR 或自我教學推理器 。STaR 是一種使用LLM生成自身推理數據的方法,作為模型微調的輸入。
在第一步(1),系統會生成推理步驟和答案。如果答案正確(2a),則將推理和答案添加到三元組訓練數據集(3b)。這些數據將用于對模型進行監(jiān)督微調(5):
如果模型給出了錯誤的答案(2b),我們提供正確的答案作為提示,并要求模型解釋為什么這個答案是正確的(4b)。最后,我們將這些數據添加到用于模型監(jiān)督微調的訓練數據中(5):
在這里(和其他許多修改提議分布的技術一起),關鍵在于明確訓練模型遵循我們展示給它的推理過程。
換句話說,我們通過監(jiān)督微調來確定推理過程應該如何進行。
整個流程非常有趣,因為它實際上生成了合成訓練示例。使用合成訓練示例(如我們在
DeepSeek R-1 中將要探討的)是一種在其他模型中提煉這種推理過程的驚人方法。
DeepSeek-R1
DeepSeek 通過各種技術出色地將推理精煉到了基礎模型(DeepSeek-V3-Base)中。
有趣的是,沒有涉及驗證者,而是將重點放在強化學習上,而不是通過監(jiān)督微調來提煉推理行為。
讓我們探索他們是如何在模型中訓練出推理行為的!
使用 DeepSeek-R1 Zero 進行推理
從 DeepSeek-V3-Base 開始,他們沒有采用基于大量推理數據的監(jiān)督微調,而是僅通過強化學習(RL)來實現推理行為。
為此,他們從一個非常簡單的提示(類似于系統提示)開始,用于流水線中:
注意他們明確指出,推理過程應放在標簽之間,但沒有具體說明推理過程應如何呈現。
在強化學習過程中,創(chuàng)建了兩種具體的基于規(guī)則的獎勵:
- 準確性獎勵 - 通過驗證答案來給予獎勵。
- 使用 和 標簽來設置獎勵。
在這個過程中使用的 RL 算法稱為組相對策略優(yōu)化(GRPO)11。該算法的直觀想法是,它使導致正確或錯誤答案的所有選擇更有可能或更不可能。這些選擇既可以是詞組集,也可以是推理步驟。
有趣的是,并沒有給出 過程的具體示例。它僅說明應使用 標簽,除此之外沒有更多的說明!
通過提供與鏈式思維行為相關的間接獎勵,模型自己發(fā)現,推理過程越長且越復雜,答案越可能是正確的。
標注圖來自“DeepSeek-R1:通過強化學習激勵推理能力”。通過使用間接的 RL 獎勵,模型可以自由探索最優(yōu)化的推理過程,逐步增加推理步驟。
這個圖表尤為重要,因為它強調了從訓練時計算轉向測試時計算的范式轉變。隨著這些模型生成更長的思考序列,它們更加注重測試時的計算。
通過這個訓練管道,他們發(fā)現模型能夠自主發(fā)現最優(yōu)的鏈式思考行為,包括高級的推理能力,如自我反思和自我驗證。
然而,它仍然存在一個重大缺陷,即可讀性較差且往往會混用語言。因此,他們探索了另一種替代方案,即如今廣為人知的 DeepSeek R1。
讓我們探討它們是如何穩(wěn)定推理過程的!
DeepSeek-R1
- 冷啟動階段
- 基于推理的強化學習算法
- 拒絕采樣
- 監(jiān)督微調
- 所有場景的強化學習算法
在第一步中,DeepSeek-V3-Base 使用了一個約 5000 個標記的小型高質量推理數據集進行了微調,以避免冷啟動問題導致可讀性差。
在第二步中,生成的模型使用與訓練 DeepSeek-R1-Zero 時類似的過程進行了訓練。為了確保目標語言的一致性,還添加了一個額外的獎勵指標。
在第三步中,經過 RL 訓練的模型被用來生成合成推理數據,這些數據將在稍后的階段用于監(jiān)督微調。通過基于規(guī)則的采樣(規(guī)則獎勵)和獎勵模型(DeepSeek-V3-Base),共生成了 600,000 個高質量的推理樣本。
此外,使用 DeepSeek-V3 和部分訓練數據生成了 200,000 個非推理樣本。
在第 4 步中,生成了 800,000 個樣本的數據集,并用于監(jiān)督微調 DeepSeek-V3-Base 模型。
在第 5 步中,使用類似于 DeepSeek-R1-Zero 的方法對生成的模型進行了基于強化學習的訓練。為了與人類偏好保持一致,還添加了專注于有用性和無害性的額外獎勵信號。模型還被要求總結推理過程,以避免可讀性問題。
這就是全部!這意味著 DeepSeek-R1 實際上是通過監(jiān)督微調和強化學習從 DeepSeek-V3-Base 微調而來的。
大部分工作是確保生成高質量樣本!
使用 DeepSeek-R1 精煉推理
DeepSeek-R1 是一個擁有 671 億個參數的巨大模型。不幸的是,在消費級硬件上運行這樣一個模型將會非常困難。
幸運的是,作者探索了將 DeepSeek-R1 的推理質量提煉到 Qwen-32B 等其他模型的方法,我們可以在消費級硬件上運行這些模型!
為此,他們使用 DeepSeek-R1 作為教師模型,較小的模型作為學生。兩個模型都會接收到一個提示,并生成一個標記的概率分布。在訓練過程中,學生將試圖緊密跟隨教師的概率分布。
這個過程是使用之前看到的 80 萬個高質量樣本完成的:
經過提煉的模型表現非常出色,因為它們不僅學習了 800,000 個樣本,還學習了 DeepSeek-R1 老師是如何回答這些問題的方法!
不成功的嘗試
使用 MCTS 時,他們面臨了搜索空間大的問題,因此不得不限制節(jié)點擴展。此外,訓練精細的獎勵模型本身就非常困難。
使用 PRMs 進行 Best-of-N 技術時,他們遇到了計算開銷問題,需要不斷重新訓練獎勵模型以防止獎勵作弊。
這并不表示這些技術無效,但它揭示了這些技術的一些局限性!
結論
