《2023 HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face》阅读笔记

http:// https://github.com/microsoft/JARVIS.

1 Abstract  and Introduction

借助大语言模型(LLMS)在语言理解生成推理等方面表现出的出色能力,考虑将其作为控制器来管理现有的各种AI模型,把语言作为通用接口。基于这一理念,提出了HuggingGPT框架,利用LLMS(ChatGPT)来连接机器学习社区(Hug face)中的各种AI模型,具体来说就是在接收用户请求时使用ChatGPT来进行任务规划,根据Hug face中提供的模型功能描述选择模型,使用所选AI模型执行每一个子任务,并根据执行结果汇总响应。

现有LLM技术的局限:1)局限于文本的输入输出形式。2)现实场景中的复杂任务由多个子任务组合,需要多个模型的调度和配合。3)在零镜头或少镜头下结果表现出色但仍弱于专家模型(如微调模型)。

在本文中,我们提出了一个名为HuggingGPT的系统来连接LLMs(即ChatGPT)和ML社区(即hug Face),它可以处理来自不同模式的输入,并解决众多复杂的AI任务。更具体地说,对于hug Face中的每个AI模型,我们从库中使用其对应的模型描述,并将其融合到提示符中,以建立与ChatGPT的连接。之后,在我们的系统中,llm(即ChatGPT)将充当大脑来确定用户问题的答案。如图1所示,HuggingGPT的整个过程可以分为四个阶段:

1)Task Planning:利用ChatGPT分析用户的请求并通过提示将其分解为可能解决的任务。

2)Model Selection:ChatGPT根据模型描述选择托管在hug face上的专家模型。

3)Task Execution:调用并执行每个选定的模型,并将结果返回给ChatGPT。

4)Response Generation:最后用ChatGPT集成所有预测的模型为用户生成答案。

目前为止,我们的HuggingGPT 已经围绕chatGPT集成了数百个模型,涵盖了文本分类、对象检测、语义分割、图像生成、问答、文本转语音、文本视频等24个任务。

我们的贡献如下:

1)提出了模型间合作协议。大模型作为规划和决策的大脑,小模型作为每个特定任务的执行者。

2)构建了HuggingGPT,通过围绕ChatGPT集成了hug face当中的400多个用于特定任务的模型来处理通用的AI任务。

3)在跨语言、视觉、语音和跨模式的多个具有挑战性的AI任务上进行的大量实验证明了HuggingGPT在理解和解决来自多种模式和领域的复杂任务方面的能力。

2 Related Works

为了将大型语言模型(LLMs)的范围扩展到文本生成之外,当代研究研究了两种主要方法。

1)首先,一些工作设计了统一的多模态语言模型,如BLIP-2[https://arxiv.org/abs/2301.12597],它利用Q-former来协调语言和视觉语义,Kosmos-1[https://arxiv.org/abs/2302.14045]将视觉输入合并到文本序列中,融合语言和视觉输入。

2)其次,其他研究集中在外部工具或模型的集成上。先锋Toolformer[https://arxiv.org/abs/2302.04761]在文本序列中引入了外部API标签,方便llm访问外部工具。

许多工作将LLMs扩展到视觉形态。Visual ChatGPT[20]融合了可视化基础模型,如BLIP[21]和ControlNet[22],与llm。Visual Programming[23]和ViperGPT[20]通过使用编程语言将llm应用于可视对象,将可视查询解析为用Python代码表示的可解释步骤。

3 HuggingGPT

3.1 Task Planing

LLMs从用户获取一个请求并将其分解为一系列结构化任务并确定这些任务的依赖关系和执行顺序,在这里,HuggingGPT在其提示设计中采用了基于规范的指令和基于演示的解析。

1)Specification-based Instruction:提供了统一的模板,并允许大型语言模型通过插槽归档进行任务解析 ,为此设计了任务类型、任务ID、任务依赖项和任务参数四个槽位。

Task ID:为任务规划提供了一个唯一的标识符用于引用依赖任务及其生成的资源。

