多模态大语言模型的 (R) 演变:调查

news2024/11/22 10:57:11

目录

  • 1. Introduction
  • 2. 赋予LLMs多模态能力
    • 2.1 大型语言模型
    • 2.2 视觉编码器
    • 2.3 视觉到语言适配器
    • 2.4 多模式训练
  • 3. 使用 MLLM 处理视觉任务

连接文本和视觉模式在生成智能中起着至关重要的作用。因此,受大型语言模型成功的启发,大量研究工作致力于多模态大型语言模型(MLLM)的开发。这些模型可以无缝集成视觉和文本模式作为输入和输出,同时提供基于对话的界面和指令跟踪功能。该论文对最近基于视觉的 MLLM 进行了全面回顾,分析了它们的架构选择、多模态对齐策略和训练技术。论文对这些模型进行了广泛的任务的详细分析,包括视觉基础、图像生成和编辑、视觉理解和特定领域的应用。论文还编译和描述训练数据集和评估基准,在性能和计算要求方面对现有模型进行比较。总的来说,这项调研全面概述了当前的技术水平,为未来的 MLLM 奠定了基础。
在这里插入图片描述

1. Introduction

注意力算子和 Transformer 架构的引入(Vaswani 等人,2017)使得能够创建能够处理越来越大规模的各种模式的模型。这一进步很大程度上归功于算子的多功能性和架构的适应性。最初,这一突破被用于特定于语言的模型(Devlin 等人,2018 年;Brown 等人,2020 年),但很快扩展到支持视觉处理主干(Dosovitskiy 等人,2021 年),并最终用于集成多种模式的模型(Radford 等人,2021)。
复杂的大型语言模型(LLM)的激增,特别是它们的能力情境学习鼓励研究人员扩大这些模型的范围,以涵盖多种模式,包括输入和输出。这种扩展导致了 GPT-4V(Achiam 等人,2023)和 Gemini(Anil 等人,2023)等尖端模型的开发,展示了最先进的性能。多模态大语言模型(MLLM)的开发需要合并视觉和语言的单模态架构,通过视觉到语言适配器在它们之间建立有效的连接,并设计创新的培训方法。这些方法对于确保模态一致性和准确遵循指令的能力至关重要。论文的目标是提供 MLLM 景观的详尽概述,重点关注利用视觉模态的模型。这一概述既是对当前状态的更新,也是未来发展的灵感来源。论文定义这些模型的三个核心方面:它们的架构、训练方法以及它们设计要执行的任务。论文首先详细介绍为LLMs配备跨模式功能的视觉编码器和适配器模块的普遍选择。接下来,论文深入研究训练过程和所使用的数据。然后探讨 MLLM 解决的任务范围。最后讨论了该领域持续存在的挑战以及未来研究的有希望的方向。补充材料中报告了有关训练数据、评估数据集以及性能和计算要求的更多详细信息。

2. 赋予LLMs多模态能力

2.1 大型语言模型

