多模态大语言模型综述(中)-算法实用指南

本文是Multimodal Large Language Models: A Survey的译文之算法实用指南部分。

  • 上:摘要、概念与技术要点实用指南
  • 中:算法实用指南(本文)
  • 下: 任务的实用指南(应用)、挑战等

原始信息

  • 标题: Multimodal Large Language Models: A Survey
  • 译文: 多模态大语言模型综述
  • 地址: arxiv.org/pdf/2311.13…
  • 作者: Jiayang Wu , Wensheng Gan, Zefeng Chen , Shicheng Wan , Philip S. Yu

如果您也对AI大模型感兴趣想学习却苦于没有方向👀
小编给自己收藏整理好的学习资料分享出来给大家💖
👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码关注免费领取【保证100%免费】🆓
请添加图片描述

IV. 算法实用指南

多模态的算法可分为两类: 基础模型和大规模多模态预训练模型。基础模态是多模态的基本框架, 许多新的大规模多模态预训练模型都是基于它进行改进的。

下图是论文涉及的算法清单,含模型名字、年份、技术要点、功能及参考编号,以及代码开源情况。

image.png

基础模型

Transformer

Transformer[39]于2017年提出,颠覆了传统的深度学习模型,在机器翻译任务中取得了良好的性能。它因能够在大规模语料库上进行自我监督的预训练,并随后对下游任务进行微调而受到关注。许多预先训练的大规模模型都遵循了这种范式。

Transformer的权重共享特性与输入序列长度无关,因此适用于多模态应用。

模型中的某些模块可以共享权重参数。Transformer中的权重共享概念源于自注意模块和前馈神经网络不受输入序列长度的影响。这种权重共享概念也可以应用于多模态模型。例如,在涉及图像和文本的多模态设置中,从图像训练中学习到的权重参数可以用于文本训练,并且结果仍然有效,有时即使不需要微调。

VIT(vision transformer)

Transformer模型及其自注意机制在自然语言处理(NLP) 领域的卓越性能引起了计算机视觉领域的广泛关注。许多研究已经开始将Transformer机制纳入计算机视觉任务中。

然而,Transformer在输入数据大小方面有局限性,需要仔细考虑输入策略。Google从之前的工作中汲取灵感,提出了视觉转换器(ViT)模型,该模型由强大的计算资源提供支持。ViT模型通过将图像分割成块(例如,将图像分割为16个块)来解决输入大小限制[40]。然后对这些补丁进行处理,并将其转换为Transformer可以通过线性映射处理的输入。这一突破弥补了计算机视觉和NLP之间的差距。与以前的方法相比,ViT不仅使Transformer能够处理图像,而且还引入了更有效的图像特征提取策略。

BEiT

如果ViT可以被视为计算机视觉中Transformer模型的自适应,那么BEiT可以被认为是计算机视觉中BERT的自适应[24]。生成式预训练(Generative pre-training)是自我监督(self-supervised)学习中的一种重要方法和训练目标,在这种学习中,模型学习如何在不依赖标签或手动标注的情况下生成数据。生成预训练在自然语言处理方面取得了重大成功。

BEiT解决了计算机视觉生成式预训练中的两个关键挑战。第一个挑战是如何将图像信息转换为类似于NLP的离散令牌。BEiT使用离散视觉嵌入聚合方法对图像进行离散化。第二个挑战是如何将图像信息有效地纳入预训练过程。BEiT利用完善的ViT结构来处理图像信息。通过解决这两点,BEiT成功地将掩蔽语言建模(MLM)和掩蔽图像建模(MIM)方法应用于计算机视觉领域,将生成预训练引入计算机视觉领域并实现了大规模的自监督预训练。

大规模多模态预训练模型

Visual ChatGPT

Visual ChatGPT[38]结合了不同的视觉基础模型(VFM)来处理各种视觉任务,例如图像理解和生成。不仅允许用户发送和接收语言,还允许用户接收图像,从而实现复杂的视觉问题和指令。该系统还引入了Prompt Manager,它有助于利用VFM并以迭代的方式接收他们的反馈。这个迭代过程一直持续到系统满足用户的要求或达到结束条件。通过提示将视觉模型信息注入ChatGPT,系统将视觉特征与文本空间对齐,增强了ChatGPT的视觉理解和生成能力。

Visual ChatGPT具有处理语言和图像之外的模态的能力。虽然该系统最初专注于语言和图像,但它为融入视频或语音等其他模态开辟了可能性。这种灵活性消除了每次引入新的模态或功能时训练全新的多模态模型的需要。

