视觉token不必一律排序:BtsPruner只留576个中的32个,仍保住稠密模型91.6%的性能
核心概要
大型视觉语言模型要为每张图处理数百到数千个视觉token,推理开销随之上升。此前的免训练剪枝方法用同一套重要性标准给所有视觉token排序,忽略了它们在编码过程中承担的角色会发生变化。BtsPruner先依据注意力集中度的变化定位角色转折点,再从较深层挑出被全局引用的代表token、从较浅层递归取回局部细节token,在固定预算下同时保留两类角色;在LLaVA-1.5-7B上只保留576个视觉token中的32个(5.6%),仍保住稠密模型91.6%的性能。
深度剖析
视觉token剪枝不再对所有token套用同一套重要性排序,而是按编码过程中形成的两类角色分别保留:承载局部细节的token与被全局引用的代表token。 此前的免训练方法,包括在语言模型侧用文本到视觉注意力排序的FastV,以及在视觉编码器附近用视觉注意力、特征相似度或其组合的方法,都假定视觉token可以用统一标准排序。 在LLaVA-1.5-7B上保留32个视觉token(占576个的5.6%)时,BtsPruner保住稠密模型91.6%的性能,相对保留率比对比中最强的VisPruner高2.5个百分点;保留128个和64个token时分别高0.9和1.1个百分点。
方法先找出角色发生转折的编码层,再分别从转折点之后和之前取回两类token。 角色转折点由[CLS]注意力集中度的层间变化确定,阈值系数默认为2;没有[CLS]token的视觉编码器改用视觉token的平均被注意力。 全局代表token按倒数第二层的[CLS]注意力选出候选,再用多样性筛选保留彼此差异大的token;局部细节token从转折层起以已选代表为父节点,按注意力取候选并递归扩展,直到达到token预算或到达最早层。
在LLaVA-NeXT-7B的高分辨率设置下,只保留160个视觉token时CUDA延迟从821毫秒降到138毫秒。 该模型原本要处理2880个视觉token,剪枝对高分辨率场景的推理开销影响更大。 同一设置下保留640个token时保住稠密模型99.1%的性能,保留160个token时保住91.3%;效率对比在单块RTX 3090上以POPE基准进行。
启示与展望
演示范围是免训练的推理期剪枝:在LLaVA-1.5-7B、LLaVA-NeXT-7B、Qwen-VL-7B、InternVL-13B和CogVLM-7B上,按各自原始评测设置跑十个多模态基准;效率数据来自单块RTX 3090、以POPE基准测得的FLOPs、缓存、显存和CUDA延迟。
角色演变是从LLaVA-1.5-7B视觉编码器在VQAv2一个代表性样例上的注意力统计中观察到的,注意力权重并不构成表征形成的完整因果解释,因为token表征还受值投影、残差连接和前馈网络影响。Qwen-VL的查询式投影需要额外按保留token的注意力重选查询token,属于轻量适配而非直接套用。