上下文学习,即在提示前添加一些示例来演示LLMs的期望输出,可以改善它的性能,尤其是在看不见的任务上。通过向LLMs提供每个训练样本所需任务的自然语言描述,可以进一步增强泛化能力。这种技术被称为指令调整(Chung et al., 2022;Wang et al., 2022b,a;Jiang et al., 2024),事实证明对于使LLMs的行为与人类的行为保持一致至关重要,目前赋予最先进的LLMs权力,最终通过人类反馈的强化学习(RLHF)得到提升(Ouyang et al., 2022; Achiam et al., 2023; Chen et al., 2023j; Bai et al., 2023a)。
PEFT:当预训练的 LLM 需要适应特定领域或应用时,参数高效微调 (PEFT) 方案是训练整个 LLM 的重要替代方案,因为这些策略仅引入一些新参数。其中,提示调整(Hambardzumyan et al., 2021; Lester et al., 2021; Li and Liang, 2021; Liu et al., 2023j)学习一小组向量,作为输入之前的软提示输入模型文本。不同的是,LoRA(Hu et al., 2021)通过学习低秩矩阵来限制新权重的数量。该技术与 QLoRA (Dettmers et al., 2023) 等量化方法正交,与通常的半精度权重相比,这进一步减少了 LLM 的内存占用,迈向多模态LLM。 MLLM 的发展遵循与 LLM 类似的路径,Flamingo(Alayrac 等人,2022)是第一个在视觉语言领域探索大规模情境学习的人。然后,视觉指令调整(Liu et al., 2023e)很快成为多模态领域最突出的训练范例,以及使用 PEFT 技术来微调 LLM。任何 MLLM 至少包含三个组件(图 1):充当用户界面的 LLM 主干、一个(或多个)视觉编码器以及一个或多个视觉到语言适配器模块。 LLM 主干网络的热门选择通常属于 LLaMA 家族(Touvron 等人,2023a,b),因为它们的权重可以自由访问,它们仅接受公共数据的训练,并且它们拥有不同的大小以适应不同的用例。此外,它们的衍生版本也很受欢迎,例如Alpaca(Taori et al., 2023)和Vicuna(Chiang et al., 2023)。前者根据使用 GPT-3 编写的指令对 LLaMA 进行微调,而后者则利用与 ChatGPT 的用户共享对话(OpenAI,2022)。替代方案包括 OPT (Zhang et al., 2022b)、Magneto (Wang et al., 2023b)、MPT (MosaicML, 2023) 和指令调整 (Chung et al., 2022) 或多语言 (Xue et al., 2023)。 2020)T5 风格(Raffel et al., 2020),一种针对多个任务进行预训练的编码器-解码器语言模型。表 1 报告了本次调查中涵盖的 MLLM 的摘要,指出了每个模型所基于的 LLM、视觉编码器、用于连接视觉和语言组件的适配器、MLLM 是否经过视觉指令调整训练或不,以及主要任务和功能的简短列表。

2.2 视觉编码器

在MLLM中,关键组件之一是视觉编码器,它是专门为LLM提供视觉提取特征而设计的。通常采用冻结的预训练视觉编码器,同时仅训练将视觉特征与底层 LLM 连接起来的可学习界面。最常用的视觉编码器基于预先训练的 Vision Transformer (ViT) 模型,具有基于 CLIP 的目标,以利用 CLIP 嵌入的固有对齐。流行的选择是 CLIP 的 ViT-L 模型(Radford 等人,2021)、OpenCLIP 的 ViT-H 主干网(Wortsman 等人,2022)以及 ViT-g 版本。 CLIP 和 OpenCLIP 编码器根据从网络收集的图像进行训练,采用对比方法来对齐正确的图像文本对。相反,EVA-CLIP 是一个模型系列,为训练 CLIP 模型提供了实用且有效的解决方案。特别是,EVA 模型经过预训练,可以根据可见图像块重建遮蔽的图像文本对齐的视觉特征。如(Li et al., 2023f)所示,更强的图像编码器可以带来更好的性能。基于这一见解,Lin 等人。 (2023b) 和高等人。 (2024)提出了一个冻结视觉主干的集合来捕获鲁棒的视觉表示和不同级别的信息粒度。同时,PaLI 模型(Chen 等人,2023i,g)注意到语言和视觉参数之间的不平衡,建议将视觉主干分别缩放到 4 和 220 亿参数 ViT。通过在训练期间保持视觉编码器冻结的常见做法,可以利用如此庞大而强大的模型,如(Li et al., 2023f; Huang et al., 2023a; Gau et al., 2023; Chen等人,2023f)。然而,采用冻结视觉编码器有一些局限性,主要是由于参数数量有限,导致视觉和语言模态之间的对齐不充分。具体来说,从视觉模型中提取的密集特征可能会使细粒度的图像信息变得碎片化,并且由于输入到语言模型时的序列较长而带来大量的计算量。为了缓解这个问题,其他方法(Ye 等人,2023c,d)采用了两阶段训练范例。在第一阶段,他们整合了可训练的视觉主干,同时保持预训练的LLMs冻结。根据他们的发现,使视觉编码器可训练可以提高视觉问答或视觉描述等任务的性能。然而,它可能会导致其他任务的性能下降,表明一定程度的遗忘和对一般视觉表示的损害。