MM-REACT

MM-REACT[41]将ChatGPT与各种视觉模型相结合,以实现多模态任务,主要通过VQA格式进行演示。在回答问题时,ChatGPT将视觉模型作为工具,并根据具体问题决定是否使用它们。

该系统与之前使用VQA的字幕模型和语言图像模型的作品有相似之处。在这些方法中,字幕模型将图像转换为文本,然后由更大的模型用作证据来生成答案。然而,MM-REACT在自主决定是否调用视觉模型的能力方面有所不同。

Frozen

Frozen[42]介绍了在多模态上下文学习中使用LLM的新概念。具体方法包括使用视觉编码器(visual encoder)将图像转换为嵌入(embedding)。然后将这些嵌入与文本连接,创建一个集成了两种模态的组合数据格式。随后,该模型使用自回归方法来预测下一个令牌。在整个训练过程中,LLM保持冻结状态,而视觉编码器是可训练的。这允许最终模型保留其语言建模能力,同时获得在多模态环境中执行上下文学习的能力。

BLIP-2

BLIP-2[43]在编码图像时采用了与Flamingo类似的方法,利用Qformer模型提取图像特征。Qformer扮演的角色类似于火烈鸟的感知重采样器。然后,该模型通过交叉注意力促进图像-文本交互。训练期间,BLIP-2冻结视觉编码器和LLM,并且仅微调Qformer。然而,当对特定的下游任务数据集进行微调时,BLIP-2解锁视觉编码器,并将其与Qformer一起进行微调。

BLIP-2的训练过程包括两个阶段

  1. 只有Qformer和视觉编码器(visual encoder)参加训练。它们使用经典的多模态预训练任务进行训练,如图像文本匹配、对比学习和基于图像的文本生成。这个阶段使Qformer能够学习如何从视觉编码器中快速提取与文本相关的特征。
  2. 将Qformer编码的矢量插入LLM中用于字幕生成。BLIP-2在VQA的零样本和微调方案中都表现出了良好的性能。对于同一任务,它在不同数据集之间具有良好的可转移性。

LLaMA-Adapter

LLaMA-Adapter[44] 通过插入适配器在LLaMA中引入了高效的微调,可以扩展到多模态场景。适配器是自适应提示向量,作为可调参数连接到Transformer的最后一层。当应用于多模态设置时,首先使用冻结视觉编码器将图像编码为多尺度特征向量。然后,在将这些向量按元素添加到自适应提示向量之前,通过级联和投影操作来聚合这些向量。

MiniGPT-4

MiniGPT-4 [45] 是基于BLIP-2和Vicuna的组合的GPT-4的某些功能的复制。它直接从BLIP-2传输Qformer和视觉编码器,并将它们与LLM一起冻结,只在视觉侧留下一个线性层进行微调。这种可调参数的压缩导致模型大小为15M。

此外,还采用了两阶段微调策略: i).字幕(Caption)生成被用作训练任务。该模型生成多个字幕,然后使用ChatGPT重写这些字幕,以创建详细而生动的描述。ii).构造一组高质量的图像-文本对以用于进一步的微调。这组图像-文本对用于细化模型。

LLaVA [46]

LLaVA[46]和MiniGPT-4是相似的,因为它们都旨在实现多模态指令的微调。

然而,它们在数据生成和训练策略方面有所不同,导致了LLaVA模型的发展。在数据生成中,LLaVA利用GPT-4创建各种指令微调数据,包括多回合QA、图像描述和复杂推理任务。这确保了模型能够处理广泛的查询。由于GPT-4的当前接口只接受文本输入,因此需要将图像信息转换为文本格式。本研究使用为COCO数据集中的每个图像提供的五个标题和边界框坐标作为输入到GPT-4的文本描述。

关于训练策略,LLaVA采用两阶段方法。i) 根据特定规则,使用从cc3m数据集过滤的600000个图像-文本对对对模型进行了微调。微调过程冻结了视觉和语言模型,只专注于微调线性层。ii)使用上述数据生成策略,生成160000个指令微调数据样本。然后使用语言模型丢失对模型进行进一步的微调。在这个阶段,视觉模型被冻结,线性层和语言模型都被微调。

PICa

