导读
本文以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 表示邻域范围。这一改进将注意力计算复杂度从 降至
3.2 非活跃注意头剪枝
研究团队以 LLaVA-1.5 作为研究对象,随机选取了 100 个视觉问答样本,可视化了视觉 token 的不同注意力头的权重,实验发现大约有一半数量的注意力头都没有被激活。由此可见这部分注意力头的相关计算同样存在大量冗余并可以被剪枝。实验表明,即使剪掉大量注意力头,模型仅有极小的性能下降。
3.3 稀疏投影的前馈网络
通过剪枝大部分视觉注意力计算,模型的视觉表达变得高度稀疏。为了有效利用这种稀疏性,研究团队提出在每个 transformer 模块内的前馈网络隐藏层中随机丢弃 p% 的神经元。
3.4 选择性层丢弃
研究团队通过可视化 LLaVA-1.5 不同层的视觉 token 跨模态注意力权重发现,大权重集中在前 20 层,在第 20 层到 40 层之间权重接近于 0。
这项结果表明靠后的 20 层的视觉计算存在大量冗余。这一观察启发了研究团队在靠后的层中直接跳过所有与视觉相关的计算,从而减少计算开销。具体来说,对于层 l>L−N,视觉注意力和跨模态注意力计算都被省略,使得注意力计算可以简化如下:
04 实验结果
研究团队对 LLaVA-1.5-7B 和 LLaVA-1.5-13B 模型应用提出的四种剪枝策略并进行了评估,结果显示剪枝后 FLOPs 分别减少至原始模型的 25% 和 12%。
在相同计算预算下,剪枝模型在四个基准任务(GQA、VQAv2、POPE 和 MMBench)上均表现最佳,分别超出第二名方法 3.7%、1.1%、2.2% 和 0.45%。
为验证方法在剪枝视觉计算冗余方面的可扩展性,本文将提出的策略与 PyramidDrop 和 FastV 方法在 VQAv2 和 GQA 两个大型基准上的不同剪枝粒度进行了比较。
实验结果表明,随着 FLOPs 减少,模型性能也有所下降。例如,使用 FastV 方法将 FLOPs 从75%减少到 19% 时,平均性能从 71.35%下降到 66.63%。
相比之下,本文的方法不直接剪枝 token,而是针对参数和计算模式层面的冗余优化,在相同 FLOPs 下性能仅下降 0.5%。这一结果进一步证明,当前多模态大模型中的大量视觉计算冗余可以通过有效剪枝加以优化。
为验证剪枝策略的广泛适用性,本文将其应用于其他多模态大模型(如 Qwen2-VL-7B 和 InternVL-2.0),并在无需微调的情况下进行评估。通过在 GQA 和 POPE 基准上调整剪枝粒度以匹配原始模型性能和最小 FLOPs,结果显示,这些模型在适当的剪枝比例下,即使不进行微调,性能也未受影响。
此外,较大的多模态模型能够容纳更高的剪枝比例,这一点在不同规模的 InternVL-2.0 模型的剪枝实验中得到了验证。
05 总结
本篇工作提出了剪枝多模态大模型的一系列策略。与文本不同,视觉信息是稀疏且冗余的。先前的工作主要集中在减少视觉 token;而本篇工作则分析了参数和计算模式中的冗余。
在基本保持性能的同时,LLaVA 的计算开销被减少了 88%。在 Qwen2-VL-7B 和 InternVL-2.0-4B/8B/26B 上的额外实验进一步证实,视觉计算冗余在多模态大模型中普遍存在。