2.3 视觉到语言适配器

来自不同模态的输入的同时存在强调需要合并一个能够在这些单模态域内描绘潜在对应关系的模块。这些模块被称为“适配器”,旨在促进视觉和文本域之间的互操作性。常见的 MLLM 中使用了一系列不同的适配器,从线性层或 MLP 等基本架构到基于 Transformer 的解决方案等高级方法(以 Q-Former 模型为例),以及添加到 LLM 的条件交叉注意层。
线性和 MLP 投影:将视觉输入投影到文本嵌入的最直接方法涉及学习线性映射,它将视觉特征转换为与文本对应物相同的维度。 LLaMA-Adapter (Gao et al., 2023) 和 FROMAGe (Koh et al., 2023b) 等一些方法仅采用单个线性层来执行多模态连接,而 LLaVA-1.5 (Liu et al., 2023d) 采用两层 MLP,显示出改进的多模态能力。尽管线性投影在早期 MLLM 中被广泛采用,但即使在对视觉输入有更深入理解的最新方法中,线性投影的使用也被证明非常有效(Chen 等人,2023f;Lin 等人,2023a;Wang 等人, 2023c;尤等人,2023;赵等人,2023a)。因此,这是一种简单而有效的技术,可以将视觉特征与文本特征对齐。另一种方法(Cha et al., 2023)提出用卷积层替换线性层,展示了适度的改进。
Q-former:它是 BLIP-2 中提出的基于 Transformer 的模型(Li 等人,2023f),然后用于其他几种方法(Chen 等人,2023d;Dai 等人,2023;Hu 等人,2024)。它的特点是其适应性强的架构,由两个共享相互自我关注层的 Transformer 块组成,促进视觉和文本表示之间的对齐过程。它涉及一组可学习的查询,这些查询在自注意力层中交互,并通过交叉注意力机制与视觉特征交互。文本和视觉元素通过模块内共享的 selfattention 进行通信。从 Q-Former 中汲取灵感,推出了各种修改版本。在这方面,mPLUG-Owl 模型(Ye 等人,2023c,d)简化了 Q-Former 架构,并提出了一种视觉抽象器组件,该组件通过将视觉信息压缩为不同的可学习标记来进行操作,以导出语义上更丰富的视觉表示。同样,Qwen-VL(Bai et al., 2023b)使用单层交叉注意模块和可学习查询来压缩视觉特征,还结合了 2D 位置编码。

额外的交叉注意力层:这种方法已在 Flamingo(Alayrac 等人,2022)中提出,在 LLM 现有的预训练层中集成了密集的交叉注意力块。新添加的层通常与零初始化 tanh 门控机制相结合,以确保在初始化时,条件模型充当其原始版本。使用额外的交叉注意力层需要从头开始训练它们,与其他替代方案相比,增加了可训练参数的数量。为了降低计算复杂性,该策略通常与基于 Perceiver 的组件配对(Jaegle 等人,2021),该组件在将视觉标记输入 LLM 之前减少视觉标记的数量。自推出以来,多个模型(Awadalla 等人,2023;Chen 等人,2023b;Laurençon 等人,2023;Li 等人,2023a)采用这种技术将视觉模态与底层 LLM 连接起来,展示了增强的训练稳定性和性能提高。

2.4 多模式训练