PICa[47]是第一次尝试使用LLM来解决VQA任务。其目的是使LLM能够理解和处理图像信息。为了实现这一点,先前的研究采用了字幕模型将图像转换为相应的文本描述。然后,将标题和问题一起输入GPT-3,形成三元组(问题、标题、答案),并利用上下文学习来训练GPT-3回答新问题。在为数不多的情境学习场景中,PICa取得了比 Frozen 更好的成绩,但仍落后于Flamingo。这可归因于在将图像转换为字幕期间视觉信息的丢失。

视觉信息在回答问题中起着至关重要的作用,将图像转换为文本的过程不可避免地会导致视觉细节和语义的损失,从而限制模型的性能。

PNP-VQA

PNP-VQA[48]利用字幕模型和预训练语言模型(PLM)来处理VQA任务。然而,在PLM的选择方面,它与PICa不同,因为它采用了一个名为UnifiedQAv2的问答模型。PNP-VQA专注于实现零样本VQA能力。为了解决字幕中图像信息丢失的问题,PNPVQA在生成字幕之前引入了图像问题匹配模块。该模块识别图像中与给定问题最相关的补丁。然后专门为这些选定的补丁生成字幕。这些标题补丁对,以及原始问题,被用作上下文,并被输入到UnifiedQAv2模型中。这种方法通过结合相关的图像补丁作为上下文,确保生成的字幕与问题密切相关。通过结合图像问题匹配模块并利用UnifiedQAv2作为PLM,PNP-VQA旨在提高生成的VQA字幕的相关性和准确性。这种策略允许模型有效地利用图像和问题信息,以便生成更具上下文相关性的答案。

Img2LLM

Img2LLM[49]旨在解决将LLM用于VQA任务时的两个主要问题: 1) 模态断开,LLM无法有效处理视觉信息;2) 任务断开,通过文本生成预先训练的LLM在没有微调的情况下难以使用VQA的字幕。为了克服这两问题,作者建议通过(问答)对传递视觉信息。具体地,该方法涉及使用字幕模型或类似于PNP-VQA的方法来生成图像的字幕。从这些字幕(captions)中,可以提取出可能作为某些问题答案的相关单词,如名词和形容词。随后,使用问题生成模型来生成相应的问题,从而创建问题回答对。这些配对在上下文学习中起到示范作用,帮助LLM回答有关给定图像的问题。通过问答对传输视觉信息,Img2LLM解决了模态断开和任务断开问题,使LLM能够更好地利用视觉信息执行VQA任务。

术语

  • VQA:自由形式和开放式视觉问答
  • PNP-VQA:Plug-and-Play VQA, 零样本训练的VQA

请添加图片描述

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

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

相关文章

拓扑排序算法

拓扑排序算法 上图意思为在我想要完成C7这件事之前我必须先完成事件C1,在完成C5这件事之前我必须先完成事件C6和C3.由图可以提看出拓扑序列是不唯一的。 有向图拓扑排序算法基本步骤: 1.从图中选择一一个入入度为0的顶点, 输出该顶点; 2.从图中删除该…

MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例

目录 深入理解 JavaScript 中的 MutationObserver:原理与实战案例 一、MutationObserver 简介 二、MutationObserver 的工作原理 1、基本用法 2、observe 方法的配置项 三、实战案例 案例 1:监控动态内容加载 案例 2:监控属性变化 案…

springboot 项目获取 yaml/yml (或 properties)配置文件信息

文章目录 springboot 项目获取配置文件信息前言1、 Autowired 注入 Environment类2、基础用法,使用Value注解直接注入配置信息3、进阶方法(推荐使用)拓展:springboot 集成配置中心 - 以 Apollo 为例 springboot 项目获取配置文件信…

通信工程学习:什么是接入网(AN)中的TF传送功能

接入网(AN)中的TF传送功能 在通信工程中,TF(Transfer Function)传送功能是指为接入网(AN)不同位置之间提供通道和传输介质,以实现数据的有效传输。以下是关于TF传送功能的详细解释&a…

PMP--一模--解题--91-100

文章目录 13.干系人管理91、 [单选] 在项目执行期间,一名外部干系人反对一项重大范围变更。除非重新评估干系人的决定,否则项目进展将受到影响。项目经理下一步该怎么做? 5.范围管理92、 [单选] 一客户给你一复杂项目的采购工作说明书&#x…

配置全新服务器深度学习一套流程

目录 1.安装anaconda2.配置cuda3.配置cudnn4.配置新的pytorch环境5.安装rdkit包6.小问题记录 1.安装anaconda 直接参考视频 总结: 1.下载anaconda安装包,尽量不下载最新的版本 2.bash 对应安装包,一直回车,yes 3.配置环境vim ~/.…

