在多模态研究领域,许多研究利用大量的图像-文本对进行模态对齐学习,将大型语言模型(LLM)转变为多模态LLM,并在各种视觉语言任务上表现出色。主导的技术主要分为两类:基于自注意力的方法和基于交叉注意力的方法。 虽然基于自注意力的方法由于其简单的MLP架构而具有优越的数据效率,但由于将视觉和文本标记作为LLM的输入,它们在计算效率上通常较低。相反,基于交叉注意力的方法,虽然由于额外的可学习参数而 less 数据效率,但通过避免为LLM提供长序列输入,表现出更高的计算效率。 为了解决这些权衡,作者引入了数据有效性和计算有效性Multimodal Large Language Model(EE-MLLM)。 在不引入任何额外的模块或可学习参数的情况下,EE-MLLM同时实现数据和计算效率。 具体而言,作者将MLLM的原有自注意机制改进为复合注意机制。 这种机制有两个关键特征: 1)减少视觉标记内部的自注意计算开销,实现计算效率; 2)重复利用每个层的权重,促进视觉和语言之间的有效模态对齐,以实现数据效率。 实验结果证明了EE-MLLM在各种基准测试上的有效性,包括通用数据集如MM-Bench和SeedBench,以及细粒度任务如TextVQA和DocVQA。
近年来,由于在各种自然语言任务上的惊人表现,大型语言模型(LLM)受到了广泛关注。然而,实际场景往往涉及不仅仅是语言模态,因此将LLM扩展到多模态LLM至关重要。拓展的关键在于进行模态对齐,即学习将剩余模态以相同语义映射到预训练LLM特征空间的对应语言模态。
在涉及视觉和语言的多模态LLM研究中,已经开展了一系列研究工作和取得了出色的成果。这些方法大致可以分为两类:自注意力机制方法和交叉注意力机制方法。
自注意力机制方法首先利用一个简单的MLP层将视觉标记投影到LLM的输入空间,然后将视觉标记与文本标记 ConCat ,如图1(1)所示。这些扁平的 ConCat 长标记序列被输入到LLM中,进一步建模各种标记之间的依赖关系。
这些方法具有很高的数据效率,原因有两点:
1)对齐模块简单,可学习参数较少。
2)LLM中的视觉标记对齐在输入空间内将自然导致视觉与语言在各层之间对齐,因此训练过程无需关注LLM内的模态对齐,从而提高数据效率。
例如,LLaVA Liu等人(2023)通过预训练仅55.8万数据,并在只有665.0k指示数据上进行微调,实现了出色的性能。然而,直接将视觉标记和文本标记的扁平操作扩展了标记序列的长度,从T到V+T(其中T为文本标记的数量,V为视觉标记的数量),语言模型层的计算成本从O(T²)增大到O((V+T)²),导致计算机效率降低。尤其是当输入图像为高分辨率时,视觉标记数量增加,计算效率低,从而延长了训练和推理时间。具体来说,LLaVA Liu等人和Deepseek-VL Lu等人分别具有576个视觉标记。Sphinx Lin等人则使用了2890个视觉标记。
交叉注意力方法直接在预训练语言模型层之间插入新的交叉注意力层。如图1(2)所示,这些层中的键和值来自视觉标记,而 Query 来自文本标记。这些方法具有更高的计算效率,因为输入序列的长度始终为T,并与视觉标记的增加无关。然而,这些方法通常需要大量的预训练数据,导致数据效率低下。例如,Flamingo Alayrac等人(2022)在1.8亿图像-文本对[11]和交错数据上进行预训练。EVLM在2.5亿图像-文本对和5000万交错图像-文本数据上进行预训练。
这种数据效率低下源于两个因素:
通过审查现有方法,作者认为确保数据效率和计算效率的关键点是
具体而言,作者提出了一种组合注意力机制来替换MLLM中的原始自注意力机制。这种组合注意力机制有两个特征:
MLLM中的原始自注意力机制包括三个部分:视觉标记内的自注意力、文本标记内的自注意力和文本与视觉标记之间的交叉注意力。作者观察到视觉标记内的自注意力是冗余的。原因是a) 视觉标记之间的交互已经由视觉编码器良好处理;b) LLM的信息聚合性质[22]可以促进视觉标记之间的隐式交互。因此,作者消除了视觉标记内的自注意力,并保持LLM输入序列长度与文本标记相同,从而实现计算效率的提升。
为了证明EE-MLLM的有效性,作者在通用基准测试和细粒度基准测试上评估其性能,例如MMBench-EN,MME,ScienceQA,AI2D,TextVQA和DocVQA。与最先进的MLLMs相比,作者的EE-MLLM在通用和细粒度基准测试上都展现出令人鼓舞的结果。同时,EE-MLLM在推理阶段具有很高的计算效率。在高分辨率图像输入下,EE-MLLM在显著降低计算成本的情况下保持可比性能。例如,对于一个的输入图像,视觉标记数量可以达到4,900,而EE-MLLM的计算量仅占自注意力基方法计算量的。作者还评估了EE-MLLM在实际场景中的推理速度,并确信其效率。具体而言,当生成标记数量设置为32时,EE-MLLM在单个NVIDIA H800 GPU上达到每秒77个标记的推理速度,这比在同一分辨率下的自注意力基方法快1.9倍。
作者的主要贡献如下:
1.作者重新审视多模态LOLM中的模式对齐问题,指出自注意力基和交叉注意力基方法的有效性和效率问题。2.作者为EE-MLLM提出了一种复合注意力机制,以提高数据和计算效率。3.作者的EE-MLLM在各种基准测试上实现了卓越的性能,同时推理速度得到了极大的提高。
自注意力基于的方法。 自注意力基于的方法包括Dai等(2024年);Zhu等;Chen等;Bai等(2023年);Chen等(2023年)和Fang等(2023年)。这些方法使用投影器将视觉特征与语言模型的输入空间对齐。LLaVA刘等人(2023,2023年)利用一个简单的MLP层将CLIP的视觉编码器Radford等人(2021年)与Vicuna Zheng等人(2023年)连接起来。DeepSeek-VL Lu等人(2024年)采用混合视觉编码器,包括SigLIP的Zhai等人(2023年)用于高级语义特征和SAM-B的Kirillov等人(2023年)用于低级特征。由于需要细粒度信息,如文档识别和表格理解,最近的工作将MLLM扩展为支持高分辨率输入。LaVA-Next Liu等人(2024年)提出将图像划分为小patch来提取局部特征,并将下采样的图像特征与全局上下文concat。Monkey Li等人(2024年)也将高分辨率图像划分为小patch,用一个可训练的resampler独立处理每个patch。由于自注意力基于的方法计算效率低下,高分辨率输入的通信开销可能更大。Deco Yao等人(2024年)和HoneyBee Cha等人(2024年)小心设计投影器以降低视觉tokens的数量,同时最小化信息损失。然而,当减少视觉tokens的数量时,这些方法仍会牺牲细粒度能力。作者的EE-MLLM,一个基于交叉注意力的架构,在维持计算效率的同时实现了最先进的性能。
基于交叉注意力的方法。 基于交叉注意力的方法包括Laurencon等人(2023年);Alayrac等人(2022年);Awadalla等人(2023年);Chen等人(2024年)。这些方法通常将额外的交叉注意力模块集成到LLM的解码层中,以在扩展文本标记序列长度之前将视觉信息集成视觉模型中。Flamingo Alayrac等人(2022年)引入了一个新的gated xatth-dense块,其中包含一个tahn-gating机制以提高训练稳定性。Flamingo是基于大规模交错的图像文本数据进行训练,并支持在上下文中的少样本学习。EVLM Chen等人(2024年)通过(1)使用无resampler的层次ViT特征,(2)用可学习的tokens替代图像tokens在文本输入中,以及(3)引入MoE提升性能的方式,从而增强了Flamingo。尽管这些基于交叉注意力的方法在计算效率上很高,但额外的交叉注意力模块导致大量可训练参数,严重依赖预训练数据。作者的EE-MLLM避免引入任何额外的可训练参数,并重新利用LLM的权重将视觉tokens映射到LLM特征空间,因此可以用少量训练数据实现良好的性能。
EE-MLLM由一个视觉编码器、两个层的小型多层感知机作为投影器以及具有复合解码器的解码器层组成。作者提出了一种复合注意力机制,并设计了一个复合解码器层,以实现数据效率和计算效率。复合解码器层包括一个对齐器和一个复合注意力模块。
图2:作者的复合注意力机制由复合注意力模块和对齐器组成。对齐器将视觉标记对LLM的每个层的特征空间进行对齐;而对于复合注意力模块,将视觉标记和文本标记的连接作为键和值,将文本标记用作 Query ,从而在视觉标记内消除自我注意力。
复合注意力模块。 原始的自我注意力机制包括在视觉标记内部、在文本标记内部以及文本标记之间的cross-注意力。作者观察到在视觉标记内部的自我吸引力有两个原因:
1)视觉标记之间的交互已经在视觉编码器中很好地学习到;
2)LLM可以通过聚合特性[23]使视觉标记之间实现隐式交互。因此,作者消除视觉标记内部的自我吸引力,并获得复合注意力模块。作者假设视觉标记 和文本标记 ,其中 和 分别表示视觉标记和文本标记的长度。隐藏状态的维度用 表示。原始的自我注意力可以表示为以下形式:
其中 ,,,、 和 是自我注意力模块的权重。符号 表示变量在序列维度的连接。图2所示,复合注意力模块使用文本标记作为 Query ,将视觉标记和文本标记的连接作为键和值进行cross-注意力。具体地说,,,且 。输出序列的长度为 ,与文本标记 的长度相同。自我注意力的注意力 Mask 是一个下三角矩阵,而复合注意力模块的注意力 Mask 是一个梯形矩阵。这意味着文本标记会关注所有先前的标记,包括视觉标记,而视觉标记之间的交互被消除。
对齐器。作者引入了对齐器,该对齐器利用了LLM每个层现有的权重,以在视觉和语言之间增强模式对齐,无需额外的模块。通过对这些权重进行重复使用,输入空间中的视觉标记可以借助LLM的自然对齐在每个层实现模态对齐,从而提高数据效率。图2中的解码器块采用零注意力。具体而言,对齐器包括 、 和 FFN,这些与LLM模块共享权重,并实现残差连接。对齐器可以表示为以下形式:
这可以看作是一个没有注意力的解码器块。
作者提出的EE-MLLM可以在不引入额外参数的情况下降低计算开销。在本节中,作者从FLOPs的角度分析了EE-MLLM的计算效率,并与LLaVa进行比较。LLM由d个模块组成,隐藏状态维数h,输入文本长度T,V个视觉标记。
考虑到一个LLM,作者认为输入序列长度为L,自注意力模块和FFN的FLOPs为8Lh²+4L²h和16Lh²。对于基于自注意力机制的方法,如LLaVa,输入序列的长度L=V+T。因此,LLaVa的FLOPs为24(T+V)dh²+4(T+V)²dh。
对于EE-MLLM,复合注意力模块的FLOPs为(6T+2V)h²+4VTh+4T²h。如果作者引入了对齐器,FFN的FLOPs与LLaVa相同,均为16(W+T)h²。对齐器引入了额外的O矩阵乘法,增加了2Vh²个FLOPs。因此,EE-MLLM的总FLOPs为2(11T+10V)dh²+4VTdh+4T²dh。特别地,当输入图像的分辨率是980x980时,视觉标记数量为4,900,文本标记长度为256,这是训练过程中的典型长度,EE-MLLM的FLOPs相当于LLaVa的70%。
模型配置
作者使用Vicuna-7b-v1.5 [22]作为作者的LLM,并采用SigLIP [23]作为视觉编码器。具体来说,SigLIP采用Idefics2 [13]进行初始化,支持动态分辨率高达980 980。投影器由一个两层MLP组成,与LLaVA [14]中的相同。
预训练配置
在预训练阶段,作者遵循LLaVA,采用blip-558k [14]进行一次周期的训练。作者将LLM和视觉编码器冻结,只让投影器可训练。作者采用AdamW [10]优化器。学习率为1e-3,然后是一个线性 Warm up 调度器,然后是一个余弦衰减调度器。全局批量为256。
微调配置
在微调阶段,作者冻结视觉编码器,更新LLM和投影器的权重。监督微调数据的总量为3百万。如表1所示,根据Deepseek-VL [14],作者的监督微调数据包括开源的gpt4v数据集,包括ShareGPT4V [4],LVIS-Instruct4V [22],LAION-GPT4V(LAION 2023)和TextOCR-GPT4V [1]。此外,为了增强MLLM的微调细粒度能力,作者还引入了DVQA [1],PlotQA [1],CLEVR [15],DocVQA [1],ChartQA [20]和ScienceQA [17]进行微调。为了保留微调期间的语言能力,作者使用各种来源的大量只有文本数据的量。这些文本数据包括各种数据库类型,如数学推理,多轮对话,逻辑理解和代码。与此同时,作者的内部数据主要包含与OCR相关,表格和图表理解和数学推理的数据。优化器为AdamW,全局批量为128。学习率为2e-5,学习率调度器与预训练阶段相同。训练在16个NVIDIA H800 GPU上进行。
作者使用VLMEvalKit [17]对模型进行评估,并从同一来源获得了其他最先进模型的结果。
通用基准测试。
细粒度基准测试。
表2:与最先进的MLLM方法在通用基准测试上的比较,包括MBench,MME,ScienceQA,HallusionBench,MMMU,CCBench,SeedBench和BLINK。MMB-T表示作者在MMBench-TEST-EN-V11上报告了结果。
通用基准测试。 在表2中,作者将EE-MLLM与各种最先进的MLLM 在八个通用基准测试上进行了比较。这些基准测试评估了MLLM的综合能力,包括理解和感知,以及幻觉的严重程度。这些因素共同反映了MLLM在实际场景中的泛化能力和适用性。EE-MLLM在通用基准测试上的性能与最先进的MLLM相当。具体来说,EE-MLLM在MBench上获得了70.4分,在MME上获得了1528.1分,这些分数比LaVA-v1.6(也支持高分辨率图像输入)显著更高。这表明EE-MLLM具有全面的感知和推理能力。此外,EE-MLLM在CCBench和SeedBench上的表现也不错。
细粒度基准测试。 在表3中,作者在七个细粒度基准测试上进行了评估。这些基准测试要求MLLM具有出色的视觉感知能力,因为它们需要探索图像中的细粒信息来回答问题。对于传统的VQA基准测试,如TextVQA,ChartQA和DocVQA,MLLM的性能非常出色,与LaVA-v1.6相比,在TextVQA上的得分高出4.6分,在ChartQA上的得分高出13.0分,这些也支持高分辨率。在OCRBench上,专门设计来评估MLLM的OCR能力,EE-MLLM相较于LaVA-v1.6 by 4.2分,这些结果表明尽管EE-MLLM在减少与视觉标记相关的计算开销方面有所作为,但仍然有效地保持了模型的细粒度能力。
尽管EE-MLLM展示了显著的FLOPs减少,但作者必须考虑到在部署过程中通常会使用这些先进的技巧,如KVCache和Batch Inference。因此,考虑这些技巧的推理速度对比变得必要。作者在单个NVIDIA H800上进行了推理速度的对比实验。输入图像的分辨率设置为,生成的标记数量从2到256。作者用图4说明了EE-MLLM和LLaVA之间的速度比。作者发现,在生成8个标记时,EE-MLLM的推理速度是LLaVA的三倍。然而,随着生成的标记数量增加,速度比减少。当生成64个标记时,EE-MLLM的推理速度是LLaVA的1.6倍。这种观察的原因是作者EE-MLLM主要减少了填充阶段的开销,计算了视觉标记的KV Cache。第一个标记的生成速度比LLaVA等基于自注意力的方法快。然而,推理速度优势在第一个标记之后逐渐减少。具体来说,用两个输入图像,EE-MLLM的推理速度几乎四倍于LLaVA。这明显表明,在多图像输入场景下,EE-MLLM非常有效,包括交错图像文本对话和多模态上下文学习。
表4:在相同设置下,与LLaVA进行比较,包括LLM、图像编码器以及训练数据。
表5:GPU预训练和微调阶段的内存占用。
作者在预训练和微调阶段评估EE-MLLM的GPU内存开销。同样,作者在分辨率为的情况下将EE-MLLM与LLaVA进行比较。作者在H800上进行实验,预训练时全局批次大小为256,微调时为128。
内存使用的比较详情见表5。在预训练阶段,EE-MLLM展现出显著较低的内存占用,为32GB,而LLaVA的内存占用为75GB。在微调阶段,由于主要的内存占用集中在可训练的LLM上,内存开销的优势变得不明显,EE-MLLM消耗了66GB,而LLaVA-v1.6则使用了69GB。
开始进行消融研究部分。
参考LLaMA-v1.5 [11],作者采用LaMDA作为基础的LLM。训练数据与LLaMA-v1.5相同,包括预训练数据和有监督微调数据。
在表格4中,作者在通用和细粒度两个数据集上,分别比较了EE-MLLM和LLaVA在相同设置下的性能。在 分辨率下,作者使用了CLIP-ViT-L-14作为视觉编码器,以确保与LLaVA-v1.5的完全对齐。EE-MLLM在通用基准测试上的性能与LLaVA相当。在细粒度基准测试中,在分辨率下,EE-MLLM在AI2D和ChartQA上展现出有前景的性能,但在OCRBench和TextVQA上稍微低于LLaVA。该分辨率的平均得分为47.1,这是LLaVA的48.1的98%。
在的分辨率下,作者使用了SigLIP作为视觉编码器。如表格4所示,EE-MLLM在AI2D和TextVQA上的结果相当,平均得分保持LLaVA性能的98%。
作者从BLINK [21]和RealWorldQA(XAI 2024)中各选取四个示例,以评估图3中架构变化的影响。第一个例子表明,EE-MLLM可以在图像内感知微细的视觉上下文,如交通灯的颜色。第二个和第三个例子突显了EE-MLLM理解物体位置的能力。具体而言,EE-MLLM能够准确识别吉他相对于桌子和狗的位置。最后一个例子揭示了EE-MLLM在区分视觉内容微小差异方面的能力。
在本文中,作者重新检视了多模态的大型语言模型研究,并将它们分为两类:
基于自注意的方法和基于交叉注意的方法。前者在数据上是高效的,但在计算上是低效的,而后者在计算上是高效的,但在数据上是低效的。
为了在保持计算效率的同时确保数据效率,作者提出了EE-MLLM的复合注意机制,该机制将计算效率的复合注意模块与数据效率的 aligner 相结合。
作者对一般基准测试和细粒度基准测试进行了全面的实验,结果表明,EE-MLLM 在大多数基准测试上实现了最先进的性能。
作者还评估了EE-MLLM在真实世界场景中的推理速度,结果表明EE-MLLM在推理上具有显著优势。
[1].EE-MLLM: A Data-Efficient and Compute-Efficient.