从预训练的LLM开始,MLLM的训练经历单阶段或两阶段过程。在这两种情况下,都使用标准交叉熵损失来预测下一个标记,作为自回归目标。单阶段训练。 LLaMA-Adapter(Gao 等人,2023)探索了这种可能性,它引入了额外的可训练参数来封装视觉知识并同时管理纯文本指令学习。为了实现这一目标,该模型使用图像文本对和指令进行联合训练,对单独的参数进行操作。同时,(Koh et al., 2023b)中提出的模型通过结合图像文本检索的两个对比损失来调整最终的损失函数。在训练期间,仅更新三个线性层。另一方面,Kosmos1(Huang et al., 2023a)考虑了冻结的视觉主干,并从头开始训练 1.3B 参数的语言模型。相反,Flamingo(Alayrac 等人,2022)及其开源变体(Awadalla 等人,2023;Laurençon 等人,2023)训练交叉注意力层和基于感知器的组件,以将视觉特征与冻结的LLM块。此外,Otter(Li et al., 2023a)扩展了 Flamingo 的训练,以增强其在上下文中的能力。
考虑到当前可用的训练数据量,SPHINX-X(Gao 等人,2024)等方法选择执行单个一体化训练阶段,在该阶段更新所有模型组件,也可能使用纯文本数据来更新所有模型组件。
两阶段训练:在两个训练阶段的第一个阶段,目标是将图像特征与文本嵌入空间对齐。在此阶段之后,输出往往是支离破碎且不连贯的。因此,第二步是提高多模态会话能力。 LLaVA(Liu et al., 2023e,d)是最早引入视觉指令跟随训练方案的人之一,该方案作为第二个训练阶段执行,更新多模式适配器和 LLM 的参数。相反,在第一阶段,只有多模式适配器是可训练的。不同的是,MiniGPT4(Zhu et al., 2023a)因仅训练负责跨两个阶段的多模态对齐的线性层而闻名。在第二阶段,它使用在第一阶段之后通过模型本身收集和提炼的过滤数据。另一种方法,如 InstructBLIP(Dai 等人,2023)中所演示的,涉及冻结视觉编码器和 LLM。在两个训练阶段,只有 Q-Former 和连接模块是可训练的。与之前视觉主干保持冻结的方法相比,mPLUG-Owl(Ye et al., 2023c,d)在初始阶段对其进行更新,有助于捕获低级和高级视觉信息。此外,在第二阶段,联合使用纯文本数据和多模态数据来提高对齐度。不同的是,Shikra(Chen et al., 2023f)更新了两个阶段的所有权重,唯一的例外是保持冻结的视觉主干。训练数据。在第一个(或单个)训练阶段,通常采用来自不同来源的图像文本对,使用 LAION-2B(Schuhmann 等人,2022)、LAION400M(Schuhmann 等人,2021)、Conceptual Captions(Sharma)等数据集等人,2018)、COYO-700M(Byeon 等人,2022)和 DataComp(Gadre 等人,2023)。一些方法(Lin 等人,2023a)将这些方法与一个或多个数据集结合使用,这些数据集的特征是文本与通常从网络上抓取的图像交错,例如 WebLI(Chen 等人,2023i)、MMC4(Zhu 等人, 2023d)、MMDialog(Feng 等人,2023b)和 OBELICS(Laurençon 等人,2023)。为了解决先前数据集中的偏差和噪声,StableLLaVA(Li et al., 2023h)引入了新收集的数据以在第一阶段使用。该方法利用 ChatGPT 生成包括图像生成提示和基于内容的对话的数据,并利用稳定扩散(Rombach 等人,2022)生成相应的图像。相反,后续阶段利用数据集进行视觉指令调整。其中,常用的 LLaVA-Instruct (Liu et al., 2023e) 使用 GPT-4 生成的指令扩展了 COCO (Lin et al., 2014)。跟随这一趋势,赵等人 (2023a) 通过合并手动和生成的数据来扩大维度,具有高质量和多样性。此外,还提出了其他多轮对话数据集,例如 (Dai et al., 2023) 中引入的数据集,它将 26 个公开可用的数据集转换为其视觉指令,LRV-Instruction (Liu et al., 2023c) 的目标是通过更强大的指令来减少幻觉,而 LLaVAR(Zhang 等人,2023h)则专注于文本丰富的图像。

3. 使用 MLLM 处理视觉任务

