最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

面壁智能給大模型接入16000+真實(shí)API,效果直逼ChatGPT!

2023-08-07 17:51 作者:OpenBMB  | 我要投稿


近些年,開源大語言模型(LLM)進(jìn)步飛快,例如 LLaMA 和 Vicuna 等模型在各種語言理解、生成任務(wù)上展現(xiàn)了極佳的水平。但是,當(dāng)它們面對(duì)更高級(jí)別的任務(wù),例如根據(jù)用戶指令使用外部工具(API)時(shí),仍然有些力不從心。


為了解決這個(gè)問題,面壁智能聯(lián)合來自 TsinghuaNLP、耶魯、人大、騰訊、知乎的研究人員推出 ToolLLM 工具學(xué)習(xí)框架,加入 OpenBMB 大模型工具體系“全家桶”。ToolLLM 框架包括如何獲取高質(zhì)量工具學(xué)習(xí)訓(xùn)練數(shù)據(jù)、模型訓(xùn)練代碼和模型自動(dòng)評(píng)測(cè)的全流程。作者構(gòu)建了 ToolBench 數(shù)據(jù)集,該數(shù)據(jù)集囊括 16464 個(gè)真實(shí)世界 API。目前 ToolLLM 的所有相關(guān)代碼均已開源,ToolLLM 框架的推出,有助于促進(jìn)開源語言模型更好地使用各種工具,增強(qiáng)其復(fù)雜場(chǎng)景下推理能力。該創(chuàng)新將有助于研究人員更深入地探索 LLMs 的能力邊界,也為更廣泛的應(yīng)用場(chǎng)景敞開了大門。

???ToolLLM論文鏈接????https://https://arxiv.org/pdf/2307.16789.pdf

???ToolLLM數(shù)據(jù)與代碼鏈接????https://github.com/OpenBMB/ToolBench

???ToolLLM開源模型下載鏈接????https://huggingface.co/ToolBench

???工具學(xué)習(xí)學(xué)術(shù)交流社群??? https://discord.gg/asjtEkAA


ToolLLM?研究背景

大模型工具學(xué)習(xí)范式

工具學(xué)習(xí)的目標(biāo)是讓LLM能給定用戶指令與各種工具(API)高效交互,從而大大擴(kuò)展LLM的能力邊界,使其成為用戶與廣泛應(yīng)用生態(tài)系統(tǒng)之間的高效橋梁。盡管已經(jīng)有一些工作(例如Gorrila、APIBank等)探索了如何讓LLM掌握API調(diào)用能力,這些工作仍然存在以下局限性:

1.??有限的API:很多研究沒有使用真實(shí)世界的API(如RESTful API),存在API范圍有限、多樣性不足的問題

2.??場(chǎng)景受限:先前工作大多集中在單一工具的使用,而實(shí)際場(chǎng)景中可能需要多個(gè)工具協(xié)同工作來完成復(fù)雜任務(wù);此外,現(xiàn)有研究通常假設(shè)用戶提供與指令相關(guān)的API,但現(xiàn)實(shí)中可供選擇的API可能非常多,用戶難以從中高效選擇

3.??模型規(guī)劃和推理能力不足:現(xiàn)有模型推理方法如CoT、ReACT過于簡(jiǎn)單,無法充分利用LLM的潛力來處理復(fù)雜指令,因而難以處理復(fù)雜任務(wù)


ToolLLM?研究框架


為了激發(fā)開源LLM的工具使用能力,該研究提出了ToolLLM,一個(gè)包括數(shù)據(jù)構(gòu)建、模型訓(xùn)練和評(píng)估過程的通用工具學(xué)習(xí)框架。作者首先收集高質(zhì)量的工具學(xué)習(xí)指令微調(diào)數(shù)據(jù)集ToolBench,隨后對(duì)LLaMA進(jìn)行微調(diào)得到ToolLLaMA,最后通過ToolEval評(píng)估ToolLLaMA的工具使用能力。

ToolLLM數(shù)據(jù)收集、模型訓(xùn)練、性能評(píng)測(cè)流程

ToolBench數(shù)據(jù)集


ToolBench 的構(gòu)建完全由最新的 ChatGPT(gpt-3.5-turbo-16k)自動(dòng)化完成,無需人工標(biāo)注。在 ToolBench 上訓(xùn)練出來的模型具備極強(qiáng)的泛化能力,能夠直接被應(yīng)用到新的 API 上,無須額外訓(xùn)練。下表列出了 ToolBench 與之前相關(guān)工作的對(duì)比情況。ToolBench 不僅在多工具混合使用場(chǎng)景獨(dú)一無二,且在真實(shí) API 數(shù)量上也一騎絕塵。

ToolBench與之前相關(guān)工作的對(duì)比情況

