多模态大模型Token压缩技术:分类、选择与未来趋势

多模态大模型Token压缩技术综述,帮你快速了解各类压缩策略、应用场景选择及未来研究方向。

原文标题:关于多模态大模型Token压缩技术进展,看这一篇就够了

原文作者:机器之心

冷月清谈:

本文对近年来快速发展的多模态大模型(MLLM)Token压缩技术进行了全面的综述。针对MLLM中视觉Token数量庞大导致的计算成本问题,文章从压缩位置这一视角出发,将现有方法分为视觉编码器内/外部压缩、Projector压缩和LLM压缩三大类,并详细讨论了各种压缩策略及其优缺点。此外,文章还针对不同的应用场景,如视频输入、纯视觉/文本引导、Token合并/删除等,提供了选择合适的压缩策略的指南。最后,文章总结了目前Token压缩技术面临的挑战,例如缺乏理论指导、任务自适应性不足等,并展望了未来的研究方向。本文旨在帮助研究人员和从业者更好地理解和应用MLLM Token压缩技术。

怜星夜思:

1、Token压缩技术在多大程度上会影响模型的泛化能力和鲁棒性?有没有什么方法可以在压缩的同时尽量保持模型的性能?
2、文章提到了纯视觉压缩和文本引导压缩,那么在实际应用中,这两种方式分别适用于什么样的场景?有没有可能将两者结合起来以达到更好的效果?
3、文章中提到了多种Token压缩策略,但是为什么像pooling、pixel unshuffle等简单的压缩机制仍然被广泛使用?这些简单的方法在哪些方面具有优势?

原文内容


近年来多模态大模型在视觉感知,长视频问答等方面涌现出了强劲的性能,但是这种跨模态融合也带来了巨大的计算成本。高分辨率图像和长视频会产生成千上万个视觉 token ,带来极高的显存占用和延迟,限制了模型的可扩展性和本地部署。


正是这种紧迫的需求催生了 MLLM Token Compression ,迅速成为研究爆点,两年内在该垂直领域产出了约 200 篇论文。但是随着研究工作的快速涌现,领域内的方法也变得极其庞杂难以归类,进一步具体到落地场景里面,往往因为方法多样而难以选择。


针对这一背景,来自北京大学、中国科学技术大学等机构的研究人员,首先基于压缩位置对方法进行了系统归类,然后讨论了对于特定的部署场景应该选择何种压缩机制,最后探讨了目前的挑战和具有前景的方向。



  • Github 链接: https://github.com/yaolinli/MLLM-Token-Compression

  • 论文链接: https://www.techrxiv.org/doi/full/10.36227/techrxiv.176823010.07236701/v1


图 1. MLLMs 中 Token 压缩代表性工作时间线


基于压缩位置视角的系统分类(where to compress)


图 2. MLLM Token 压缩方法的系统分类


研究人员根据 Token 压缩方法在 MLLM 架构中应用的位置,对现有方法进行了系统性的分类。在从视觉输入到文本输出的整个处理过程中,Token 压缩策略可以逐步部署在三个架构模块中:


  • Vision Encoder:在此阶段进行压缩可以降低视觉感知阶段的计算开销;

  • Projector:在从视觉表示空间向语言表示空间转换的过程中整合 Token 削减技术;

  • Large Language Model:在此阶段进行压缩可实现整体的跨模态效率优化。


(1)Vision Encoder 中的压缩


图 3. MLLMs 中视觉编码器模块所采用的 Token 压缩策略示意图


在 MLLMs 中,视觉数据本质上比文本具有更高的冗余性,而由于视觉编码器是编码视觉输入的第一个模块,在这一初始阶段减少视觉 Token 可以为整个 MLLM 系统带来显著的效率提升。研究人员首先回顾并将在视觉编码器模块中应用的视觉侧 Token 压缩方法分为两大类:视觉编码器内部压缩(Inside-VE)和视觉编码器外部压缩(Outside-VE)。由于视觉编码器不同的层会捕捉不同尺度的视觉信息,从低层纹理到高层概念,因此 Inside-VE 往往通过开发多尺度压缩方案来协调各层之间的压缩。Outside-VE 的设计具有即插即用的特点,对原始架构的改动极小,并且可以根据是否引入文本信号进行灵活的设计。


(2)Projector 中的压缩


图 4. MLLMs 中 projector 模块所采用的 Token 压缩策略示意图