在这里插入图片描述
在这里插入图片描述
结论和未来方向
论文全面概述了 MLLM 的最新发展,首先关注如何为 LLM 配备多模式功能,然后探讨这些模型解决的主要任务。基于所提出的分析,下面概述了重要的开放挑战和有希望的未来研究方向,以进一步增强 MLLM 的能力。
纠正幻觉:多项研究(Liu 等人,2023b;Zhu 等人,2023a)表明 MLLM 往往表现出较高的幻觉率,尤其是在生成较长字幕时。虽然正在出现一些解决方案来缓解这个问题(Liu et al., 2023b; Wang et al., 2023a; Wu et al., 2023c; Yin et al., 2023a),但理解和纠正幻觉的根本原因仍然是一个重要的问题。值得解决的开放挑战,以允许这些模型在更关键的环境(例如医学)中应用并保证其准确性和可信度。
防止有害和偏见的产生:确保大规模模型的安全性和公平性是社区的根本利益。最近的研究表明,基于网络爬虫数据训练的模型很容易生成不适当和有偏见的内容。尽管最近正在努力减少文本到图像生成模型中的这种现象(Schramowski 等人,2023;Friedrich 等人,2023),但需要进一步探索以防止 MLLM 中出现相同的行为(Pi 等人,2023)。 ,2024)。
减少计算负载:MLLM 的计算要求很高。需要有效的策略(Chu et al., 2024)来减少计算需求并实现 MLLM 更容易的开发。可能的方向包括减少模型规模和数据量方面的训练要求以及优化推理阶段。

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

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

相关文章

206.翻转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3: 输入:head [] 输…

仿牛客网开发笔记

用到Spring的 一些 核心技术 Spring Framework Spring Core IOC 、AOP > 管理对象的一种思想 IOC > 面向对象的管理思想 AOP > 面向切面的管理思想Spring Data Access 》访问数据库的功能 Transaction、Spring MyBatis Transaction 》管理事务Spring MyBat…

Offer必备算法16_字符串_四道力扣题详解(由易到难)

