如何讓小規模語言模型像 GPT-4 一樣使用任意工具是一個非常有價值的研究課題。中國科學院軟件研究所中文信息處理實驗室提出了一種語言模型的工具學習新框架,該框架利用基于大模型的多智能體模擬交互策略,可以自動生成多樣化的工具使用數據集,并使用生成的數據集對小模型進行微調。論文的實驗驗證了僅需要使用三千多個多樣化的工具調用實例,就能夠使小型模型獲得與極大規模模型相媲美的通用工具使用能力。
具體來說,本文的核心工作包括:
1. 提出一種基于大模型的多智能體模擬交互策略,用于生成工具使用數據集。這種方法能在最小化人工干預的前提下,生成大量且多樣化的工具使用數據集;
2. 開源了一個涵蓋超過400個工具,三千多條實例的模擬工具使用數據集,為探索通用工具使用能力奠定了基礎;
3. 通過實驗,驗證了在多樣化工具使用數據集上進行微調,能夠使小型模型獲得與極大規模模型相媲美的通用工具使用能力。
論文:ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases
數據:https://github.com/tangqiaoyu/ToolAlpaca
背景工具的使用在人類進化史上占據了重要的地位,對于語言模型來說,這一點同樣適用。當語言模型能夠熟練運用各種工具,它們就能突破自身的局限,獲取最新的信息,幫助用戶利用各種服務,并提升回答的精確性。 如今,OpenAI 的 GPT-4 已經可以通過插件的形式接入和使用各種第三方工具,同時這類超大型的語言模型支持通過僅給定配置文件的情況下,以即插即用的方式使用之前模型訓練過程中未見過的工具,這一泛化性的工具使用能力大大豐富了模型調動資源解決復雜問題的手段。然而,對于較小的語言模型,例如 Moss、ToolLLaMA 等,它們使用工具的能力仍然來源于在特定工具的數據集上進行監督學習。這使得這些模型的工具使用能力受限于在訓練過程中接觸過的工具,尚未真正獲得通用的工具使用能力。上述的對比引出了研究人員所關注的一個核心研究問題,即是否有可能讓較小規模的語言模型也具備有泛化地使用各種不同的、未見過的工具的能力,進而讓它們能夠更好地與更廣泛的工具進行交互,從而提升模型利用現實世界的資源解決問題的手段。
ToolAlpaca:通用工具使用能力學習新框架
受 Alpaca 通過微調讓小模型學會通用指令遵循啟發,中文信息處理實驗室的研究人員探索了通過在通用工具使用數據集上微調較小規模的語言模型,讓它們獲得通用工具使用能力。實現上述能力的一個核心難點在于需要構建一個多樣化的工具使用數據集。然而,由于工具使用涉及復雜的多方交互,現今仍然缺乏公開可用的多樣化工具使用數據集。為了解決這個挑戰,研究人員提出通過多智能體模擬交互的方式生成工具使用數據集。這種方法充分利用大模型強大的文本生成能力,在幾乎不需要任何人工干預的情況下構建一個多樣化且真實的數據集。我們從構建多樣化工具集開始,之后利用多智能體模擬生成工具使用數據集,最后基于此訓練出擁有通用工具使用能力的 ToolAlpaca 模型。
工具集構建:我們首先從開源倉庫 public-apis 中獲取工具的名稱和簡短描述作為初始信息,之后利用大語言模型通過 prompt 的方式將其擴展成自然語言形式的文檔,描述工具提供的每一個函數及其對應的輸入。為了讓信息更為精細和結構化,我們進一步將這些自然語言文檔擴展為遵循 OpenAPI 規范的文檔,詳盡描繪了每個函數的細節。結構化文檔的使用不僅使我們的工具集更為細致和完備,同時也方便了我們的工具集與其他工具(如 ChatGPT 現有的 Plugin 等)進行兼容。下圖為一個名為 Public Holidays 工具的示例。
工具使用實例生成:盡管我們已經構建了大規模且多樣化的工具集,但構建工具使用數據集仍然是一項富有挑戰性的任務。首先,由于工具集是由大模型生成的,要根據工具集文檔構造如此大量的真實工具,需要大量的編程和數據收集工作,幾乎不可能實現;其次,工具集本身包含了從通用到專用的各種領域的工具,使得構造與工具相關的初始指令是困難的。為此,我們提出了一種多智能體模擬交互的策略來生成工具使用數據。我們利用大模型分別模擬用戶、AI 助手、工具執行器這三個智能體,通過他們之間的交互來生成豐富且實用的工具使用數據。
如上圖所示,用戶發起最初的指令,并通過簡單的交互提供更多必要的信息。工具執行器則利用結構化文檔作為提示,借助大模型來模擬工具的執行過程,從而產生相應的反饋。而AI助手則充當兩者之間的橋梁,它幫助用戶調用各種工具以解決問題,并最終對整個交互過程進行總結,返回給用戶最終的響應結果。通過這三個智能體的交互,我們成功構建了一套能貼近真實場景需求的工具使用數據集。
ToolAlpaca 模型訓練與測試:我們使用生成的數據集對 Vicuna 模型進行微調,以此得到最終的 ToolAlpaca 模型。在測試階段,ToolAlpaca 將擔任 AI 助手的角色,同時用戶和工具執行器的角色仍由大模型扮演。
實驗
最終,我們利用 ChatGPT 和 GPT-3.5 構造了一個包含超過400個工具、3900多條工具使用實例的模擬數據集,數據集基本統計信息如下圖所示。
之后,我們在Vicuna 模型上進行微調,得到 ToolAlpaca 模型。為了評估模型的泛化性能,我們在10種未包含在訓練集中的工具上構造了含有100條數據的測試集,并通過人工評價對模型的工具調用過程和整體性能進行了評估。評測結果如下圖所示。
實驗結果表明,無論是7B還是13B的模型,經過在 ToolAlpaca 數據集上的訓練后,其性能都有了顯著的提升。值得注意的是,ToolAlpaca 在測試集上的整體性能已經接近于 GPT-3.5 的表現。這些實驗結果驗證了我們構建數據集的有效性,同時也回答了我們最開始提出的問題:通過在多樣化的工具使用數據集上微調,可以讓小模型獲得通用的工具使用能力。
-
框架
+關注
關注
0文章
403瀏覽量
17475 -
語言模型
+關注
關注
0文章
520瀏覽量
10268 -
數據集
+關注
關注
4文章
1208瀏覽量
24689
原文標題:3000多個實例教會小模型通用工具使用能力!中文信息處理實驗室提出工具學習新框架 ToolAlpaca
文章出處:【微信號:gh_e5b9d8c5c1d4,微信公眾號:中科院軟件所中文信息處理實驗室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論