实战千问2大模型第三天——Qwen2-VL-7B(多模态)视频检测和批处理代码测试

画面描述:这个视频中,一位穿着蓝色西装的女性站在室内,背景中可以看到一些装饰品和植物。她双手交叉放在身前,面带微笑,似乎在进行一场演讲或主持活动。她的服装整洁,显得非常专业和自信。 一、简介 阿里通义千问开源新一代视觉语言模型Qwen2-VL。其中,Qwen2-VL-72B在大…

在k8s中,客户端访问服务的链路流程,ingress--->service--->deployment--->pod--->container

ingress是一个API资源。 其核心作用是nginx网页服务器。 当客户端访问服务器不同的url时, 用不同的location提供服务。 在k8s之外,nginx的配置一般如下: http {server {listen 80;server_name localhost;location / {root html; …

鸿蒙开发入门day19-使用NDK接口构建UI(一)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,还请三连支持一波哇ヾ(@^∇^@)ノ) 目录 NDK接口概述 整体架构 开发流程 接入ArkTS页面 占位组件 NDK组…

unity3d入门教程六

unity3d入门教程六 15.1预制体15.2编辑预制体15.3在场景中编辑15.4动态创建实例15.5实例的销毁16.1(练习)子弹发射16.2定时器16.3键盘事件 15.1预制体 火神山10天建成,使用了预制体技术 一个个小房间都是事先建造好的,最后吊车装…

ICPC网络赛 以及ACM训练总结

一、训练反思 关于我自己暑假期间训练的反思,我承认无论是因为什么原因,我自己浪费我整整一个暑假的时间,暑假期间正是我们集训的关键时期,这期间没有任何的事情来打扰我们学习,而我却熬夜,白天训练懈怠&a…

在服务器上开Juypter Lab教程(远程访问)

在服务器上开Juypter Lab教程(远程访问) 文章目录 在服务器上开Juypter Lab教程(远程访问)一、安装anaconda1、安装anaconda2、提权限3、运行4、同意协议5、安装6、是否要自动初始化 conda7、结束8、检查 二、Anaconda安装Pytorch…

python 自动化测试接口

比如我们要测试接口:identity/chatRecords/pages 已在Postman中有,那我们就可以直接从里面复制出Python脚本 新建: pagerequest.py import requests import jsonurl "http://192.168.31.132:70/identity/chatRecords/pages"payl…

基于AgentUniverse在金融场景中的多智能体应用探索

基于AgentUniverse在金融场景中的多智能体应用探索 1.基于大模型智能体超级状态机 智能体、多智能体都是当下的技术热点,但作为一个技术人应该理解,所有的技术都有自己所针对的问题、及其能力边界,并不存在普适的、放诸业务场景皆 work 的技术方案。在这里尝试区分,从大模…

[数据集][目标检测]高铁受电弓检测数据集VOC+YOLO格式1245张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1245 标注数量(xml文件个数):1245 标注数量(txt文件个数):1245 标注…

2024年华为9月4日秋招笔试真题题解

2024年华为0904秋招笔试真题 二叉树消消乐好友推荐系统维修工力扣上类似的题--K站中转内最便宜的航班 二叉树消消乐 题目描述 给定原始二叉树和参照二叉树(输入的二叉树均为满二叉树,二叉树节点的值范围为[1,1000],二叉树的深度不超过1000)&#xff0c…

线性表之单链表

在上一节我们学习了线性表中的顺序表,今天我们来学习一下线性表中的另一种结构——单链表 前言 我们在之前已经初步了解了数据结构中的两种逻辑结构,但线性结构中并非只有顺序表一种,它还有不少兄弟姐妹,今天我们再来学习一下单链…

Python基础语法(3)下

列表和元组 列表是什么,元组是什么 编程中,经常需要使用变量,来保存/表示数据。变量就是内存空间,用来表示或者存储数据。 如果代码中需要表示的数据个数比较少,我们直接创建多个变量即可。 num1 10 num2 20 num3…

[数据集][目标检测]葡萄成熟度检测数据集VOC+YOLO格式1123张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1123 标注数量(xml文件个数):1123 标注数量(txt文件个数):1123 标注…

【重学 MySQL】二十九、函数的理解

【重学 MySQL】二十九、函数的理解 什么是函数不同 DBMS 函数的差异函数名称和参数功能实现数据类型支持性能和优化兼容性和可移植性 MySQL 的内置函数及分类单行函数多行函数(聚合函数)使用注意事项 什么是函数 函数(Function)在…