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