2023+HuggingGPT: Solving AI Tasks with ChatGPT and itsFriends in Hugging Face

摘要:

語言是llm(例如ChatGPT)連接眾多AI模型(例如hugs Face)的接口,用于解決復雜的AI任務。在這個概念中,llms作為一個控制器,管理和組織專家模型的合作。LLM首先根據用戶請求規劃任務列表,然后為每個任務分配專家模型。專家執行任務后,LLM收集結果并響應用戶。

問題:

1.盡管LLMs在NLP任務中取得了重大成就,但由于文本輸入和輸出形式的限制,目前的LLMs缺乏處理復雜信息(如視覺和語音)的能力。

2.在現實場景中,一些復雜的任務通常由多個子任務組成,因此需要多個模型的調度和協作,這也超出了語言模型的能力。

3.對于一些具有挑戰性的任務,LLMs在零射擊或少射擊設置中表現出出色的結果,但他們仍然比一些專家(例如,微調模型)弱。

貢獻點:

1. 為了補充大型語言模型和專家模型的優勢,提出了HuggingGPT。HuggingGPT將llm作為規劃和決策的大腦,針對每個特定任務自動調用和執行專家模型,為通用AI解決方案的設計提供了新的途徑。

2.?通過將Hugging Face與ChatGPT周圍的許多任務特定模型集成,HuggingGPT能夠處理涵蓋多種模式和領域的廣義人工智能任務。HuggingGPT通過模型間的開放協作,為用戶提供多模式、可靠的服務。

3. 指出了HuggingGPT(和自治代理)中任務規劃的重要性,并制定了一些實驗評估來衡量llm的規劃能力。

4.在跨語言、視覺、語音和跨模態的多個具有挑戰性的人工智能任務上進行的大量實驗表明,HuggingGPT在理解和解決來自多個模態和領域的復雜任務方面具有巨大的潛力。

方法:

整體流程

1.任務規劃:使用ChatGPT分析用戶的請求,了解用戶的意圖,并通過提示將其分解為可能可解決的任務。

通常,在實際場景中,許多用戶請求將包含一些復雜的意圖,因此需要編排多個子任務來實現目標。因此,我們制定任務規劃作為HuggingGPT的第一階段,目的是利用LLM分析用戶請求,然后將其分解為結構化任務的集合。此外,我們還需要LLM來確定依賴關系以及這些分解任務的執行順序,以建立它們之間的聯系。

2.模型選擇:為了解決計劃的任務,ChatGPT根據模型描述選擇托管在hug Face上的專家模型。

完成任務規劃后,HuggingGPT接下來需要將任務和模型進行匹配,即在解析的任務列表中為每個任務選擇最合適的模型。為此,我們使用模型描述作為連接各個模型的語言接口。更具體地說,我們首先從機器學習社區(例如,hug Face)獲得專家模型的描述,然后通過上下文任務模型分配機制動態選擇任務模型。該策略支持增量模型訪問(簡單地提供專家模型的描述),并且可以更加開放和靈活地使用ML社區。

上下文任務模型分配我們將任務模型分配表述為一個單選問題,其中潛在的模型在給定的上下文中作為選項呈現。通常,HuggingGPT能夠根據提示符中提供的用戶查詢和任務信息,為每個已解析的任務選擇最合適的模型。然而,由于最大上下文長度的限制,提示符不可能包含所有相關的模型信息。為了解決這個問題,我們首先根據它們的任務類型過濾掉模型,只保留那些與當前任務類型匹配的模型。對于這些選定的模型,我們將根據它們在hug Face上的下載次數對它們進行排名(我們認為下載可以在一定程度上反映模型的質量),然后選擇top-K的模型作為HuggingGPT的候選模型。此策略可以大大減少提示中的令牌使用,并有效地為每個任務選擇適當的模型。

3.任務執行:調用并執行每個選定的模型,并將結果返回給ChatGPT。

一旦將特定的模型分配給已解析的任務,下一步就是執行該任務,即執行模型推理。因此,在這個階段,HuggingGPT會自動將這些任務參數輸入到模型中,執行這些模型來獲得推理結果,然后將其發送回LLM。在這個階段有必要強調資源依賴的問題。由于先決條件任務的輸出是動態生成的,因此HuggingGPT還需要在啟動任務之前動態地指定任務的依賴資源。

4.響應生成:最后,利用ChatGPT整合所有模型的預測并為用戶生成響應。

在所有任務執行完成后,HuggingGPT需要生成最終響應。HuggingGPT將前三個階段(任務規劃、模型選擇和任務執行)的所有信息集成為這一階段的簡明總結,包括計劃任務列表、任務選擇的模型以及模型的推斷結果。其中最重要的是推理結果,這是HuggingGPT做出最終決策的關鍵點。這些推理結果以結構化的格式呈現,如對象檢測模型中帶有檢測概率的邊界框,問答模型中的答案分布等。HuggingGPT允許LLM接收這些結構化的推理結果作為輸入,并以友好的人類語言形式生成響應。此外,LLM不是簡單地聚合結果,而是生成主動響應用戶請求的響應,從而提供具有置信度的可靠決策。

