← 返回 PaperDaily 视觉与图像

港中文·微众AI等提出SinkPruner:先清注意力“下水道”再精剪

想要看懂SinkPruner,得先搞清楚一件事:多模态大模型(Multimodal Large Language Models,MLLM)里,最烧钱的其实不是“看”,而是“看完之后怎么记、怎么算”。

港中文·微众AI等提出SinkPruner:先清注意力“下水道”再精剪
原论文信息如下:
论文标题:
SinkPruner: Sink-Free Visual Token Pruning for Multimodal Large Language Models
发表日期:
2026年09月
发表单位:
香港中文大学、Weitu AI、北京大学
原文链接:
https://arxiv.org/pdf/2609.01004v1.pdf

视觉token剪枝为何频频失手?高范数离群token是罪魁祸首

想要看懂SinkPruner,得先搞清楚一件事:多模态大模型(Multimodal Large Language Models,MLLM)里,最烧钱的其实不是“看”,而是“看完之后怎么记、怎么算”。视觉编码器把一张图切成一堆patch,每个patch变成一个视觉token,再和文本token拼在一起交给大模型解码器处理。Transformer自注意力的计算量随序列长度近似平方增长,视觉token往往是文本token的几十倍,于是整条推理链路的大部分开销都耗在这堆“图块”身上。
一个直观的解法就是剪枝:哪块不重要,就把对应token丢掉。现有的剪枝思路大致分成两派。一派是“视觉中心”方法,代表有VisionZip、HoloV,它们待在视觉编码器内部,靠CLS注意力来判断哪个token重要;另一派是“文本引导”方法,代表有FastV、SparseVLM,它们会跑到大模型解码器里,看文本token把注意力投给了哪些视觉token,再把不相关的剪掉。两派的逻辑其实都默认了一件事:注意力分数高 = 信息量大。
但论文作者在可视化时发现了一个反直觉现象:注意力图上那些尖尖的亮斑,经常落在天空、墙壁这类毫无语义的大片背景上,而且这些亮斑的位置,恰好和视觉特征的L2范数异常区域高度重合。所谓L2范数,可以粗暴理解为特征向量的“长度”。绝大多数正常token的范数都聚集在一个正常范围里,但总有极少数token的范数高得离谱,它们就是论文反复提到的高范数离群token(high-norm outlier tokens)
这些高范数token明明多半来自背景,却因为“嗓门大”而抢走了极高的注意力。这样一来,以注意力分数为标准的剪枝方法就很容易被带偏:辛辛苦苦保留了一堆彼此长得差不多的背景块,真正承载细节的低范数token反而被提前赶出场。
图1(b):注意力离群现象示意。明亮尖峰往往出现在背景区域,干扰模型判断。
图1(b):注意力离群现象示意。尖峰状的亮斑常出现在背景区域,和语义重点并不一致。
图1(c):视觉特征L2范数热图。注意力离群位置与高范数token空间位置高度重合。
图1(c):视觉特征L2范数热图。注意力离群点与高范数token的空间位置几乎一一对应。

高范数token的三重冗余性:空间、特征与注意力陷阱

论文不只停留在“看到异常”,还从三个角度把这群高范数token的底细查了个遍,结论是它们高度冗余。
第一重冗余发生在空间维度。高范数token并不是那种“独树一帜”的细节特征,反而大多诞生于均质区域,比如一大片天空、一整面白墙。论文统计了每个token和它周围4个相邻patch的余弦相似度,发现高范数token和邻居的相似度显著偏高。换句话说,它们周围的图像内容几乎是复制粘贴级别的雷同,丢掉其中一个并不会损失什么独特信息。
图4(a):邻域相似度对比。高范数token与空间邻居的相似度显著更高,说明它们来自同质化背景。
图4(a):高范数token与空间邻居的相似度明显更高,说明它们偏向于出现在局部纹理单一的区域。
第二重冗余发生在特征空间。研究者把这些高范数token挑出来,两两计算余弦相似度,结果发现它们内部的相似度高得惊人,几乎挤在同一个特征区域里,这种现象可以理解为特征空间坍缩。反过来看,范数正常的token彼此之间差异更大、多样性更丰富,里面才藏着真正值得留下的语义细节。
图4(b):各子集内部的两两相似度。高范数token内部相似度极高,低范数token则保持较高的多样性。
图4(b):高范数token内部相似度极高,代表特征空间坍缩;低范数token之间则保持明显差异。
第三重冗余则体现为注意力陷阱。高范数token虽然是“信息废柴”,但它们偏偏在[CLS]注意力排名里稳定名列前茅。论文还发现,这类token在某种程度上扮演了视觉端的“注意力沉槽(attention sink)”:大量注意力被它们吸走,却没有换来有用的语义信息。这种现象和之前ViT训练里发现的极端高范数“伪token”现象一脉相承,只是本文没有选择在训练阶段修修补补,而是在推理阶段直接处理。
图2(a):视觉token的特征范数分布。大部分token范数集中在较低区间,少量高范数离群token单独形成长尾。
图2(a):视觉token的L2范数分布呈现明显的双区制,约1%的token形成高范数离群尾巴。
图2(b):高范数token的注意力排名始终位于前列,说明它们占用了不成比例的注意力资源。
图2(b):尽管高范数token多数不具备突出语义,它们却总能拿到最高的注意力排名。
正是因为高范数token具备“空间同质、特征坍缩、注意力霸榜”这三重特性,任何单纯基于注意力打分做剪枝的方法都会被它们误导:预算有限时,等于把宝贵名额发给了一群复制粘贴的“水军”。
图8:空间冗余可视化。红色标记的高范数离群token多数落在背景同质区域,蓝色标记的低范数token则对应更有区分度的局部特征。
图8:红色为高范数离群token,蓝色为保留下来的信息型低范数token。红色点多落在天空、墙面等大块均质区域。

