首页 > 其他分享 >阿里开源通用多模态大模型mPLUG-Owl3:迈向多图长序列理解

阿里开源通用多模态大模型mPLUG-Owl3:迈向多图长序列理解

时间:2024-08-19 15:52:57浏览次数:8  
标签:模态 图长 mPLUG 模型 attention Owl3 多图

 

        阿里的mPLUG系列在多模态大模型领域产出了多项研究工作。从mPLUG-Owl初代模型引入了视觉对齐-语言模型微调的训练模式,到mPLUG-Owl2通过模块化的模态自适应解决模态拉扯,再到mPLUG-DocOwl通过切图建模高分辨率。这一系列模型一直在探索更为高效有效的多模态大语言模型。

        尽管近年包括mPLUG-Owl在内的主流多模态大模型在多种单图任务上取得了一系列进展,当前对于多模态大模型来说,多图长序列输入仍然是一个极具挑战性的场景。如图所示的多模态多轮对话、多模态RAG、长视频理解等实际应用,就对模型的多图长序列理解能力提出了很高的要求。

        现有的支持多图输入的工作,主要存在两个方面的缺陷:LLaVA-Next-Interleave等工作直接将视觉特征与文本序列拼接,在多图长序列输入时会带来很高的推理成本;Flamingo等使用的cross-attention结构,虽然降低了计算成本,但造成了细粒度视觉信息的损失,限制了其在单图和多图场景的性能。

        针对上述问题,阿里通义实验室的研究人员提出通用多模态大模型mPLUG-Owl3,该模型能够在支持多图长序列输入的同时,兼顾性能和效率。为实现这一点,作者提出轻量级的hyper attention模块,实现视觉和语言信息的高效自适应融合。与相似参数规模的模型相比,mPLUG-Owl3在单图、多图、视频等多达14个benchmark上表现出SOTA性能。

Paper:mPLUG-Owl3: Towards Long Image-Sequence Understanding in Multi-Modal Large Language Models
Abs:https://arxiv.org/pdf/2408.04840
Code:https://github.com/X-PLUG/mPLUG-Owl/
HF:https://huggingface.co/spaces/mPLUG/mPLUG-Owl3
魔搭:https://modelscope.cn/studios/iic/mPLUG-Owl3

1.模型结构

        mPLUG-Owl3模型的主体结构由视觉编码器SigLIP-400M、语言模型Qwen2和线性连接层组成。视觉编码器提取图像特征后,经线性层映射到与语言模型相同的维度。作者在文本序列中使用了<|image|>作为图像标记位,并通过self-attention和cross-attention并行建模的方式将视觉特征融合到文本特征中。与Flamingo、EVLM等工作在语言模型的每一层插入cross-attention层的做法不同,mPLUG-Owl3仅将网络的少数层拓展为提出的Hyper Attention Transformer Block (HATB),从而避免了增加大量参数和计算。

HATB模块

        如下图(a)所示,Flamingo、IDEFICS等工作采用的cross-attention结构存在以下几点缺陷:(1) 增加大量参数和计算开销;

(2) 视觉输入的理解无法受益于语言模型学习到的知识;

(3) 未充分考虑图像在输入序列中的位置,限制其在多图场景的性能。

        相比之下,作者提出的Hyper Attention Transformer Block (HATB)模块,通过共享LayerNorm、设置模态专属的Key-Value映射、自适应门控等设计,使得文本间的self-attention和跨模态的cross-attention能够高效地并行建模和自适应融合。

        具体设计上,如图(b)所示,视觉特征与文本特征首先经过一个共享的LN层。作者在实验中发现,相比为视觉输入单独训练一个LN模块,视觉-语言共享同一个LN表现出更好的收敛性。经过LN层后,继承了mPLUG-Owl2的经验,其为视觉输入设置专属的Key-Value映射,而与文本输入共享相同的Query映射,从而在保留视觉模态特性的同时,使得语言模型能够基于文本语义自适应地获取需要的视觉信息。在完成文本间self-attention和跨模态cross-attention的并行建模后,作者设计自适应门控机制,通过计算文本特征经线性映射后的激活值获得门控值,实现文本和视觉信息的自适应融合。

        此外,作者在进行attention建模之前,引入了多模态交错的旋转位置编码MI-Rope来保留图文的位置信息。由于在文本序列中使用了<|image|>作为图像标记位,对于第n幅图片,其所有patch特征共享对应的标记位的位置编码,从而确保了位置编码不仅能反映图片的顺序,也能反映其在文本序列中的位置。

