本篇论文的核心作者包括罗切斯特大学的博士研究生张泽良,指导教师徐辰良副教授,以及来自Adobe的研究员赵文天,万锟和李宇哲。
尽管近期 Qwen2-VL 和 InternVL-2.0 的出现将开源多模态大模型的 SOTA 提升到了新高度,但巨大的计算开销限制了其在很多场景下的应用。近日,Adobe 研发团队联合罗切斯特大学系统性得研究了主流多模态大模型在参数和计算模式层面的冗余,并提出了名为 YOPO(You Only Prune Once)的一系列剪枝方案。实验结果表明 LLaVA-1.5 只需保留 12% 的计算量即可获得与原始模型同等的性能,并且实验团队还验证了这些计算冗余在 Qwen2-VL 和 InternVL-2.0 同样普遍存在。这为高效处理密集视觉 token 提供了新路径。
目前代码、模型和项目主页均已放出。
论文: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/tree/main?tab=readme-ov-file
背景介绍
近期多项研究表明,随着模型规模和输入图像分辨率的增加,多模态大模型的能力也随之提升。然而,使用更大的模型或引入更多视觉 tokens 会带来显著的计算负担。大部分多模态大模型视觉 token 数量在几百到几千不等,通常远大于文本 token 的数量。这种巨大的不平衡带来了一个关键挑战:模型的计算成本随着总输入 token 的数量的平方而增加,从而限制了多模态大模型的可扩展性。尽管近期一些工作提出了对视觉 token 做削减的解决方案,如 FastV,SparseVLM, Pyramid-drop 等,但这类方法不可避免得在判断削减哪些视觉 token 时引入了额外的计算量。为此研究团队提出了在不引入额外计算量的前提下对模型参数和计算模式进行更高效剪枝,并在多个 benchmark 上实现了 SOTA。
方法
1 邻域感知视觉注意力:研究团队发现尽管多模态大模型中存在大量的视觉 tokens,但在的注意力计算中,大多数注意力是稀疏的,且显著的注意力权重主要集中在相邻的视觉 tokens 上。为减少由这种冗余引起的计算负担,研究团队提出了一种简单而有效的剪枝方法,选择性地消除视觉 token 之间的非必要注意力计算。具体而言,研究团队对注意力机制进行了修改,使得只有相邻的视觉 token 彼此关注,而文本 token 则保留了在视觉 token 和文本 token 之间自由关注的能力。修改后的视觉注意力计算过程如下:
在应用了此剪枝方案后,模型的计算复杂度由和视觉 token 数量的二次方成正比降为了和其数量成正比。
2 非活跃注意力头剪枝:研究团队以 LLaVA-1.5 作为研究对象,随机选取了 100 个视觉问答样本,可视化了视觉 token 的不同注意力头的权重,实验发现大约有一半数量的注意力头都没有被激活。由此可见这部分注意力头的相关计算同样存在大量冗余并可以被剪枝。
3 选择性层丢弃:研究团队通过可视化 LLaVA-1.5 不同层的视觉 token 跨模态注意力权重发现,大权重集中在前 20 层,在第 20 层到 40 层之间权重接近于 0。
这项结果表明靠后的 20 层的视觉计算存在大量冗余。这一观察启发了研究团队在靠后的层中直接跳过所有与视觉相关的计算,从而减少计算开销。具体来说,对于层 l>L−N,视觉注意力和跨模态注意力计算都被省略,使得注意力计算可以简化如下:
4 在 FFN 中进行稀疏视觉投影:通过剪枝大部分视觉注意力计算,模型的视觉表示变得高度稀疏。为了有效利用这种稀疏性,研究团队提出在每个 transformer 模块内的 FFN 隐藏层中随机丢弃 p% 的神经元。
实验结果
研究团队在众多常见基准上评估了他们提出的方法在剪枝 LLaVA-1.5-7B 和 LLaVA-1.5-13B 模型中的效果。由表中得知,在相同的计算预算(即相同的 FLOPs)下,团队提出的剪枝方法在四个样本较多的基准测试上一致性得取得了最佳结果,分别在 GQA、VQAv2、POPE 和 MMB 上比第二优方法平均高出 3.7%、1.1%、2.2% 和 0.45%。
为了展示此种方法在剪枝视觉计算冗余方面的可扩展性,团队在两个最大的基准测试 VQAv2 和 GQA 上,以不同的剪枝粒度,将他们提出的策略与 token 剪枝代表性工作 PyramidDrop 和 FastV 进行比较。可以观察到,随着视觉计算的 FLOPs 减少,剪枝模型的性能也随之下降。具体来说,对于使用 FastV 剪枝的模型,将 FLOPs 从 75% 减少到 19% 导致在两个基准测试上的平均性能从 71.35% 降至 66.63%。相比之下,团队提出的方法并未直接剪枝 token,而是针对参数和计算模式层面的冗余计算进行剪枝,从而仅导致 0.5% 的性能下降。
为了进一步印证文中观察到的大量视觉计算冗余是普遍存在的,团队将该方法应用于其他模型包括 Qwen2-VL-7B 和 InternVL-2.0 4B/8B/26B。团队在 GQA 和 POPE 基准上评估了性能,并调整剪枝粒度以在保持原始模型性能的同时尽量减少 FLOPs。如图所示,即使在未微调的情况下,以适当比例剪枝这些模型的视觉计算也不会影响其性能。此外,更大的模型能够适应更高的剪枝比例,这从不同模型规模下对 InternVL-2.0 的剪枝结果中得到了验证。
讨论
为什么不直接同时剪枝视觉和文本的参数?研究团队专注于减少视觉 token 计算中的冗余,从而降低其开销,同时保留文本 token 的计算。为了探讨文本 token 是否也存在类似的冗余,团队进行了一个实验,分别对仅视觉 token 和视觉与文本 token 同时剪枝 20 个注意力头。在未进行微调的情况下,仅剪枝视觉 token 在 VQAv2、GQA、SQA 和 TextVQA 上的平均性能为 67.1%,而同时剪枝视觉和文本 token 的性能则大幅下降至 4.3%。这表明在当前多模态大模型中,视觉计算中的冗余显著高于文本计算中的冗余。
对 token 剪枝和计算模式剪枝的效率分析。研究团队对不同输入视觉 token 数量下各方法的效率进行了比较。结果表明,与基于 token 剪枝的方法相比,从计算模式层面解决视觉计算冗余问题在处理较长视觉序列时具有更大的效率优势。这种方法有效缓解了处理大量视觉 token 所带来的计算开销上升问题,展现了其在处理视觉序列方面的可扩展性。
总结
研究团队针对剪枝多模态大模型以实现高效计算的挑战进行了研究。与文本不同,视觉信息具有高度稀疏性和冗余性。以往的研究主要集中在减少视觉 token 数量;而本篇工作则分析了参数和计算模式中的冗余性。团队提出的策略包括:邻域感知的视觉注意力、非活跃视觉注意力头的剪枝、FFN 中的稀疏视觉投影以及选择性层丢弃。这些方法将 LLaVA-1.5 的计算开销减少了 88%,同时大幅保留了其性能。针对 Qwen2-VL-7B 和 InternVL-2.0 4B/8B/26B 的额外实验进一步证实,视觉计算冗余在多模态大模型中普遍存在。
© THE END 龙跃龙跃
暂无评论内容