SinkPruner:从“净化”到“精剪”的两阶段级联剪枝框架

搞清楚了病根,SinkPruner的开药思路就非常清晰了:它把剪枝过程拆成“先净化、再精剪”两步,构成一个不需要任何训练的级联框架。
图3:SinkPruner整体框架。左边视觉净化器负责聚合高范数离群token并筛选重要token,右边文本引导剪枝器再按文本查询精剪。
图3:SinkPruner框架总览。左侧为视觉净化器(Visual Sanitizer),右侧为文本引导剪枝器(Text-Guided Pruner)。
第一个模块叫作视觉净化器(Visual Sanitizer)。它的任务不是在文本引导下挑答案,而是先把视觉序列里的“地雷”排掉。具体做法分三步。
第一步,识别并分离高范数token。给定一幅图的N个视觉token,先算出每个token的L2范数。为了避免不同视觉编码器的数值尺度不一致,论文没有设定绝对阈值,而是按照范数从大到小排序,直接取前ρ = 1%的token当作高范数集合X_high,剩余的是候选集合X_low。这个“按排名取比例”的设计让方法在不同骨干网络上都能直接迁移。
第二步,不把这些高范数token直接扔掉,而是把它们聚合成一个全局性的sink token。由于前面已经证明了它们内部高度相似,直接做平均池化几乎不会丢失多少信息,却能把原本“散装”的背景噪声压缩成一个token。
聚合公式可以直观表达为:
x_sink = (1 / |X_high|) × Σx∈X_highx
其中|X_high|表示高范数token的数量,x是集合内的单个token向量。平均池化之后,X_high从一堆冗余token变成唯一的x_sink,视觉序列长度又缩短了一截。
第三步,从剩余的低范数候选集合X_low里挑选真正值得留下的token。这里采用了一种混合选择策略:先通过CLS注意力分数保留排名前k_res的显著token,得到显著集合X_res,用来锁定画面里的主体区域。
X_res = { x ∈ X_low | Rank(A_cls(x)) ≤ k_res }
但只保留注意力最高的token又会掉进“只看局部不看全局”的坑里,所以论文又加了一个去重机制:从剩余的低范数token里,反复挑选和当前已选择集合S最不相似的token,用贪心策略保证多样性。
x* = argminx∈R ( maxs∈S CosSim(x, s) )
R是还没被选中的候选token,S是当前已经保留下来的token集合,CosSim代表余弦相似度。这样每次选出的新token都和已有集合尽量不同,从而兼顾“显著主体”和“辅助背景”。最后把sink token、显著集、多样集拼到一起,得到净化后的视觉序列Z,再送入大模型。
第二个模块叫文本引导剪枝器(Text-Guided Pruner)。经过视觉净化之后,序列里的“注意力干扰源”已经被清走了,此时再让大模型解码器来打分,结果会可靠得多。该模块利用LLM早期解码层里的文本到视觉注意力,对所有视觉token做相关性评估。具体来说,对第j个视觉token,把所有文本token对它的注意力取平均,得到相关性分数:
p̃_j = (1 / L_t) × Σi=1L_t Softmax(Q_text · K_visT)i,j
其中L_t是文本token数量,Q_text是文本侧查询向量,K_vis是视觉侧键向量。得分高意味着该视觉token和当前文本问题关系更紧密,最后只保留分数最高的K个token。这套“先清理sink再精剪”的组合拳,正好同时化解了视觉编码器阶段的高范数干扰,以及LLM解码器阶段常见的注意力沉槽和注意力分散问题。
为了看清楚这套净化到底起没起作用,论文在附录里给出了一组很直观的分析:原有剪枝方法在处理时,LLM解码器里会残留大量“注意力沉槽”token,沉槽比例约为14.23%;而SinkPruner通过视觉净化器提前清掉了大量冗余,把沉槽比例压到了3.85%,相当于降低了约73%,文本到视觉的注意力熵也明显下降。注意力更集中,剪枝决策自然更稳。
图6:SinkPruner对注意力沉槽的抑制效果。左侧原始方法存在大量高注意力沉槽,右侧SinkPruner的注意力分布更干净。
图6:视觉净化器有效抑制了LLM解码器中的注意力沉槽。左图为常规文本引导方法,右图为SinkPruner。

