基于LLMs的多模态大模型(Visual ChatGPT,PICa,MM-REACT,MAGIC)

news2024/11/23 21:31:24

当LLMs已经拥有了极强的对话能力后,如何使其拥有视觉和语音等多模态能力是紧接而来的热点(虽然GPT4已经有了),这个系列将不定期更新一些利用LLMs做多模态任务的文章。

直觉上,如果直接训练一个类似chatgpt架构的多模态框架一定会消耗非常大的数据和计算量,此外如果每次增加一个新的模态,那现有框架都需要重新训练,这无论是对高校还是企业来说都是很难承担的代价。因此目前的文章都尝试利用一些策略或者适配的方法来连接语言模型和其他模型,特别是visual and language。

本篇博文首先整理一些不训练视觉模型的文章们,这些文章主要是利用一些策略使得LLMs能够完成多模态任务。


在这里插入图片描述

Visual ChatGPT
Visual ChatGPT是一个利用LLMs做agent,即利用LLMs作为语言中枢,通过告诉它每个视觉基础模型(Visual Foundation Models,VFMs)的输入输出格式,然后让ChatGPT针对用户提出的需求、进行模型的调用和选择。

  • 如上图所示,用户上传一张图像+指令(如请根据该图像的深度生成红花,然后风格变为卡通step by step)。
  • 于是PromptManager分解用户指定为多个可执行的捕捉,然后调用它的基础模型库(22个)。
  • 即先根据深度估计预测图像深度,然后利用深度生成红花,最后利用stable diffusion进行风格迁移。
    在这里插入图片描述

由于是利用chatGPT当基座,所以这注定是一个多轮对话的框架。如图所示,在图上中部,可以看到输入prompt manager的有四个部分:

  • system principles P:指定一些系统规则得到chatgpt可以理解的prompt,以帮助集成多个基础视觉模型。如对访问VFMs,根据文件名访问图像,cot以分解用户的命令(如上图拆解query为多个可供调用的步骤)。此外还有一些约束推理和系统可靠性的system principles。
  • visual foundation models F:一堆可供调用的基础视觉模型VFMs。为了方便模型调用,因此还需要定义名称、用法、输入/输出、例子(可选的)。
  • user query Q:当前时刻的用户查询。
  • history of dialogue H:所有的对话历史,但这里会按照chatgpt的最大输入来做截断。

所以对于一个对话 S = ( Q 1 , A 1 ) , ( Q 2 , A 2 ) , … , ( Q N , A N ) S=(Q_1,A_1),(Q_2,A_2),…,(Q_N,A_N) S=(Q1,A1),(Q2,A2),,(QN,AN),在第I轮对话中,所得到的回复 A i j + 1 A^{j+1}_i Aij+1是通过调用了j次基础视觉模型工具的结果,即 A i j + 1 = C h a t G P T ( M ( P ) , M ( F ) , M ( H < I ) , M ( Q i ) , M ( R i < j ) , M ( F ( A i ( j ) ) ) ) A^{j+1}_i=ChatGPT(M(P),M(F),M(H_{<I}),M(Q_i),M(R_i^{<j}),M(F(A^{(j)}_i))) Aij+1=ChatGPT(M(P),M(F),M(H<I),M(Qi),M(Ri<j),M(F(Ai(j))))M即prompt manager,用于把各个功能变成合理的prompt交由chatgpt处理。

paper:Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models
arxiv:https://arxiv.org/abs/2303.04671
github:https://github.com/microsoft/TaskMatrix


在这里插入图片描述

PICa
总调openai的接口也不是长久之道,如果有一些策略可以让视觉变成一种prompt的输入的话,便可以避免掉很多的计算量。一种最最直观的思路是,先将视觉转化为文本,然后再将文本输入到LLMs即可。

因此PICA这篇文章主要就是将视觉转化为文本(in-context learning的方式),然后执行一种Knowledge-based QA的工作。如上图的左下角所示,模型的输入是

  • 【N-shot VQA examples】【Question】【Image textual descriptions】,然后输入到冻结的LLMs(GPT3)中来利用大模型的能力。
    在这里插入图片描述

