多步推理碾壓GPT-4o,無需訓練效能提升10%!斯坦福開源通用框架OctoTools


新智元報道  

編輯:LRS
【新智元導讀】OctoTools透過標準化工具卡和規劃器,幫助LLMs高效完成複雜任務,無需額外訓練。在16個任務中表現優異,比其他方法平均準確率高出9.3%,尤其在多步推理和工具使用方面優勢明顯。
大型語言模型(LLMs)目前仍然很難處理需要多步驟推理、特定領域知識或外部工具整合的複雜任務,有研究工作探索了使用預先構建的外部工具來增強LLMs處理複雜任務的能力,但這些方法需要對模型進行微調或額外訓練以實現工具的整合,在不同任務之間難以靈活適應。
現有的方法要麼依賴於靜態的、預定義的工具集,要麼缺乏高效的工具選擇和規劃機制,這種低效性會導致任務執行出錯、計算成本增加,以及在應用於新領域時適應性受限。
傳統增強LLMs的方法包括少量樣本提示(few-shot prompting)、思維鏈(chain-of-thought reasoning)以及與外部工具介面的功能呼叫API;有的框架如LangChain和AutoGen允許LLMs夠使用外部資源,但通常智慧用於指定應用場景或需要大量的預配置,沒有提供一種統一的多步驟規劃和執行方法,因此在處理複雜推理問題時效果不佳。
此外,大多數現有方法缺乏對工具選擇的結構化方法,導致執行效率低下。
最近,斯坦福大學推出一個無需訓練、使用者友好且易於擴充套件的開源智慧體框架OctoTools框架,包含對工具選擇的結構化方法,大幅提高執行效率的同時,還能夠解決跨多個領域的複雜推理。
OctoTools引入了標準化的工具卡來封裝工具功能,一個用於高階和低階規劃的規劃器(planner),以及一個執行工具使用的執行器(executor)。
論文連結:https://arxiv.org/pdf/2502.11271
程式碼連結:https://github.com/octotools/octotools
研究人員在16個不同的任務(包括MathVista、MMLU-Pro、MedQA和GAIA-Text)上驗證了OctoTools的通用性,比GPT-4o的平均準確率提高了9.3%
此外,當提供相同的工具集時,OctoTools的效能全面優於AutoGen、GPT-Functions和LangChain,最多提高了10.6%的效能,在任務規劃、有效工具使用和多步問題解決方面具有非常大的優勢。
OctoTools框架
OctoTools框架的核心設計理念是讓人工智慧系統能夠高效地使用外部工具,而無需額外的訓練或框架調整。
主要包含工具卡片、規劃器、執行器,還包含一個任務指定的工具集最佳化演算法,能夠學習為下游任務選擇最有用的工具子集。
整個過程不斷迭代,直到找到完整的解決方案。

工具卡片(Tool Cards)

工具卡片定義了工具使用的元資料,每個工具卡片的設計與框架是相對獨立的,使用者可以在不修改底層框架或智慧體邏輯的情況下,輕鬆整合各種工具。
新的工具卡片可以無縫整合到框架中,而無需進行額外的訓練或對框架進行調整,極大提高了工具的可擴充套件性和靈活性。
每個工具卡片代表一個工具及其必要的元資料,包括工具的名稱、輸入和輸出型別,以及命令示例,為規劃器和執行器提供了開發者的指導建議。
比如,影像描述工具(Image_Captioner_Tool)指出「在複雜場景中可能會出錯」以及「可以考慮使用其他工具進行驗證」;目標檢測工具(Object_Detector_Tool)註明了其在檢測物件方面的限制。
為了確保互動上的一致性,每個工具卡片都實現了兩個標準功能:
execute()函式封裝了工具的核心功能,例如生成程式碼片段或執行目標檢測,執行結果以結構化格式儲存,以支援不同的輸出型別,例如生成的程式碼、檢測到的目標或儲存的檔案;
get_metadata()函式允許規劃器和執行器動態評估工具的能力,並理解其使用限制。

規劃器(Planner)

