【HuggingGPT】Solving AI Tasks with ChatGPT and its Friends in Hugging Face

news2024/9/20 1:20:12

文章目录

    • 所解决的问题?
    • 背景
    • 所采用的方法?
    • 取得的效果?
    • 问题
    • 所出版信息?作者信息?
    • 参考链接

所解决的问题?

当前的语言模型Large Language Models (LLMs)缺乏处理复杂信息的能力,像视觉,语音这类信息就不能够很好的处理,这是一个语言模型能力缺陷上的问题。再一个是现实世界的很多问题可以拆分成子任务,通常需要多个模型之间相互协调配合。语言模型本身其实更擅长做Zero-Shot,或者是Few-Shot的任务,对于具体的任务并不如Fine-Turn的模型好。

作者将大语言模型作为中间件,去链接AI模型和语言模型,对AI模型进行规划、调度和合作。期望是具备二者的通用能力。

背景

目前存在的一些工作是训练多模态的大模型,或者给大模型加上一些工具插件来解决问题。作者提出的这个方法更加通用。

所采用的方法?

作者在这篇文章中,将large language models (LLMs)作为一个AI模型管理器,去管理各种各样的AI模型,从而解决跨领域,跨模态的复杂任务。

具体来说,就是来了一个用户的请求request,然后基于一些提前写好的prompt,HuggingGPT选择要采用哪个模型来去解决子任务,然后基于执行的结果做出响应。

整个HuggingGPT的处理过程可以分为4步:

  1. 任务规划(Task Planning): 理解用户的请求,并理解其意图,将其分为为可以被执行的子任务。
  2. 模型选择(Model Selection):基于AI模型描述和规划出来的子任务选择领域模型,或者称为专家模型(expert model)。
  3. 任务执行(Task Execution):调用这些AI模型,并执行拿到返回结果给ChatGPT。
  4. 回复生成(Response Generation):最终再次调用ChatGPT整合所有模型的预测结果,生成最终回复给用户。

上述4部分的具体细节为:

  1. 任务规划:一些基础的指令:任务ID:用于任务规划的ID区分;任务类型Task Type:像是图像、音频、文本等等;任务依赖:定义一些执行此任务之前的依赖,只有依赖任务都被执行,此任务才会被启动。任务参数:这些参数来自用户的request或者是依赖任务生成的。在此基础上还会给一些prompt demonstration。
  2. 模型选择:在做模型选择之前首先需要模型描述,这些模型描述都是来自Hugging Face本身的。由于模型太多,所有的模型描述全部输入的话,会超过prompt的长度限制,作者这里将其进行了任务分类,再依据下载次数排名,选择top-k个模型描述给到prompt中。
  3. 任务执行:在任务执行中最主要考虑的就是资源的调度,独立的任务可以并行执行。作者这里采用特定的符号<resource>去管理资源。

具体prompt的设计:

文中作者还给了一些demo,可以参考看一下。

取得的效果?

截至论文发表,HuggingGPT可以整合几百个(400+)模型,覆盖了24个任务,像分类、目标检测、分割、问题等等。

问题

这样的方法带来的问题就是,如果管理的AI模型比较多的话,需要好好设计prompt,尤其是AI模型的描述,就是这个AI模型到底能做什么样的事情。还存在一些限制,比如调用的时间开销、资源开销、max_token开销等等。

所出版信息?作者信息?

2023年,浙江大学和微软研究亚洲一起合作发表的一篇文章。

参考链接

  • 论文题目:HuggingGPT: Solving AI Tasks with ChatGPT andits Friends in Hugging Face

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

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

相关文章

重学Java设计模式-行为型模式-中介者模式

重学Java设计模式-行为型模式-中介者模式 内容摘自&#xff1a;https://bugstack.cn/md/develop/design-pattern/2020-06-27-重学 Java 设计模式《实战中介者模式》.html#重学-java-设计模式-实战中介者模式「按照mybatis原理手写orm框架-给jdbc方式操作数据库增加中介者场景」…

Maven项目中出现【不再支持目标选项 1.5】的解决办法

1 快速解决【单项目】 本方法只适用于单个项目&#xff0c;新建项目使用maven还会出现问题。 在pom.xml配置&#xff1a; <properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target>11</maven.compiler.target>&l…

高并发高吞吐IO秘密武器——epoll池化技术

1、epoll函数详解 epoll是Linux特有的IO复用函数&#xff0c;使用一组函数来完成任务&#xff0c;而不是单个函数。 epoll把用户关心的文件描述符上的事件放在内核的一个事件表中&#xff0c;不需要像select、poll那样每次调用都要重复传入文件描述符集或事件集。 epoll需要…

闲人闲谈PS之四十一——重新认识PS模块

惯例闲话&#xff1a;4月份参加了SAP咨询大师乐老师组织的公司间业务培训&#xff0c;印象极为深刻&#xff0c;乐老师从三权分立的角度同大家分析了公司间业务交易对象–库存的属地权、管理权、所有权&#xff0c;通过这种全新的视角&#xff0c;把复杂难以理解的公司交易用最…

万字复盘Vue2相关知识(适合学过但忘了然而需要上手的朋友)

目录 前言一&#xff0c;Vue2项目的创建及基本配置1.1 用脚手架创建项目1.2 项目结构1.3 入口文件main.js1.4 组件配置1.4 运行项目 二&#xff0c;Vue的基础知识2.1 数据显示2.2 数据绑定2.3 事件处理2.4 循环遍历2.5 判断语法2.6 计算属性2.7 监视属性 三&#xff0c;重要的生…

python 资料

