多步推理碾壓GPT-4o,無需訓練性能提升10%!史丹佛開源通用框架OctoTools


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/ (新智元)