OpenAI最強推理模型O1正式發布,一起回顧那些提升大模型推理能力的黑科技
前幾天OpenAI 發布的o1 模型,在各個競賽、領域的表現相比之前的產品有了很大的提高,號稱能媲美人類的博士水平。這么強的大模型,里面有那些黑科技?這篇文章,我們和作者一起來學習一下。
9月13日凌晨,OpenAI爆出重磅消息,正式發布了OpenAI O1推理模型。
O1模型的特殊之處在于其強大的推理能力,和OpenAI其他模型不同,O1模型更像人類大腦的“系統2”,擅長慢思考,在作出回答之前會進行“深思熟慮”,產生一個長長的思維鏈,并嘗試通過不同的策略進行推理和反思,從而確?;卮鸬馁|量和深度。
因此,相比其他模型,O1模型“更大,更強,更慢,也更貴”。
Greg Brockman這樣評價O1模型:
“可以這樣理解,我們的模型進行系統 I 思考,而思維鏈則解鎖了系統 II 思考。人們已經發現,提示模型「一步步思考」可以提升性能。但是通過試錯來訓練模型,從頭到尾這樣做,則更為可靠,并且——正如我們在圍棋或 Dota 等游戲中所見——可以產生極其令人印象深刻的結果?!?/p>
這種強大推理能力使o1在多個行業中具有廣泛的應用潛力,尤其是復雜的科學、數學和編程任務。
同時,為了凸顯O1模型在推理上的巨大進步,OpenAI也設計了一套完整的評估方案。測試結果令人振奮,在絕大多數需要深度思考和復雜推理的任務中,O1模型都要明顯好于GPT-4o模型。
下圖是在數學競賽、編碼競賽和科學問答中的表現,O1要高出gpt4o一大截。
在其他學科領域,比如化學、物理、生物、經濟學、邏輯學等領域,o1相比gpt4o也有顯著提升。
目前,o1系列包含三款模型,OpenAI o1、OpenAI o1-preview和OpenAI o1-mini。OpenAI o1作為最高級的推理模型,暫不對外開放。OpenAI o1-preview,這個版本更注重深度推理處理,每周可以使用30次。OpenAI o1-mini,這個版本更高效、劃算,適用于編碼任務,每周可以使用50次。
從目前公開的消息得知,O1模型的核心是思維鏈(COT,chain of thought),但從實際表現來看,背后一定用到了其他更強大的推理模型,因為單獨的COT無法讓模型獲得如此強的推理結果。
下面,讓我們一起回顧一下,那些大幅提升模型推理能力的黑科技。未來隨著O1模型的公開和解密,其中很可能就會有風叔介紹到的推理框架。
1. 初級推理框架:COT、COT-SC和TOT
初級推理框架的核心主張,是將大型任務分解為更小、更易于管理的子目標,從而高效處理復雜任務。
主要的子任務分解方式包括:思維鏈COT(Chain of thought)、自洽性思維鏈(COT-SC)、思維樹TOT(Tree of thought)。
1.1 思維鏈COT
思維鏈COT的全稱是Chain of Thought,當我們對LLM這樣要求「think step by step」,會發現LLM會把問題分解成多個步驟,一步一步思考和解決,能使得輸出的結果更加準確。這就是思維鏈,一種線性思維方式。
思維鏈適用的場景很多,包括各種推理任務,比如:數學問題、嘗試推理、符號操作等。思維鏈方法的好處在于,不用對模型進行訓練和微調
在下圖的案例中,通過few-shot propmt,引導大模型先對問題進行拆解,再進行解答。其效果要遠遠好于直接詢問。
1.2 自洽性COT
所謂自洽性,是指一種為同一問題,生成多個不同的思維鏈,并對模型進行訓練從中挑選出最合適的答案的方法。一個CoT出現錯誤的概率比較大,我們可以讓大模型進行發散,嘗試通過多種思路來解決問題,然后投票選擇出最佳答案,這就是自洽性CoT。
這種方法特別適用于需要連續推理的復雜任務,例如思維鏈提示法。它在多個評估標準上顯著提升了CoT提示的效果,如在GSM8K上提升了17.9%,在SVAMP上提升了11.0%,在AQuA上提升了12.2%。
1.3 思維樹TOT
思維樹TOT是對思維鏈CoT的進一步擴展,在思維鏈的每一步,推理出多個分支,拓撲展開成一棵思維樹。使用啟發式方法評估每個推理分支對問題解決的貢獻。選擇搜索算法,使用廣度優先搜索(BFS)或深度優先搜索(DFS)等算法來探索思維樹,并進行前瞻和回溯。
2. 中級推理框架:ReAct、Plan & Execute和Self Discover
初級推理框架的優勢是簡單,但缺點是缺少可控性,我們很難約束和控制大模型朝哪個方向推理。當推理方向存在錯誤時,也缺少糾錯機制。
因此,以ReAct、Plan & Execute和Self Discover為代表的推理框架,更主張約束大模型的推理方向,并根據環境反饋進行推理糾錯。
2.1 ReAct
ReAct通過結合語言模型中的推理(reasoning)和行動(acting)來解決多樣化的語言推理和決策任務,因此提供了一種更易于人類理解、診斷和控制的決策和推理過程。
它的典型流程如下圖所示,可以用一個有趣的循環來描述:思考(Thought)→ 行動(Action)→ 觀察(Observation),簡稱TAO循環。
思考(Thought):面對一個問題,我們需要進行深入的思考。這個思考過程是關于如何定義問題、確定解決問題所需的關鍵信息和推理步驟。
行動(Action):確定了思考的方向后,接下來就是行動的時刻。根據我們的思考,采取相應的措施或執行特定的任務,以期望推動問題向解決的方向發展。
觀察(Observation):行動之后,我們必須仔細觀察結果。這一步是檢驗我們的行動是否有效,是否接近了問題的答案。
如果觀察到的結果并不匹配我們預期的答案,那么就需要回到思考階段,重新審視問題和行動計劃。這樣,我們就開始了新一輪的TAO循環,直到找到問題的解決方案。
關于ReAct的更多原理和實踐,可參考《AI大模型實戰篇:AI Agent設計模式 – ReAct》
2.2 Plan & Execute
Plan & Execute方法的本質是先計劃再執行,即先把用戶的問題分解成一個個的子任務,然后再執行各個子任務,并根據執行情況調整計劃。
Plan&Execute相比ReAct,最大的不同就是加入了Plan和Replan機制,其架構上包含規劃器、執行器和重規劃器:
- 規劃器Planner負責讓 LLM 生成一個多步計劃來完成一個大任務,在實際運行中,Planner負責第一次生成計劃;
- 執行器接收規劃中的步驟,并調用一個或多個工具來完成該任務;
- 重規劃器Replanner負責根據實際的執行情況和信息反饋來調整計劃
關于Plan & Execute的更多原理和實踐,可參考《AI大模型實戰篇:AI Agent設計模式 – Plan & Execute》
2.3 Self Discover
這種方法的核心是一個自發現過程,它允許大型語言模型在沒有明確標簽的情況下,自主地從多個原子推理模塊(如批判性思維和逐步思考)中選擇,并將其組合成一個推理結構。
Self-Discover框架包含兩個主要階段,如下圖所示:
階段一:自發現特定任務的推理結構
包含三個主要動作:選擇(SELECT)、適應(ADAPT)和實施(IMPLEMENT)。
選擇:在這個階段,模型從一組原子推理模塊中選擇對于解決特定任務有用的模塊。模型通過一個元提示來引導選擇過程,這個元提示結合了任務示例和原子模塊描述。選擇過程的目標是確定哪些推理模塊對于解決任務是有助的。
適應:一旦選定了相關的推理模塊,下一步是調整這些模塊的描述使其更適合當前任務。這個過程將一般性的推理模塊描述,轉化為更具體的任務相關描述。例如對于算術問題,“分解問題”的模塊可能被調整為“按順序計算每個算術操作”。同樣,這個過程使用元提示和模型來生成適應任務的推理模塊描述。
實施:在適應了推理模塊之后,Self-Discover框架將這些適應后的推理模塊描述轉化為一個結構化的可執行計劃。這個計劃以鍵值對的形式呈現,類似于JSON,以便于模型理解和執行。這個過程不僅包括元提示,還包括一個人類編寫的推理結構示例,幫助模型更好地將自然語言轉化為結構化的推理計劃。
階段二:應用推理結構
完成階段一之后,模型將擁有一個專門為當前任務定制的推理結構。在解決問題的實例時,模型只需遵循這個結構,逐步填充JSON中的值,直到得出最終答案。
關于self discover的更多原理和實踐,可參考《AI大模型實戰篇:Self Discover框架,萬萬想不到Agent還能這樣推理》
3. 高級推理框架,Reflexion和LATS
大模型經過初級和中級推理框架的優化后,能準確地處理一些相對簡單的問題,但是在處理復雜的推理任務時,仍然會顯得力不從心。
因此,高級推理框架的核心主張就是,通過強化學習技術進行訓練,專門用于思考鏈條更長、反思環節更多的復雜推理任務。
3.1 Reflexion
Reflexion的本質是強化學習,完整的Reflexion框架由三個部分組成:
- 參與者(Actor):根據狀態觀測量生成文本和動作。參與者在環境中采取行動并接受觀察結果,從而形成軌跡。
- 評估者(Evaluator):對參與者的輸出進行評價。具體來說,它將生成的軌跡(也被稱作短期記憶)作為輸入并輸出獎勵分數。根據人物的不同,使用不同的獎勵函數(決策任務使用LLM和基于規則的啟發式獎勵)。
- 自我反思(Self-Reflection):這個角色由大語言模型承擔,能夠為未來的試驗提供寶貴的反饋。自我反思模型利用獎勵信號、當前軌跡和其持久記憶生成具體且相關的反饋,并存儲在記憶組件中。Agent會利用這些經驗(存儲在長期記憶中)來快速改進決策。
因此,Reflexion模式非常適合以下情況:
大模型需要從嘗試和錯誤中學習:自我反思旨在通過反思過去的錯誤并將這些知識納入未來的決策來幫助智能體提高表現。這非常適合大模型需要通過反復試驗來學習的任務,例如決策、推理和編程。
傳統的強化學習方法失效:傳統的強化學習(RL)方法通常需要大量的訓練數據和昂貴的模型微調。自我反思提供了一種輕量級替代方案,不需要微調底層語言模型,從而使其在數據和計算資源方面更加高效。
需要細致入微的反饋:自我反思利用語言反饋,這比傳統強化學習中使用的標量獎勵更加細致和具體。這讓大模型能夠更好地了解自己的錯誤,并在后續的試驗中做出更有針對性的改進。
后續,風叔也會專門寫一篇文章來詳細介紹Reflexion框架。
3.2 LATS,可能是目前最強的推理框架
LATS,全稱是Language Agent Tree Search,說的更直白一些,LATS = Tree search + ReAct + Plan&Execute+ Reflexion。
ReAct、Plan&Execute、Reflexion的原理在前文都做了介紹,這里不再贅述,詳細介紹下Tree Search。
Tree Search是一種樹搜索算法,LATS 使用蒙特卡羅樹搜索(MCTS)算法,通過平衡探索和利用,找到最優決策路徑。
蒙特卡羅樹搜索(MCTS)則是一種基于樹結構的蒙特卡羅方法。它在整個 2^N(N 為決策次數,即樹深度)空間中進行啟發式搜索,通過反饋機制尋找最優路徑。MCTS 的五個主要核心部分是:
- 樹結構:每一個葉子節點到根節點的路徑都對應一個解,解空間大小為 2^N。
- 蒙特卡羅方法:通過隨機統計方法獲取觀測結果,驅動搜索過程。
- 損失評估函數:設計一個可量化的損失函數,提供反饋評估解的優劣。
- 反向傳播線性優化:采用反向傳播對路徑上的所有節點進行優化。
- 啟發式搜索策略:遵循損失最小化原則,在整個搜索空間上進行啟發式搜索。
MCTS 的每個循環包括四個步驟:
- 選擇(Selection):從根節點開始,按照最大化某種啟發式價值選擇子節點,直到到達葉子節點。使用上置信區間算法(UCB)選擇子節點。
- 擴展(Expansion):如果葉子節點不是終止節點,擴展該節點,添加一個或多個子節點。
- 仿真(Simulation):從新擴展的節點開始,進行隨機模擬,直到到達終止狀態。
- 反向傳播(Backpropagation):將模擬結果沿著路徑反向傳播,更新每個節點的統計信息。
LATS的工作流程如下圖所示,包括以下步驟:
- 選擇 (Selection):即從根節點開始,使用上置信區樹 (UCT) 算法選擇具有最高 UCT 值的子節點進行擴展。
- 擴展 (Expansion):通過從預訓練語言模型 (LM) 中采樣 n 個動作擴展樹,接收每個動作并返回反饋,然后增加 n 個新的子節點。
- 評估 (Evaluation):為每個新子節點分配一個標量值,以指導搜索算法前進,LATS 通過 LM 生成的評分和自一致性得分設計新的價值函數。
- 模擬 (Simulation):擴展當前選擇的節點直到達到終端狀態,優先選擇最高價值的節點。
- 回溯 (Backpropagation):根據軌跡結果更新樹的值,路徑中的每個節點的值被更新以反映模擬結果。
- 反思 (Reflection):在遇到不成功的終端節點時,LM 生成自我反思,總結過程中的錯誤并提出改進方案。這些反思和失敗軌跡在后續迭代中作為額外上下文整合,幫助提高模型的表現。
當采取行動后,LATS不僅利用環境反饋,還結合來自語言模型的反饋,以判斷推理中是否存在錯誤并提出替代方案。這種自我反思的能力與其強大的搜索算法相結合,使得LATS更適合處理一些相對復雜的任務。
總結
O1模型的發布,將繼續吹響大模型軍備競賽的號角。在處理物理、化學和生物問題時,o1的表現已經和該領域的博士生水平不相上下。在國際數學奧林匹克的資格考試,o1的正確率為83%,成功進入了美國前500名學生的行列。
這樣的發展速度令人驚嘆,也令人擔憂。AGI未來的發展能達到什么上限,我們不得而知。我們能做的,唯有持續學習,跟上AI發展的步伐。
本文由人人都是產品經理作者【風叔】,微信公眾號:【風叔云】,原創/授權 發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自Unsplash,基于 CC0 協議。
- 目前還沒評論,等你發揮!