具体来说,图片所转化为的文本将直接和问题拼在一起,然后作为LLM的输入。此处所使用in-context learning的思路需要保证质量和数量,因此作者提出了In-context example selection和Multi-query ensemble两个策略。

  • In-context example selection。适合当前问题的样本应该和当前问题相似,因此利用CLIP(ViT-B/16)来挑选跟问题最相似的n个样本作为few-shots(16个),以尝试让LLMs直接生成回答。
  • Multi-query ensemble。此处是针对n个样本再生成k个prompts,最后用k个答案中的最高值作为输出。

paper:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA
arxiv:https://arxiv.org/abs/2109.05014
code:https://github.com/microsoft/PICa


但由于图像转成caption的过程中会损失一些视觉信息,因此目前一些模型都会先得到跟query更相关的视觉信息,比如加一个Image-Question Matching模块,比如使用attention如Q-former,这些模型将在下一篇博文:基于LLMs的多模态大模型(Flamingo, BLIP-2,KOSMOS-1)中进行整理。

此处略补一篇使用question generation的模型生成相应的问题来迁就图像的文章。

From Images to Textual Prompts: Zero-shot VQA with Frozen Large Language Models
在这里插入图片描述

思路较为直观,如上图所示,首先用caption模型生成图片的caption,然后抽取出其中的名词、形容词等,因为他们很有可能会是答案中的关键词,然后再根据这些词通过一个question generation的模型来生成相应的问题,以优化(question, answer) pair。

paper:https://arxiv.org/abs/2212.10846
code:https://github.com/salesforce/LAVIS/tree/main/projects/img2llm-vqa (LAVIS的实现版本)


在这里插入图片描述
MM-REACT
这个模型可说是以上两个模型思路的综合,其一方面通过一个caption模型将图像变为文本后再输入到大模型,另一方面它会调用chatgpt来调用各种视觉模型以实现多种多模态任务。

如上图所示,具体来说,对于用户输入的query将首先交给chatgpt来判断是否需要调用视觉模型(如caption、ocr、bing search等模型),对于需要调用情况来执行相应的action,否则直接拿chatgpt的输出结构返回给用户就行。

paper:MM-REACT: Prompting ChatGPT for Multimodal Reasoning and Action
arxiv:https://arxiv.org/abs/2303.11381
code:https://github.com/microsoft/MM-REACT


MAGIC
最后再补一篇MAGIC(iMAge-guided text GeneratIon with CLIP),它的优势在于无需多模态的训练数据,只需利用现成的语言模型(例如GPT-2)和图文匹配模型(例如CLIP)就能够以zero-shot的方式高质量地完成多模态生成任务。

为什么它连多模态数据都不要就能训练呢?原因在于它直接使用视觉信息来指导预训练语言模型的生成过程即可,如下图所示,视觉特征参与到语言模型的解码过程即可,即MAGIC Search解码算法。
在这里插入图片描述
既然MAGIC的思路是在LLMs进行生成的时候添加视觉约束,从而使生成的词更贴近视觉,所以最关键的部分在于如下公式,
在这里插入图片描述
该公式由三项组成:

  • model confidence:LLM预测词的概率,就是正常LLMs的输出loss。
  • degeneration penalty:退化惩罚, h v h_v hv [ x < t : v ] [x_{<t}:v] [x<t:v]拼接后的特征,而 h x j h_{x_j} hxj x < j + 1 x_{<j+1} x<j+1序列的特征,通过计算两者的cosine以鼓励每次生成的词会带来一些新的信息量。
  • magic score:视觉相关性,基于CLIP计算所有候选词和图片的softmax相关性,即f函数。

paper:Language Models Can See: Plugging Visual Controls in Text Generation
arxiv:https://arxiv.org/abs/2205.02655
code:https://github.com/yxuansu/MAGIC