目录 ①力扣14. 最长公共前缀 解析代码1(两两比较) 解析代码2(统一比较) ②力扣5. 最长回文子串 解析代码(中心拓展) ③力扣67. 二进制求和 解析代码 ④力扣43. 字符串相乘 解析代码(无…

Kotlin runBlocking CoroutineScope synchronized简单死锁场景

Kotlin runBlocking CoroutineScope synchronized简单死锁场景 import kotlinx.coroutines.*fun main(args: Array<String>) {runBlocking {val lock1 Any()val lock2 Any()CoroutineScope(Dispatchers.IO).launch {repeat(10) {println("A-$it 申请 lock1...&quo…

【linux】环境基础|开发工具|gcc|yum|vim|gdb|make|git

目录 ​编辑 Linux 软件包管理器 yum 软件包: 操作&#xff1a; 拓展&#xff1a;lrzsz简介 Linux开发工具 Linux编辑器-vim使用 vim 的基本概念 命令模式 插入模式 底行模式 vim 命令模式的操作指令 vim 底行模式的操作命令 Linux编译器-gcc/g使用 功能 格…

Java学习六—面向对象

一、关于面向对象 1.1简介 Java 是一种面向对象编程语言&#xff0c;其核心思想是面向对象编程&#xff08;Object-Oriented Programming&#xff0c;OOP&#xff09;。 面向对象编程是一种程序设计范式&#xff0c;它将数据与操作数据的方法&#xff08;函数&#xff09;捆…

有了std::thread,为什么还需要引入std::jthread?

C进阶专栏&#xff1a;http://t.csdnimg.cn/HGkeZ 目录 1.前言 2.std::is_invocable_v 3.std::jthread 3.1.构造函数 3.2.std::jthread无需join/detach使用实例 3.3.std::jthread处理外部请求中断实 3.4.处理中断请求示例代码 4.特性 5.总结 1.前言 C11以来提供了C原…

蓝桥杯刷题(十二)

1.答疑 代码 n int(input()) L [] for i in range(n):a,b,c map(int,input().split())A ab # 进入和答疑时间B abc # 个人总用时L.append([A,B]) L.sort(keylambda x:x[1]) # 个人总用时短的优先 ans tmp 0 # ans为发消息时刻&#xff0c;tmp为前一个人的总用时 for i …

【位运算】【 数学】【 哈希映射】2857. 统计距离为 k 的点对

本文涉及知识点 位运算 数学 哈希映射 LeetCode 2857. 统计距离为 k 的点对 给你一个 二维 整数数组 coordinates 和一个整数 k &#xff0c;其中 coordinates[i] [xi, yi] 是第 i 个点在二维平面里的坐标。 我们定义两个点 (x1, y1) 和 (x2, y2) 的 距离 为 (x1 XOR x2) …

数学建模-邢台学院

文章目录 1、随机抽取的号码在总体的排序2、两端间隔对称模型 1、随机抽取的号码在总体的排序 10个号码从小到大重新排列 [ x 0 , x ] [x_0, x] [x0​,x] 区间内全部整数值 ~ 总体 x 1 , x 2 , … , x 10 总体的一个样本 x_1, x_2, … , x_{10} ~ 总体的一个样本 x1​,x2​,……

【Leetcode每日一题】 递归 - 反转链表(难度⭐)(36)

1. 题目解析 题目链接&#xff1a;206. 反转链表 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 一、递归函数的核心任务 递归函数的主要职责是接受一个链表的头指针&#xff0c;并返回该链表逆序后的新头结点。递归…

两台电脑简单的通信过程详解(局域网,同网段)

来源&#xff1a; https://www.bilibili.com/video/BV1BA411373b/ 一、原理 描述过程&#xff1a;分别以PC1、PC2、PC2、PC1的角度 二、eNSP测试 1.连接设备 2.查看PC1情况 3.打开抓包后&#xff0c;再ping一下PC2 4.PC1发送ARP报文 broadcast 意思为广播(IP都是f,意为255…

return code 1 from org.apache.hadoop.hive.ql.ddl.DDLTask

Bug信息 Error: Error while compiling statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.ddl.DDLTask (state=08S01,code=1)Bug产生的代码 修复hive表分区: msck repair table xxxBug原因排查 分区数量过大 这个是网上查看的说如果一次…

2024.3.21 如何将idea的注释设置为在首字母前开始而不是句首

2024.3.21 如何将idea的注释设置为在首字母前开始而不是句首 两种写法的差异 修改办法 将右下角的勾去掉即可。

redis关联和非关联

1.1.2.关联和非关联 传统数据库的表与表之间往往存在关联&#xff0c;例如外键&#xff1a; 而非关系型数据库不存在关联关系&#xff0c;要维护关系要么靠代码中的业务逻辑&#xff0c;要么靠数据之间的耦合&#xff1a; {id: 1,name: "张三",orders: [{id: 1,ite…

手拉手整合Springboot3+RocketMQ2.3

RocketMQ 基本概念 消息模型Message Model RocketMQ 主要由 Producer、Broker、Consumer 三部分组成&#xff0c;其中 Producer 负责生产消息&#xff0c;Consumer 负责消费消息&#xff0c;Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器&#xff0c;每个 Bro…

【报错】使用gradio渲染html页面无法加载本地图片

【报错】使用gradio渲染html页面无法加载本地图片 【报错】使用gradio渲染html页面无法加载本地图片[HTML] how to load local image by html output #884成功解决 【报错】使用gradio渲染html页面无法加载本地图片 在使用gradio框架渲染html页面&#xff0c;使用绝对路径&quo…

获取cookie

在Servlet9里设置cookie 在Servlet10里进行获取 访问Servlet9.do&#xff0c;再访问Servlet10.do

图书馆RFID(射频识别)数据模型压缩/解压缩算法实现小工具

1. 前言 最近闲来无聊&#xff0c;看了一下《图书馆射频识别数据模型第1部分&#xff1a;数据元素的设置及应用规则》以及《图书馆射频识别数据模型第2部分&#xff1a;基于ISO/IEC 15962的数据元素编码方案》&#xff0c;决定根据上面的编码方法实现一下该算法&#xff0c;于…

PyTorch 深度学习(GPT 重译)(五)

十二、通过指标和增强改进训练 本章涵盖 定义和计算精确率、召回率以及真/假阳性/阴性 使用 F1 分数与其他质量指标 平衡和增强数据以减少过拟合 使用 TensorBoard 绘制质量指标图 上一章的结束让我们陷入了困境。虽然我们能够将深度学习项目的机制放置好&#xff0c;但实…