实验结果全面领先:从LLaVA到Qwen2.5-VL的跨架构验证

方法讲完,还是要拿数据说话。SinkPruner的实验覆盖了12个图像语言基准和4个视频语言基准,主力模型包括固定网格结构的LLaVA-1.5-7B和动态分辨率模型Qwen2.5-VL-7B,同时在13B模型、高分辨率LLaVA-NeXT上也有补充验证。
图1(a):SinkPruner在不同剪枝比例下比SOTA方法获得更好的性能-计算权衡。
图1(a):性能与效率总览。SinkPruner的曲线比其他方法更靠近右上角,也就是同样开销下性能保持得更好。
先看LLaVA-1.5-7B上的结果。原始输入包含576个视觉token,当只保留64个token、也就是剪掉88.9%时,SinkPruner依然保持了原始模型96.5%的平均性能;即使压缩到只剩32个token、剪掉94.4%,平均性能保持率仍有91.2%,明显高于同预算下VisionZip的85.2%和VisPruner的87.2%。这里表格中的Avg列并非绝对准确率,而是各基准相对“全量token上界”的性能保持率,因此更适合用来对比不同剪枝方法之间的相对损失。
表1:LLaVA-1.5-7B在不同剪枝比例(保留64和32 token)下、多个图像语言基准上的性能对比。
表1:LLaVA-1.5-7B在多个图像语言基准上、不同剪枝比例下的性能对比。SinkPruner在同等预算下平均性能保持率最高。
再看Qwen2.5-VL-7B。这组实验更有意思,因为Qwen2.5-VL本身采用动态分辨率,视觉token数量不固定,不同图片的token数从几百到上千不等。在剪掉66.7%视觉token时,SinkPruner的平均性能保持率达到98.6%,基本可以理解为“剪了三分之二,几乎不掉点”;剪掉77.8%时平均保持率仍然有96.3%;把剪枝比推到90%时,依然守住91.8%的平均性能,对比HoloV的86.2%和FastV的83.6%,优势很明显。视频理解方面,在80%剪枝比例下,SinkPruner在MVBench、SEED-Bench、VideoMME上的平均保持率也达到了98.0%,高于DART的96.6%和DivPrune的96.0%。这说明它不只是对单张图片有效,对时间上高度冗余的视频帧同样可扩展。
表2和表3:Qwen2.5-VL-7B在图像基准上的不同剪枝比例对比,以及视频语言基准上80%剪枝比例下的对比。
表2和表3:Qwen2.5-VL-7B上的剪枝效果对比,以及视频语言任务在80%剪枝比例下的对比。
为了排除SinkPruner只是“在简单任务上占便宜”的嫌疑,论文还专门在MMStar、MMMU、AI2D、MM-Vet这类高难度推理基准上测试了32 token的极端预算。面对这些需要复杂高层推理的任务,SinkPruner的平均保持率仍然领先其他剪枝方法。一个可能的原因是,视觉净化器清掉高范数噪声后,LLM解码器里的注意力分布更干净,跨模态匹配的置信度更高,这个优势在极端压缩比下会被进一步放大。
表4:LLaVA-1.5-7B在更难的推理类基准上、32 token预算下的性能对比。
表4:LLaVA-1.5-7B在MMStar、MMMU、AI2D、MM-Vet等推理型基准上的32 token极限预算对比。
只看指标还不够,剪枝最终目的毕竟是省时间。论文在POPE上对比了真实推理延迟,在90%剪枝比下,SinkPruner由于把视觉序列压到很短,实际推理耗时明显低于保留全量token的模型,同时准确率损失远小于其他同延迟的方法。如果目标是把多模态模型塞进边缘设备或机器人平台,这种“以极低精度代价换真实加速”的特性比单纯刷分更有价值。
表5和表6:POPE上90%剪枝比例的真实推理延迟对比,以及SinkPruner各组件的消融实验结果。
表5和表6:POPE真实推理延迟对比,以及视觉净化器和文本引导剪枝器的消融实验。消融结果表明,两个模块叠加才能达到最佳效果。
看到这些数字,坐在屏幕前码字的编辑也忍不住想递杯茶给作者团队。能在94.4%的剪枝比下还保住91%以上的性能保持率,说明这套“先净化、后精剪”的设计确实抓到了视觉token压缩的要害。
R-C.jpeg
更难得的是,SinkPruner没有引入任何可学习参数,也没有在视频数据上做过额外微调,却在图像和视频任务上都表现稳定。对于很多已经训练好的MLLM来说,这意味着可以直接在推理阶段套用,不需要准备新数据集,也不需要重训模型,工程上非常友好。