下一篇博文将继续整理一些需要训练视觉模型来适配多模态大模型的文章们,这也是目前的主流方向:

  • 基于LLMs的多模态大模型(Flamingo, BLIP-2,KOSMOS-1,ScienceQA)

  • 基于LLMs的多模态大模型(MiniGPT-4,LLaVA,mPLUG-Owl,InstuctBLIP,X-LLM)

  • 基于LLMs的多模态大模型(PALM-E,ArtGPT-4,VPGTrans )

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

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

相关文章

7种PCB走线方式

01电源布局布线相关 数字电路很多时候需要的电流是不连续的&#xff0c;所以对一些高速器件就会产生浪涌电流。 如果电源走线很长&#xff0c;则由于浪涌电流的存在进而会导致高频噪声&#xff0c;而此高频噪声会引入到其他信号中去。 而在高速电路中必然会存在寄生电感和寄…

SSM 如何使用 ShardingSphere 实现数据库分库分表

SSM 如何使用 ShardingSphere 实现数据库分库分表 简介 在大规模数据应用场景下&#xff0c;单一数据库可能无法承载高并发的读写操作。为了解决这个问题&#xff0c;一种常见的方式是使用数据库分库分表技术。ShardingSphere 是一个支持多种关系型数据库的分布式数据库中间件…

带您看懂全国产串口服务器!如何使用一看便知

不可否认&#xff0c;目前工业现场仍然会有很多串口设备的存在&#xff0c;对于这些串口设备&#xff0c;如果想要联网&#xff0c;就必须要转换成网络接口&#xff0c;这时候就会用到全国产串口服务器。 全国产串口服务器提供串口转网络功能&#xff0c;能够将RS-232/485/422串…

盐城北大青鸟“北大青鸟杯”IT精英挑战赛设中心评审隆重开赛

为积极响应北大青鸟总部开展第十届“北大青鸟杯”全国IT精英挑战赛的号召&#xff0c;成就学员们的IT梦想&#xff0c;“北大青鸟杯”IT精英挑战赛&#xff08;设计组&#xff09;盐城卓晨中心评审于2023年5月25日下午1:00在人才大厦306教室正式开赛&#xff01; ​ 赛前&a…