Projector module 作为一个接口,将原始的视觉嵌入转换为与语言兼容的表示形式,从而确保 vision encoder 提取的信息能被大语言模型有效利用。虽然像 Q-Former 这样的早期 projector 架构通过将大量的视觉嵌入提炼为一组紧凑的查询 Token,实现了高效 Token 压缩,但后续的大量研究为 projector 引入了额外的设计增强,以实现更细粒度和任务自适应的压缩。研究人员将这些方法大致分为三大类并进行了详细的讨论:基于变换的方法,基于查询的方法和重要性驱动的方法。


(3)LLM 中的压缩


图 5. MLLMs 中 projector 模块所采用的 Token 压缩策略示意图


由于 LLM 的参数量通常远超视觉编码器和投影器,会成为性能瓶颈的关键组件,在这一阶段进行高效压缩会产生直接收益。MLLM 早期发展阶段非常关注短文本视觉问答(VQA),因此这一时期的压缩策略专注于预填充阶段,会在输入序列第一次在 LLM 中 forward 时就对视觉 token 进行压缩。但是随着思维链技术的飞速发展,研究重心已转向长视觉问答场景,这些技术通常在 decoding 阶段选择性地剪枝或合并 KV Cache 来降低内存和计算成本。


(4)多模块压缩


除了在单个组件内应用 Token 压缩外,近期已有越来越多的方法开始探索跨多个模块的压缩策略,以实现更高的压缩效率和更优的表征质量。这类方法主要关注如何协调不同组件之间的压缩,并将其组织为一个多阶段过程,从而最大限度地提高整体效率和表征质量。对于这种混合压缩策略,研究人员详细介绍并分析了两种新兴的设计范式:多模块协同压缩以及多阶段渐进式压缩。


表 1.  代表性 MLLMs token 压缩策略总结


不同使用场景下如何选择合适的压缩策略(how to select)


由于 Token 压缩设计方法的激增,有必要制定相关指南,以帮助从业者针对特定的部署场景选择最佳策略,研究人员对关键的选择因素进行了全面对比。


(1)针对视频输入的时空增强压缩


虽然现有的空间压缩策略可以直接应用于单帧,但它们通常无法利用帧间的冗余。为了填补这一空白,最近的研究提出了时空增强的 Token 压缩,这些方法明确考虑了时间结构,以实现高效的长序列建模。研究人员进一步详细介绍了应该使用哪些策略解决时空联合压缩,时序结构保留以及超长序列等实际挑战。


(2)纯视觉压缩 vs. 文本引导压缩


现有方法根据其是否利用了文本信息(用户指令)可分为纯视觉压缩和文本引导压缩,这两种策略是互补的,一种实用的设计是:首先通过纯视觉压缩导出紧凑的视觉表示,然后在语言模块中应用文本引导的选择机制,以精炼出与给定文本查询相关的 Token。


(3)Token Merging vs. Token Dropping


Token Merging 提供了平滑的聚合,适用于密集或在时间上冗余的视觉输入;而当高层语义已足够稀疏时,Token Dropping 的效率则更具优势。未来的框架可能会受益于自适应的混合设计,根据模态特征和冗余类型,在 “软聚合” 和 “硬剪枝” 之间进行动态切换。


(4)即插即用方法 vs. 重训练方法


即插即用方法非常适合在训练资源有限或任务需求相对温和的情况下,进行快速部署和推理加速。然而,它们的性能上限相对有限,最近的研究进一步通过实验证明免训练 Token 压缩方法在需要高分辨率视觉理解任务中,会出现显著的性能下降。相比之下,重训练方法在细粒度多模态理解方面表现优异,能够提供更高的性能上限,但代价是大量的额外训练开销。


(5)加速训练  vs. 加速推理


由于任务的相似性,原则上所有可用于 LLM 预填充的加速推理策略也都可以用于加速训练,但是大多数 sota MLLM 仍然使用最简单的 Token 压缩机制,如 pooling,pixel unshuffle 等。为什么这些多样化的方法没有被主流 LVLM 广泛采用? 研究人员分析了三个主要原因:Flash Attention 兼容性问题,训练验证成本高昂导致的策略保守,归纳偏置导致的泛化性下降(Inductive bias)。由于目前的 MLLM 旨在用于通用目的,任何特定能力的退化都是不可接受的。


结语


尽管 MLLMs 的 Token 压缩技术取得了快速进展,但仍有若干开放性挑战值得进一步研究,比如缺乏理论辅助,缺乏任务与内容感知的自适应性,实际细粒度感知的任务性能下降,这些都是值得进一步探索的重要问题。