ToolBench 的構(gòu)建包括三個(gè)階段:API 收集,指令生成和解路徑標(biāo)注:

?01??API收集?

API 收集分為 API 爬取、篩選和響應(yīng)壓縮三個(gè)步驟。

API 爬取:作者從 RapidAPI Hub 上收集了大量真實(shí)多樣的 API。RapidAPI 是一個(gè)行業(yè)領(lǐng)先的 API 提供商,開發(fā)者可以通過注冊(cè)一個(gè) RapidAPI 密鑰來連接各種現(xiàn)有 API。所有 RapidAPI 中的 API 可以分為 49 個(gè)類別,例如體育、金融和天氣等;每個(gè)類別下面有若干工具,每個(gè)工具由一個(gè)或多個(gè) API 組成?

API 篩選:作者對(duì)在 RapidAPI 收集到的 10,853 個(gè)工具(53,190 個(gè) API)基于能否正常運(yùn)行和響應(yīng)時(shí)間、質(zhì)量等因素進(jìn)行了篩選,最終保留了3,451 個(gè)高質(zhì)量工具(16,464個(gè)API)

API 響應(yīng)壓縮:某些 API 返回的內(nèi)容可能包含冗余信息導(dǎo)致長度太長無法輸入 LLM,因此作者對(duì)返回內(nèi)容進(jìn)行壓縮以減少其長度并同時(shí)保留關(guān)鍵信息。基于每個(gè)API的固定返回格式,作者使用 ChatGPT 自動(dòng)分析并刪除其中不重要信息,大大減少了 API 返回內(nèi)容的長度

?02??指令生成??

RapidAPI層次架構(gòu)和工具指令生成示意圖

為了兼顧生成高質(zhì)量的指令和保證指令能用 API 完成,作者采用自底向上的方法進(jìn)行工具指令生成,即從收集的 API 入手,反向構(gòu)造涵蓋各種 API 的指令。具體而言,作者首先從整個(gè) API 集合中采樣各種各樣的 API 組合,接著通過 prompt engineering 讓 ChatGPT 構(gòu)思可能調(diào)用這些 API 的指令。

其中 prompt 包括了每個(gè) API 的詳細(xì)文檔,這樣 ChatGPT 能夠理解不同 API 的功能和 API 之間的依賴關(guān)系,從而生成符合要求的人類指令。具體的采樣方式分為單工具指令(指令涉及單工具下的多個(gè) API)和多工具指令(指令涉及同類或跨不同類的工具的多個(gè) API)。通過該方法,作者最終自動(dòng)構(gòu)造逾 20 萬條合格的指令。

?03??解路徑標(biāo)注?

給定一條指令Inst_*?,作者調(diào)用 ChatGPT 來搜索(標(biāo)注)一條有效的解路徑(動(dòng)作序列):{a_1,...,a_N} 。這是一個(gè)多步?jīng)Q策過程,由 ChatGPT 的多輪對(duì)話來完成。在每個(gè)時(shí)間步 t,模型根據(jù)先前的行為歷史和 API 響應(yīng)預(yù)測(cè)下一步動(dòng)作a_t?,即:

其中?r_*表示真實(shí)的 API 響應(yīng)。每個(gè)動(dòng)作包括了調(diào)用的 API 名稱,傳遞的參數(shù)和為什么這么做的“思維過程”。為了利用 ChatGPT 新增的函數(shù)調(diào)用(function call)功能,作者將每個(gè) API 視為一個(gè)特殊函數(shù),并將其 API 文檔放入 ChatGPT 的函數(shù)字段來讓模型理解如何調(diào)用 API。此外,作者也定義了 "Give Up" 和 "Final Answer" 兩種函數(shù)標(biāo)識(shí)行為序列的結(jié)束。

DFSDT與傳統(tǒng)模型推理方法的對(duì)比(左圖),解路徑標(biāo)注流程示意圖(右圖)

在實(shí)際應(yīng)用中,作者發(fā)現(xiàn)傳統(tǒng)的 CoT 或 ReACT 算法在決策過程中存在錯(cuò)誤累加傳播和搜索空間有限的問題,這導(dǎo)致即使是最先進(jìn)的 GPT-4 在很多情況下也很難成功找到一條解路徑,從而對(duì)數(shù)據(jù)標(biāo)注形成了一定的障礙。

為解決這個(gè)問題,作者采用構(gòu)建決策樹的方式擴(kuò)展搜索空間增加找到有效路徑的概率。作者提出 DFSDT 算法,讓模型評(píng)估不同的推理路徑并沿著有希望的路徑繼續(xù)前進(jìn),或者放棄當(dāng)前節(jié)點(diǎn)并擴(kuò)展一個(gè)新的節(jié)點(diǎn)。


DFSDT于傳統(tǒng)推理方法(ReACT)的性能比較

