本文主要解决了什么问题
-
- 大视觉语言模型(LVLMs)在处理大量视觉token时计算成本高昂的问题,导致推理效率低下。
-
- 现有基于注意力的token重要性评估方法存在固有局限性,特别是位置偏差问题,可能导致不精确的token重要性估计。
-
- 如何可靠地估计每个视觉token的重要性仍然是一个具有挑战性的问题,需要识别真正携带丰富语义信息且与用户指令紧密相关的重要token。
本文的核心创新是什么
-
- 提出了一种基于token转换的新视角来评估token重要性,通过观察token表示的转换(幅度和方向变化)来提供语义信息信号,超越了传统的基于注意力的方法。
-
- 提出了TransPrune,一种无需训练且高效的token剪枝方法,结合了两种互补标准:Token转换变化(TTV)和指令引导注意力(IGA)。TTV捕捉token的幅度和方向变化,而IGA根据指令token的注意力估计图像token的重要性。
-
- 引入了累积机制来提高token剪枝的一致性,在浅层(第7层至第12层)中聚合TTV值,生成更可靠的重要性度量,使每个剪枝阶段能够根据每个token的转换历史做出决策。
结果相较于以前的方法有哪些提升
-
- 在计算效率方面,TransPrune将推理TFLOPs减少了一半以上,在LLaVA-v1.5-7B模型上仅需原始TFLOPs的41%,同时保持相当的多模态性能。
-
- 在多模态性能方面,大量实验表明,TransPrune在八个基准测试中实现了与原始LVLMs(如LLaVA-v1.5和LLaVA-Next)相当的性能,无明显性能下降。
-
- 在兼容性和灵活性方面,TransPrune是一种即插即用的方法,易于与现有的基于Projector的token剪枝方法(如VisionZip)兼容,实现复合效率提升。此外,仅TTV作为独立标准已被证明是评估token重要性的有效方法,其性能与基于注意力机制的方法(如FastV)相当。
局限性总结
-
- TTV模式在不同层之间并不始终稳定,需要通过累积机制来缓解这种可变性,且该方法主要适用于浅层(第7层至第12层),在更深层的应用受到限制。
-
- 仅使用TTV作为独立标准时,在某些任务(如TextVQA)上性能明显下降,表明它无法充分捕捉与指令相关的语义信息。
-
- TransPrune需要平衡TTV和IGA的贡献(通过超参数α),找到最佳平衡点可能需要针对不同模型或任务进行调整,增加了应用的复杂性。
-
- 虽然TTV能够缓解位置偏差问题,但与IGA结合时仍可能部分受到注意力机制固有的位置偏差影响。
导读
大视觉语言模型(LVLMs)在多模态学习方面取得了进展,但由于视觉token数量庞大,计算成本高昂,推动了token剪枝以提升推理效率。关键挑战在于识别哪些token真正重要。大多数现有方法依赖基于注意力的标准来估计token重要性。然而,它们本质上存在某些局限性,如位置偏差。在本工作中,作者基于LVLMs中的token转换,探索了一种新的token重要性视角。作者观察到token表示的转换提供了有意义的语义信息信号。基于这一见解,作者提出了TransPrune,一种无需训练且高效的token剪枝方法。具体而言,TransPrune通过结合Token转换变化(TTV,测量token表示幅度和方向的变化)和指令引导注意力(IGA,测量指令通过注意力对图像token的注意力强度)来逐步剪枝token。大量实验表明,TransPrune在八个基准测试中实现了与原始LVLMs(如LLaVA-v1.5和LLaVA-Next)相当的多模态性能,同时将推理TFLOPs减少了超过一半。此外,仅TTV即可作为有效标准,无需依赖注意力,其性能与基于注意力的方法相当。
代码将公开发布在 https://github.com/liaolea/TransPrune
- 引言
近年来,大视觉语言模型(LVLMs)取得了显著进展,在广泛任务上展现出令人印象深刻的表现[13, 31]。然而,LVLMs通常会产生巨大的计算开销。导致这一计算负担的主要因素是推理过程中处理的大量视觉token。因此,提高LVLMs效率的有效方法是通过识别和保留重要token来减少冗余视觉token。重要token通常携带更丰富的语义信息,并且与用户的指令更紧密相关。然而,可靠地估计每个视觉token的重要性仍然是一个具有挑战性的问题。
许多现有方法依赖于注意力机制作为评估token重要性的直观标准[2, 28, 30]。虽然基于注意力的方法被广泛使用且通常有效,但它们存在固有的局限性。特别是,注意力机制表现出位置偏差[5, 26],并可能不成比例地关注视觉显著区域,而这些区域未必具有语义信息[9]。因此,仅依赖注意力来评估token重要性可能导致不精确的估计。这一局限性促使人们探索用于token重要性估计的替代或补充标准。
在众多现实现象中,实体的动态演变与转化往往能提供比仅仅考察其瞬时或静态状态更为深刻和细致的洞察 [24]。受此更广阔视角的启发,作者深入探讨一个新颖的观点:词元表示的动态转变能否作为其重要性的指标?
为回答此问题,作者从两个互补的角度评估了token的转换:首先,通过模块内token的输入和输出表示之间的L2范数来量化幅度变化;其次,通过这两者表示之间的余弦相似度来捕捉方向变化[27]。作者可视化不同层级的token转换,重点关注自注意力模块和 FFN (FFN)模块,如图2所示。作者发现转换确实反映了token的语义信息。在浅层(第6层至第14层),输出与输入L2范数比率较大的token以及绝对余弦相似度较小的token往往更具语义重要性。在深层(第20层以上),token转换可能表现出不同特征。
基于这一观察,作者提出了TransPrune,一种无需训练且高效的token剪枝方法。TransPrune主要利用两种互补的标准来估计token的重要性:Token Transition Variation(TTV)和Instruction-Guided Attention(IGA)。TTV通过仅关注每个token的自转移,捕捉token表示的幅度和方向变化,而无需计算token间的依赖关系。这种设计避免了注意力机制中三角 Mask 机制可能产生的位置偏差[5]。IGA根据指令token的注意力来估计图像token的重要性。这能够基于图像token与指令的语义相关性来评估其重要性。
然而,如图2所示,虽然TTV反映了token的重要性,但其模式在层之间并不始终稳定。为了缓解这种可变性,作者提出了一种累积机制,该机制专门在表现出一致特征的浅层(第7层至第12层)中聚合TTV值,从而生成更可靠的重要性度量。由于目标是加速推理,修剪浅层token能够实现更好的加速效果,因此作者不考虑深层(第20层及以下)的转换。
大量实验表明,TransPrune在降低LVLMs推理TFLOPs超过一半的同时,实现了相当的多模态性能。具体而言,在LLaVA-v1.5-7B模型上,TransPrune仅需原始TFLOPs的41%,在8个基准测试中平均性能未下降。此外,TransPrune是一种即插即用且在LLM内部进行剪枝的方法,易于与现有的基于 Projector 的token剪枝方法(如VisionZip [29])兼容。此外,仅TTV(Token Transition Value)已被证明是评估token重要性的有效标准,其性能与基于注意力机制的方法(如FastV [2])相当。TTV的设计(仅需token的输入和输出表示)也使其能够与FlashAttention [4]直接集成。
总之,作者的主要贡献如下:
- • 作者通过展示token转换能够产生token重要性的有效信号,引入了一种超越注意力的新视角。基于此,作者提出了TransPrune,这是一种无需训练且高效的剪枝方法。
- • TransPrune结合了token转换变异(TTV)和指令引导注意力(IGA)。TTV捕捉token的幅度和方向变化,而IGA根据指令token的注意力估计图像token的重要性。
- • 大量实验表明,TransPrune在LLaVA-v1.5和LLaVA-Next上能够保持相当的多模态性能,同时将推理TFLOPs减少了一半以上。
- 相关工作
2.1. 大型视觉语言模型
大视觉语言模型(LVLMs)在多模态理解和生成方面取得了显著进展[7, 13, 15, 23, 31]。代表性的模型如LLaVA[15]、BLIP2[13]和MiniGPT-4[31]允许用户通过包含文本和视觉输入的丰富多模态 Prompt 与系统进行交互。除了通用任务之外,最近的进展进一步扩展了LVLMs在下游应用中的能力,如情感计算[11]和医学图像理解[1],展示了它们在高风险、特定领域场景中的潜力。
尽管近年来取得了进展,LVLMs固有的复杂性仍然需要大量的计算资源用于训练和推理。这一挑战在需要对高分辨率图像进行细粒度理解时尤为突出,而对于视频理解[14, 18, 22]则更为严重,因为时间冗余和长序列会急剧增加token的数量。这些不断增长的负担凸显了高效token剪枝的迫切需求,以实现可扩展、实时运行的LVLMs。
2.2. Token剪枝
现有的LVLMs(大型视觉语言模型)的token剪枝方法可以分为两类:基于投影的剪枝和inLLM剪枝。
基于 Projector 的剪枝方法旨在在选择和剪枝视觉 Token 后将其传递给LLM。VisionZip [29] 选择频繁被关注的视觉 Token ,并根据它们的相似性合并相似的 Token 以减少冗余。可恢复压缩 [3] 引入了一个额外的文本编码器,通过相似性计算估计视觉 Token 的重要性,并实现了一个两阶段 Token 恢复机制。HICom [20] 执行局部和全局压缩,以识别与用户指令最相关的视觉 Token 。
相比之下,in-LLM剪枝在LLM内部进行。具体而言,此类方法通常根据LLM内部对token的评估指标在不同层进行token剪枝。FastV [2] 基于最后一个token的注意力权重剪枝视觉token。PDrop [28] 采用了金字塔式的多阶段剪枝策略以加速推理。SparseVLM [30] 利用重要指令token和视觉token之间的注意力分数来指导剪枝。然而,最近的研究指出,仅依赖注意力分数可能会引入位置偏差 [5, 26]。
TransPruneTransPrune属于LLM内部剪枝类别。与大多数依赖注意力机制的传统LLM内部方法不同,作者引入了一种基于 Token 转换的新颖且高效的准则,以更好地评估 Token 的重要性。
- 方法
在本节中,作者介绍了TransPrune方法,如图3所示。
3.1. Token转换变化
Token转换作为重要性信号。受动态变化往往比静态值更能反映现实世界中实体状态的启示,作者假设LLM层中token所经历的转换可能揭示其语义重要性。
每个Transformer层由一个自注意力模块和一个 FFN 组成,这两个模块都以有意义的方式修改了token表示。为了表征这些变化,作者沿着两个维度分析token的转换:幅度和方向。形式上,设
表示一个转换模块(例如自注意力或 FFN ),设
为输入token表示。则输出token表示为
。作者定义幅度转换
和方向转换
为:
作者通过实证观察(见图2)发现,这两种类型的转换变化反映了 Token 的语义信息。
基于这一见解,作者提出一个称为Token Transition Variation(TTV)的标准。具体而言,所有图像Token
的方向转换通过
进行量化。然后,作者对所有Token应用softmax操作以归一化这些方向转换值,并将其与相应的幅度转换相乘,从而计算最终的TTV分数:
对于每一层
,作者通过聚合来自自注意力模块和 FFN 模块的贡献来计算一个token的TTV分数:
这些分数随后用于指导每层中的 Token 剪枝决策。
基于Token的转换累积实现精确剪枝。在Token剪枝中,通常根据预定义的重要性标准在特定层移除Token。然而,如图2所示,Token转换模式(TTV)在不同层之间存在差异,使得任何单一层的TTV分数不足以精确地一致识别重要Token。为了提高Token剪枝的一致性,作者引入了一种累积机制,在每层剪枝之前,该机制会聚合多个层之间的Token转换,如图3(b)所示。
形式上,作者定义累积层集
,其中计算TTV分数。在此集
内,作者选择特定层,形成剪枝层集
,其中依次执行token剪枝。对于每个剪枝层
,作者通过将所有先前累积层(包括
层)的TTV值相加,来计算每个token的累积TTV分数。
这种累积策略使每个剪枝阶段能够根据每个 Token 的转换历史做出决策,从而实现更精确的剪枝。
3.2. 指令引导注意力
由于TTV完全依赖于图像 Token 的内在变化,并且与指令无关,因此它可能无法捕捉与指令相关的信息。为了解决这个问题,作者引入了指令引导注意力(IGA)。作者简单地利用指令 Token 如何关注图像 Token 来估计每个图像 Token 的重要性。
具体而言,作者首先计算指令 Token 的 Query
与图像 Token 的键
之间的注意力矩阵
。然后,作者对所有指令 Token 进行平均,以获得 IGA:
其中
表示第
个指令token对图像token的注意力权重,
表示指令token的长度。更高的IGA分数表示在给定指令下,该token在语义上更相关。
对于每个剪枝层
,TransPrune 将累积的 TTV 与 IGA 结合起来,以确定用于剪枝的 token 重要性。图像 token
在层
的组合剪枝分数计算如下:
超参数
平衡了TTV和IGA的贡献。综合得分较低的 Token 是
随后进行了剪枝。请注意,累积机制仅应用于TTV,而未在IGA中使用。
3.3. TransPrune的效率
作者分析了TransPrune在存在
个指令token(每个token具有隐藏维度
)以及FFN层的中间维度为
的设置下引入的额外计算成本。在常见的VQA任务中,指令通常只包含几十个token。TransPrune在
个剪枝阶段中运行,在每个阶段,保留
个视觉token(其中
。每个剪枝阶段可能对应多个Transformer层。令
表示第
阶段的层数。TransPrune引入的额外计算主要来自两个组件:(1) TTV中的L2范数和余弦相似度计算,以及(2) IGA中保留的视觉token和指令token之间的注意力。形式上,总FLOPs可以近似表示为:
其中,第一项对应于所有层上保留的token的Transformer操作,第二项表示每个阶段指令token和视觉token之间的注意力,最后一项捕获TTV计算带来的小开销,该开销与阶段数和token维度呈线性关系。与 Baseline 模型的计算总量相比,TransPrune引入的额外成本是微不足道的。
- 实验
4.1. 设置
基准测试。为了全面评估TransPrune的有效性,作者在涵盖感知、推理和视觉问答(VQA)等多种任务的多样化基准测试集上进行了实验。基准测试集包括:MME [6]、MMBench [19]、SEED [12]。
ScienceQA [21], VQA-v2 [8], POPE [10], GQA [10] 和 TextVQA [25]
模型。作者通过在具有不同架构设计和输入分辨率的LVLMs上进行的广泛实验,验证了TransPrune的有效性和泛化能力。具体而言,作者的研究包括LLaVA-v1.5-7B [17]和LLaVA-NeXT-7B [16]。LLaVA-1.5是一个广泛使用的开源LVLM,它通过一个简单的 Projector 将CLIP编码器中的576个图像 Token 映射到LLM。LLaVA-NeXT扩展了这一设计,以处理高达2880个图像 Token ,从而更好地理解高分辨率图像。
实现细节。作者设置
以平衡TTV和IGA的贡献。TTV在层7到层12之间累积,而token剪枝在层7、层9和层12执行。为了评估TransPrune在不同计算预算下的有效性,作者设计了两种配置——TransPrune-High和TransPrune-Low——它们在每层剪枝时保留不同数量的token,如表5所示。所有实验均在A100 GPU(40GB)上进行。
在推理过程中,作者利用FlashAttention进行高效的注意力计算。由于TransPrune的TTV计算仅需访问模块的输入和输出,并且IGA仅从指令token计算到图像token的注意力权重(而非完整的注意力图),因此TransPrune仍然与FlashAttention兼容。
4.2. 与公开基准测试中的SOTA进行比较
TransPrune在众多基准测试中均表现出色,同时其TFLOPs开销在所有对比方法中最低。如表1所示,TransPruneHigh在性能退化可忽略的同时,将计算成本降低至原始TFLOPs的41%。此外,如表2所示,在更高分辨率的LLaVA-NeXT-7B上,TransPrune保持了更低的TFLOPs开销,并同时优于其他方法。
TransPrune是一种LLM内的剪枝方法,同时也能与现有的基于 Projector 的token剪枝方法无缝集成。如表3所示,作者展示了其与VisionZiP [29]结合的性能表现。当与VisionZiP集成时,TransPrune相较于单独使用VisionZiP将TFLOPs降低了三分之二,并实现了仅超过原始LLaVAv1.5-7B 10%的整体计算成本,同时保持了与原生VisionZiP相当的性能。这一结果说明了TransPrune与基于 Projector 方法的兼容性,能够在不显著损失性能的情况下实现复合效率提升。
4.3. 分析
作者使用TransPrune-High进行以下分析: Token 转换变化的效率。为了评估TTV作为独立标准衡量 Token 重要性的有效性,作者仅使用TTV作为 Token 剪枝标准进行实验。如表4所示,作者将TransPrune(仅TTV)的性能与基于注意力的方法FastV进行比较。作者的结果表明,仅TTV就能实现与FastV相当的性能,突显了其作为有效 Token 重要性标准的潜力。然而,作者也观察到在TextVQA上单独使用TTV时性能明显下降。这可能是由于TTV仅依赖图像 Token 转换,而未考虑指令相关的语义。
此外,作者可视化了最终保留的token在所有MME样本中的位置分布,如图4所示。图4(a)展示了使用IGA的频率。由于IGA是一种基于注意力的方法,它明显表现出位置偏差,倾向于保留位于开头和结尾的token [5, 26]。然而,对于图像而言,这些位置的token通常包含较少的语义信息。相比之下,图4(b)展示了使用TTV的频率。TTV没有明显的位置偏差,并且倾向于更均匀地关注图像的中心区域,这些区域通常包含更密集和更相关的语义信息。TTV和基于注意力的方法的结合可以部分缓解位置偏差问题。
定性可视化。如图5所示,作者展示了三个VQA示例在不同层上的token剪枝结果。从左到右,作者可视化保留了token如何随着剪枝的进行而演变。相关性较低的token逐渐被丢弃,而语义上重要的token在最终的剪枝阶段始终被保留。
累积效应。为验证累积机制的有效性,作者使用与TransPrune相同的剪枝层进行消融实验,如表6所示。几乎所有基准测试在引入累积机制后都显示出改进,表明该机制使TTV能够捕获更精确的语义信息。
幅度和方向的影响。为了评估TTV中幅度和方向分量的贡献,作者通过逐步引入这些元素进行消融研究,从仅使用IGA的 Baseline 开始。如表7所示,幅度和方向均有助于性能提升,其中幅度带来了更显著的改进。结合这两个分量可达到最佳性能。
不同层累积TTV的影响。由于TTV在层间可能存在不稳定性,作者进行实验以评估在较深层(第7层至第12层)计算TTV是否比仅使用浅层(第1层至第6层)实现更好的性能。为确保公平比较,作者在所有设置中对第7层、第9层和第12层进行token剪枝。然而,在浅层设置中,每个剪枝点的TTV仅从浅层计算——例如,在第7层剪枝时,作者仅使用第1层的TTV;在第9层,作者使用第1层至第3层的累积TTV;在第12层,作者使用第1层至第6层的累积TTV。如表8所示,仅从浅层计算的TTV效果不如从深层导出的TTV。作者认为这是因为初始层的转换主要捕获Low-Level视觉或位置信息,这些信息与深层学习到的特定任务语义关联性较弱。
参数
的影响。作者通过实验研究了不同
参数对最终性能的影响,如表9所示。当
设置为0.5,即TTV和IGA贡献相等时,性能达到最佳水平。这表明平衡TTV和IGA的贡献使模型能够充分利用图像 Token 自身信息和指令信息,从而获得最佳整体性能。
- 结论
在本文中,作者探索了一种新视角:利用token表示的转换来反映token的重要性。基于这一见解,作者提出了TransPrune,一种无需训练且高效的剪枝方法。TransPrune的核心在于结合token转换变化与指令引导的注意力机制。大量实验验证了TransPrune在广泛基准测试中的有效性和效率。作者相信这项工作为加速LVLM推理开辟了新的途径。
参考
[1]. TransPrune: Token Transition Pruning for Efficient Large Vision-Language Model
