本文以LLaVA模型为实验对象,通过一系列剪枝策略,将计算量压缩至12%,同时保持了与原始模型同等的性能。
TL;DR
本文提出从参数和计算模式层面对多模态大模型做剪枝,以 LLaVA 为实验对象将计算量压缩至 12% 并获得与原始模型同等的性能,并进一步在 Qwen2-VL 和 InternVL2.0 上验证了此种剪枝策略的普适性。
论文标题:
Treat Visual Tokens as Text? But Your MLLM Only Needs Fewer Efforts to See
论文地址:
https://arxiv.org/abs/2410.06169
代码地址:
https://github.com/ZhangAIPI/YOPO_MLLM_Pruning
01
摘要
随着大语言模型的成功,多模态大模型通过整合视觉、文本和其他模态的信息,显著提升了多模态任务的表现。然而,视觉 token 数量的快速增长导致计算复杂度呈二次方增长,严重制约了模型的可扩展性和部署效率。
本文针对这一问题,以 LLaVA 为例,分析了视觉计算中的冗余性,并提出了一系列高效的剪枝策略,包括邻域感知的视觉注意力、非活跃注意力头的剪枝、稀疏前馈网络投影和选择性丢弃视觉层。
实验表明,这些方法在显著降低计算开销(多达 88%)的同时,保持了模型在多模态任务中的性能表现。作者进一步验证了这种计算冗余性在 Qwen2-VL 和 InternVL2.0 上同样普遍存在。本文的研究为多模态大模型的高效计算提供了新的视角和解决方案。
02
动机
多模态大模型近年来在跨模态任务(如视觉问答、文本生成和科学推理)中表现出了强大的能力。然而,与文本 token 相比,视觉 token 的数量往往更为庞大。例如,在 LLaVA 模型中,处理一张图像涉及超过 500 个视觉 token,而对应的文本 token 只有数十个。这种极大的不平衡带来了如下问题:
计算效率低下:
LLMs 的注意力机制复杂度随着输入 token 数量呈二次增长。这种计算成本的急剧增加对硬件资源提出了极高的要求,限制了多模态大模型的实际应用。
冗余性被忽视:
尽管视觉数据包含丰富的信息,但其固有的空间稀疏性导致许多计算是冗余的。例如,大部分视觉 token 之间的交互权重很低,仅有邻近 token 之间的交互是关键。此外,在深层模型中,视觉 token 对文本生成的影响逐渐减弱,但现有计算模式并未有效利用这一特性。
现有方法的局限性:
已有的优化策略,如减少视觉 token 数量或使用轻量化的语言模型,通常以牺牲模型性能为代价。如何在保持性能的同时显著降低计算复杂度,仍是一个急需解决的问题。
基于上述问题,本文提出了新的优化方向:通过深入挖掘视觉参数和计算模式的冗余性,对模型计算做剪枝,而不是简单地减少 token 数量。这种方法不仅能降低计算开销,还能最大程度地保留模型性能。
03
方法
本文提出了四种核心策略,分别从注意力机制、前馈网络和层剪枝等多个角度优化视觉计算:
3.1 邻域感知的视觉注意力
视觉 token 之间的注意力交互往往具有空间稀疏性,大部分交互权重集中在邻近 token 之间,而远距离 token 的交互在一些情况下可以忽略。
传统的全局注意力计算导致了大量无用的计算开销。本文提出了一种邻域感知的注意力机制,限制视觉 token 仅与其邻近 token 交互。通过添加邻域掩码,忽略超出特定半径的 token 交互。具体公式为:
其中, 半径 h 表示邻域范围。这一改进将注意力计算复杂度从