為驗(yàn)證 DFSDT 的效果,作者基于 ChatGPT 比較了 DFSDT 與 ReACT 的差異。此外,作者還引入了更強(qiáng)的 baseline (ReACT@N),它進(jìn)行多次 ReACT 推理直到找到一條合理的解路徑。如上圖所示,DFSDT 在所有場(chǎng)景下的通過率(pass rate)顯著更高,超越了兩種 baseline。此外,DFSDT 在更復(fù)雜場(chǎng)景下(I2,I3)的效果提升更大,這說明擴(kuò)大搜索空間更加有助于解決復(fù)雜的工具調(diào)用任務(wù)。

總而言之,DFSDT 算法顯著提升了模型推理能力,增加了解路徑標(biāo)注的成功率。最終,作者生成了 12000+ 條指令-解路徑數(shù)據(jù)對(duì)用于訓(xùn)練模型。


ToolEval模型評(píng)估

為了確保準(zhǔn)確可靠的工具學(xué)習(xí)性能評(píng)測(cè),作者開發(fā)了一個(gè)名為 ToolEval 的自動(dòng)評(píng)估工具,它包含兩個(gè)評(píng)測(cè)指標(biāo):通過率(Pass Rate)和獲勝率(Win Rate)。通過率是指在有限步驟內(nèi)成功完成用戶指令的比例;獲勝率則基于 ChatGPT 衡量?jī)蓚€(gè)不同解路徑的好壞(即讓 ChatGPT 模擬人工偏好)。

ToolEval評(píng)測(cè)工具排行榜

為了檢驗(yàn)這種評(píng)估方式的可靠性,作者首先收集了大量人類標(biāo)注結(jié)果,并且發(fā)現(xiàn)利用 ChatGPT 做自動(dòng)評(píng)測(cè)與人類評(píng)判的一致性高達(dá) 75.8%,這意味著 ToolEval 的結(jié)評(píng)測(cè)果與人類判斷高度相似。此外, ToolEval 的評(píng)測(cè)在多次重復(fù)時(shí)方差非常?。?.47%),小于人類的 3.97%,這表明,ToolEval 的評(píng)測(cè)一致性超越了人類,更加穩(wěn)定可靠。


ToolLLaMA?模型訓(xùn)練&實(shí)驗(yàn)結(jié)果

基于 ToolBench,作者微調(diào) LLaMA 7B 模型并得到了具備工具使用能力的 ToolLLaMA。由于訓(xùn)練數(shù)據(jù)中存在十分多樣的工具與指令,ToolLLaMA 學(xué)習(xí)到了非常強(qiáng)的泛化能力,能在測(cè)試中處理一些在訓(xùn)練期間未見過的新任務(wù)、新工具。為了驗(yàn)證 ToolLLaMA 的泛化能力,作者進(jìn)行了三個(gè)級(jí)別的測(cè)試:

1.??單一工具指令測(cè)試(I1):評(píng)測(cè)模型解決面向單工具的在訓(xùn)練中未學(xué)習(xí)過的新指令

2.??類別內(nèi)多工具指令測(cè)試(I2):評(píng)測(cè)模型如何處理已經(jīng)再訓(xùn)練中學(xué)習(xí)過的類別下的多種工具的新指令

3.??集合內(nèi)多工具指令測(cè)試(I3):考查模型如何處理來自不同類別的工具的新指令

作者選擇了兩個(gè)已經(jīng)針對(duì)通用指令微調(diào)的 LLaMA 變體 Vicuna 和 Alpaca 以及OpenAI的ChatGPT 和 Text-Davinci-003 作為 baseline。對(duì)所有這些模型應(yīng)用了更加先進(jìn)的 DFSDT 推理算法,此外對(duì) ChatGPT 應(yīng)用了 ReACT。在計(jì)算 win rate 時(shí),將每個(gè)模型與 ChatGPT-ReACT 進(jìn)行比較。下面兩幅圖總結(jié)了 ToolLLaMA 模型和其他模型比較結(jié)果

根據(jù)上圖顯示,ToolLLaMA 在 pass rate 和 win rate 上顯著優(yōu)于傳統(tǒng)的工具使用方法 ChatGPT-ReACT,展現(xiàn)出優(yōu)越的泛化能力,能夠很容易地泛化到?jīng)]有見過的新工具上,這對(duì)于用戶定義新 API 并讓 ToolLLaMA 高效兼容新 API 具有十分重要的意義。此外,作者發(fā)現(xiàn) ToolLLaMA 性能已經(jīng)十分接近 ChatGPT,并且遠(yuǎn)超 Davinci, Alpaca, Vicuna 等 baseline。


?? 將API檢索器與ToolLLaMA結(jié)合?

