AI看图越强越容易被注意力骗:线性注意力模型的压缩困境
你有没有遇到过这种情况:问AI"描述一下这张图",结果它漏掉了图里最显眼的一个细节,比如一个写着"2026"的烟花字样,或者一个角落里的重要物体。这不是AI变笨了,而是它在偷懒,一种你完全想不到的偷懒方式。这篇论文讲的就是这个偷懒背后的故事。先说清楚问题出在哪现在的视觉语言模型,也就是能看图又能说话的那种AI,有...
问AI“描述一下这张图”,它却漏掉画面里最扎眼的东西——比如烟花上写着的“2026”,或是缩在角落的一件重要物品,这种情形你碰到过吗?问题不在AI变笨,而是它在偷懒,用的还是一种很难想到的偷懒法。
这篇论文讲的就是这种偷懒背后的来龙去脉。
先把问题出在哪说清楚。
能看图、也能开口说话的视觉语言模型,眼下有个很现实的包袱:一张图片得切成几百乃至上千个“视觉token”,再喂给模型。
视觉语言模型(VLM):既能读懂图片又能读懂文字,并用语言作答的AI模型。比如给它一张照片,让它说说里面有什么。
token:AI处理文字或图像时的最小单位。一张图可能被切成几百个token,文字里一个词也可能算一个token。
视觉token的数量远远超过文字token,算力开销很大。所以研究者一直在琢磨怎么“压缩”视觉token——砍掉不重要的、留住关键的,让模型跑得更快。
过去几年,主流的压缩思路大致分两路。一路看模型的注意力分数,哪个token被“看”得多就留哪个;另一路比较token之间的相似度,把长得差不多的合并或删掉,减少冗余。这两路在传统的softmax注意力模型上都表现不错,token省了一半,性能几乎没掉。
注意力(softmax attention):AI处理序列信息时给每条历史信息打分、决定该在它身上花多少“注意力”的机制,计算量随序列变长呈平方级增长。
问题是,AI模型的底层结构最近变了。
像Qwen3.5这样的新一代模型,开始大量采用“线性注意力”机制,把它混在传统注意力层里用。这类结构算得快,可论文作者发现了一件出乎意料的事:原来那些压缩方法放到线性注意力模型上,效果竟然跌得还不如随机乱砍token。
线性注意力(linear attention):计算量随序列长度线性增长(而非平方增长)的注意力机制,代表方案是Gated DeltaNet。它把整段历史压进一个固定大小的“状态矩阵”,不像传统注意力那样把每个历史token都记下来。
论文里有个实验结果挺扎心:在Qwen3.5-9B上测了基于注意力分数的FastV和基于相似度的DART,两者在多个评测基准上几乎没有一个能稳定超过随机丢弃token的基线。过去几年攒下的压缩经验,换个模型架构就集体失灵了。
为什么会这样?论文花了不少篇幅拆解,拆完给出了一套新方案,叫V-CoLA。下面按论文的逻辑,把这件事从头讲一遍。
旧方法为什么栽了跟头。
先看注意力分数这条路为什么走不通。
论文对比了Qwen3-VL(纯传统注意力模型)和Qwen3.5(混合线性注意力模型)在不同层数上视觉token拿到的注意力比例。结果很有意思:Qwen3-VL的视觉注意力在浅层就迅速衰减,到第24层只剩0.97%;Qwen3.5在第4层只有1.39%,可到了更深的第12层反而回升到8.54%,中间层一直在关注视觉内容,直到深层才降到0.97%。
这说明什么?在混合架构里,视觉信息受重视的层不再固定出现在浅层。可传统压缩方法比如FastV,都默认“浅层注意力能代表全局重要性”,只看前几层的注意力就拍板决定哪些token该留。这套假设在Qwen3-VL上行得通,搬到Qwen3.5上直接失效——它砍掉的,可能恰恰是那些要到中间层才会被重点关注的token。
好比你去图书馆找一本重要的书,管理员告诉你“大家翻的书都摆在门口第一排,看那排就够了”。这个经验在传统图书馆(也就是softmax注意力模型)里没错,热门书确实堆在显眼位置。可新图书馆(线性注意力混合模型)换了摆放逻辑,真正重要的书可能放在中间书架,门口第一排反而是些次要资料。你还死守“只看第一排”的老经验,就会把真正有用的书漏掉——论文开头提到FastV漏掉图片顶部“2026”数字,原因正在这里。不换个判断逻辑,你再熟悉图书馆也照样找不到想要的书。
再看相似度那条路。DART这类方法的逻辑是:先挑出几个“代表性”的pivot token,再找出跟它们长得像的token,判为冗余删掉。论文做了个对比实验,把同样的pivot token选择方式分别放到Qwen3-VL和Qwen3.5上,结果在Qwen3.5上,那些被判定为“跟pivot高度重复”的token可靠性明显下降,不少本该保留的独特token被误判成冗余。
论文把这背后的原因归到线性注意力本身的结构特性上。这部分是整篇论文最硬核的理论,不过道理其实不难懂。
信息论视角:线性注意力为什么“记性”有限。
传统softmax注意力有个特点:每个历史token都独立可查,模型想回看多久以前的内容都行,理论上信息不会丢。线性注意力不是这样,它把整段历史压进一个大小固定的状态矩阵,矩阵维度是d乘以d,不会随输入变长而变大。
论文用信息论的数据处理不等式做了推导:输入序列长度为L时,这个固定大小的状态能装下的信息量是O(d²)量级,而原始序列携带的信息量是O(Ld)量级。只要L超过d,状态能装下的信息就注定赶不上原始信息量,信息必然丢失,且丢失量随L增长线性增加。
状态(recurrent state)是线性注意力拿来存历史信息的一个固定尺寸矩阵。把它想成模型的“短期记忆容量”也行——容量有上限,对话再长它也不会跟着扩容。
高分辨率图片动辄被切成几百上千个token,L本身就大,所以这道“信息天花板”在视觉语言模型身上格外扎眼。
打个比方:你有一只容量固定的行李箱,却要装下一整个月的旅行物资。箱子不会因为行程天数变多就自动变大,你只能精挑细选,掂量什么值得带、什么可以扔。这个挑选的过程,恰好把你的判断暴露了出来——塞进箱子的,是你觉得路上真用得上的;没被选中、从清单上划掉的,多半是你判定为冗余的。换成容量无限的集装箱,你根本不用取舍,全带走就是,可这样你也永远不会暴露自己对“什么重要”的真实判断。
论文的洞察正在这里:线性注意力的状态更新受容量限制,天生就得取舍。取舍这个动作本身,就带着模型认为“什么更重要”的信号。与其盯着浅层注意力这种间接证据,不如直接看状态更新时留下的取舍痕迹——这也是论文接下来提出新方法的立足点。
V-CoLA的设计思路
论文给出的方法叫V-CoLA,核心是两件事:一套新的重要性判断标准,以及一套自适应的token合并策略。
先看重要性判断标准。论文给它起的名字是“唯一性感知的重要性标准”(uniqueness-aware importance criterion)。
名字听着绕,拆开看,其实就是两部分信号的加权组合。
第一部分是长期贡献度。线性注意力的状态更新,本质上是做“重建”:把每个token的key和value写进状态矩阵,指望之后能把value准确检索回来。最终状态矩阵若能很好地还原某个token原本的value,就说明这个token的信息被忠实保留了下来,它是重要的。论文把这个量叫R_imp,用最终状态与原始value之间的余弦距离来衡量。
第二部分是短期独特性。只盯长期贡献度会出问题:某个token的信息要是很早写进状态,之后又被后续的衰减门一点点冲淡,到最后一层再看,可能已经测不出它当初的重要性。另外,只看最终状态,容易偏向那些“显眼”的区域,模型会反复选中类似的冗余token。
论文的解法是:看一个token被写入状态的那一刻,状态变化有多大。前面如果已经写进过类似信息,新token进来时状态的变化会很小,因为“重建误差的梯度”已经很小;反过来,这个token带来的是全新信息,状态就会明显变化。论文用一组“伪查询”去探测状态更新前后的差异,这个差异就是R_uni,代表token的独特性。
最终的重要性分数是这两部分的加权和,权重λ取0.1时效果最好。
这套逻辑放到生活里,有点像整理一箱旧照片准备扫描存档,但只能挑一部分。你一边看“这张照片记录的瞬间后来有没有被别的照片覆盖或遗忘”(对应长期贡献度),一边看“它跟我已经选出来的那些比,是不是独一无二的瞬间,还是跟某张重复了”(对应独特性)。只看第一个标准,你可能挑出一堆风格相近的风景照,因为单看每张都“保存得很好”;只看第二个标准,你可能挑出一堆乱七八糟但互相都不像的照片,却漏掉真正重要却不显眼的那张合影。两个标准合起来,才能既不漏重要信息,又不堆冗余。只凭一个标准做决定,要么选出来的照片集看着重复,要么漏掉关键瞬间,两种情况都白白浪费了宝贵的存储空间。
第二个核心设计是自适应分块合并(Adaptive Chunk-wise Token Merging)。
过去的方法大多简单粗暴:“保留重要性排名前k的token,其余全删”。但论文引用的近期研究指出,比起直接丢弃,token聚合(把多个token合并成一个代表)往往更稳健,信息不会被硬性截断。
光做聚合还不够。论文发现,原有的聚合方法(比如按相似度分组或配对合并)没考虑重要性在图像不同区域的分布密度。想象一张图,有些区域信息密集(人脸、文字),有些区域很空旷(大片天空)。用统一的压缩比例处理整张图,密集区域会被压得信息流失严重,空旷区域反倒浪费计算资源。
V-CoLA的做法是:先按重要性分数的累积曲线,把整个token序列切成若干块,切法保证每块里的“重要性总量”大致相等。重要性密集的区域自然被切得更细(达到同样的重要性总量需要的token更少),重要性稀疏的区域则被切得更粗。切完之后,在每个块内部用加权平均把token合并起来,权重由token自身的重要性分数决定,并用一个温度参数τ控制加权的平滑程度。
这就像给一本书划重点,不是“每十页必须划一次线”,而是跟着内容密度走:信息量大的段落多划几条、分更细的段落做标记,内容平淡的部分几页并成一句话概括。强行按固定页数划分,关键页的重点会被稀释成一条笼统的线,无关紧要的页面反而占掉太多独立的标记位置。自适应分块的意义,就是让“压缩的颗粒度”跟着“信息的密度”走,而不是跟着位置的固定规则走。
早退机制:深层真的不需要看图了
论文里还记录了一个挺实用的现象:Qwen3.5 到了深层、也就是 24 层以后,对视觉 token 的注意力会掉得很低,基本可以忽略。
论文专门做了验证实验:从某一层开始把所有视觉token直接砍掉,看困惑度(perplexity,衡量模型预测准确度的指标,越低越好)相对完整模型会涨多少。结果显示,困惑度在第24层之后基本与完整模型持平,说明24层之后,视觉token对模型推理已没什么边际贡献。
实验也顺带记录了MME基准的分数。第1层就把视觉token全部砍掉,MME从2398.2跌到967.3;拖到第24层再砍,得分2401.6,比完整模型的2398.2还高了一点;第32层也就是不砍,分数是2398.2。这组数字摆出来,深层视觉token继续留着,算力基本是白花。
顺着这个结果,V-CoLA塞进了一个"早退机制"(early exit):第24层一过,所有视觉token直接丢弃,省下的算力转手投给浅层,让那边能做更细的压缩。
工程实现:理论漂亮不够,还得真跑得动
现实里有个坎。不少压缩方法纸面上很好看,可一旦要跟线性注意力原有的加速算法(chunk-wise parallelism,分块并行计算)拼到一起,实现上就出麻烦——分块并行要求状态不能被随意访问,只能按固定的(q, k, v)输入顺序一步步往前推。
chunk-wise parallelism(分块并行):线性注意力为了让计算效率和硬件并行性兼顾,把长序列切成若干块,块内并行算、块间按顺序传状态的一种加速技巧
为了跟这套加速机制对上,V-CoLA对Gated DeltaNet的前向计算做了专门改造,让它能"额外插入多组伪查询",同时不破坏状态递推的顺序逻辑。实测结果:单查询推理时,延迟跟原始算子差不多;四查询并行推理时,反倒跑出了3.85倍加速。自适应合并模块自己的开销是0.86毫秒,只占整个模型前向推理成本的0.1%左右,基本可以忽略。
效果到底怎么样
论文拿Qwen3.5-9B做平台,把V-CoLA与五种有代表性的方法摆在一起比,包括FastV、SparseVLM、DART、VisionZip,还有同样为线性注意力量身设计的DTP。测试横跨MME、MMBench、GQA、ScienceQA、TextVQA、POPE、VizWiz、MMStar八个基准。
| 压缩比例 | V-CoLA平均性能保留率 | 次优方法 |
|---|---|---|
| 保留50%视觉token | 99.5% | VisionZip 99.0% |
| 保留25%视觉token | 94.8% | VisionZip 94.5% |
| 保留12.5%视觉token | 88.0% | VisionZip 86.4% |
压缩到最狠的12.5%保留率时,FastV的平均性能只剩63.9%,差不多砍半;V-CoLA还守在88.0%。极限压缩下差距拉得最开,这也对上了前面的分析——传统方法在线性注意力架构里是系统性失灵,并非偶尔抖一下。
速度上,8K视觉token规模下,保留50%时加速1.91倍,保留12.5%时加速6.15倍。额外那部分压缩计算,只占前向推理总成本的1.6%。
论文还把实验搬到更大的Qwen3.5-27B和另一个架构InfiniteVL上重做了一遍,V-CoLA照样领先。这说明它不是针对某个模型调出来的巧合,跨模型、跨架构都有一定通用性。
消融实验同样验证了设计的必要性。拿掉自适应合并模块、换成硬裁剪,87.5%压缩比例下MME从2012.0掉到1913.4,MMStar从41.4掉到36.5。拿掉早退机制,同样条件下MME降到1970.3,MMStar降到38.1。两个模块各干各的活,还互相补位:自适应合并负责更细地聚合信息,早退机制负责把省下的算力预算重新投到浅层视觉理解上。
写在后面
论文读下来,V-CoLA 这套方法反倒没让我记住多少。真正扎在我脑子里的是它顺手揭出的一个更普遍的教训:工具往前走一步,人攒下的经验有时会悄无声息地作废。
这几年,围绕 softmax 注意力模型,大家攒出了一整套 token 压缩的直觉和打法。放在当时,这些经验没毛病,效果也相当能打。可底层架构一换成线性注意力,它们不是打个折扣那么简单,而是直接不管用了,有几条甚至还不如随机乱砍。这让我想到一件事:技术圈里谁说“某某方法是最佳实践”,话里其实都藏着一个没明说的前提——“在眼下这套架构假设之下”。架构一换,最佳实践转眼就可能变成反面教材。
还有个细节值得单独拎出来讲。论文里那个“状态变化幅度代表独特性”的设计,说到底是把工程上的一个副产品调了个方向,拿去当判断依据用。线性注意力的状态容量有限,本来这是条硬杠杠,是不得不认的短板;结果论文偏偏拿这个限制逼出来的“选择性遗忘”做文章,把它变成一个能读出来的信号。这个路子挺有意思——有限性不光是约束,它自己也会留下痕迹,而这些痕迹还能被反过来用。
局限性部分,作者写得挺坦白:这套方法主要在 Gated DeltaNet 这类架构上做过验证,换成纯 Mamba 架构,或者别的门控线性注意力变体,是否照样完全适用,还没有系统验证过。这个问题,就留给后面的工作了。
往后线性注意力架构要是再演化出更多变体,这套“从状态更新里读取重要性信号”的思路还灵不灵,是个需要一直追问下去的问题。
Q&A
Q1:V-CoLA是什么?
A:V-CoLA是一种专门为线性注意力架构设计的视觉token压缩方法,通过分析线性注意力状态更新过程中的重要性信号来判断哪些视觉token该保留,在保留50%视觉token时能达到99.5%的原始性能,并带来1.86到6.15倍的推理加速。
那传统视觉token压缩办法到了Qwen3.5这类模型上为什么就不灵了?原因在于这批模型用上了线性注意力混合架构,视觉注意力的分布规律跟传统softmax注意力模型完全是两回事,中间层甚至会出现注意力回升,加上线性注意力那套固定容量的状态,让靠相似度做判断的路子变得不可靠,原有方法的效果也就跌到还不如随机丢弃token。
V-CoLA的早退机制又是什么原理?论文里发现,Qwen3.5在第24层之后对视觉token的关注度会大幅下降,困惑度实验同样证明,这时候把所有视觉token砍掉几乎不影响模型表现。于是V-CoLA在深层干脆丢弃全部视觉token,把省下来的计算资源挪去浅层做更精细的视觉信息处理。