Task types:包括语言视觉视频音频等不同的任务。

Task dependencies:执行所需的先决条件任务,只有当所有先决条件相关任务都完成时任务才会启动。

Task arguments:包含任务执行所需参数的列表。包含三个子字段根据任务类型填充文本、图像和音频信息;它们是从用户请求或依赖任务生成的资源中解析出来的。

2)Demonstration-based Parsing:通过在提示中注入几个演示,为更有效的任务解析和计划引入了上下文学习。每个演示都是任务计划的一组输入和输出——将解析出用户的请求和预期的任务序列。这些演示是由从用户请求解析的任务之间的依赖关系组成。

3.2 Model Selection

在解析任务列表后,HuggingGPT 接下来要为任务列表中的每个任务选择适当的模型。为此,1)首先从hugging face hub中获取专家模型的描述;2)通过上下文任务模型分配机制动态地为任务选择模型。

Model Description:在hug Face Hub上托管的专家模型伴随着全面的模型描述,通常由开发人员提供。这些描述包含模型的功能、体系结构、支持的语言和域、许可等信息。这些信息有效地支持HuggingGPT根据用户请求和模型描述的相关性为任务选择正确的模型。

In-Context Task-Model Assignment :通过在提示中包含用户查询和已解析地任务,HuggingGPT 可以为手头的任务选择最合适的模型,然而由于最大上下文长度的限制,在提示符中不可能包含所有相关的模型信息,因此我们根据它们的任务模型进行筛选,只保留那些与当前任务类型匹配的模型。剩下的模型根据下载量进行排名,并根据这个排名选择前k个的模型作为候选。

3.3 Task Execution

一旦将任务分配给特定的模型,下一步就是执行该任务,即执行模型推断。为了加速和计算稳定性,HuggingGPT 在混合推断端点上运行这些模型。通过将任务参数作为输入,模型计算推理结果,然后将它们发送回LLM。为了进一步提高推理效率,可以对没有资源依赖的模型进行并行化。

1)Hybrid Endpoint:为了保持系统的稳定和高效,HuggingGPT在本地提取并运行一些常见或耗时的模型,并且局部端点的优先级高于hug face的推理端点。只有匹配的模型不在本地部署时,huggingGPT才会在hug face端点上运行模型。

2)Resource Dependency:在任务执行阶段有效地管理任务之间的资源依赖关系是难题。在这里,我们使用一个唯一的符号“<resource>”来管理资源依赖关系。具体来说,HuggingGPT将前置任务生成的资源标识为-task_id,其中task_id是前置任务的任务id。在任务规划阶段,如果存在依赖于task_id任务生成的资源的任务,HuggingGPT将此符号设置为任务参数中对应的资源子字段。

3.4 Response Generation

所有任务执行完成后,HuggingGPT进入响应生成阶段。在这一阶段,HuggingGPT将前三个阶段(任务计划、模型选择和任务执行)的所有信息集成到一个简明的摘要中,包括计划的任务列表、为任务选择的模型以及模型的推断结果。

其中最重要的是推理结果,是HuggingGPT做出最终决策的依据。这些推理结果以结构化的形式出现,如对象检测模型中带有检测概率的边界框,问答模型中的答案分布等。HuggingGPT允许LLM接收这些结构化的推理结果作为输入,并以友好的人类语言形式生成响应。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18433.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT的4个不为人知却非常实用的小功能

重点介绍四个ChatGPT很实用的小功能。 一、停止生成 如果在ChatGPT输出内容的过程中&#xff0c;我们发现结果不是自己想要的&#xff0c;可以直接点击“Stop generating”按钮&#xff0c;这样它就会立即停止输出。 二、复制功能 在ChatGPT返回对话的右侧&#xff0c;有三个图…

程序员的小幽默:让你笑到肚子痛的搞笑动图

今天小编用动图的方式带大家了解程序员这个逗逼、可爱的群体。看动图时大家注意形象啊&#xff01; 1、程序员的生存状态 。 2、双核CPU的真相。 3、当年学C语言的过程。 4、测试环境一切ok&#xff0c;马上上线 5、调试bug 6、正在调试&#xff0c;突然内存溢出了 7、卧槽&am…