整體流程如下圖所示:語言是llm(例如ChatGPT)連接眾多AI模型(例如hugs Face)的接口,用于解決復雜的AI任務。在這個概念中,LLM作為一個控制器,管理和組織專家模型的合作。LLM首先根據用戶請求規劃任務列表,然后為每個任務分配專家模型。專家執行任務后,LLM收集結果并響應用戶。

一個huggingGPT的例子,如下圖所示。HuggingGPT的工作流程以LLM(如ChatGPT)為核心控制器,專家模型為執行者,分為四個階段:1)任務規劃:LLM將用戶請求解析為任務列表,確定任務之間的執行順序和資源依賴關系;2)模型選擇:基于專家模型在hug Face上的描述,LLM為任務分配合適的模型;3)任務執行:混合端點上的專家模型執行分配的任務;4)響應生成:LLM集成專家的推理結果,生成工作流日志匯總,響應用戶。

局限性:

(1)HuggingGPT中的規劃嚴重依賴于LLM的能力。因此,我們不能保證生成的計劃總是可行和最優的。因此,如何對LLM進行優化,提高LLM的規劃能力至關重要;

(2) 在我們的框架中,效率是一個共同的挑戰。為了構建這樣一個具有任務自動化的協作系統(例如HuggingGPT),它嚴重依賴于一個強大的控制器(例如ChatGPT)。然而,HuggingGPT在整個工作流程中需要與llm進行多次交互,從而增加了生成響應的時間成本;

(3)令牌長度是使用LLM時的另一個常見問題,因為最大令牌長度總是有限的。雖然有些作品已經將最大長度擴展到32K,但如果我們想要連接眾多的模型,這對我們來說仍然是無法滿足的。因此,如何簡單有效地總結模型描述也是值得探索的問題;

(4)不穩定性的主要原因是llm通常是不可控的。雖然LLM在生成方面很熟練,但在預測過程中仍有可能不符合指令或給出不正確的答案,導致程序工作流程出現異常。如何減少推理過程中的不確定性是設計系統時必須考慮的問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43156.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43156.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43156.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity 鼠標實現對物體的移動、縮放、旋轉