在實(shí)際情況下用戶可能無法從大量的 API 中手動(dòng)推薦和當(dāng)前指令相關(guān)的 API,因此需要一個(gè)具備 API 自動(dòng)推薦功能的模型。為解決這個(gè)問題,作者調(diào)用 ChatGPT 自動(dòng)標(biāo)注數(shù)據(jù)并依此訓(xùn)練了一個(gè) sentence-bert 模型用作 dense retrieval。

為了測(cè)試API檢索器的性能,作者比較了訓(xùn)練得到的 API 檢索器和 BM25、Openai Ada Embedding 方法,發(fā)現(xiàn)該檢索器效果遠(yuǎn)超 baseline,表現(xiàn)出極強(qiáng)的檢索性能。此外,作者也將該檢索器與 ToolLLaMA 結(jié)合,得到了更加符合真實(shí)場(chǎng)景的工具使用模型 pipeline。


作者訓(xùn)練的API檢索器和baseline方法的性能對(duì)比


工具學(xué)習(xí)擴(kuò)展大模型能力邊界

近年來,大模型在諸多領(lǐng)域展現(xiàn)出驚人的應(yīng)用價(jià)值,持續(xù)刷新各類下游任務(wù)的效果上限。盡管大模型在很多方面取得了顯著的成果,但在特定領(lǐng)域的任務(wù)上,仍然存在一定的局限性。這些任務(wù)往往需要專業(yè)化的工具或領(lǐng)域知識(shí)才能有效解決。因此,大模型需要具備調(diào)用各種專業(yè)化工具的能力,這樣才能為現(xiàn)實(shí)世界任務(wù)提供更為全面的支持。

最近,新的范式?大模型工具學(xué)習(xí)(Tool?Learning)應(yīng)運(yùn)而生。這一范式的核心在于將專業(yè)工具與基礎(chǔ)模型的優(yōu)勢(shì)相融合,以在問題解決方面達(dá)到更高的準(zhǔn)確性、效率和自主性,工具學(xué)習(xí)極大地釋放了大模型的潛力。


在應(yīng)用方面,ChatGPT Plugins 的出現(xiàn)補(bǔ)充了 ChatGPT 最后的短板,使其可以支持連網(wǎng)、解決數(shù)學(xué)計(jì)算,被稱為 OpenAI的“App Store” 時(shí)刻。然而直到現(xiàn)在,它僅支持部分OpenAI Plus用戶,大多數(shù)開發(fā)者仍然無法使用。

為此,面壁智能之前也推出了工具學(xué)習(xí)引擎?BMTools,一個(gè)基于語言模型的開源可擴(kuò)展工具學(xué)習(xí)平臺(tái),它將是面壁智能在大模型體系布局中的又一重要模塊。研發(fā)團(tuán)隊(duì)將各種各樣的工具(例如文生圖模型、搜索引擎、股票查詢等)調(diào)用流程都統(tǒng)一到一個(gè)框架上,使整個(gè)工具調(diào)用流程標(biāo)準(zhǔn)化、自動(dòng)化。

開發(fā)者可以通過 BMTools,使用給定的模型(ChatGPT、GPT-4)調(diào)用多種多樣的工具接口,實(shí)現(xiàn)特定功能。此外,BMTools 工具包也已集成最近爆火的 Auto-GPT 與 BabyAGI。未來,團(tuán)隊(duì)還將圍繞大模型工具學(xué)習(xí)有更多發(fā)布,敬請(qǐng)大家期待!


???BMTools?工具包????https://github.com/OpenBMB/BMTools?

???工具學(xué)習(xí)綜述鏈接????https://arxiv.org/abs/2304.08354?

???工具學(xué)習(xí)論文列表????https://github.com/thunlp/ToolLearnirgPapers?

???大模型使用搜索引擎實(shí)踐???https://github.com/thunlp/WebCPM


???加社群/ 提建議/ 有疑問?

請(qǐng)找 OpenBMB 萬能小助手:

?? 關(guān)注我們

微信搜索關(guān)注 “OpenBMB開源社區(qū)”

后臺(tái)回復(fù)“CPM-Live” 即可加入CPM-Live加油群

還可獲取更多大模型干貨知識(shí)和前沿資訊!?

??


面壁智能給大模型接入16000+真實(shí)API,效果直逼ChatGPT!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
长阳| 绵竹市| 喀什市| 蛟河市| 乳山市| 建德市| 磐石市| 富源县| 道孚县| 正阳县| 安溪县| 宁武县| 温泉县| 万山特区| 罗定市| 万载县| 长治县| 页游| 简阳市| 无为县| 且末县| 崇阳县| 兴城市| 镇巴县| 鹰潭市| 渭源县| 舞阳县| 馆陶县| 邵阳市| 西乌| 永春县| 靖边县| 漠河县| 那坡县| 磴口县| 荣成市| 吉安市| 新津县| 平罗县| 嘉定区| 太康县|