你有没有遇到过这种情况:问AI"描述一下这张图",结果它漏掉了图里最显眼的一个细节,比如一个写着"2026"的烟花字样,或者一个角落里的重要物体。这不是AI变笨了,而是它在偷懒,一种你完全想不到的偷懒方式。
这篇论文讲的就是这个偷懒背后的故事。
先说清楚问题出在哪
现在的视觉语言模型,也就是能看图又能说话的那种AI,有个很现实的负担:一张图片要被切成几百甚至上千个"视觉token"喂给模型。
视觉语言模型(VLM):能同时理解图片和文字,并用语言回答问题的AI模型,比如你让它看一张照片然后描述内容
token:AI处理文字或图像时的最小单位,一张图可能被切成几百个token,文字里一个词也可能是一个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倍的推理加速。
Q2:为什么传统的视觉token压缩方法在Qwen3.5这类模型上会失效?
A:因为这类模型采用了线性注意力混合架构,视觉注意力的分布规律和传统softmax注意力模型完全不同,中间层反而会出现注意力回升的现象,同时线性注意力的固定容量状态也让基于相似度的判断方法变得不可靠,导致原有方法效果跌到不如随机丢弃token。
Q3:V-CoLA的早退机制是什么原理?
A:论文发现Qwen3.5在第24层之后对视觉token的关注度会大幅下降,困惑度实验也证明此时砍掉所有视觉token几乎不影响模型表现,因此V-CoLA在深层直接丢弃全部视觉token,把节省出的计算资源用于浅层更精细的视觉信息处理。







