大模型掌握16000+真實(shí)世界API了,清華等機(jī)構(gòu)ToolLLM的工具使用能力不輸ChatGPT
相信大家都已經(jīng)見識(shí)到了,開源大型語(yǔ)言模型(LLMs)及其變體(例如 LLaMA 和 Vicuna)在各種任務(wù)上取得了顯著的進(jìn)展。
然而,盡管 LLM 很強(qiáng)大,但它們?cè)趫?zhí)行更高級(jí)任務(wù)方面局限性仍然很大,比如讓 LLM 按照人類給出的指令使用外部工具(APIs),很多開源 LLM 就很難辦到。
原因在于當(dāng)前 LLM 的指令調(diào)優(yōu)技術(shù)主要集中在基本語(yǔ)言任務(wù)上,缺乏對(duì)工具使用方面的探索。這與最先進(jìn)的閉源模型如 ChatGPT 形成了鮮明的對(duì)比,后者已經(jīng)展示出出色的工具使用能力。
為了讓開源 LLM 更好的使用外部工具,來(lái)自清華、人大、耶魯、騰訊、知乎等多家機(jī)構(gòu)的研究者聯(lián)合撰寫了論文,他們引入了一個(gè)通用工具使用框架 ToolLLM,該框架包括數(shù)據(jù)構(gòu)建、模型訓(xùn)練和評(píng)估多項(xiàng)功能。
值得一提的是,該研究從 RapidAPI Hub 收集了 16464 個(gè)真實(shí)世界的 RESTful API,涵蓋 49 個(gè)類別。
該研究在 ToolBench(指令調(diào)優(yōu)數(shù)據(jù)集)上對(duì) LLaMA 進(jìn)行微調(diào),得到了 ToolLLaMA。ToolEval(自動(dòng)評(píng)估器)評(píng)估顯示,ToolLLaMA 展現(xiàn)出了出色的執(zhí)行復(fù)雜指令和泛化到未知 API 的能力,并且在工具使用方面性能與 ChatGPT 相媲美。
- 論文地址:https://arxiv.org/pdf/2307.16789.pdf
- 項(xiàng)目地址:https://github.com/OpenBMB/ToolBench
方法介紹
論文首先介紹了 ToolBench,這是一個(gè)用于工具使用的指令調(diào)優(yōu)數(shù)據(jù)集,由 ChatGPT 自動(dòng)創(chuàng)建。具體而言,研究團(tuán)隊(duì)從 RapidAPI Hub 收集了 16464 個(gè)涵蓋 49 個(gè)類別的真實(shí)世界 RESTful API,然后提示 ChatGPT 生成涉及這些 API 的多樣化人類指令,涵蓋單工具和多工具場(chǎng)景。最后,他們使用 ChatGPT 為每個(gè)指令搜索有效的解路徑(一系列 API 調(diào)用)。為了使搜索過程更加高效,他們開發(fā)了一種新穎的基于深度優(yōu)先搜索的決策樹(DFSDT),使 LLMs 能夠評(píng)估多個(gè)推理軌跡并擴(kuò)展搜索空間。
在數(shù)據(jù)集方面。如圖 1 所示,研究者首先收集了一些高質(zhì)量的指令調(diào)優(yōu)數(shù)據(jù)集 ToolBench。該數(shù)據(jù)集是通過使用最新的 ChatGPT(gpt-3.5-turbo-16k)自動(dòng)構(gòu)建的。
具體而言,ToolBench 的構(gòu)建包含三個(gè)階段:API 收集(API collection)、指令生成、解路徑注釋(solution path annotation)。
API 收集
研究團(tuán)隊(duì)從 RapidAPI 收集了 16464 個(gè) REST(representational state transfer)API。這些 API 涵蓋 49 個(gè)不同類別,如社交媒體、電子商務(wù)和天氣。對(duì)于每個(gè) API,研究團(tuán)隊(duì)都會(huì)從 RapidAPI 抓取詳細(xì)的 API 文檔,包括功能描述、所需參數(shù)、API 調(diào)用的代碼片段等。他們希望 LLM 能夠通過理解這些文檔來(lái)學(xué)習(xí)使用 API,從而使模型能夠泛化到訓(xùn)練過程中未見過的 API。
注:RapidAPI 是一個(gè)領(lǐng)先的 API 市場(chǎng),它將開發(fā)者與成千上萬(wàn)的真實(shí)世界 API 連接起來(lái)。在這個(gè)平臺(tái)上,開發(fā)者只需注冊(cè)一個(gè) RapidAPI 密鑰,就可以發(fā)現(xiàn)、測(cè)試和連接各種 API。
RapidAPI 的層級(jí)結(jié)構(gòu) (左) 和指令生成過程 (右) 如下圖所示。對(duì)于每個(gè)工具,研究者會(huì)爬取以下信息:工具的名稱和描述,主機(jī)的 URL,以及屬于該工具的所有可用 API;對(duì)于每個(gè) API,研究者會(huì)記錄其名稱、描述、HTTP 方法、必要參數(shù)、可選參數(shù)、可執(zhí)行的 API 調(diào)用代碼片段等。
在這一過程中,還需要 API 過濾:最初,該研究從 RapidAPI 收集了 10853 個(gè)工具(53190 個(gè) API)。然而,這些 API 的質(zhì)量和可靠性可能會(huì)有很大的差異。為此,他們進(jìn)行了嚴(yán)格的篩選過程,以確保 ToolBench 的最終工具集是可靠且功能正常的。最后只保留了 3451 個(gè)高質(zhì)量的工具 (16464 個(gè) API)。
指令生成
研究團(tuán)隊(duì)首先從整套程序中抽取 API 樣本,然后使 ChatGPT 為這些 API 生成各種指令。為了涵蓋實(shí)際場(chǎng)景,他們策劃了涉及單工具和多工具場(chǎng)景的指令,這確保了模型不僅能學(xué)會(huì)如何與單個(gè)工具交互,還能學(xué)會(huì)如何將它們組合起來(lái)完成復(fù)雜的任務(wù)。
生成高質(zhì)量的指令需要兩個(gè)重要特性:多樣性和多工具使用,以確保 LLM 能夠處理廣泛的 API 使用場(chǎng)景,并反映現(xiàn)實(shí)世界中經(jīng)常需要多種工具相互作用的情況,從而提高 LLM 的實(shí)際應(yīng)用性和靈活性。為此,研究團(tuán)隊(duì)采用了一種自下而上的指令生成方法,即從收集 API 入手,然后精心制作涉及這些 API 的各種指令。
為所有 API 及其組合的指令生成過程如下,具體過程請(qǐng)參閱原文。
解路徑注釋
研究團(tuán)隊(duì)對(duì)這些指令的高質(zhì)量響應(yīng)進(jìn)行注釋。每個(gè)響應(yīng)可能包含多輪模型推理和實(shí)時(shí) API 調(diào)用,以得出最終答案。由于工具學(xué)習(xí)本身的難度,即使是最復(fù)雜的 LLM(即 GPT-4),對(duì)復(fù)雜指令的通過率也很低,從而導(dǎo)致數(shù)據(jù)收集效率低下。為此,研究團(tuán)隊(duì)開發(fā)了一種新穎的基于深度優(yōu)先搜索的決策樹(DFSDT),以增強(qiáng) LLM 的規(guī)劃和推理能力。與傳統(tǒng)的思維鏈(CoT)和 ReACT 相比,DFSDT 使 LLM 能夠評(píng)估多種推理路徑,并慎重做出決定,以撤回步驟或沿著有希望的路徑前進(jìn)。在實(shí)驗(yàn)中,DFSDT 顯著提高了注釋效率,并成功完成了那些用 CoT 或 ReACT 無(wú)法回答的復(fù)雜指令。
下圖為在模型推理過程中,DFSDT 與傳統(tǒng)的 CoT 或 ReACT 的比較 (左)。
下表為 ToolBench 與其他研究的比較:
實(shí)驗(yàn)及結(jié)果
本文通過實(shí)驗(yàn)來(lái)研究了 ToolLLaMa 的性能,報(bào)告了 ToolLLaMa 的評(píng)估指標(biāo)、API retriever 和 DFSDT 的有效性以及實(shí)驗(yàn)和分析結(jié)果。
考慮到 API 的時(shí)間可變性,為每條測(cè)試指令標(biāo)注固定的真實(shí)解路徑是不可行的。此外,確保不同模型在評(píng)估過程中使用相同版本的 API 也至關(guān)重要??紤]到人工評(píng)估可能會(huì)耗費(fèi)大量時(shí)間,該研究仿效 AlpacaEval 開發(fā)了高效的機(jī)器評(píng)估工具 ToolEval,其依賴于 ChatGPT 的支持,并包含兩個(gè)關(guān)鍵評(píng)估指標(biāo):(1)通過率,用于衡量在有限預(yù)算內(nèi)成功執(zhí)行指令的能力,以及(2)勝率,用于比較兩條解路徑的質(zhì)量和有用性。本文證明 ToolEval 與人類評(píng)估有很高的相關(guān)性,并為工具學(xué)習(xí)提供了一個(gè)強(qiáng)大、可擴(kuò)展且可靠的評(píng)估方式。
如表 2 所示,在不同類型的指令中,研究團(tuán)隊(duì)的 API 檢索器始終優(yōu)于 BM25 和 Ada Embedding。較高的 NDCG 得分表明其在 API 檢索方面的有效性。此外,I1 的 NDCG 分?jǐn)?shù)遠(yuǎn)高于 I2 和 I3,這意味著單工具指令在 API 檢索方面比多工具指令相對(duì)簡(jiǎn)單。
從表 3 可以看出,DFSDT 在所有情況下的性能都明顯優(yōu)于其余兩種基線方法,這表明 DFSDT 是一種更有效的方法,可以節(jié)省解路徑標(biāo)注的成本。并且與較簡(jiǎn)單的指令(I1)相比,DFSDT 對(duì)較難指令(即 I2 和 I3)的性能提升更為明顯。這說明,除了效率之外,DFSDT 還能解決那些困難、復(fù)雜的指令,而這些指令是普通 ReACT 無(wú)論執(zhí)行多少次都無(wú)法回答的。將此類 「困難示例 」納入數(shù)據(jù)集,可以充分激發(fā)工具在這些復(fù)雜情況下的使用能力。
從表 4 中可以發(fā)現(xiàn):
- ToolLLaMA 在通過率和獲勝率方面都明顯優(yōu)于傳統(tǒng)的工具使用方法 ChatGPT-ReACT,并表現(xiàn)出卓越的泛化能力。此外,當(dāng) ToolLLaMA 與 DFSDT 結(jié)合使用時(shí),其表現(xiàn)也優(yōu)于 Text-Dainci-003。
- 雖然研究團(tuán)隊(duì)對(duì) prompt 工程進(jìn)行了廣泛研究,但 Vicuna 和 Alpaca 都未能通過任何指令,這意味著它們的指令遵循能力并未擴(kuò)展到工具使用場(chǎng)景。這凸顯了當(dāng)前主要側(cè)重于提高語(yǔ)言技能的指令調(diào)優(yōu)方法的不足。
總體而言,ToolLLaMA 在所有場(chǎng)景中都表現(xiàn)出了競(jìng)爭(zhēng)力,其通過率略低于 ChatGPT+DFSDT。在獲勝率方面,ToolLLaMA 與 ChatGPT+DFSDT 的能力基本相當(dāng),在 I2-Cat 設(shè)置中甚至超過了后者。
總之,這些結(jié)果表明,ToolBench 可以充分激發(fā) LLM 的工具使用能力,使他們能夠熟練掌握各種指令的未知 API。
在實(shí)驗(yàn)研究團(tuán)隊(duì)對(duì) LLaMA 的所有參數(shù)進(jìn)行了微調(diào),得到了 ToolLLaMA。為了提高參數(shù)效率,他們進(jìn)一步應(yīng)用了具有代表性的參數(shù)效率調(diào)整方法 LoRA,并研究了其對(duì)性能的影響。下表 5 中的結(jié)果表明,參數(shù)效率的提高是在性能權(quán)衡的基礎(chǔ)上實(shí)現(xiàn)的。他們期待未來(lái)的嘗試能設(shè)計(jì)出不犧牲性能的前提下實(shí)現(xiàn)參數(shù)效率的方法。
更多詳細(xì)內(nèi)容,請(qǐng)參閱原文。