即插即用的视觉净化器:让现有剪枝方法也能“涨点”

SinkPruner里最有复用价值的,其实是那个“视觉净化器”。论文专门做了迁移实验,把高范数过滤模块单独拆出来,接到VisionZip这类主干方法前面,测试它能不能让现有方法也跟着受益。
表7:将高范数过滤模块集成到VisionZip等现有剪枝方法中,性能一致提升,验证了视觉净化器的可迁移性。
表7:把高范数过滤模块接入VisionZip后,多个基准上的性能都获得了一致提升,说明视觉净化器是一种可插拔的通用组件。
实验结果显示,加上这一道简单的“前置净化”,VisionZip的性能普遍涨了一截。原因不复杂:VisionZip原本靠CLS注意力挑token,而高范数token恰好最容易霸占CLS注意力榜;把它们先聚合掉之后,VisionZip后面的注意力选择就不再被“水军”带节奏,留下的token自然更有信息量。这种正交性意味着该净化器可以像一个公共服务模块那样,被广泛接入不同剪枝管线,而不是只能绑定在SinkPruner自己做实验。

局限与展望:从离线推理走向流式视频理解

SinkPruner在离线评测里表现亮眼,但要说真正落地到产品,还有一些现实问题值得讨论。
首先,当前大多数实验采用的是“一次性给定整段视觉输入”的离线设定。如果要做流式视频理解,模型需要边接收视频帧边回答问题,帧与帧之间的token如何增量保留、如何动态释放,都需要额外的在线调度机制。SinkPruner的贪心多样性选择在每帧上重新计算还可以接受,但放到长时间视频流里,就必须考虑跨帧的冗余消除。
其次,文本引导剪枝依赖的是LLM解码器早期层的平均注意力,这在单轮、短问题场景下非常有效。但如果面对多轮对话、需要数数或格物致知的细粒度任务,或者遇到带误导性指令的情况,只靠一层注意力打分到底够不够稳,还需要更多压力测试。
另外,把token压缩到极致以后,真正的系统级加速还需要配合推理引擎一起设计,比如KV Cache的复用、分页注意力、投机采样等。SinkPruner负责把“进模型的视觉token变少”这件事做好,但把同等预算下能保留多少有效信息做到最优,仍然是一个系统工程问题。
从更大的视角看,这篇论文最有价值的不是某一个具体公式,而是它提醒了社区:多模态大模型里的注意力信号并不像想象中那么“干净”。[CLS]注意力、文本到视觉注意力,这些被当成重要度打分器的信号,内部都可能藏着一批高范数离群token在浑水摸鱼。以后设计token压缩方法时,“先诊断信号质量,再设计压缩策略”可能会成为新的默认步骤。

龙迷三问