文章目錄 1. 代碼2. 測試場景 1. 代碼 using UnityEngine;public class ObjectManipulation : MonoBehaviour {// 縮放比例限制public float MinScale 0.2f;public float MaxScale 3.0f;// 縮放速率private float scaleRate 1f;// 新尺寸private float newScale;// 射線pri…

【Windows系統編程】03.遠線程注入ShellCode

shellcode&#xff1a;本質上也是一段普通的代碼&#xff0c;只不過特殊的編程手法&#xff0c;可以在任意環境下&#xff0c;不依賴于原有的依賴庫執行。 遠程線程 #include <iostream> #include <windows.h> #include <TlHelp32.h>int main(){HANDLE hPr…

Educational Codeforces Round 153 (Rated for Div. 2)ABC

Educational Codeforces Round 153 (Rated for Div. 2) 目錄 A. Not a Substring題目大意思路核心代碼 B. Fancy Coins題目大意思想核心代碼 C. Game on Permutation題目大意思想核心代碼 A. Not a Substring 題目大意 給定一個只包含“&#xff08;”和“&#xff09;”這兩…

react-native-webview RN和html雙向通信

rn登錄后得到的token需要傳遞給網頁&#xff0c;js獲取到的瀏覽器信息需要傳遞給rn RN Index.js: import React from react import { WebView } from react-native-webview import useList from ./useListexport default function Index(props) {const { uri, jsCode, webVie…

iPhone刪除的照片能恢復嗎?不小心誤刪了照片怎么找回?

iPhone最近刪除清空了照片還能恢復嗎&#xff1f;大家都知道&#xff0c;照片對于我們來說是承載著美好回憶的一種形式。它記錄著我們的平淡生活&#xff0c;也留住了我們的美好瞬間&#xff0c;具有極其重要的紀念價值。 照片不小心誤刪是一件非常難受的事&#xff0c;那么iP…

android TextView 超出長度使用省略號

在Android中最常見的需求&#xff0c;就是在在外部展示信息時&#xff0c;需要簡要展示內容。TextView僅需在靜態布局文件中設置以下幾個屬性&#xff1a; android:maxWidth“100dp” // 寬度是多少才算超出 android:maxLines"2" // 高度多少才算超出 android:elli…

React下載文件的兩種方式

React下載文件的兩種方式 - 代碼先鋒網 不知道有用沒用看著挺整齊 沒試過 1、GET類型下載 download url > {const eleLink document.createElement(a);eleLink.style.display none;// eleLink.target "_blank"eleLink.href url;// eleLink.href record;d…

Centos7 配置Docker鏡像加速器

docker實戰(一):centos7 yum安裝docker docker實戰(二):基礎命令篇 docker實戰(三):docker網絡模式(超詳細) docker實戰(四):docker架構原理 docker實戰(五):docker鏡像及倉庫配置 docker實戰(六):docker 網絡及數據卷設置 docker實戰(七):docker 性質及版本選擇 認知升…

CentOS系統環境搭建(五)——Centos7安裝maven

centos系統環境搭建專欄&#x1f517;點擊跳轉 Centos7安裝maven 下載壓縮包 maven下載官網 解壓 壓縮包放置到/usr/local tar -xvf apache-maven-3.9.2-bin.tar.gz配置環境變量 vim /etc/profile在最下面追加 MAVEN_HOME/usr/local/apache-maven-3.9.2 export PATH${MAV…

Jenkins 監控dist.zip文件內容發生變化 觸發自動部署

為Jenkins添加plugin http://xx:xx/manage 創建一個任務 構建觸發器 每3分鐘掃描一次&#xff0c;發現指定文件build.zip文件的MD5發生變化后 觸發任務

【C++學習手札】一文帶你認識C++虛繼承??

食用指南&#xff1a;本文在有C基礎的情況下食用更佳 &#x1f340;本文前置知識&#xff1a;C虛函數&#xff08;很重要&#xff0c;內部剖析&#xff09; ??今日夜電波&#xff1a;僕らのつづき—柊優花 1:06 ━━━━━━?&#x1f49f;──────── 3:51 …

創建密碼庫/創建用戶帳戶/更新 Ansible 庫的密鑰/ 配置cron作業

目錄 創建密碼庫 創建用戶帳戶 更新 Ansible 庫的密鑰 配置cron作業 創建密碼庫 按照下方所述&#xff0c;創建一個 Ansible 庫來存儲用戶密碼&#xff1a; 庫名稱為 /home/curtis/ansible/locker.yml 庫中含有兩個變量&#xff0c;名稱如下&#xff1a; pw_developer&#…

神經網絡基礎-神經網絡補充概念-39-梯度消失與梯度爆炸

簡介 梯度消失和梯度爆炸是在深度神經網絡中訓練過程中可能出現的問題&#xff0c;導致模型難以訓練或無法收斂。這些問題與反向傳播算法中的梯度計算有關。 概念 梯度消失&#xff08;Gradient Vanishing&#xff09;&#xff1a;在深層神經網絡中&#xff0c;特別是具有很…

File inclusion

文章目錄 File inclusion(local)File inclusion(remote) File inclusion(local) 隨便選擇一個點擊提交&#xff0c;提交后觀察 url ?filename 我們可以使用相對路徑../../../../../訪問我們想要看到的文件內容 查看windows系統的主機映射文件../../../../Windows/System32/…

ShardingSphere 可觀測 SQL 指標監控

ShardingSphere并不負責如何采集、存儲以及展示應用性能監控的相關數據&#xff0c;而是將SQL解析與SQL執行這兩塊數據分片的最核心的相關信息發送至應用性能監控系統&#xff0c;并交由其處理。 換句話說&#xff0c;ShardingSphere僅負責產生具有價值的數據&#xff0c;并通過…

Go 語言中排序的 3 種方法

原文鏈接&#xff1a; Go 語言中排序的 3 種方法 在寫代碼過程中&#xff0c;排序是經常會遇到的需求&#xff0c;本文會介紹三種常用的方法。 廢話不多說&#xff0c;下面正文開始。 使用標準庫 根據場景直接使用標準庫中的方法&#xff0c;比如&#xff1a; sort.Intsso…

【C++】AVL樹(平衡二叉樹)

目錄 一、AVL樹的定義二、AVL樹的作用三、AVL樹的插入操作插入——平衡因子的更新插入——左單旋插入——右單旋插入——左右雙旋插入——右左雙旋 四、ALVL樹的驗證五、AVL樹的性能 一、AVL樹的定義 AVL樹&#xff0c;全稱 平衡二叉搜索&#xff08;排序&#xff09;樹。 二…

一次Linux圖形化界面恢復

一次Linux 圖形化界面恢復 一次Linux 圖形化界面恢復出現問題場景問題排查 一次Linux 圖形化界面恢復 出現問題場景 使用xmanager遠程連接虛機的CentOS7系統圖形界面出現已拒絕x11轉移申請問題&#xff0c;在折騰X11過程中&#xff0c;安裝與卸載的過程中不小心把xorg-x11-xa…

HCIP的交換機實驗

題目 拓撲圖 PC1/3接口用access 創建WLAN LSW1 創建WLAN [lsw1]vlan batch 2 to 6[lsw1-Ethernet0/0/1]p [lsw1-Ethernet0/0/1]port l [lsw1-Ethernet0/0/1]port link- [lsw1-Ethernet0/0/1]port link-flap [lsw1-Ethernet0/0/1]port link-type acc [lsw1-Ethernet0/0…

kubeasz在線安裝K8S集群單master集群(kubeasz安裝之二)

一、介紹 Kubeasz 是一個基于 Ansible 自動化工具&#xff0c;用于快速部署和管理 Kubernetes 集群的工具。它支持快速部署高可用的 Kubernetes 集群&#xff0c;支持容器化部署&#xff0c;可以方便地擴展集群規模&#xff0c;支持多租戶&#xff0c;提供了強大的監控和日志分…