【状态估计】基于随机方法优化PMU优化配置(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

报表控件FastReport使用指南——使用NuGet包创建PDF文档

FastReport 是功能齐全的报表控件&#xff0c;可以帮助开发者可以快速并高效地为.NET&#xff0c;VCL&#xff0c;COM&#xff0c;ActiveX应用程序添加报表支持&#xff0c;由于其独特的编程原则&#xff0c;现在已经成为了Delphi平台最优秀的报表控件&#xff0c;支持将编程开…

低代码平台简介(10家国产化低代码平台详细介绍)

低代码平台&#xff1a;一个号称能在几分钟的时间里开发一套企业内部都可使用的系统开发工具。 本人曾做过一个测试&#xff0c;2人&#xff0c;历时8小时&#xff0c;用低代码平台成功搭建出一套“客户管理系统”。该系统所需要的15个子模块与40个界面。同样的功能如果用传统编…

什么是 sudo,为什么它如此重要?

在当今的技术世界中&#xff0c;Linux 操作系统广泛应用于各种环境&#xff0c;包括个人计算机、服务器和嵌入式设备。作为一种强大的开源操作系统&#xff0c;Linux 提供了丰富的安全功能&#xff0c;以保护系统和用户的数据安全。在 Linux 安全领域中&#xff0c;sudo 是一项…

接口测试的请求和响应

接口测试的请求和响应 在软件开发中&#xff0c;接口测试是必不可少的一环节。接口测试主要涉及到测试请求和响应的过程。请求是指客户端向服务器发送的一些指令或数据&#xff0c;而响应则是服务器对这些请求做出的回应。 请求通常包括请求方法、请求头以及请求体。请求方法有…

信息安全服务资质认证CCRC证书‖中国网络安全审查技术与认证中心

随着CCRC信息安全服务资质持证企业的增加&#xff0c;很多企业看着自己的同行纷纷获的CCRC证书&#xff0c;自身也想进行申报&#xff0c;但由于之前没有做过了解&#xff0c;像个无头苍蝇一样&#xff0c;所以对该资质申报的条件要求、申报的好处又不是那么清楚&#xff0c;接…

重塑DeFi:深入了解Solaris Network

Solaris Network已经在充满活力的去中心化金融&#xff08;DeFi&#xff09;领域崭露头角&#xff0c;成为一家颠覆性的平台&#xff0c;使用户能够创造和交易合成资产。凭借其致力于多链集成、创新功能和以社区为中心的方法&#xff0c;Solaris Network正在改变DeFi的格局&…

【PXIE301-203】基于PXIE总线的4路Cameralink Base图像模拟源

产品概述 PXIE301-203一款基于PXI Express总线的高性能4路CameraLink Base图像模拟源&#xff0c;板卡采用Xilinx的高性能Kintex-7系列FPGA作为主控制器&#xff0c;实现PCI Express总线接口的转换&#xff0c;图像数据的缓存&#xff0c;以及CameraLink图像时序的控制。该板卡…

记录::opencv编译,cmake编译vs动态库

环境&#xff1a;window7&#xff0c;cmake-gui&#xff0c;vs2013 opencv&#xff1a;3.4.4 opencv_contrib&#xff1a;3.4.4&#xff08;nonfree模块&#xff0c;主要为了用sift&#xff09; 链接&#xff1a;https://pan.baidu.com/s/1OXg2IRaxTLTVqM2PVR2ZFA 提取码&a…

2023年企业网盘推荐:实测好用的工具

在数字化时代&#xff0c;企业内部的文件、资料等信息量越来越大。如何高效地管理和共享这些数据&#xff0c;成为企业管理者亟需解决的问题。企业网盘作为一种新型的信息技术工具&#xff0c;以其方便快捷、安全可靠等优点&#xff0c;受到越来越多企业的青睐。 企业网盘工具的…

非计算机专业 3 年外包闭关 180 天入职字节,鬼知道我是怎么过来的

面试 大家都知道&#xff0c;现在的测试面试是越来越难了&#xff01;主要原因无非是两个&#xff1a; 随着测试这个行业的兴起&#xff0c;不管是在家待业的、对自己现在工作不满意的、大学选错专业的、缺钱的、想自己学的等等这些人绝大部分都是选择了去学习测试&#xff01…

Linux:root登陆显示bash-4.2问题处理

情况描述&#xff1a; root账号登陆服务器后&#xff0c;显示如下。 正常显示应该是下面这样&#xff1a; userhostname 原因&#xff1a; 是因为/root目录下没有配置文件 解决&#xff1a; 使用root用户登录&#xff0c;再home目录中创建用户对应的文件夹&#xff0c;mkdi…

【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(二)

【写在前面】 之前和大家分享过一下HarmonyOS应用开发相关问题&#xff0c;今天继续和大家分享&#xff01; 【前提简介】 本文档主要总结HarmonyOS开发过程中可能遇到的一些问题解答&#xff0c;主要围绕HarmonyOS展开&#xff0c;包括但不限于不同API版本HarmonyOS开发、UI…

CopyOnWriteArrayList中add有锁了为什么要copy

CopyOnWriteArrayList中add有锁了为什么要copy 看之前一定要去看之前juc常用中看下volatile的作用 主要还是看写操作&#xff0c;下面是他的源码 /*** Appends the specified element to the end of this list.** param e element to be appended to this list* return {code t…

Nagle算法原理与实现详解

文章目录 背景Nagle算法详解算法实现实现开启与关闭Nagle算法 Nagle算法与延迟ACK参考 背景 TCP的数据流大致可以被分成两类&#xff1a; 交互式数据流 TCP交互数据流指的是&#xff1a;TCP连接中传输的所有数据的总和&#xff0c;包括控制命令&#xff08;用于管理网络中连接…

Lenovo IdeaPad 330-15IKB 81DE电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件配置 硬件型号驱动情况 主板Lenovo IdeaPad 330-15IKB 81DE 处理器Intel(R) Core(TM) i3-8130U CPU 2.20GHz (Kaby Lake Refresh)已驱动 内存M471A1G44AB0-CWE * …