下面是龙哥对于大家可能的一些问题的解答:
这篇论文到底在解决什么问题?香港中文大学等提出SinkPruner,一种免训练的视觉token剪枝框架。方法先过滤高范数离群token、再用文本引导精剪,剪掉89%视觉token仍保留96.5%性能,在LLaVA与Qwen2.5-VL上均验证有效。
这篇工作最值得看的点是什么?在LLaVA-1.5-7B上保留64个token时达到96.5%平均性能,保留32个token时达91.2%;在Qwen2.5-VL-7B上88.9%剪枝率下保持91.8%性能;视频任务80%剪枝率下保持98.0%性能,全面超越现有方法
这篇工作的边界或风险在哪里?优点:(1)无需训练的级联设计简洁高效;(2)高范数离群token的识别与处理具有理论依据和实证支撑;(3)视觉净化器可作为即插即用模块增强现有方法;(4)跨架构、跨模态泛化能力强。缺点:(1)级联设计引入额外延迟开销;(2)仅支持离线推理,未扩展到流式视频场景;(3)高范数token的1%比例设定虽自适应但缺乏理论最优性保证;(4)对无CLS token的编码器需要额外设计替代评分。
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

龙哥点评

论文创新性分数:★★★☆☆

把视觉编码器里的高范数离群token与注意力沉槽现象系统性地联系起来,并提出“先聚合、再剪枝”的两阶段思路,属于在问题认知和框架组合上的有效创新;整体不算颠覆性,但切入点聪明。

实验合理度:★★★★☆

覆盖12个图像基准、4个视频基准,横跨LLaVA、Qwen2.5-VL、LLaVA-NeXT等多种架构,还补了13B规模迁移和真实推理延迟测试。对比方法选得比较全,遗憾是部分极端压缩比下个别基准缺少误差范围或多次运行统计。

学术研究价值:★★★★☆

论文澄清了“注意力高不代表信息量大”这一关键反例,对后续设计视觉token压缩、跨模态注意力诊断都有启发;它把高范数token作为一种独立于语义的伪显著性来源提出来,具备较强的可迁移研究价值。

稳定性:★★★★☆

在不同剪枝比例、不同骨干网络、图像与视频任务上都观察到了一致的优势,说明方法本身较稳。不过模型规模测试主要集中在7B和13B,更大尺寸模型上的表现仍有待验证。

适应性以及泛化能力:★★★★☆

方法不挑视觉编码器、不挑输入分辨率,甚至能直接迁移到视频理解,还能作为外部模块增强VisionZip,泛化面广。复杂多轮对话和流式视频等场景还需要更多证据。

硬件需求及成本:★★★★☆

无需训练,推理期只增加范数排序和少量贪心相似度计算,相比LLM自注意力的巨大开销,额外成本占比很低。真正要追求极限加速,还需要把method与推理引擎深度结合。

复现难度:★★★★★

论文公开了代码仓库,且方法核心只是一组可解释的启发式规则,不依赖神秘trick或大规模数据,按默认超参就能在常见MLLM上跑出接近论文的效果。

产品化成熟度:★★★☆☆

对已训练好的模型是“零成本”加速方案,适合图片问答、批量视频理解、端侧部署等场景。但流式视频、动态长上下文、高并发推理服务等产品场景还需要结合系统级优化才能真正成熟。

可能的问题:文本引导剪枝依赖早期解码层的平均注意力,对复杂多跳问题中的关键token把握可能不够稳;高范数裁剪比例ρ设为固定1%,虽然自适应于不同编码器,但多数实验仍需人工把显著集、多样集比例调到一个合适值。


主要参考文献

[1] Shiyu Li, Zi-Yuan Hu, et al. SinkPruner: Sink-Free Visual Token Pruning for Multimodal Large Language Models. arXiv:2609.01004.
[2] Haotian Liu, Chunyuan Li, et al. Visual Instruction Tuning. NeurIPS 2023. (LLaVA)
[3] Shuai Bai, et al. Qwen2.5-VL Technical Report. arXiv, 2025.
[4] Senqiao Yang, et al. VisionZip: Longer is Better but Not Necessary in Vision Language Models. CVPR 2025.
[5] Liang Chen, et al. FastV: An Image is Worth 1/2 Tokens After Layer 2. ECCV 2024.
[6] Yuan Zhang, et al. SparseVLM: Visual Token Sparsification for Efficient Vision-Language Model Inference. ICML 2025.
[7] Xuanming Zou, et al. HoloV: Holistic Visual Token Pruning for Multimodal Large Language Models. NeurIPS 2025.
[8] Timothée Darcet, et al. Vision Transformers Need Registers. ICLR 2024.
[9] SinkPruner 开源代码:https://github.com/LaVi-Lab/SinkPruner

end
把认知冗余剪掉,把高价值的信号留下来——这正是SinkPruner在做的,也是『龙哥读论文』粉丝群每天都在做的事。😄
欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群。
在这里,没有冗长的信息噪声,只有同频的深度讨论~

*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!       

转发文章 微博 X LinkedIn Facebook
龙哥读论文 · PaperDaily

本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。