图文搞笑段子这么黑程序员真的好吗?

“男朋友写代码不理我,于是我悄悄改掉了web.xml的一个配置,他搞了两天都没调通,我告诉了他,] 结果他要和我分手,我很伤心,但他的朋友告诉我,他没砍死你才说明他真的爱你…” “楼主别tm编了,程序员哪来的女朋友!” “谁告诉你我是女的了。” 谁能给解答一下什么叫做面向对象编程…

程序员界的经典笑话,逗乐了

1&#xff0c;十年生死两茫茫&#xff0c;写程序&#xff0c;到天亮。千行代码&#xff0c;Bug何处藏。纵使上线又怎样&#xff0c;朝令改&#xff0c;夕断肠。领导每天新想法&#xff0c;天天改&#xff0c;日日忙。相顾无言&#xff0c;惟有泪千行。每晚灯火阑珊处&#xff0…

那些程序员才懂的笑话

1.什么是死锁&#xff1f; 面试官&#xff1a;解释一下什么叫做死锁&#xff0c;解释明白我们就会要你。 我&#xff1a;先发 offer&#xff0c;签完 offer 再解释。 2.java 和 JavaScript的关系 问 &#xff1a;java 和 JavaScript有什么关系&#xff1f; 答&#xff1a;跟…

迟早要笑死在ChatGPT的回复里!

ChatGPT就像一个长着AI脑袋的大嘴巴&#xff0c;既能给我们带来很多的知识和见解&#xff0c;同时也能够让我们捧腹大笑&#xff0c;比如&#xff1a; 再比如&#xff0c;假装自己是一条狗跟ChatGPT聊天&#xff01;&#xff01;&#xff01; 再比如&#xff1a;试着邀请ChatGP…

有关程序员的几个爆笑段子

1、栈和队列的区别是啥&#xff1f; 吃多了拉就是队列&#xff0c;吃多了吐就是栈。 2、世界上最遥远的距离不是生与死&#xff0c;而是你亲手制造的BUG就在你眼前&#xff0c;你却怎么都找不到她。 3、《C程序设计语言》比《C程序设计语言》厚了几倍。。。果然有了对象就麻烦很…

关于程序员的搞笑段子,内涵满满的!请允许我先笑5分钟

我是一个苦b的程序员&#xff0c;今晚加班到快通宵了&#xff0c;困得快睁不开眼了&#xff0c;女上司很关心&#xff0c;问我要不要吃宵夜。我没好气地说&#xff0c;宵夜就算了&#xff0c;能让我睡一觉就行了。女上司红着脸说了句讨厌啊&#xff0c;然后坐在我身边不动&…

今日大厂:ZEKU全员被裁,PayPal疑似停止加薪,贝恩“鼓励”员工休半年长假

大家好&#xff01;我是韩老师。 看来&#xff0c;这一波的寒气&#xff0c;远未散去。 来看看今天韩老师整理的大厂日报。 1. 半导体四小龙 ZEKU 全员被裁 昨天&#xff0c;OPPO旗下的zeku员工收到了今天办公场所关闭的通知&#xff0c;理由是IT升级&#xff0c;奇怪的理由让人…

10款生成PPT的AI工具实测

1 天前 ChatGPT云炬学长 ​关注 自从chatgpt爆火之后&#xff0c;各种AI工具突然就都原地开花。随便一搜各种写作、绘画、视频、办公的AI&#xff0c;层出不穷。我有时候看着这些博主整理的六七十个AI工具&#xff0c;真的怀疑他们是否真的都体验过。 本来我是没兴趣了解的&…

Alpaca-cpp(羊驼-cpp): 可以本地运行的 Alpaca 大语言模型

Alpaca-cpp&#xff08;羊驼-cpp&#xff09;: 可以本地运行的 Alpaca 大语言模型 系列文章 Stanford Alpaca (羊驼)&#xff1a;ChatGPT 学术版开源实现Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现&#xff08;对标 Standford Alpaca&#xff09; 前言&#xff08…