本文的 survey 后续会保持更新,将在 v2 版本中整理 Token 压缩研究中常用的图像和视频理解基准测试,并据此构建一个全面的评估框架。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com

从学术的角度出发,我会考虑知识蒸馏结合剪枝的方法。先用大型模型进行Token压缩的训练,然后将压缩后的知识迁移到小型模型上,这样既能保证一定的精度,又能降低计算复杂度。不过,这种方法的挑战在于如何设计合适的蒸馏目标,以及如何避免小型模型过拟合。

从理论上讲,可以考虑利用强化学习来训练Token压缩策略。将压缩过程看作是一个agent,根据不同的任务和内容,选择不同的压缩动作,然后根据最终的性能反馈来调整策略。这种方法的优点是可以自动地学习到最优的压缩策略,但缺点是训练成本比较高,需要大量的数据和计算资源。

其实我觉得可以设计一个混合策略。先用纯视觉压缩提取图像的通用特征,然后再用文本引导压缩提取与文本相关的特征。把这两种特征融合起来,就能得到更全面、更准确的图像表示,提高照片分类的性能。而且,这种方法也更灵活,可以根据不同的任务调整两种压缩方式的比例。

纯视觉压缩偏向于无监督或自监督学习,目的是提取图像的本质特征,适用于对图像内容理解要求不高的场景,例如图像检索或相似性比较。文本引导压缩则更侧重于有监督学习,目的是提取与文本描述相关的特征,适用于需要精确理解图像内容的场景,例如视觉问答或图像描述生成。

结合两者是很有潜力的。一种可能的方案是:先用纯视觉压缩提取图像的通用特征,然后用文本引导压缩在这些通用特征的基础上,提取与文本相关的特定特征。这样既能利用图像的全局信息,又能关注文本提供的局部信息,从而提高模型在复杂任务中的性能。

我有个想法,是不是可以先用纯视觉压缩做一个初步筛选,把那些明显不重要的Token去掉,然后再用文本引导压缩来精确定位和压缩剩下的Token,这样感觉效率会更高?

Token压缩肯定会对泛化能力和鲁棒性产生影响,毕竟信息都损失了。要我说,是不是可以通过一些对抗训练或者数据增强的方法,让模型在压缩后的数据上也能保持较好的性能?另外,设计更精巧的压缩算法,尽量保留关键信息也很重要。

从信息论的角度来看,Token压缩本质上是一种有损压缩。这意味着必然会损失一部分信息,从而可能影响模型的泛化能力和鲁棒性。为了在压缩的同时尽量保持模型性能,可以考虑以下方法:

1. 选择合适的压缩算法:不同的压缩算法对信息保留程度不同。例如,基于重要性的压缩算法可以优先保留对模型预测影响较大的Token。
2. 引入正则化项:在训练过程中,可以引入正则化项来约束模型的学习,使其更加关注重要的Token,从而提高压缩后的模型性能。
3. 知识蒸馏:可以使用未压缩的模型作为教师模型,指导压缩后的学生模型进行学习,从而将知识迁移到压缩后的模型中。
4. 微调:在压缩后,可以对模型进行微调,以适应压缩后的数据分布。

纯视觉压缩就像是给图片做个初步的瘦身,适合那种不需要特定指令的场景,比如图像分类、目标检测。而文本引导压缩就像是根据你的需求来精细修剪图片,适合那种需要根据文字描述来理解图片的场景,比如视觉问答。结合起来的话,感觉可以先用纯视觉压缩提取通用特征,再用文本引导压缩提取相关特征,这样既能减少计算量,又能保证精度。

我觉得这是一个trade-off的问题。压缩率越高,模型性能下降的可能性越大。关键在于找到一个平衡点。我猜想,可以尝试一些自适应的压缩策略,根据不同的任务和数据,动态调整压缩率。

虽然复杂的Token压缩策略在理论上可以实现更高的压缩率和性能,但pooling和pixel unshuffle等简单方法仍然被广泛使用,原因在于:

1. 计算效率:这些方法计算复杂度低,易于并行化,可以显著加速推理过程。
2. 实现简单:它们实现简单,不需要额外的训练或参数调整,易于集成到现有的模型架构中。
3. 兼容性好:这些方法对模型结构的改动较小,与各种深度学习框架和硬件平台兼容性好。
4. 作为基线:在研究新的压缩策略时,这些简单方法可以作为基线进行比较,以评估新方法的性能提升。

在GPU资源有限或对推理速度要求较高的场景下,这些简单方法仍然是实用的选择。