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

news2025/1/23 12:55:33

摘要:

语言是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.coloradmin.cn/o/883274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3D- vista:预训练的3D视觉和文本对齐Transformer

论文:https://arxiv.org/abs/2308.04352 代码: GitHub - 3d-vista/3D-VisTA: Official implementation of ICCV 2023 paper "3D-VisTA: Pre-trained Transformer for 3D Vision and Text Alignment" 摘要 三维视觉语言基础(3D- vl)是一个新兴领域&…

JDBC封装与设计模式

什么是 DAO ? Data Access Object(数据存取对象) 位于业务逻辑和持久化数据之间实现对持久化数据的访问 DAO起着转换器的作用,将数据在实体类和数据库记录之间进行转换。 ----------------------------------------------------- DAO模式的组成部分 …

【动画】p60动画蓝图、播放蒙太奇、打包

p60动画蓝图、播放蒙太奇、打包 p60动画蓝图、播放蒙太奇、打包添加动画动画蓝图使模型使用动画蓝图奔跑跳舞蒙太奇 移动打断蒙太奇打包退出游戏 p60动画蓝图、播放蒙太奇、打包 添加动画 右键内容浏览器-》动画-》混合空间1D-》选择新的角色的骨骼 如下图在资产详情修改参数…

【TypeScript】基础类型

安装 Node.js 环境 https://nodejs.org/en 终端中可以查到版本号即安装成功。 然后,终端执行npm i typescript -g安装 TypeScript 。 查到版本号即安装成功。 字符串类型 let str:string "Hello"; console.log(str);终端中先执行tsc --init&#xf…

机器学习:特征工程之特征预处理

目录 特征预处理 1、简述 2、内容 3、归一化 3.1、鲁棒性 3.2、存在的问题 4、标准化 ⭐所属专栏:人工智能 文中提到的代码如有需要可以私信我发给你😊 特征预处理 1、简述 什么是特征预处理:scikit-learn的解释: provide…

预训练GNN:GPT-GNN Generative Pre-Training of Graph Neural Networks

一.文章概述 本文提出了一种自监督属性图生成任务来预训练GNN,使得其能捕图的结构和语义属性。作者将图的生成分为两个部分:属性生成和边生成,即给定观测到的边,生成节点属性;给定观测到的边和生成的节点属性&#xf…

【第三阶段】kotlin中使用带let的安全调用

let常常和?.配合使用,如果前面的对象为null,let不执行,能够执行到let里面 对象一定不为null 1.不为null fun main() {var name:String?"kotlin" //name是一个可空类型,发出广播,调用的地方必须补救措施var…

WSL2 Ubuntu子系统安装cuda+cudnn+torch

文章目录 前言一、安装cudncudnn安装pytorch 前言 确保Windows系统版本高于windows10 21H2或Windows11,然后在Windows中将显卡驱动升级到最新即可,WSL2已支持对显卡的直接调用。 一、安装cudncudnn 配置cuda环境,WSL下的Ubuntu子系统的cu…

炬芯科技低延迟高音质无线麦克风解决方案

随着互联网技术的高速发展,诸多新兴产业被带动起来。就近十年来看,内容平台以及其载体在不断演变,从自媒体到短视频以及直播,一点一滴地渗透进大众生活。而这些平台的兴起,亦为普罗大众提供了广阔的分享空间&#xff0…

六十四卦-整体

前言:整理一下学习的卦,从整体上更好地了解六十四卦。 目录 八纯卦 难卦 消息卦 最吉的卦 六爻皆正位的卦 六爻皆不正位的卦 爻辞中含有“利涉大川”的卦 八纯卦 乾三连,坤六断,震仰盂,艮覆碗,离…

【免费分享 图书】《阿里云天池大赛赛题解析——机器学习篇》-PDF电子书-百度云...

找这本书的资源简直要把我找吐了,各种网站压缩包一下下来就开始各种套路(比如要你充钱) 为了防止还有我这样的受害者,这就把找到的PDF给大家分享一下。 链接在文章最后 如果这篇文章能够帮到您,麻烦帮我点个赞,并关注一下我&…

【uniapp】中 微信小程序实现echarts图表组件的封装

插件地址:echarts-for-uniapp - DCloud 插件市场 图例: 一、uniapp 安装 npm i uniapp-echarts --save 二、文件夹操作 将 node_modules 下的 uniapp-echarts 文件夹复制到 components 文件夹下 当前不操作此步骤的话,运行 -> 运行到小…

动手学深度学习—卷积神经网络LeNet(代码详解)

1. LeNet LeNet由两个部分组成: 卷积编码器:由两个卷积层组成;全连接层密集块:由三个全连接层组成。 每个卷积块中的基本单元是一个卷积层、一个sigmoid激活函数和平均汇聚层;每个卷积层使用55卷积核和一个sigmoid激…

基于libevent的tcp服务器

libevent使用教程_evutil_make_socket_nonblocking_易方达蓝筹的博客-CSDN博客 一、准备 centos7下安装libevent库 yum install libevent yum install -y libevent-devel 二、代码 server.cpp /** You need libevent2 to compile this piece of code Please see: http://li…

分类预测 | MATLAB实现MTBO-CNN多输入分类预测

分类预测 | MATLAB实现MTBO-CNN多输入分类预测 目录 分类预测 | MATLAB实现MTBO-CNN多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现MTBO-CNN多输入分类预测 2.代码说明:基于登山队优化算法(MTBO)、卷积神经…

android 12系统加上TTS引擎

系统层修改&#xff1a; 1.frameworks/base/packages/SettingsProvider/res/values/defaults.xml <string name"def_tts"></string> 2.frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java loadString…

​五金件机器视觉定位​并获取外观轮廓软硬件视觉方案

【检测目的】 五金件机器视觉定位&#xff0c;视觉检测五金件轮廓并矫正五金件位置进行涂油 【客户要求】 FOV:540*400mm 【拍摄与处理效图一】 【拍摄与处理效图二】 【实验原理及说明】 【方案评估】 根据目前的图像和处理结果来看&#xff0c;可以检测出产品轮廓并进行位置…

Unity小项目__小球吃零食

// Player脚本文件源代码 public class Player : MonoBehaviour {public Rigidbody rd; // 定义了一个刚体组件public int score 0; // 定义了一个计分器public Text scoreText; // 定义了一个文本组件public GameObject winText; // 定义了一个游戏物体用于检验游戏结束// S…

征战2023跨境旺季,独立站如何实现新增长?

2023年出海赛道万象更新&#xff0c;行业重回正轨&#xff0c;跨境行业在经历过多轮洗牌过后&#xff0c;中国企业在全球化产业链中表现出了更强大的增长韧性。而随着跨境模式与消费需求的多样化与精细化。单一渠道的出海布局已经不能满足企业实现品牌出海的转型需求。 DTC独立…

前端工具的选择

目录 前端常见开发者工具 浏览器 开发者工具 VScode开发者工具快捷键 前端常见开发者工具 浏览器 浏览器是我们最重要的合作伙伴 关于浏览器的选择&#xff0c;我目前主要用主要是谷歌浏览器&#xff0c;我个人觉得谷歌浏览器使用起来比较方便、简洁&#xff0c;没有太多…