規劃器負責從宏觀和微觀兩個層面進行規劃,不僅關注整體目標,還會逐步細化每一步的動作,確保任務能夠高效、精準地執行。
初始化  
規劃器首先會檢查工具箱,載入所有工具卡片,每個工具都帶有描述其輸入輸出模式和使用限制的元資料。
為了更高效地使用工具,規劃器會根據專家建議或透過少量示例(few-shot)進行最佳化,選出工具子集。
查詢分析與動作預測  
當輸入一個查詢時,規劃器會根據其初始化資訊,為工具的使用制定一個初步的、宏觀的計劃:總結查詢的目標,分析所需的技能,識別相關的工具,並特別指出需要驗證的環節,確保每個後續的子目標都與原始查詢保持一致。
隨後,在每步內會提出一個行動(微觀計劃),即時細化並執行每個子目標,根據新資訊或反饋進行調整。
上下文驗證與解決方案總結  
在每次執行命令後,上下文驗證器會檢查當前上下文是否已經解決了問題,是否所有子目標都已滿足,並識別是否有模糊處理。
如果問題仍未解決,規劃器會繼續進入下一個迴圈,預測下一個動作。
整合答案時,會結合中間工具的輸出,追溯推理步驟,並以簡潔、使用者友好的方式呈現最終解決方案。

執行器(Executor)

執行器負責生成可執行的命令,呼叫工具,並將結構化的結果儲存在上下文中。
命令預測  
當規劃器預測出動作時,命令生成器(由語言模型驅動)會建立一個低層次的命令,形式為可執行的Python指令碼,呼叫指定工具,並提供必要的輸入,同時完成資料準備工作。
命令執行  
命令執行器會在Python環境中執行生成的命令,並獲取結果,包括工具的輸出、日誌或錯誤資訊。軌跡保留了採取的動作、生成的程式碼以及獲得的結果的清晰歷史記錄。

針對任務最佳化工具集

OctoTools工具箱包含多種工具,涵蓋了不同的模態和技能,啟用所有可用工具時具有很強的通用性,當為某個任務提供少量驗證樣本時,選出工具子集可以進一步提高效率和效能表現。
研究人員提出了一種自動化的演算法為每個任務最佳化工具集配置,採用貪心搜尋策略將計算複雜度降低到O(n),與工具數量線性相關。
實驗結果
主要結論
研究人員對比了工具集最佳化後的框架OctoTools與其他三種基線方法的效能,包括:
1. 零樣本(zero-shot):基礎語言模型(gpt-4o-2024-08-06)直接回答問題,沒有任何額外的提示;
2. 思維鏈(chain-of-thought,CoT):基礎語言模型被提示“逐步思考”,以生成逐步推理的過程;
3. OctoTools基礎版(OctoTools-base):僅使用基礎工具,不進行任何外部整合。
在16個基準測試中,OctoTools在效能上取得了顯著提升,比零樣本和連貫推理基線分別高出9.3%和7.7%,比零樣本(高出4.2%)和思維鏈(高出2.6%)的效能更強,表明該框架的逐步推理能力對效能的提升有顯著貢獻,即使不依賴外部工具整合也是如此。
其他智慧體框架
研究人員還對比了三種常用的通用人工智慧(GenAI)智慧體框架:
1. GPT-Functions:使用GPT-4o透過函式呼叫使用者指定的工具;
2. LangChain:提供多智慧體協作、長期記憶和工具使用能力;
3. AutoGen:能夠建立多個具有工具使用能力的自主智慧體。
為了公平對比每個系統在多步驟中規劃和使用工具的能力,研究人員將所有智慧體框架(包括OctoTools)配置為使用相同的底層模型(GPT-4o)和超引數,使用相同的工具集,最大推理步數為10步,時間限制為300秒。
總體而言,OctoTools的表現優於其他智慧體框架,平均準確率比AutoGen高出10.6%,比GPT-Functions高出7.5%,比LangChain高出7.3%
參考資料:
https://www.marktechpost.com/2025/02/22/stanford-researchers-introduce-octotools-a-training-free-open-source-agentic-ai-framework-designed-to-tackle-complex-reasoning-across-diverse-domains/

相關文章