算法和设计模式 Python实现算法和设计模式 algorithms - Python的一个算法模块. PyPattyrn - 一个用于实现常见设计模式的简单而有效的库. python-patterns - Python中设计模式的集合. sortedcontainers - 快速&#xff0c;纯Python的SortedList&#xff0c;SortedDict和So…

第1章:算法基础【AcWing】

文章目录 快速排序题目描述输入格式输出格式样例样例输入样例输出 提示 算法&#xff08;分治&#xff0c;双指针&#xff09; O ( n l o g n ) O(nlogn) O(nlogn)示例代码注意事项时间复杂度稳定性 归并排序题目描述算法&#xff08;分治&#xff0c;双指针&#xff09; O (…

数据库系统-索引

一、什么是索引 字典中的目录&#xff0c;就是生活中的索引 **索引&#xff1a;**定义在存储表基Table础之上&#xff0c;有助于无需检查所有记录而快速定位所需记录的一种辅助存储结构&#xff0c;由一些列存储在磁盘上的索引项index etries组成&#xff0c;每一个索引项又由…

诊断报文和通讯报文有什么区别?

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…

YOLOv5+双目实现三维跟踪(python)

YOLOv5双目实现三维跟踪&#xff08;python&#xff09; 1. 目标跟踪2. 测距模块2.1 测距原理2.2 添加测距 3. 细节修改&#xff08;可忽略&#xff09;4. 实验效果 相关链接 1. YOLOV5 双目测距&#xff08;python&#xff09; 2. YOLOV7 双目测距&#xff08;python&#x…

【红队APT】钓鱼篇Office-CVE漏洞RLO隐藏压缩包释放免杀打包捆绑

文章目录 文件后缀-钓鱼伪装-RLO压缩文件-自解压-释放执行Office套件-CVE漏洞-MSF&CSMicrosoft MSDT CVE-2022-30190 代码执行Microsoft MSHTML CVE-2021-40444 远程代码执行CVE-2017-11882 文件后缀-钓鱼伪装-RLO 经过免杀后的exe程序(xgpj.exe)&#xff0c;进行重命名&a…

float,flex和grid布局

页面布局往往会影响着整体的结构与项目的样式&#xff0c;通常我们用的布局方式有三种&#xff1a;float,flex,grid 1.float或position布局 1.1概念 首先对于一个页面来说&#xff0c;有浮动流&#xff0c;文档流&#xff0c;文本流这几种模式&#xff0c;而float布局则是脱离…

接口文档设计的12个注意点

前言 我们做后端开发的,经常需要定义接口文档。 最近在做接口文档评审的时候&#xff0c;发现一个小伙伴定义的出参是个枚举值&#xff0c;但是接口文档没有给出对应具体的枚举值。其实&#xff0c;如何写好接口文档&#xff0c;真的很重要。今天给你带来接口文档设计的12个注…

Camera Tuning - MTK pipeline

MTK ISP Pipeline 模块介绍&#xff1a; BPC&#xff1a;坏点矫正 OBC&#xff1a;OB矫正 FUS&#xff1a;此节点处理后&#xff0c;支持视频、预览HDR Digital Gain&#xff1a; 1、LSC&#xff1a;shading矫正 2、WB&#xff1a;白平衡矫正&#xff08;此步处理后&#xff0…

数字设计笔试Verilog手撕代码 - 累加器

前言 本系列整理关于数字设计的笔试或面试的设计问题&#xff0c;手撕代码继续撕&#xff0c;今天撕一个百度昆仑笔试题的累加器设计。 设计需求 题目来源&#xff1a; 【数字IC/FPGA】百度昆仑芯手撕代码–累加器 已知一个加法器IP&#xff0c;其功能是计算两个数的和&am…

虚幻图文笔记:如何清理Character Creator角色的垃圾数据

书接上文《虚幻图文笔记&#xff1a;Character Creator 4角色通过AutoSetup For Unreal Engine插件导入UE5.1的过程笔记》 在一个项目中我按照上文的步骤导入UE5&#xff0c;但是产生了一些莫名其妙的文件&#xff0c;下面还原一下发现和解决问题的过程。 1. 使用Character Cr…

【C++入门必备知识】

【C入门必备知识】 ①.【命名空间】1.命名空间定义Ⅰ.正常定义命名空间Ⅱ.嵌套定义命名空间Ⅲ.合并命名空间 2.命名空间的使用Ⅰ.命名空间名称及域作用限定符Ⅱ.using成员引入Ⅲ.using namespace名称全部引入 3.注意事项Ⅰ.概念1.全缺省参数2.半缺省参数3.使用规则4.应用场景再…

Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机的同步采集(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK的软触发实现两相机的同步采集&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机的高速同步采集的技术背景Baumer工业相机通过BGAPI SDK在回调函数里同步保存图像工业相机在回调函数BufferEvent保存工业相机使用软触发进行同…

#Chrome扩展程序开发教程--04:权限申请

#Chrome扩展程序开发教程--04&#xff1a;权限申请 引言1、基本介绍2、权限相关属性2.1、permissions2.2、optional_permissions2.3、host_permissions2.4、optional_host_permissions 3、申请权限4、检查权限5、移除权限 引言 本系列博客旨在带来最新的Chrome扩展程序开发入门…

C语言函数大全-- m 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- m 开头的函数 1. malloc 1.1 函数说明 函数声明函数功能void *malloc(size_t size);用于动态分配内存 参数&#xff1a; size &#xff1a; 需要分配的内存大小&#xff08;以字节为单位&#xff09; 返回值&#xff1a; 如果分配成…