论文标题: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
项目主页:TBD
多模态大模型近年来在跨模态任务(如视觉问答、文本生成和科学推理)中表现出了强大的能力。然而,与文本 token 相比,视觉 token 的数量往往更为庞大。例如,在 LLaVA 模型中,处理一张图像涉及超过 500 个视觉 token,而对应的文本 token 只有数十个。这种极大的不平衡带来了如下问题:
-
计算效率低下
LLMs 的注意力机制复杂度随着输入 token 数量呈二次增长。这种计算成本的急剧增加对硬件资源提出了极高的要求,限制了多模态大模型的实际应用。 -
冗余性被忽视
尽管视觉数据包含丰富的信息,但其固有的空间稀疏性导致许多计算是冗余的。例如,大部分视觉 token 之间的交互权重很低,仅有邻近 token 之间的交互是关键。此外,在深层模型中,视觉 token 对文本生成的影响逐渐减弱,但现有计算模式并未有效利用这一特性。 -
现有方法的局限性
已有的优化策略,如减少视觉 token 数量或使用轻量化的语言模型,通常以牺牲模型性能为代价。并且很多削减 token 数量的方法诸如 FastV 和 Pyramid-drop 在判断削减哪些 token 计算的过程又引入了额外的计算量,无法做到一次性得对模型进行剪枝,而是需要针对不同 token 输入做动态剪枝。因此如何在保持性能的同时显著降低计算复杂度,仍是一个急需解决的问题。
基于上述问题,本文提出了新的优化方向:通过深入挖掘视觉参数和计算模式的冗余性,对模型计算做剪枝,而不是简单地减少 token 数量。这种方法不仅能降低计算开销,还能最大程度地保留模型性能。

-
邻域感知的视觉注意力:
视觉 token 之间的注意力交互往往具有空间稀疏性,大部分交互权重集中在邻近 token 之间,而远距离 token 的交互在一些情况下可以忽略。传统的全局注意力计算导致了大量无用的计算开销。本文提出了一种邻域感知的注意力机制,限制视觉 token 仅与其邻近 token 交互。通过添加邻域掩码,忽略超出特定半径的 token 交互。具体公式为:
其中,半径 h 表示邻域范围。这一改进将注意力计算复杂度从
降至
-
非活跃注意头剪枝:
研究团队以 LLaVA-1.5 作为研究对象,随机选取了 100 个视觉问答样本,可视化了视觉 token 的不同注意力头的权重,实验发现大约有一半数量的注意力头都没有被激活。由此可见这部分注意力头的相关计算同样存在大量冗余并可以被剪枝。实验表明,即使剪掉大量注意力头,模型仅有极小的性能下降。 -
稀疏投影的前馈网络:
尽管对于注意力机制的剪枝可以削减可观的计算量,但 transformer 的前馈网络仍然占据了大量计算。通过剪枝大部分视觉注意力计算,模型的视觉表达变得高度稀疏。为了有效利用这种稀疏性,研究团队提出在每个 transformer 模块内的前馈网络隐藏层中随机丢弃 p% 的神经元,也就是在如下计算中使用更小的维度 d’ : -
选择性层丢弃:
研究团队通过可视化 LLaVA-1.5 不同层的视觉 token 跨模态注意力权重发现,大权重集中在前 20 层,在第 20 层到 40 层之间权重接近于 0。
这项结果表明靠后的 20 层的视觉计算存在大量冗余。这一观察启发了研究团队在靠后的层中直接跳过所有与视觉相关的计算,从而减少计算开销。具体来说,对于层 l>L−N,视觉注意力和跨模态注意力计算都被省略,使得注意力计算可以简化如下:
本篇工作提出了剪枝多模态大模型的一系列策略。与文本不同,视觉信息是稀疏且冗余的。先前的工作主要集中在减少视觉 token;而本篇工作则分析了参数和计算模式中的冗余。在基本保持性能的同时,LLaVA 的计算开销被减少了 88%。在 Qwen2-VL-7B 和 InternVL-2.0-4B/8B/26B 上的额外实验进一步证实,视觉计算冗余在多模态大模型中普遍存在。
(文:AI前线)