2.模型训练

在模型训练上,mPLUG-Owl3采用了三阶段的训练方式。

  • 第一阶段的预训练中,作者从公开数据中收集和采样了约40M图文对用于跨模态对齐,并更新新引入的模块参数,即线性连接层、视觉KV映射以及动态门控模块的参数。

  • 第二阶段多图预训练,为增强模型的多图理解能力,作者收集了交错图文、富文本图片和视频这三类数据,并对线性连接层和大语言模型的参数进行更新。

  •  第三阶段指令微调,使用单图、多图、视频等不同类型的混合数据进行指令微调,训练设置与第二阶段保持一致。三个阶段使用的训练数据及比例如下表所示。

实验结果

多图Benchmark评估结果 

2.1(多图) MIBench评估结果

        作者首先在多个多图benchmark上评估了mPLUG-Owl3的性能。实验结果显示,在NLVR2、Mantis-Eval等多图数据集上,mPLUG-Owl3取得了SOTA性能,领先于Idefics2、Mantis、LLaVA-Interleave等多图模型。在近期开源的大规模多图评测数据集MIBench上,mPLUG-Owl3也在涵盖多图指令和多模态外部知识等场景的多个任务中取得了大幅领先现有开源模型的效果。

2.2视频数据集评估结果

        在MVBench、VideoMME等视频多模态权威benchmark上,mPLUG-Owl3也取得了优于现有多图及视频多模态大模型的性能,体现出模型出色的视频理解能力。

 VQA数据集评估结果

(单图)多模态Benchmark评估结果

        此外,作者也在多个流行的VQA数据集以及单图输入的多模态benchmark上评估了mPLUG-Owl3的性能。可以看到,尽管mPLUG-Owl3是针对多图长序列设计的,其在单图场景同样具备十分出色的表现。与相近参数规模的多模态大模型相比,在多个数据集上取得了SOTA效果,甚至在部分数据集上领先于更大参数规模的CogVLM、EVLM等模型。 

超长多图序列评估结果

 

2.3推理效率对比

        除了常规的单图、多图和视频理解,作者还利用MMBench验证集数据构造了一个名为Distractor Resistance的新任务,将原始query图片混入多张图片组成的超长序列中,以评估模型面对多图长序列中大量干扰图像时的鲁棒性。实验结果显示,现有Mantis、LLaVA-Interleave等多图模型的性能均随着序列长度的增加而急剧衰减,而mPLUG-Owl3则在输入多达数百张图像时仍能保持较高的性能。此外,得益于HATB模块的高效设计,mPLUG-Owl3在取得更优性能的同时,兼顾了更高的推理效率。

3.样例展示

         上图展示了多图理解的一个场景,mPLUG-Owl3能够准确识别多张图像的内容,并基于推理给出正确回答。

        上图对比了mPLUG-Owl3和LLaVA-Interleave模型在超长视频理解场景中的表现,对于输入指令,mPLUG-Owl3能够从长达40余分钟的视频中捕捉到关键信息,并给出正确的回答。相比之下,LLaVA-Interleave模型则未能很好地把握细节信息。 

标签:模态,图长,mPLUG,模型,attention,Owl3,多图
From: https://blog.csdn.net/u012374012/article/details/141327450

相关文章

  • 【精选】Canvas 事件处理系统 - 多图长文
    文章目录Canvas事件处理系统为什么我们需要事件处理系统系统搭建抽象图形画布类像素问题使用示例判断事件发生的图形CanvasRenderingContext2D.isPointInPath()Geometry圆矩形线段多边形OffscreenCanvas更多事件类型对比参考Canvas事件处理系统是我自己的一......