http:// https://github.com/microsoft/JARVIS.
1 Abstract? and Introduction
借助大語言模型(LLMS)在語言理解生成推理等方面表現(xiàn)出的出色能力,考慮將其作為控制器來管理現(xiàn)有的各種AI模型,把語言作為通用接口?;谶@一理念,提出了HuggingGPT框架,利用LLMS(ChatGPT)來連接機器學習社區(qū)(Hug face)中的各種AI模型,具體來說就是在接收用戶請求時使用ChatGPT來進行任務規(guī)劃,根據Hug face中提供的模型功能描述選擇模型,使用所選AI模型執(zhí)行每一個子任務,并根據執(zhí)行結果匯總響應。
現(xiàn)有LLM技術的局限:1)局限于文本的輸入輸出形式。2)現(xiàn)實場景中的復雜任務由多個子任務組合,需要多個模型的調度和配合。3)在零鏡頭或少鏡頭下結果表現(xiàn)出色但仍弱于專家模型(如微調模型)。
在本文中,我們提出了一個名為HuggingGPT的系統(tǒng)來連接LLMs(即ChatGPT)和ML社區(qū)(即hug Face),它可以處理來自不同模式的輸入,并解決眾多復雜的AI任務。更具體地說,對于hug Face中的每個AI模型,我們從庫中使用其對應的模型描述,并將其融合到提示符中,以建立與ChatGPT的連接。之后,在我們的系統(tǒng)中,llm(即ChatGPT)將充當大腦來確定用戶問題的答案。如圖1所示,HuggingGPT的整個過程可以分為四個階段:
1)Task Planning:利用ChatGPT分析用戶的請求并通過提示將其分解為可能解決的任務。
2)Model Selection:ChatGPT根據模型描述選擇托管在hug face上的專家模型。
3)Task Execution:調用并執(zhí)行每個選定的模型,并將結果返回給ChatGPT。
4)Response Generation:最后用ChatGPT集成所有預測的模型為用戶生成答案。
目前為止,我們的HuggingGPT 已經圍繞chatGPT集成了數百個模型,涵蓋了文本分類、對象檢測、語義分割、圖像生成、問答、文本轉語音、文本視頻等24個任務。
我們的貢獻如下:
1)提出了模型間合作協(xié)議。大模型作為規(guī)劃和決策的大腦,小模型作為每個特定任務的執(zhí)行者。
2)構建了HuggingGPT,通過圍繞ChatGPT集成了hug face當中的400多個用于特定任務的模型來處理通用的AI任務。
3)在跨語言、視覺、語音和跨模式的多個具有挑戰(zhàn)性的AI任務上進行的大量實驗證明了HuggingGPT在理解和解決來自多種模式和領域的復雜任務方面的能力。
2 Related Works
為了將大型語言模型(LLMs)的范圍擴展到文本生成之外,當代研究研究了兩種主要方法。
1)首先,一些工作設計了統(tǒng)一的多模態(tài)語言模型,如BLIP-2[https://arxiv.org/abs/2301.12597],它利用Q-former來協(xié)調語言和視覺語義,Kosmos-1[https://arxiv.org/abs/2302.14045]將視覺輸入合并到文本序列中,融合語言和視覺輸入。
2)其次,其他研究集中在外部工具或模型的集成上。先鋒Toolformer[https://arxiv.org/abs/2302.04761]在文本序列中引入了外部API標簽,方便llm訪問外部工具。
許多工作將LLMs擴展到視覺形態(tài)。Visual ChatGPT[20]融合了可視化基礎模型,如BLIP[21]和ControlNet[22],與llm。Visual Programming[23]和ViperGPT[20]通過使用編程語言將llm應用于可視對象,將可視查詢解析為用Python代碼表示的可解釋步驟。
3 HuggingGPT
3.1 Task Planing
LLMs從用戶獲取一個請求并將其分解為一系列結構化任務并確定這些任務的依賴關系和執(zhí)行順序,在這里,HuggingGPT在其提示設計中采用了基于規(guī)范的指令和基于演示的解析。
1)Specification-based Instruction:提供了統(tǒng)一的模板,并允許大型語言模型通過插槽歸檔進行任務解析?,為此設計了任務類型、任務ID、任務依賴項和任務參數四個槽位。
Task ID:為任務規(guī)劃提供了一個唯一的標識符用于引用依賴任務及其生成的資源。
Task types:包括語言視覺視頻音頻等不同的任務。
Task dependencies:執(zhí)行所需的先決條件任務,只有當所有先決條件相關任務都完成時任務才會啟動。
Task arguments:包含任務執(zhí)行所需參數的列表。包含三個子字段根據任務類型填充文本、圖像和音頻信息;它們是從用戶請求或依賴任務生成的資源中解析出來的。
2)Demonstration-based Parsing:通過在提示中注入幾個演示,為更有效的任務解析和計劃引入了上下文學習。每個演示都是任務計劃的一組輸入和輸出——將解析出用戶的請求和預期的任務序列。這些演示是由從用戶請求解析的任務之間的依賴關系組成。
3.2 Model Selection
在解析任務列表后,HuggingGPT 接下來要為任務列表中的每個任務選擇適當的模型。為此,1)首先從hugging face hub中獲取專家模型的描述;2)通過上下文任務模型分配機制動態(tài)地為任務選擇模型。
Model Description:在hug Face Hub上托管的專家模型伴隨著全面的模型描述,通常由開發(fā)人員提供。這些描述包含模型的功能、體系結構、支持的語言和域、許可等信息。這些信息有效地支持HuggingGPT根據用戶請求和模型描述的相關性為任務選擇正確的模型。
In-Context Task-Model Assignment :通過在提示中包含用戶查詢和已解析地任務,HuggingGPT 可以為手頭的任務選擇最合適的模型,然而由于最大上下文長度的限制,在提示符中不可能包含所有相關的模型信息,因此我們根據它們的任務模型進行篩選,只保留那些與當前任務類型匹配的模型。剩下的模型根據下載量進行排名,并根據這個排名選擇前k個的模型作為候選。
3.3?Task Execution
一旦將任務分配給特定的模型,下一步就是執(zhí)行該任務,即執(zhí)行模型推斷。為了加速和計算穩(wěn)定性,HuggingGPT 在混合推斷端點上運行這些模型。通過將任務參數作為輸入,模型計算推理結果,然后將它們發(fā)送回LLM。為了進一步提高推理效率,可以對沒有資源依賴的模型進行并行化。
1)Hybrid Endpoint:為了保持系統(tǒng)的穩(wěn)定和高效,HuggingGPT在本地提取并運行一些常見或耗時的模型,并且局部端點的優(yōu)先級高于hug face的推理端點。只有匹配的模型不在本地部署時,huggingGPT才會在hug face端點上運行模型。
2)Resource Dependency:在任務執(zhí)行階段有效地管理任務之間的資源依賴關系是難題。在這里,我們使用一個唯一的符號“<resource>”來管理資源依賴關系。具體來說,HuggingGPT將前置任務生成的資源標識為-task_id,其中task_id是前置任務的任務id。在任務規(guī)劃階段,如果存在依賴于task_id任務生成的資源的任務,HuggingGPT將此符號設置為任務參數中對應的資源子字段。
3.4 Response Generation
所有任務執(zhí)行完成后,HuggingGPT進入響應生成階段。在這一階段,HuggingGPT將前三個階段(任務計劃、模型選擇和任務執(zhí)行)的所有信息集成到一個簡明的摘要中,包括計劃的任務列表、為任務選擇的模型以及模型的推斷結果。文章來源:http://www.zghlxwxcb.cn/news/detail-433883.html
其中最重要的是推理結果,是HuggingGPT做出最終決策的依據。這些推理結果以結構化的形式出現(xiàn),如對象檢測模型中帶有檢測概率的邊界框,問答模型中的答案分布等。HuggingGPT允許LLM接收這些結構化的推理結果作為輸入,并以友好的人類語言形式生成響應。文章來源地址http://www.zghlxwxcb.cn/news/detail-433883.html
到了這里,關于《2023 HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face》閱讀筆記的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!