入门必读!多模态大语言模型的演变全回顾!(视觉定位、图像生成、编辑、理解) 精华
文章链接:https://arxiv.org/abs/2402.12451
连接文本和视觉模态在生成式AI中起着至关重要的作用。受到大语言模型(本文简称LLM)成功的启发,人们正在致力于开发多模态大语言模型(MLLMs)。这些模型可以无缝地集成视觉和文本模态,既作为输入又作为输出,同时提供基于对话的界面和指令遵循的能力。本文全面回顾了最近基于视觉的MLLMs,分析了它们的架构选择、多模态对齐策略和训练技术。还对这些模型在各种任务上进行了详细分析,包括视觉定位、图像生成和编辑、视觉理解以及领域特定应用。此外编制并描述了训练数据集和评估基准,对现有模型在性能和计算要求方面进行了比较。总体上,本综述提供了对当前技术水平的全面概述,为未来MLLMs奠定了基础。
介绍
注意力算子和Transformer架构的引入使得我们可以创建大规模的,能够处理各种模态的模型。这一进步主要归因于算子的多功能性和架构的适应性。最初,它们主要应用于语言模型,但很快就扩展到支持视觉处理骨干,并最终用于集成多种模态的模型。
随着复杂的大语言模型的激增,尤其是它们在上下文学习方面的能力的进步,鼓励研究人员将这些模型的范围扩大到多种模态,既作为输入又作为输出。这种扩展促使了像GPT-4V和Gemini这样的尖端模型的开发,并展现了相当先进的能力。
多模态大语言模型(MLLMs)的发展涉及将视觉和语言的单模态架构进行融合,通过视觉到语言适配器之间建立有效的连接,并创造出新的训练方法,这些方法对于确保模态对齐和准确遵循指令的能力至关重要。
当前新模型发布迅速,我们的目标是提供关于MLLM领域的详尽概述,并重点关注利用视觉模态的模型。本综述既是对当前现状的更新,也是对未来发展的启示。
本文定义了这类模型的三个核心方面:它们的架构、训练方法和设计任务。本文首先详细介绍了当前流行的视觉编码器和适配器模块,这些模块赋予了LLMs跨模态的能力。接着,深入探讨了训练过程和使用的数据。然后,探讨了MLLMs所涉及的任务范围。最后讨论了该领域持续存在的挑战以及未来研究的方向。关于训练数据、评估数据集以及性能和计算要求的更多细节可以在原文的附录中找到。
为LLMs赋予多模态能力
基础知识
「大语言模型」 Brown等人发现,在提示中添加几个示例,演示LLM的期望输出,即上下文学习,可以提高其性能,尤其是在新任务上。为LLM提供每个训练样本所需任务的一段自然语言描述可以进一步提高泛化能力。这种技术被称为指令微调,它对于调整LLM的行为与人类行为一致至关重要,最终通过从人类反馈中增强学习(RLHF)。
「PEFT (Parameter-Efficient Fine-Tuning) 参数高效微调」 当需要将预训练的LLM应用于特定领域时,参数高效微调(PEFT)就成为训练整个LLM的一个重要替代方案,因为这些领域只引入了少量的新参数。其中,prompt调整学习了一小组向量,在输入文本之前作为软提示输入到模型中。另一方面,LoRA(Low-Rank Adaptation of Large Language Models)通过学习低秩矩阵来限制新权重的数量。这种技术与量化方法(如QLoRA(Quant LoRA))是正交的,后者相比通常的半精度权重进一步减少了LLM的内存占用。
「向多模态LLMs的方向发展」 MLLMs的发展路径与LLMs类似,Flamingo是第一个在视觉-语言领域大规模探索上下文学习的模型。然后,视觉指令微调迅速成为多模态领域中最突出的训练范式,连带使用PEFT技术微调LLM。任何MLLM至少包含三个组件(见下图1):LLM骨干作为与用户的接口,一个(或多个)视觉编码器,以及一个或多个视觉到语言适配器模块。
常用的LLM主体通常属于LLaMA家族系列,因为它们的权重可以自由调整,它们只在公共数据上进行了训练,并且拥有不同的尺寸以适应各种场景。此外,它们的衍生版本也很受欢迎,如Alpaca和Vicuna。前者在使用GPT-3编写的指令上对LLaMA进行微调,而后者利用用户与ChatGPT分享的对话。其他选择包括OPT、Magnet、MPT以及指令微调或多语言版本的T5(一个为多个任务预先训练的编码器-解码器语言模型)。
本文调研的MLLMs的总结如下表1所示。对于每个模型,表中列出了它所基于的LLM,视觉编码器,连接视觉和语言组件的适配器,MLLM是否使用视觉指令调整进行训练,以及主要任务和能力。
视觉编码器
在MLLMs中,视觉编码器是一个关键组件,它专门用于向LLM提供从视觉中提取的特征。通常采用冻结的预训练视觉编码器,同时仅训练一个可学习的接口,将视觉特征与基础LLM连接起来。最常用的视觉编码器基于预训练的Vision Transformer(ViT)模型,它基于CLIP,目的是利用CLIP嵌入的固有对齐性。
一些常用的选择包括:CLIP中的ViT-L模型、OpenCLIP中的ViT-H骨干和EVA-CLIP中的ViT-g版本。CLIP和OpenCLIP编码器是在网络收集的图像上训练的,采用对比方法来对齐正确的图像-文本对。相反,EVA-CLIP是一系列模型,为训练CLIP模型提供了实用且有效的解决方案:EVA模型是预训练的,以可见图像块为条件,重建遮挡的图像-文本对齐的视觉图像特征。
更强大的图像编码器会提高性能。基于这一认识,一些研究者提出了一种冻结的视觉骨干的合集,以捕获强大的视觉表示和不同层次的信息粒度。与此同时,PaLI模型注意到语言和视觉参数之间存在不平衡,提议将视觉骨干扩展到一个40亿和220亿参数的ViT。
利用这些强大的模型的通常做法是在训练过程中保持视觉编码器冻结。然而,使用冻结的视觉编码器也存在一些局限性,主要是由于参数数量受限,导致视觉和语言模态之间无法准确对齐。具体来说,当输入语言模型时,从视觉模型中提取的密集特征可能会破坏细粒度的图像信息,并且由于序列长度而引入大量计算。
为了缓解这个问题,其他研究人员采用了一个两阶段的训练范式。在第一阶段,他们将一个可训练的视觉骨干引入,同时保持预训练的LLM冻结。根据他们的研究结果,使视觉编码器可训练可以提升视觉问题回答或视觉描述等任务的性能。然而,这可能导致其他任务性能下降,表明这种方案存在一定程度的遗忘,而且破坏了通用视觉表示。
视觉——语言适配器
由于来自不同模态的输入同时存在,那么在这些单模态内整合能够描绘其潜在对应关系的模块就十分必要了,这些模块被称为“适配器”,目的在于促进视觉和文本领域之间的互通性。在常见的MLLMs中,使用了各种适配器,从基本的架构(如线性层或多层感知机(MLP)),到高级方法(如基于Transformer的解决方案,例如Q-Former模型),并在LLM中添加了条件交叉注意力层。
「线性MLP投影」 将视觉输入投影到文本embedding的最直接的方法,它涉及到学习线性映射,即将视觉特征转换为相同维度的对应文本。一些方法只使用单个线性层来执行多模态连接,如LLaMA-Adapter和FROMAGe,而LLaVA-1.5采用了两层MLP,显示出改进的多模态能力。尽管线性投影在早期MLLMs中被广泛采用,但即使在最近的对视觉输入有更高级理解的方法中,线性投影的使用也被证明非常有效。因此,这是一种简单但有效的技术,用于将视觉特征与文本对应物对齐。另一种方法提出用卷积层替换线性层,也有适当的的改进。
「Q-Former」 是在BLIP-2中提出的基于Transformer的模型,并在之后的几种其他方法中使用。它的特点是其可适应性架构,由两个Transformer块组成,这些块共享各自的自注意力层,促进了视觉和文本表示之间的对齐过程。它包括一组可学习的query,这些query在自注意力层内进行交互,并通过交叉注意力机制与视觉特征进行交互。而文本和视觉元素通过模块内的共享自注意力进行通信。
受到Q-Former的启发,又诞生了各种修改版本。比如,mPLUG-Owl模型简化了Q-Former的架构,并提出了一个视觉抽象器组件,通过将视觉信息压缩成不同的可学习token,从而获得更丰富的语义视觉表示。在同样的方向上,Qwen-VL使用一个单层交叉注意力模块压缩视觉特征,该模块具有可学习的query,并且还包含2D位置编码。
「附加跨注意力层」 这种方法在Flamingo中提出,通过在现有的预训练LLM层之间集成密集的交叉注意力块。新添加的层通常与初始化的tanh-gating机制结合在一起,以确保在初始化时,条件模型的行为与其原始版本相同。使用额外的交叉注意力层需要从头开始训练它们,增加了可训练参数的数量,与其他替代方案相比。为了降低计算复杂度,这种策略通常与一个Perceiver-based组件配对,该组件在传递到LLM之前减少了视觉token的数量。自其引入以来,几个模型使用这种技术来将视觉模态与基础LLM连接起来,提升了训练稳定性和性能。
多模态训练
从预训练的LLM开始,MLLM的训练经历了单阶段或两阶段的过程。在两种情况下,都使用标准的交叉熵损失来预测下一个token,作为自回归目标。
「单阶段训练」 这是LLaMA-Adapter模型探索的,该模型引入了额外的可训练参数,以同时封装视觉知识并管理仅支持文本的指令学习。为了实现这一点,模型通过使用图像-文本对和指令进行联合训练,操作不同的参数。与此同时,还有一些模型通过将两个对比损失函数用于图像-文本检索,以此来调整最终损失函数。在训练过程中,只有三个线性层被更新。另一方面,Kosmos-1考虑了一个冻结的视觉骨干,并从零开始训练了1.3B(13亿)参数的语言模型。
相反,Flamingo及其开源变体训练交叉注意力层和基于Perceiver的组件,以连接视觉特征与冻结的LLM模块。此外,Otter扩展了Flamingo的训练,以增强其上下文能力。
考虑到当前可用的大量训练数据,像SPHINX-X这样的模型选择执行单个一体化训练阶段,更新所有模型组件,还可以仅使用文本数据来保留LLM的对话能力。
「两阶段训练」 在两个训练阶段中的第一阶段,目标是将图像特征与文本embedding空间对齐。在此阶段之后,输出往往会出现碎片且不连贯。因此,实施第二步以提高多模态对话能力。LLaVA是最早引入视觉指令跟随训练方案的模型之一,该方案作为第二个训练阶段,更新了多模态适配器和LLM的参数。在第一阶段,只有多模态适配器是可训练的。与之不同的是,MiniGPT-4仅训练负责两个阶段中的多模态对齐的线性层。在第二阶段,它使用经过第一阶段模型自身收集和精炼的过滤数据。
另一种方法在"InstructBLIP"中提到,它涉及冻结视觉编码器和LLM。在两个训练阶段中,只有Q-Former和连接模块是可训练的。与先前的方法不同,在这些方法中,视觉骨干保持冻结状态,而"mPLUG-Owl"在初始阶段更新视觉骨干,有助于捕获低级和高级视觉信息。此外,在第二阶段,文本数据和多模态数据一起使用,以增加对齐度。与此不同的是,"Shikra"在两个阶段中更新所有权重,不同之处是保持视觉骨干冻结状态。
「训练数据」 在第一训练阶段(或者单阶段)中,通常使用来自不同来源的图像-文本对,使用诸如LAION-2B、LAION-400M、Conceptual Captions、COYO-700M和DataComp等数据集。一些方法将这些数据与一个或多个特点是文本与图像交错的数据集(通常是从网络上抓取的)结合使用,比如WebLI、MMC4、MMDialog和OBELICS。为了解决先前数据集中的偏差和噪声,StableLLaVA在第一阶段引入了新收集的数据。该方法利用ChatGPT生成图像提示和基于内容的对话的数据,并利用Stable Diffusion生成相应的图像。
在接下来的阶段中,利用了用于视觉指令微调的数据集。其中,常用的LLaVA-Instruct利用GPT-4生成的指令扩展了COCO。随着这一趋势的发展,有人通过整合手工制作和生成的高质量多样化数据,扩大了维度规模。此外,还提出了其他多轮对话数据集,例如引入了一个将26个公开可用数据集转换为其视觉指令版本的数据集,LLR-Instruction旨在通过更强大的指令减少幻觉,而LLaVAR则专注于文本丰富的图像。
利用MLLMs处理视觉任务
标准MLLMs可以处理视觉理解任务,如视觉问答(VQA)、图像描述和多轮对话。然而,最近人们对解决更精细的视觉任务表现出了兴趣,如视觉定位和图像生成。
视觉定位
MLLM的视觉定位能力指能够与用户进行包括内容定位的对话,也被称为指代对话。也有人将指代定义为理解输入区域内容的能力,可以在区域描述和指代表达生成等任务上进行评估。相反,视觉定位则与定位给定文本描述的区域相关联,对应于任务,如指代表达理解(REC)、指代表达分割(RES)、短语定位和定位式图像描述生成。为了赋予MLLMs这些能力,需要两个核心功能:一个用于处理输入区域的区域转换序列方法,以及一个用于将名词和短语与区域关联的序列到区域方法。下表2总结了具有视觉定位能力的MLLMs。
「区域转换文本」 输出区域的最常见方式是直接将它们插入生成的文本中,作为一系列坐标,表示成数字或专用于位置范围的特殊标记。Shikra、Kosmos-2、MiniGPT-v2、Ferret、CogVLM、SPHINX、QwenVL和Griffon通过指定两个点将边界框转换为文本。VisionLLM、VistaLLM、LLaFS和ChatSpot允许MLLM通过将多边形表示为一系列点的方式来处理它们。
「Embedding-as-Region」 另一种解决方案是通过区域编码器读取输入区域,并将输出区域作为MLLM最后一层提取的embedding传递给解码器。对于输入区域,GLaMM、GPT4RoI、ASM和ChatterBox利用图像编码器的特征对边界框执行ROI对齐,而PVIT则利用RegionCLIP。PixelLLM和LLaVA-G分别使用SAM的提示编码器和Semantic-SAM。对于输出区域,LISA、GLaMM、GSVA、NeXtChat和LISA++将与特殊标记对应的embedding发送到SAM的mask解码器。LLaVA-G转换为OpenSeeD,Lenna转换为Grounding-DINO,PixelLM转换为自定义轻量级像素解码器。
不同的是,ContextDET引入了一个解码器,接收带有可学习query的名词的潜在embedding,执行与图像特征的交叉注意力,然后使用分割头。ChatterBox将iTPN-B编码器和MLLM的特征组合起来,并提供给DINO检测器。GELLA在Mask2Former中提出了一个融合模块,基于多模态图像特征提出mask,并使用关联模块将潜在embedding分配给它们。PaLI-3通过VQ-VAE解码器将embedding转换为分割mask。
「文本转换位置」 其他方法基于接受文本类别作为输入的开放词汇模型。DetGPT为Grounding-DINO生成类别列表。BuboGPT利用RAM、Grounding-DINO和SAM的组合,并将标签与输出序列中的名词进行匹配。
图像生成与编辑
虽然最初的MLLMs展示了从视觉数据中提取信息的能力,但最新研究已经将其重点扩展到了生成视觉输出。这一进展是通过将MLLM框架与图像生成机制相结合实现的,主要体现在 Stable Diffusion模型中。这些模型具有一个以文本或视觉embedding为条件的去噪U-Net架构,通过交叉注意力层实现。所分析模型的完整列表如下表3所示。
「将MLLM与扩散模型连接起来」 GILL是将MLLM的输出embedding空间映射到冻结扩散模型的输出空间的先驱。具体来说,受Q-Former启发,他们训练了一个映射组件,通过最小化语言模型的图像输出表示与扩散模型的预期条件embedding之间的ℓ2距离来实现。
虽然GILL避免了对LLM和扩散U-Net进行微调,但是替代方法仍然微调了语言模型以扩展其多模态生成能力。在这方面,Kosmos-G是通过一个训练方案开发的,该方案将LLM的输出与编码器-解码器结构相结合,利用重构损失和在CLIP-文本embedding中的距离最小化。类似地,MiniGPT-5除了GILL的对齐损失外,还包括扩散模型的重构损失。
此外,它将整个训练过程分为两个不同的阶段:初始阶段专注于文本到图像的生成,而后续阶段则专注于交错的视觉和语言生成。显然,研究人员已经研究了从输入图像中提取的离散和连续视觉标记与Stable Diffusion条件embedding的对齐。这通常通过对文本模型进行微调来实现。当然,也有人微调了LLM和Stable Diffusion U-Net。
有研究者提出了一种不同的方法,他们建议通过添加两个特殊标记(即start和end)对LLM进行微调,并直接使用Stable Diffusion模型中的文本编码器在这两个标记之间对生成的文本进行编码。LLM被训练以输出详细的基于语言的生成提示,这些提示用于生成或编辑任务。U-Net通过更长、更详细的文本说明进行微调。此外,在DreamLLM中,放弃了对齐损失,而是选择了分数蒸馏损失,同时保持U-Net冻结。此外,其他研究者还进行了额外的研究努力,将MLLM引入图像编辑领域。
「端到端Pipelines」 另一个方向是开发端到端训练策略。Stable Diffusion U-Net直接通过LLM生成的连续视觉embedding进行微调。使用特征同步器,在LLM和扩散解码器的中间层中跨多尺度高分辨率图像特征进行交叉关注。此外,端到端训练方法已经被用于非基于扩散的生成器,比如VQ-GAN。Aiello提出了一种不同的方法,通过双向跨模型架构的交叉关注来混合LLM架构和自回归生成器CM3Leon。
其他模态与应用
「视频理解」 前面提到的大部分研究都集中在图像上,但也有一些工作提出了专门用于处理视频序列的MLLMs。这些模型独立地处理视频帧,使用基于CLIP的骨干提取帧级特征,然后利用池化机制或基于Q-Former的解决方案将这些特征组合起来。视觉特征与语言模型之间的连接和基于图像的MLLMs趋势一致,最常见的选择是线性投影。然而,也有一些尝试开发视频特定的适配器,可以捕获细粒度的时间信息。除了编码视频帧外,一些工作还利用音频特征来丰富输入视频序列的表示。
「任意模态模型」 到目前为止,几乎所有描述的模型都将单一模态作为LLM的输入。然而,也有大量工作集中在设计出能够有效处理多模态的解决方案。通常,这是通过使用Transformer块(如Q-Former和Perceiver)来对齐多模态特征实现的,或者通过利用ImageBind来有效提取固有多模态特征。图像、视频和音频是最常处理的模态。此外,一些工作还有效地编码了3D数据和IMU传感器信号。尽管所有这些解决方案都可以管理多模态输入,但像NExT-GPT和Unified-IO 2这样的方法也能够生成不同模态的输出。
「特定领域的MLLM」 除了处理通用的视觉输入之外,一些研究工作致力于开发针对特定领域和应用的MLLM,可以从预训练的LLM开始训练模型,也可以使用特定领域的数据对现有的MLLM进行微调。一些例子包括用于文档分析和文本密集型视觉输入的MLLM,为体验式人工智能和机器人技术设计的MLLM,以及针对特定领域(如医学和自动驾驶)量身定制的MLLM。附录中展示了不同特定领域的MLLM的完整列表。
总结与未来方向
本综述提供了对MLLM最近发展的全面概述,首先关注了如何为LLM提供多模态能力,然后探讨了这些模型解决的主要任务。根据综述分析,阐述了后续重要的开放性挑战和有前景的未来研究方向,以进一步增强MLLM的能力。
「幻觉矫正」 一些研究表明,MLLMs在生成较长对话时出现幻觉的概率较高。虽然一些解决方案正在尝试解决这一问题,但理解和纠正幻觉的根本原因仍然是一个重要的挑战。对于将这些模型应用于更为关键的场境(例如医学),解决这一问题并确保其准确性和可信度至关重要。
「预防生成有害和偏见内容」 社会非常关注大模型的安全性和公平性。最新的研究表明,使用网络抓取的数据训练的模型很容易生成不当和有偏见的内容。尽管最近在努力减少文本到图像生成模型中这种现象了,但需要进一步探索如何防止MLLMs中出现相同的行为。
「降低计算负载」 正如补充资料所示,MLLMs需要极高的计算资源。需要采取有效策略(Chu等,2024)来降低计算需求,从而使MLLMs的开发更加容易。可能的方向包括减少模型规模和数据量方面的训练要求,并优化推理阶段。
本文转自 AI生成未来 ,作者:Davide Caffagni等