关注公众号,发现CV技术之美
本篇分享论文IAA: Inner-Adaptor Architecture Empowers Frozen Large Language Model with Multimodal Capabilities
,冻结语言模型训练LMM新范式,360提出IAA,使语言模型无损获取多模态理解与Grounding能力!
论文链接:https://www.arxiv.org/abs/2408.12902
模型和代码:https://github.com/360CVGroup/Inner-Adaptor-Architecture
摘要
当前广泛流行的基于LLaVA结构的多模态大语言模型(LMM: Large Multimodal Model)在视觉任务上表现出色,然而因为训练中需要对内嵌的语言模型进行微调,常常会显著削弱其在自然语言任务(NLP)上的能力,具体来说,模型对文本的整体理解能力会减弱,而且在回答问题时给出的信息也不够详细。
为了防止这种性能退化,一个行之有效的办法是在扩展模型的多模态能力时,不改变语言模型的原始参数。不过,先前像Flanmingo和BLIP2这样的尝试,并没有达到预期的效果。
本文受到图像生成领域中的ControlNet思路的启发,在保持语言模型不变的基础上,创新性地加入了内部适配器结构(IAA)。
这一策略不仅保持了模型在自然语言处理(NLP)方面的原有能力,同时还显著提升了模型的通用多模态处理能力和视觉定位性能。
与之前依赖大量图文对齐数据的冻结语言模型的方法不同,IAA架构能够在使用较小规模数据集的情况下,依然展现出卓越的性能。
此外,面对多样化的任务需求,可以轻松地在单个GPU上同时部署多个IAA,从而在显存利用上实现高效的优化。
动机
主流的多模态大模型LMM采用的是以LLaVA为代表的vision-encoder + projector + LLM的结构。这种结构的优点是可以利用已经预训练好的语言模型内嵌来大幅降低多模态模型训练的代价和难度,当前国内主要的多模态大模型如Qwen-VL、InternVL、MiniCPM、DeepSeek-VL等采用的都是这种架构。
但是这种架构在实践中也存在一个非常难以解决从而被大家刻意回避讨论的问题,就是内嵌的语言模型在多模态模型的训练过程中会不可避免地发生“灾难性遗忘”问题,从而降低其在文本任务上的性能表现。
作为验证,本文利用了LLaVA-1.5的1.2M开源数据集,在其模型架构上进行了实验。该数据集中除了常见的VQA和指令微调数据外,还包含少量的纯文本数据。
如图1所示,无论是在Qwen2还是Llama3这两种语言模型基础上构建的LLaVA-1.5架构,在训练前后,语言模型在MMLU和C-Eval等纯文本基准测试中的得分均有显著下降。
内嵌语言模型的“灾难性遗忘”发生的根本原因,在于为了强调多模态模型在视觉任务上的能力,内嵌的语言模型在训练过程中都要参与训练。
对于多模态LMM而言,为了实现优秀的多模态理解能力,需要大量的图像-文本数据来进行训练,训练量越大,灾难性遗忘的问题越严重。尽管像LLaVA这样的模型试图在其训练过程中整合一些纯文本数据,但仍未能完全避免这一问题。
防止大语言模型性能下降的一个直接方法是在LMM训练过程中冻结语言模型的参数。然而,目前采取这种策略的模型在多模态能力的benchmark测试中并未表现出令人满意的性能。
为了解决这些挑战,本文提出了一种包含内部适配器结构(IAA)的训练范式,旨在不影响原始语言模型能力的同时,显著提升模型的多模态性能。
方法
鉴于前面的讨论,保持LLM原有的能力变得至关重要。本文提出的Inner-Adaptor Architecture(IAA)可以让LMM在部署后同时运行两个工作流:一个是多模态交互,另外一个是纯文本对话。
多模态交互工作流包括以下三个部分:
图像编码器与MLP层:使用图像编码器(如CLIP或SigLIP)提取高质量的图像特征,并通过MLP层实现视觉与语言的对齐。
大语言模型:在训练期间保持冻结状态,以保留原有的语言处理能力。
内部适配器结构:包括插入层、嵌入层以及专为多模态输入设计的语言模型头。
纯文本对话工作流则仅包含原始的大语言模型,不添加其他特定的模块。
在内部适配器结构(IAA)的设计上,参考图3(a),本文受到了ControlNet架构的启发,额外进行self-attention等层的插入操作,可以简洁地表示如下:
其中,ϕfl和ϕil分别表示冻结的语言模型层(LM)和插入层。Xin表示多模态输入,Xout表示多模态输出,G表示零初始化的门控层。插入层包括自注意层、层归一化、前馈网络等,这与大语言模型中transformer层的参数尺度一致。
例如,如果目标是第22个语言模型层,则相应的插入层的初始参数来源于第22个语言模型层。尽管如此,基于ControlNet的设计并没有获得很好的性能。
参考图3(b),本文对基于ControlNet的结构进行了进一步的改进,消除了插入层之间的特征传播,将语言模型层的输出作为插入层的输入。
每个冻结的LM层将通过一个插入层和门控层来容纳多模态数据,而插入层不再直接受到后续层的影响。与图3(a)中的设计相比,改进后的结构在实验结果上展现出了显著的改善。
此外,本文认为门控层可能无法通过LMM常用的单轮数据训练策略达到最佳状态。因此,本文提出了一个更精简的解决方案,如图3(c)所示,模型中特定层的操作可以用如下方式表示:
与方案(a)类似,如果将插入层放置在第22个冻结的LM层之后,则使用第22个冻结的LM层的参数进行初始化。在训练的模型中,插入层的数量可以任意指定。
除此之外,为了进行更好的多模态训练,本文同时引入了新的嵌入层和语言模型头,这些同样由原始的语言模型对应的结构初始化而来。
在所有的多模态训练阶段里,原始的语言模型保持固定,仅对新加入的结构进行训练。最终,本文选择了图3(c)中所示的结构,并将其命名为内部适配器结构(IAA)。
实验结果验证了这种策略的有效性。
实验
训练策略
在训练多模态大语言模型(LMM)的过程中,预训练阶段的核心任务是让模型学会如何将视觉信息与文本描述相对应。
这个阶段,通常被称作图像-文本对齐阶段,它建立了视觉编码器与大语言模型(LLM)之间的桥梁。在我们的架构设计中,图像编码器和LLM在整个训练过程中都是保持不变的,这样做是为了保留它们在视觉和语言理解上的基础知识。
而MLP投影层和IAA内部适配器结构则是需要通过训练来提升模型的多模态处理能力。
在实验中,我们发现对于IAA内部适配器结构来说,如果使用过高的学习率,会导致训练损失的不稳定甚至溢出。
为了解决这个问题,我们设计了一个两阶段的预训练策略。
在第一阶段,我们的模型结构由三个部分组成:图像编码器、MLP投影层和大语言模型。在这个阶段,图像编码器和大语言模型的参数是固定的,我们使用0.001的高学习率来专注于训练高质量的投影层。
在第二阶段的预训练中,我们对模型进行了扩展,加入了专门用于处理多模态任务的IAA。在这个阶段,可训练的参数包括了投影层和新增的IAA,同时我们采用了更低的2e-5学习率,以便更精细地调整模型。
完成预训练之后,模型还会接受进一步的指令微调和视觉定位微调,以优化其性能。
通用多模态benchmark结果
本文将对比方法分为两大类:一类是采用冻结语言模型进行训练的,另一类则是采用未冻结(即微调)语言模型进行训练的。
为了进行深入的分析,我们详细展示了每种方法所使用的数据集大小,以及它们所依赖的图像编码器、大语言模型等关键组件。为了确保比较的公正性,我们选择了参数规模相似的LMM,并且这些方法的性能指标都是基于官方公布的数据。
通过比较,我们可以明显看出,本文提出的方法在使用冻结语言模型训练的类别中展现出了显著的优势。
这一结果表明,我们的方法在保持模型原有能力的同时,还能有效提升其在多模态任务上的表现。
此外,作为目前流行的做法,未冻结语言模型的LMM通常能够在多模态性能上获得更优的表现。
然而,这种提升往往是以牺牲部分NLP能力为代价的。当我们对比LLaVA-Llama3这一方法时,我们发现IAA在采用相同的视觉编码器、语言模型和训练数据的情况下,在多模态性能指标上实现了更出色的成绩。
正如表2所展示的,IAA在提升多模态能力的同时,其NLP能力并未受到影响。相反,LLaVA这种对语言模型进行微调的方法,在MMLU和C-Eval等自然语言处理评测集上的表现则受到了较为明显的影响,显示出NLP能力的下降。
这进一步证明了IAA在保持语言模型原有优势的同时,有效地增强了模型的多模态处理能力。
图4展示了不同模型在纯文本对话任务上的性能表现。
从中可以清晰看出,IAA在处理纯文本对话时,成功保留了语言模型原有的对话能力。
与此形成对比的是,开源的LMM,例如LLaVA-Llama3和LLaVA-v1.5,由于受到多模态数据的影响,其在纯文本对话任务上的表现有所下降。
当面对相同的提问时,LLaVA-Llama3和LLaVA-v1.5给出的回答往往更为简短。这种现象与它们在训练过程中接触的大量多模态数据中文本长度普遍较短的事实密切相关。
对大语言模型进行微调,尤其是在处理多模态数据时,可能会削弱模型深入理解内容并生成详尽回复的能力。因此,IAA的设计在保持模型对话质量方面显示出其独特的优势。
视觉定位benchmark结果
表3的结果表明,IAA能够在有限的数据集上实现有竞争性的视觉定位表现。
为了保证公平可比,表中排除了使用超大数据集进行训练的模型,如使用了15亿图像文本对和40亿grounding数据的CogVLM-grounding,以及那些利用了预训练目标检测模型的结构,如LLaVA-Grounding和Groma等。
部署效率
目前,高性能的多模态模型通常需要解冻大语言模型来进行训练。CogVLM强调了开发一个同时擅长多模态理解和视觉定位任务的模型的困难。
为了解决这个问题,它采用了双模型策略,一种模型训练通用多模态能力,另一种模型训练视觉定位能力。在这种情况下,在GPU上采用FP16同时部署一个语言模型、一个通用多模态模型以及一个视觉定位模型,大约需要50GB的显存。
本文提出的方法,通过内部适配器结构巧妙地结合了通用多模态能力和视觉定位能力,同时保护了原始大语言模型的NLP能力。
举例来说,通过使用8层内部适配器配置,模型能够显著地减少显存占用,同时部署这三种能力的模型显存占用仅需30GB左右。
消融实验
本文对IAA结构、训练策略、插入层数量等进行了一系列消融实验,具体结果可以看下面的表格。
结论
本文提出了一种内部适配器结构(IAA),其设计宗旨在于提升大语言模型(LLM)在通用多模态理解和视觉定位等方面的能力。
通过一系列精细的架构探索实验,本文证实了采用冻结语言模型策略的LMM在性能上能够超越那些经过微调的同类模型。
在部署应用时,IAA同时兼具多模态,目标定位与纯文本三个工作流程,这样不仅保持了语言模型在自然语言处理(NLP)方面的实力,而且还增强了其在处理复合任务时的灵活性。IAA的这一特性为模型未来扩展至更多模态提供了广阔的可能性。
END
欢迎加入「大模型」交流群👇备注:LLM