xLAM: 一個賦能AI agent系統的動作大模型家族
一、結論寫在前面
論文標題:xLAM: A Family of Large Action Models to Empower AI Agent Systems
論文鏈接:??https://arxiv.org/pdf/2409.03215??
Models: ??https://huggingface.co/collections/Salesforce/xlam-models-65f00e2a0a63bbcd1c2dade4??
GitHub: ??https://github.com/SalesforceAIResearch/xLAM??
介紹了xLAM系列,這是一組用于自主AIagent的大型動作模型。論文的模型參數范圍從1B到8x22B,通過一個可擴展且靈活的數據管道進行訓練,該管道統一、增強和綜合了多種數據集。
這一多樣化的集合適用于各種應用,其中較小的模型(1B和7B)針對設備部署進行了優化,而較大的模型(8x7B和8x22B)則旨在應對更具挑戰性的任務。除了模型的發布,論文還提供了從agent模型訓練經驗中獲得的幾個見解和教訓:
?數據處理:論文強調數據統一和增強在提高數據集多樣性和緩解過擬合方面的重要性。論文開發的數據預處理和增強管道顯著提高了agent模型在不同環境中的泛化能力。
?數據合成: 論文展示了可擴展、高質量數據合成對agent模型性能的影響。論文的合成數據集使xLAM模型在Berkeley Function Calling Leaderboard上獲得了前20名中的4個位置,包括獲得第一名(圖2),其中較小的模型實現了與更大模型相當的表現,顯示出在這一方向上的巨大潛力。
論文在公共agent基準上評估了xLAM系列,展示了在各種agent任務中的卓越性能。通過開源這些模型,論文旨在推動開源agent模型的發展,并提供關于數據處理和合成技術的寶貴見解,解決開發與專有模型競爭的替代方案的關鍵挑戰。
二、論文的簡單介紹
2.1 論文的背景
自主agent(autonomous agents)領域近年來取得了顯著進展,大型語言模型(LLMs)在提升agent在各種任務中的能力方面發揮了關鍵作用。研究人員在開發復雜框架和專用環境方面取得了重大進展,以增強agent能力,如工具使用和網絡瀏覽。同時,像AgentBench、ToolBench和AgentBoard這樣的綜合基準已經建立,以嚴格評估agent在推理、規劃和多輪交互中的性能。
盡管行業領導者開發的專有大型語言模型(LLMs)在各種agent任務中展示了有競爭的性能,但開源社區在這一領域面臨專門模型的選擇有限。這種稀缺源于將開源LLMs適應agent任務的幾個挑戰,主要原因是缺乏全面、高質量的數據集以及現有數據格式的異質性。這些因素使得多樣化數據集的統一變得復雜,并阻礙了不同agent任務之間可轉移知識的習得。
最近,agent研究社區在開源agent數據處理和模型訓練方面加大了努力。然而,這些工作在管理復雜環境和泛化到新場景方面仍面臨挑戰,主要原因是收集的agent數據存在局限性。一個主要障礙是現有數據集中內容和格式的同質性,導致模型在各種任務中缺乏多樣性,并且在實際應用中難以適應新的或略有不同的數據結構。盡管之前的努力嘗試設計統一數據的管道,但它們通常只涵蓋少數場景,或者在其統一格式中缺乏靈活性。例如,Lumos主要解決問答、網頁agent以及涉及規劃和基礎的數學任務;而AgentOhana雖然涵蓋了更多樣化的環境,但缺乏可擴展的統一格式以適應新環境。
此外,開源數據集通常存在質量問題,如agent輸出的錯誤、幻覺動作以及軌跡中的重復交互輪次[20, 21]。對agent數據缺乏詳細的分析和理解進一步加劇了這些挑戰,阻礙了開發穩健且多功能的開源agent模型。解決這些挑戰對于推動開源agent模型領域的發展,并縮小與專有LLMs在agent任務中的性能差距至關重要。
圖1:xLAM數據處理、訓練和評估的概述。論文根據模型評估結果的診斷反饋來迭代改進數據質量。
圖2:xLAM模型在Berkeley Function Calling Leaderboard v2(截止日期09/03/2024)上的表現概述。論文的8x22b模型在排行榜上以較大優勢位居榜首。
2.2 數據處理流水線
論文將討論用于訓練xLAM的數據流水線,包括數據統一、增強、質量驗證、通用指令數據合成和偏好數據生成。
2.2.1 數據統一
現有的agent數據集來自不同的環境,并以各種格式設計,引入了噪聲并使數據增強和驗證變得復雜。NexusRaven 、Gorilla-Openfunctions和 AgentOhana等模型在函數調用方面表現出色,表明定義良好的通用格式可以顯著提升模型性能。通過標準化現有數據的格式,論文可以減少噪聲,并促進更簡單的數據增強和質量驗證,從而形成一個更高效和穩健的模型訓練和評估框架。此外,標準化的格式確保了一致性,簡化了模型訓練,并增強了模型在各種基準上的泛化能力。
函數調用格式構成了模型理解和執行任務的基礎,促使論文以函數調用的風格設計統一的數據格式。如圖 4 所示,統一格式由幾個模塊組成:任務指令、可用工具、格式指令、少樣本示例、查詢和步驟。具體來說,可用工具定義了agent的動作空間,格式指令指定了agent在生成響應時應遵循的輸出格式。在每個步驟中,agent的輸出、環境的反饋/執行結果以及用戶的后續輸入被組織成一個字典。用戶與agent之間純粹的對話交互很常見,這些交互不會觸發任何API或接收相應的觀察結果。在這些情況下,相關條目的值將簡單地保持為空。
這種統一格式兼容各種環境和任務,使得論文的數據處理流程能夠適應不同的數據集并擴展到大量數據。此外,模塊化設計允許進行細粒度的數據增強和質量驗證,這對于提高agent數據質量至關重要。例如,通過統一所有可用的工具和工具調用,論文可以輕松檢查幻覺和函數調用錯誤,并應用各種增強技術。
2.2.2 數據增強
論文的數據增強策略側重于提高數據的多樣性。它涉及對現有數據集應用各種變換,從而生成新的合成數據樣本。數據統一步驟顯著簡化了各種增強技術的應用。標準化的數據格式確保了一致性和易于實現,使得增強過程更加高效。具體而言,論文采用的增強技術可以分為提示格式增強和指令跟隨增強。
提示格式增強:提示格式增強專注于基于結構化、統一的數據格式創建各種提示格式。格式增強可以進一步分為兩類:1)順序打亂。在統一格式中,可用工具以列表形式提供,每個工具包含名稱、描述和參數。為了避免模型對工具的特定順序產生過擬合,論文隨機打亂工具列表。此外,論文還打亂名稱、描述、參數的順序,以及參數內部的順序,以不同方式呈現信息。論文在每一步的工具調用中也做同樣的事情。此外,論文還打亂輸入中不同部分的順序,包括任務指令、工具、格式指令、少樣本示例等。2)連接符。每個訓練數據點是一對輸入和輸出序列。為了將結構化的統一格式轉換為訓練提示,論文使用特殊符號將不同部分連接成一個序列。論文創建了多種不同的特殊符號樣式,包括"ISTART/END OF QUERY]"、""和純文本。
指令遵循增強:指令遵循增強專注于增加指令的多樣性,以提高模型的指令遵循能力。它涉及重新表述現有指令和添加新指令,而不引入不準確和不一致性。因此,新指令的驗證是這種增強的關鍵步驟。論文采用兩種方法進行指令遵循增強:1)任務指令重新表述。論文使用強大的LLM重新表述任務指令,以適應用戶不同的輸入風格。為了確保重新表述的指令仍然與原始版本一致,論文通過使用重新表述的指令提示LLM,并檢查LLM是否仍能遵循它們并生成正確的函數調用來驗證它們。2)格式指令遵循。在論文的統一格式中,輸出格式是一個包含思考和工具調用的JSON字符串。為了避免模型對JSON格式產生過擬合,并使模型能夠根據不同的格式指令遵循各種輸出格式,論文準備了15種不同的輸出格式及其相應的格式指令和格式轉換器。輸出格式包括JSON、XML、YAML、純文本等。
2.2.3 數據質量驗證
為了進一步了解數據質量并徹底調查評估中的錯誤來源,論文對統一數據集進行了詳細分析。論文使用基于規則和LLM作為評判的方法,識別了數據中的一系列錯誤。
未定義函數調用:在函數調用中,提供了一組可用函數,模型應使用其中之一生成函數調用。然而,論文發現許多情況下,預測的函數調用不在給定的列表中。論文通過比較函數名稱和參數名稱列表來匹配預測的函數與給定的函數。當函數調用名稱與任何給定函數不匹配時,論文稱之為未定義函數調用。當函數名稱匹配但參數列表包含未定義參數時,論文稱之為未定義參數傳遞。論文還考慮了可選參數。
參數類型錯誤:除了上述錯誤類型外,論文還觀察到有時模型生成了正確的參數值,但類型錯誤。例如,當參數期望[val1, val2, val3]時,生成的參數是“[vali, val2, val3]·”,這是列表的字符串版本。在執行函數調用時,由于數據類型不正確,將發生錯誤。論文通過比較可用工具中的參數類型和實際參數類型,識別出包含參數類型錯誤的軌跡。論文還發現,大多數參數類型錯誤可以通過將參數轉換為正確的參數類型來修復。
參數幻覺:在檢查來自公共來源的統一數據集時,論文發現工具調用經常包含用戶查詢或先前步驟中不存在的參數值。這一問題出現的原因在于,這些數據大部分是由容易產生幻覺的LLMs生成的,這是LLM生成內容中的一個常見問題。論文識別出兩種類型的幻覺:1) 生成的工具名稱或參數名稱未出現在提供的工具和參數列表中;2) 參數值與用戶查詢或先前步驟的觀察結果不一致。第一種幻覺通過搜索生成的工具調用和參數名稱并將其與提供的工具列表匹配來解決,因為它們都是以JSON結構化的,這使得處理過程高效。然而,檢測第二種幻覺,即參數值不一致的情況,更具挑戰性,因為簡單的字符串匹配對于復雜的查詢和任務是無效的。為了解決這個問題,論文使用LLMs作為判斷者來進行逐步的參數幻覺檢測,檢測參數與預期查詢或先前觀察之間是否存在不匹配。
低質量推理和規劃:論文觀察到許多數據軌跡中的推理和規劃步驟質量較低,這是許多LLM輸出中的一個常見問題。為了解決這個問題,論文首先使用基于啟發式的規則方法過濾掉低質量數據,然后提示模型如Mixtral-8x22b-Instruct-v0.1 [35] 和 DeepSeek-V2 [36] 對選定數據的整體軌跡和單個思維步驟進行評估。其中一部分評級結果被抽樣并由人工驗證。論文還嘗試使用專門微調的模型來迭代這一過程。
2.2.4 數據合成
論文觀察到大多數這些公開可用的數據集存在幾個局限性。首先,這些數據集通常是靜態的,由弱模型合成,范圍有限,更重要的是,未經執行驗證。其次,這些數據集主要集中在單一類型的函數調用類別,即基于提供的工具輸出單個函數調用。然而,現實世界場景可能包含許多其他類型的用例,例如并行函數調用場景[32],其中用戶查詢包含多個請求,模型應在單個響應中并行響應并發函數調用。
為了解決這兩個問題,論文采用了一種系統的數據合成框架,稱為APIGen ,該框架可以根據一組可執行的API生成可驗證的數據集。其核心思想是一個多階段的驗證過程,以確保生成數據的高準確性和質量。該過程包括格式驗證(如第3.3節所述)、執行驗證和語義驗證,共同幫助識別和過濾掉低質量的數據點,例如存在幻覺問題或參數值不準確的數據。
論文利用ToolBench 中的21個類別共3,673個API,生成了總計60,000條高質量數據。這些樣本由多個強大的開源語言模型生成:DeepSeek-V2-Chat和 Mixtral-8x22B-Inst。該合成框架極大地提高了數據集的魯棒性和適用性,因為大多數低質量數據可以通過多階段驗證過程被識別出來。
2.2.5 數據混合
對于有監督微調(SFT),論文的數據集結合了來自三個主要來源的訓練樣本:清洗和增強的agent數據集、合成函數調用數據集以及通用指令微調數據集。這些來源用于訓練通用xLAM模型。
具體而言,為了增強xLAM的通用指令能力,論文整合了來自DialogStudio和Data Provenance的多樣化指令調優數據集。論文采用基于規則的技術過濾掉低質量數據,如重復的詞語和對話輪次,這些常見于較弱模型生成的內容。論文還移除了包含不當內容、響應和非商業許可的數據。此外,論文對相似的用戶查詢進行去重,并按領域或類別組織數據。隨后,論文提示Mixtral-8x22b-Instruct-v0.1和DeepSeek-V2評估所選數據中的整個對話和單個系統響應。這部分指令數據占論文訓練集的20%到30%。為了進一步增強模型魯棒性,論文保留了通用指令調優數據的原始格式。
為了增強xLAM-7b-fc-r和xLAM-1b-fc-r的功能調用能力,論文采用針對性的訓練方法,其中50%的訓練數據來自論文高質量的合成功能調用數據集。其余50%的訓練數據從論文訓練集中的其他任務中采樣。
對于直接偏好優化(Direct Preference Optimization,DPO),論文提示較弱模型為每個來源的選定數據生成和評分響應,然后抽取子集進行人工驗證。在對模型和提示進行調整后,論文將選定的響應分類為被拒絕的樣本。
2.3 模型訓練
2.3.1 建模
論文采用監督微調(SFT)方法,進一步將模型檢查點與DPO方法對齊,并利用論文靈活數據管道的魯棒性。論文的訓練代碼基于HuggingFace Transformers和Accelerate庫,以及PyTorch FSDP。在訓練過程中,模型經歷多個epoch,每次數據集隨機打亂。在使用多設備數據并行時,論文根據進程ID多樣化隨機種子,通過分區、打亂和交錯確保數據分布均衡,從而增強訓練過程的魯棒性和可重復性。
通用xLAM模型的微調在Nvidia H100 GPU上進行。對于SFT,論文使用全微調框架,采用完全分片數據并行算法。在xLAM-8x22b-r的情況下,論文整合了LoRA,以更好地保留模型的原始能力并防止災難性遺忘。LoRA也用于所有xLAM模型的DPO對齊。此外,論文使用帶有100個預熱步數的余弦學習率調度器來優化性能。
xLAM-FC模型針對不同類別的函數調用agent,包括簡單、多重、并行和并行多重。這些類別旨在增強模型在不同場景中的性能。例如,一個簡單的查詢,如獲取某個地點的天氣(例如,“今天帕洛阿爾托的天氣如何?”)可以通過調用get weather("Palo Alto", "today")來處理。多重查詢涉及從多個API中選擇適當的函數,而并行查詢則需要同時執行多個函數調用。此外,模型在相關性檢測方面進行了訓練,以確保函數調用、執行結果與查詢目標之間的一致性。
表1:xLAM模型系列概覽。
2.3.2 xLAM模型系列
論文介紹了一系列針對不同用例定制的agent模型。論文的旗艦模型系列xLAM基于Mixtral Instruct[35]模型構建,旨在在多樣化的agent任務中實現平衡性能,從復雜的多輪交互到函數調用應用。為確保其多功能性,xLAM在論文訓練數據集中均勻采樣的數據上進行了訓練。
除了通用的xLAM模型外,論文還基于DeepSeek-Coder-7B-instruct-v1.5和DeepSeek-Coder-1.3B-instruct分別開發了兩個專門用于函數調用用例的模型,xLAM-7b-fc-r和xLAM-1b-fc-r [49]。較小的模型尺寸提供了更高的可訪問性,使用戶能夠輕松地在單個GPU上托管它們,以解決各種函數調用任務,從簡單的用戶查詢到并行并發請求。
通過提供一系列不同尺寸和專業化的模型,xLAM系列滿足了廣泛的用戶需求和計算資源,使強大的agent能力更易于訪問和適應實際應用。
2.4 實驗
2.4.1 基準測試
在考慮了環境的穩定性和研究預算限制后,論文在四個嚴格的基準測試中評估了模型的性能:Webshop、ToolQuery、ToolBench和Berkeley函數調用基準測試。每個基準測試旨在評估模型在各種設置和約束下的不同能力。
Webshop是一個交互式網絡環境,旨在模擬在線購物體驗,測試agent在電子商務任務中的導航和協助能力。Webshop包含大約250個測試用例。
ToolQuery評估agent在跨領域使用工具檢索和處理信息的能力。ToolQuery在三個不同的設置中提供了60個測試用例:天氣、電影和學術。
論文使用AgentBoard [10]的測試配置來評估Webshop和ToolQuery。這些配置通過成功率和進展率來評估整體性能,其中成功率是更為關鍵的指標。
論文還評估了ToolQuery-Unified,它本質上就是ToolQuery,但要求agent按照83.2中描述的增強提示格式攝取任務指令和工具,并按照統一格式解決任務。在這種設置下測試agent的目的是評估其在結構化格式上的推理和工具使用能力。
ToolBench是為通過RapidAPI實時評估多輪推理和交互能力而開發的,包含約1,000個測試用例。它使用通過率作為指標,其中軌跡和最終響應被發送給GPT-4-0125-preview,以確定agent的最終響應是否成功解決了給定的用戶查詢。評估涵蓋了領域內和領域外的設置,包括使用熟悉的工具處理未見過的指令、在先前已知類別中使用未見過的工具,以及完全新的未見過工具類別。
Berkeley Function-Calling Leaderboard (BFCL) Benchmark [32] 提供了一個全面的評估框架,用于評估agent在各種編程語言和應用領域中推理和執行函數調用的能力。該基準包含超過2,200個測試用例,挑戰模型處理復雜場景,如在Java、JavaScript和Python等語言中的并行和多重函數調用。評估指標包括非可執行測試查詢的抽象語法樹(AST)準確性、通過運行API獲取結果的可執行準確性,以及一個相關性檢測分數,該分數衡量agent區分非相關查詢和提供工具的能力。
重要的是,論文的評估使用了截至截止日期2024年9月3日的最新BFCL v2版本。v2版本引入了實時函數調用和用戶貢獻的真實場景,通過利用用戶提供的數據解決了數據污染、偏見和公平性等問題。這個更新后的數據集更好地反映了現實世界的分布,表現為在多個函數中選擇的需求增加,而對并行函數調用的需求減少。例如,論文的分析表明,在v2基準測試中,可用函數的平均數量增加了一倍,而函數調用的平均數量減少了一半,相比于非實時的v1數據。需要注意的是,論文所有的模型都是在BFCL v2實時數據發布之前訓練的。
2.4.2實驗結果
2.4.2.1 Webshop和ToolQuery
表 2 :Webshop和ToolQuery的測試結果。粗體和下劃線結果分別表示成功率的最佳結果和第二佳結果。
網頁商店(Webshop)。表2展示了在Webshop和ToolQuery環境中,最先進的語言和agent模型之間的詳細比較,說明了xLAM模型在性能上的穩健和強大。在Webshop環境中,xLAM-7b-r不僅以0.414的成功率達到了最高的成功率,超過了其他通用LLM如GPT-4-0125-preview、GPT-4o-2024-0523和Claude2,還優于專門的agent模型如AgentOhana-8x7b和Lemur-70b。這展示了xLAM模型在網頁交互環境中有效導航和執行任務的卓越能力。
工具查詢(ToolQuery)。在更為復雜且未知的ToolQuery環境中,xLAM-8x7b-r和xLAM-8x22b-r也表現出高水平的性能,如表2所示,以0.683的成功率排名第二。這相較于Mixtral-8x7b-inst和Mixtral-8x22b-inst的基礎性能(分別為0.167和0.400)有顯著提升。值得注意的是,所有三個xLAM模型都超過了Mixtral-8x22B-Instruct模型。盡管Mixtral-8x22B-Instruct擁有大量的參數和針對高級功能如函數調用、推理和復雜工具使用的專門調優,但其性能仍不及xLAM模型。此外,與其他通用LLM一樣,它缺乏關于數據收集、統一過程和其他關鍵細節的透明度,這與xLAM的開源目的形成對比。這些結果顯示了論文提出的數據統一和合成數據管道的有效性。
表3:ToolQuery-Unified的測試結果。加粗和下劃線的結果分別表示成功率的最佳結果和第二最佳結果。括號中的值表示在ToolQuery上的相應性能。
工具查詢-統一格式。當工具查詢的系統提示以圖 5 所示的統一格式呈現給模型,并要求模型遵循提供的格式指令生成結構化輸出時,論文觀察到 xLAM 模型的表現比 GPT 模型更為一致,如表 3 所示。盡管 GPT-4o 的表現相比工具查詢下降了 42%,但論文的最佳 xLAM 8x22b 模型仍保持了相當的性能。這可以歸因于 xLAM 在遵循統一格式的軌跡上進行訓練,使其在推理過程中表現一致。同時進行的其他研究 [50] 也觀察到,當大型語言模型(LLMs)被限制以特定格式生成輸出時,在推理任務上的表現有所下降。深入分析表明,這種下降不僅僅是由于輸出格式錯誤,而是模型自身推理能力的下降。
2.4.2.2 工具庫
表4展示了工具庫的結果,其中 xLAM 模型表現出色。它們在所有測試設置中均超過了 TooLlama-V2 和 GPT-3.5-Turbo-0125。此外,xLAM 模型在涉及未見指令和未見工具的場景中優于 AgentOhana-8x7b,同時在未見工具設置中達到了與 GPT-4-0125-preview 相當的性能。這些結果顯示了 xLAM 模型在多輪推理和復雜工具使用方面的強大能力,能夠有效處理領域內和領域外的任務。
2.4.2.3 伯克利函數調用基準(Berkeley Function-Calling Benchmark)
表 5 展示了在 BFCL v2 基準(截止日期 2024年9月3日)上的實驗結果,顯示了論文的 xLAM 模型系列在函數調用任務中的卓越表現。值得注意的是,xLAM 模型占據了前二十名中的四個位置,證明了論文的數據流水線和訓練方法在各種模型規模上的有效性。
論文的旗艦模型 xLAM-8x22b-r 在基準測試中取得了最高的總體準確率 87.31%,超越了所有其他模型。這一結果驗證了論文的數據處理和模型訓練流程在提升模型功能調用能力方面的有效性。緊隨其后,xLAM-8x7b-r 排名第 6,表現優于包括 GPT-4o-mini 和 Claude-3 在內的多數知名模型。
表 4:在 ToolBench 上三種不同場景的通過率。加粗和下劃線的結果分別表示每種設置下的最佳結果和第二佳結果。由于 ToolBench 服務器在 2024 年 7 月 28 日至論文的評估截止日期 2024 年 9 月 3 日期間宕機,xLAM-8x22b-r 的結果無法獲取。
論文的模型性能表現出與模型規模清晰的擴展關系,這一趨勢在xLAM-7b-r中得到了體現,該模型以80.33%的準確率排名第14位。該模型優于多個更大且資源密集型的替代方案,包括多個GPT-4和GPT-4o版本,突顯了小型模型在agent領域的潛力。
也許最值得注意的是,論文最小的模型xLAM-1b-fc-r以75.439%的準確率排名第32位,超越了像Claude-3-Opus(FC)和GPT-3.5-Turbo這樣的更大模型。這一表現突顯了論文的數據合成框架在生成高質量、多樣化數據集方面的能力,這些數據集即使對于較小的語言模型也能增強函數調用的效果。
同樣值得注意的是,BFCL v2基準測試[32]包含了一個在論文模型訓練日期之后發布的實時數據集。這些新鮮數據來自論文模型完全未見過的真實用戶查詢。盡管如此,論文的模型在處理這些真實世界用例時表現出強大的泛化能力。從8x22億到10億參數的一系列模型中,持續強勁的表現展示了論文方法的可擴展性和多功能性。這種可擴展性尤為顯著,因為它使得在資源受限環境中適合使用的小型模型能夠取得強大結果,同時也適用于更苛刻應用的大型模型。此外,論文的小型模型能夠與更大的替代方案競爭,這表明在各種現實場景中高效部署具有顯著潛力。
2.4.3 消融研究
論文對7B模型進行了消融研究,以衡量數據管道中各個步驟的影響。為此分析準備了三個數據集:原始數據、增強數據和增強+清洗數據。原始數據代表數據統一前的數據集,而其他兩個數據集則是統一后的數據。圖表展示了在這三個數據集上訓練的模型的評估結果。用于此評估的指標來自ToolBench的G1指令和Webshop及ToolQuery的成功率。結果表明,增強數據在ToolBench上提升了2.3%,在Webshop上提升了5.8%,在ToolQuery上提升了18.3%,顯示出一致的改進。
此外,數據清洗的加入使得ToolQuery的性能大幅提升,進一步提高了23.4%。這些結果突顯了數據增強和清洗過程在數據管道中的有效性。
本文轉載自 ??AI帝國??,作者: 無影寺