ChatGPT 在软件功能测试中的应用探索

1 ChatGPT是什么 ChatGPT(Chat Generative Pre-trained Transformer&#xff0c;生成预训练转换器)&#xff0c;是OpenAI实验室于2022年11月30日发布的一款可以用于互动的聊天工具。它是人工智能技术驱动的自然语言处理工具&#xff0c;可以通过理解和学习人类的语言进行对话&…

UDP实战模拟——聊天模拟器

udp 是个十分好用的&#xff0c;数据传输控制协议&#xff0c;聊天模拟器的创作&#xff0c;仅仅是展现它传输字符的良好体现&#xff0c;运行之前须去官网下载udp传输协议工具&#xff0c;名为SocketText&#xff0c;下载地址&#xff1a; http://www.zlmcu.com/download/Soc…

去面腾讯了(社招两年面试经验)

之前很多同学嚷嚷有没有社招经验&#xff0c;正好&#xff0c;我有个朋友去腾讯社招面试了。 他的面的是全栈开发岗位&#xff0c;工作两年&#xff0c;后端是Go&#xff0c;前端是 JavaScript Vue。 因为工作也没多久&#xff0c;就两年时间&#xff0c;所以大概率可能还是…

关于我拒绝了腾讯测试开发岗offer这件事

2022年刚开始有了向要跳槽的想法&#xff0c;之前的公司不能算大厂但在重庆也算是数一数二。开始跳槽的的时候我其实挺犹豫的 其实说是有跳槽的想法在2022年过年的时候就有了&#xff0c;因为每年公司3月会有涨薪的机会&#xff0c;所以想着看看那能不能涨&#xff08;其实还是…

ChatGPT助力校招----面试问题分享(十)

1 ChatGPT每日一题&#xff1a;阻抗匹配的方法有哪些 问题&#xff1a;阻抗匹配是什么 ChatGPT&#xff1a;阻抗匹配是一种电路设计技术&#xff0c;用于确保电路中各个组件之间的电阻、电感和电容等参数相互匹配&#xff0c;以最大程度地传输信号或功率 当阻抗不匹配时&…

突破边界:高性能计算引领LLM驶向通用人工智能AGI的创新纪元

AGI | AIGC | 大模型训练 | GH200 LLM | LLMs | 大语言模型 | MI300 ChatGPT的成功带动整个AIGC产业的发展&#xff0c;尤其是LLM&#xff08;大型语言模型&#xff0c;大语言模型&#xff09;、NLP、高性能计算和深度学习等领域。LLM的发展将为全球和中国AI芯片、AI服务器市场…

推特被指欠公关公司83万美元;特斯拉因数据泄露或面临高额罚款;英伟达宣布为游戏提供定制化AI模型代工服务丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 NVIDIA推出DGX GH200 AI超级计算机 5月29日&#xff0c;NVIDIA宣布推出一款新型大内存AI超级计算机——由NVIDIA GH200 Grace Hopper超级芯片和NVIDIA NVLink Switch System 驱动的NVIDIA DGX™超级计算机&…

研发为底、生态为径、AI为翼——全国一体化算力算网调度平台正式发布

GPU | COMPUTEX | 算力 | GPU服务器 英伟达 | GH200 | 一体化算力算网调度平台 近年来&#xff0c;人工智能硬件、软件算法以及应用场景的丰富度不断增加&#xff0c;算法模型参数也不断增加&#xff0c;这带动了对数据中心并行计算算力的需求。因此&#xff0c;AI、高性能计算…

NLP大模型微调答疑

什么情况用Bert模型&#xff0c;什么情况用LLaMA、ChatGLM类大模型&#xff0c;咋选&#xff1f; 答&#xff1a;Bert 的模型由多层双向的Transformer编码器组成&#xff0c;由12层组成&#xff0c;768隐藏单元&#xff0c;12个head&#xff0c;总参数量110M&#xff0c;约1.1…