華為諾亞聯合中科大發布工具調用模型ToolACE,效果持平GPT-4獲開源第一
大語言模型(如 GPT-4)具備強大的語言處理能力,但其獨立運作時仍存在局限性,如無法進行復雜計算,獲取不到實時信息,難以提供專業定制化功能等。而大語言模型的工具調用能力使其不僅限于文字處理,更能提供全面、實時、精確的服務,極大地擴展了其應用范圍和實際價值。
為提高模型的工具調用能力,高質量、多樣化、且復雜的訓練數據至關重要。然而,現實中工具調用數據的收集和標注極為困難,現有的合成數據生成方式在覆蓋率和準確性方面仍存在不足。
針對這一挑戰,華為諾亞方舟實驗室聯合中科大等機構的研究人員提出了一個統一的工具調用數據合成框架 ToolACE,可以自動化地生成高準確性、高復雜性、高多樣性的工具調用數據。ToolACE 通過創新的自進化合成過程,構建了一個包含 26,507 個多樣化 API 的 API 庫。通過多智能體之間的交互生成對話,并通過形式化的思維過程進行引導,確保生成的數據復雜且多樣化。并結合了基于規則和基于模型的數據質檢機制,確保數據準確性。基于對應合成數據對 Llama 3.1 進行微調,以 8B 的模型量級,在開源工具調用榜單 BFCL(https://gorilla.cs.berkeley.edu/leaderboard.html)中持平 GPT-4,獲得開源第一,超過如 Functionary 等 70B 模型效果。
- 論文題目:ToolACE: Winning the Points of LLM Function Calling
- 論文鏈接:https://arxiv.org/abs/2409.00920
- 模型和數據鏈接:https://huggingface.co/Team-ACE/
圖 1. ToolACE 數據合成框架圖
ToolACE 工具調用數據合成框架
ToolACE 的數據合成流程分為 API 生成、對話生成、數據質檢三個階段:
基于自演進的 API 合成:多樣化的 API 能夠顯著提升工具調用數據的多樣性和復雜性。ToolACE 利用基于自演進的 API 合成模塊構建了一個包含 26,507 個 API 庫,在數量和領域覆蓋上均超越了其他代表性的工具調用數據。基于自演進的 API 合成模塊可以根據不同的數據類型和約束條件合成新的工具描述。具體來說,該模塊利用多樣的網頁預訓練數據提取了一個 API 上下文樹,每個節點代表一個潛在的應用領域和函數調用的功能,如金融、健康、交通等。通過由 API 上下文樹中進行采樣,結合給定的 API 示例,由語言模型可以合成新的 API。API 的多樣性和復雜性通過遞歸的自我進化和更新逐漸增加。
基于多智能體交互的對話生成:ToolACE 利用多智能體交互的方式進行工具調用對話合成,所生成的對話涵蓋了多種類型,包括簡單函數調用、并行函數調用、依賴函數以及非工具使用的對話。
對話生成過程首先從構建好的 API 庫中采樣一個或多個候選 API,之后通過三個不同的智能體(用戶、助手和工具)的互動生成對話,每個智能體都由大語言模型模擬。用戶智能體主要提出請求或提供額外信息,請求的多樣性和復雜性由多模式提示和基于相似性的復雜化策略來保證。助手智能體則使用給定的 API 來完成用戶提出的請求。助手智能體的操作空間包括:調用 API、請求進一步信息、總結工具反饋以及提供非工具使用的回答。每個操作都通過形式化的思考過程確定,并通過自我一致性驗證以確保準確性。工具智能體作為 API 執行者,處理助手提供的工具描述和輸入參數,并模擬輸出潛在的執行結果。所生成的對話可進一步進行格式泛化為不同的工具調用格式。
雙層數據質檢流程:影響大語言模型工具調用能力的一個關鍵因素是訓練數據的準確性和可靠性。不一致或不準確的數據會阻礙模型理解和執行工具的能力。與一般問答數據不同,工具調用數據的正確性更容易驗證,因為成功的工具調用必須嚴格符合 API 定義中指定的格式。因此,ToolACE 提出了結合規則質檢和模型質檢的雙層數據質檢流程對合成數據進行校驗。規則質檢保證數據嚴格遵循 API 定義的格式和結構要求,確保工具調用的可執行性。模型質檢則進一步對規則難以處理的問題進行檢查,如幻象和數據不一致性。
實驗驗證
數據分布:ToolACE 數據共包含了 26507 個不同的 API,來自于不同的領域。下圖展示了各個領域的 API 數量分布,以及在娛樂(Entertainment)領域的二級 API 分布。
圖 2. ToolACE 數據集 API 領域來源分布
此外,ToolACE 數據集中 API 的參數覆蓋多個類型:字符串(string),浮點數(float),整數(int),字典(dict),數組(array)等。且數據中含有單工具調用(single)、并行多工具調用(parallel)、多輪數據(multi-turn)、工具依賴調用(dependency)和無需工具調用(non-tool)等多種可能情形,分布如下圖所示。
圖 3. ToolACE 數據 API 參數類型分布和工具調用形式分布
工具調用能力驗證:研究團隊使用 ToolACE 方案生成的數據集,對開源的 LLaMA-3.1-8B-Instruct 模型進行 LoRA 微調得到 ToolACE-8B 模型,并在加州大學伯克利分校團隊發布的工具調用測試榜單 BFCL 上進行評估,在 BFCL 上擊敗所有模型獲得榜首。
表 1. 模型在 BFCL-v2 榜單上的工具調用性能比較(榜單數據更新于 2024/08/16)。表中選擇排名前 20 的模型作為比較。
通用能力驗證:研究團隊對訓練后模型的綜合通用能力進行測試,實驗涵蓋通用理解任務、代碼生成任務、數學推理任務、嘗試問答任務以及工具調用任務,結果證明 ToolACE-8B 模型在大幅提升工具調用能力的同時,相比于基座模型(LLaMA-3.1-8B-Instruct)并未明顯損失其他能力,且各方面明顯優于同規模開源工具調用模型 xLAM-7B-fc-r。
圖 4. ToolACE-8B 模型通用能力評估