随机基线都打不过:为什么一整代视觉 Token 压缩方法在混合线性注意力上集体失效

VLM 里视觉 token 通常是输入序列的主体,过去两年大家攒了一整套压缩经验:看 softmax 注意力分数(FastV)、看特征相似度(DART)、混合策略(SparseVLM / VisionZip)。这些方法全都针对 softmax attention 设计。把它们直接搬到 Qwen3.5 这种混合线性注意力 架构上会发生什么?arXiv:2610.11251 给出的答案很残酷:连随机丢弃 token 的基线都打不过。这不是调参问题------背后是一个可以用数据处理不等式写出来的信息论必然。而同一份分析又翻出了硬币的另一面:线性注意力的"选择性遗忘"本身就是一个免费的 token 重要性传感器。阿里巴巴团队据此做了 V-CoLA,保留一半视觉 token 拿到 99.5% 的平均性能。

一、先看清两种注意力在"记什么"

Softmax attention 的输出是一个加权和:

arduino 复制代码
o_t = Σ_{i≤t} α_{t,i} · v_i        α_{t,i} = exp(q_tᵀk_i) / Σ_j exp(q_tᵀk_j)

关键性质:每个历史 token 都保持独立可寻址。α_{t,i} 是一个显式的、token 级别的"o_t 有多依赖 v_i"的读数。代价是全注意力图,O(L²)。

Linear attention(以 Gated DeltaNet 为代表)换了思路,把整个历史压进一个固定大小的循环状态 S ∈ R^(d×d):

arduino 复制代码
S_t = S_{t−1} · ( α_t (I − β_t k_t k_tᵀ) ) + β_t v_t k_tᵀ
o_t = S_t q_t

α_t 是 decay 门、β_t 控制写入强度。这个更新可以解释成对 per-token 重建目标做一步在线梯度下降:

arduino 复制代码
L_t(S) = ½ ‖ S k_t − v_t ‖²

一句话点破两者的差别:softmax attention 是一个可精确查阅的 KV 表;线性注意力是一个带擦写机制的容量固定的矩阵。 前者你可以问"这个 token 被看了几次",后者你只能问"它的信息还剩多少"。

二、为什么老方法集体失效:两条被同时打断的假设

2.1 attention-based(FastV 系):假设"浅层的注意力会集中"

这类方法的核心动作是:在浅层读注意力分数,扔掉没人看的 token。前提是------"谁重要"这件事在浅层就已经明朗。

论文用 Figure 3 打了脸:对比 Qwen3-VL(纯 softmax)与 Qwen3.5(混合架构)各层分配给视觉 token 的注意力占比,Qwen3-VL 在浅层就迅速衰减,而 Qwen3.5 一直到中间层都还在持续关注视觉内容,直到更深层才降到低位。

换个说法就是:在混合架构里,模型把"看视觉内容"这件事推迟到了中间层。你在第 2 层就去读注意力分数,等于在模型还没开始认真看图的时候替它决定了看哪里。

2.2 similarity-based(DART 系):假设"隐特征的相似度是可区分的"

这类方法二等兵 benefits believe 是软件的第二项 leave:不看注意力,改看 token 特征空间的相似度去重。前提是------相似度高 = 冗余。

论文在 Figure 4 里做了一个控制实验:固定 pivot token 不变,只换模型 ,然后在 Qwen3.5 上重跑 DART 的冗余识别。结果是识别出来的冗余 token 明显不可靠了。而且这个结论毫不含糊:不是 pivot 选错了,是"特征相似度"这个量本身的语义被 state-recurrent 更新改变了。

原因在第三部分:所有 token 的输出都是从同一个压缩状态里读出来的。 既然大家一起从一个有损瓶颈里被榨出来,那么它们两两之间的相似度就不再反映"信息是否重复",而更多地反映"它们在这个有损读出里掉进了同一个坑"。

2.3 结局:连随机基线都不如

把两类代表方法放到 Qwen3.5-9B 上和随机丢弃做对比(Figure 2),结果是:几乎没有优势。MME / MMB / GQA / SQA / T-VQA / POPE / VizWiz / MMStar 八个基准里大量emblazoned随机基线之下。。

这不是"分数低一点",这是方法论层面的失效:你精心挑出来的"重要 token",还不如随手随机抽一把。

三、根因:一个有界的 d×d 矩阵,装不下 L·d 的信息

论文的归因为什么这块硬,因为它只用了一个数据处理不等式。

把 S_L 看成对 token 序列 M = {(k_i, v_i)}_{i=1..L} 的一个有损编码器,每个条目 c 比特,则:

scss 复制代码
I(M; S_L) ≤ H(S_L) = c · d² = O(d²)          ← 互信息不可能超过状态本身的熵
H(M) = L · h(k, v) = O(Ld)                    ← 源信息随序列长度线性增长

两式合并,得到状态必然丢失的信息量下界:

scss 复制代码
H(M | S_L) ≥ H(M) − H(S_L) = Ω(Ld − d²)

一旦 L > d,这个下界就随 L 线性增长。 而在 VLM 里,高分辨率多模态输入经常是 L ≫ d。作者把这个叫 information ceiling(信息天花板)。

这个天花板带来两个直接后果,正好对应前面两类方法的失效:

后果 打断了谁 机制
状态容量紧张 → 模型被迫把视觉信息的处理推后到中间层 attention-based 浅层注意力不再集中
所有 token 共享一个有损读出口 → 隐特征的相似度结构被重塑 similarity-based token 可区分性下降

重要的是:这个论证只依赖数据处理不等式和"状态容量与 L 无关"这两条,不依赖 Gated DeltaNet 的具体更新规则,因此适用于 Mamba-2、RWKV 等一切有界状态递归骨干。

硬币的另一面

但同一段推导里藏着一个礼物:正因为状态容量有限,模型才被迫让 decay 门和写入强度 β 做"选择性更新"------而这个选择性本身,就是 token 重要性的签名。

换个说法:为了不撑爆这个 d×d 的瓶颈,模型每天被迫"挑食"。它挑食的痕迹,就是免费的 token 重要性标注。

这不只是一个比喻,论文的 Figure 6 给出了三条支持性观察:

  1. 保留率随深度快速下降 :浅层高,深层掉到 20% 以下。视觉信息主要参与浅层推理,越深越边缘。
  2. 保留率随序列长度下降:状态已经压力很大,只能更有选择地保留------正是信息天花板的直接体现。
  3. 相邻层保留率排序的 Pearson 相关系数在浅层很高,深层才衰减:说明在视觉推理阶段,不同层对"哪些 token 重要"的偏好是一致的。这是个好消息------意味着你可以在浅层一次性做完压缩。

四、V-CoLA:把状态递推当成重要性指示计来读

基于上面的洞察,V-CoLA 做了三件事。全部 training-free,且实现层全部对齐线性注意力的 chunk-wise parallelism。

4.1 双分量重要性:长期贡献 + 短期独特性

分量一:长期贡献(ℛ^imp)。既然状态递推的目标是把 (k, v) 写进去并能读回来,那么"重建误差小"就说明这个 token 的信息被忠实保留了:

css 复制代码
ℛ^imp_t = 1 − ψ( S_L · k_t , v_t )
ψ(a, b) = (1 − cos(a, b)) / 2 ∈ [0, 1]

但只用 ℛ^imp 有两个偏:

  • 偏向显著区域,容易挑出一堆彼此重复的 token(这是 top-k 剪枝的老毛病);
  • 只看最终状态 S_L,会漏掉那些"重要但走的是长程路径"的 token------它们的贡献可能被累积的 gated decay 衰减掉了,或者根本没沿序列传播到 S_L,而是在写入后就直接层间传走了。

分量二:短期独特性(ℛ^uni)。补上后者:看 token 写入状态时到底造成了多大变化。冗余 token 跟上来更新状态时,目标的梯度会变小,对状态的影响也变小。于是用一组伪查询探针来测这个变化:

arduino 复制代码
ℛ^uni_t = ψ( S_t · Q*_tᵀ , S_{t−1} · Q*_tᵀ )
Q*_t = Q[t+w₁ : t+w₂)       默认 (w₁, w₂) = (0, 4)

注意这里的实现很取巧 :多查询注入几乎是无代价的------注入的查询只参与算输出、不参与状态递推,所以代价极小;伪查询直接来自平移过的 key,一次前向就能拿到伪输出矩阵 U*,再错位相减即可:ℛ^uni_t = ψ(U*_{t,δ}, U*_{t−1,δ+1})。这让整个重要性计算可以被塞进 chunk-wise 并行里。

最终加权:

arduino 复制代码
ℛ_t = (1 − λ) · ℛ^imp_t + λ · ℛ^uni_t        默认 λ = 0.1

为什么 λ 这么小也能起作用?看消融就明白了:λ = 0(只有长期项)MME 2360.5;λ = 0.1 MME 2398.5;λ = 0.9 反而掉到 2333.1。长期项是主菜,独特性项是纠错用的盐------它只需要把"集中在显著区重复采样"这个偏纠回来。

窗口方向也有讲究:(0, 4)(只看未来 4 个)最好,(−4, 0)(只看过去 4 个)最差,(−4, 4) 居中。因为**"这个 token 对刚刚更新的状态有没有新贡献"要在它被读出来的时候才知道**。

4.2 自适应分块合并:不是 top-k

top-k 保留的毛病是它加剧了"偏向显著区"。V-CoLA 改成 token merging(合并而非丢弃),而且是按重要性质量等分而非按 token 数等分地分块:

arduino 复制代码
目标:把 token 序列切成 L′ = L·γ 个 chunk,使得每块的 ℛ 之和尽量接近
   {C*_i} = argmin Σ_i | R̄ − Σ_{t=t_i}^{t_{i+1}} ℛ_t |        R̄ = 每块的期望重要性质量

块内加权合并:
   o′_i = Σ_t w_t · o_t          w_t = exp(ℛ_t/τ) / Σ_k exp(ℛ_k/τ)        τ = 1.0

效果是:重要的区域被切成细粒度的块(合并强度低、保真度高),不重要的区域被并成粗块(狠压)。 局部压缩率随语义密度自适应,而不是全图一刀切。

消融验证了两个分量的互补性:在 ↓75% 压缩下,去掉自适应合并 MME 从 2268.7 掉到 2197.4、MMStar 从 47.2 掉到 44.3;在 ↓87.5% 下差距更大(2012.0 → 1913.4,MMStar 41.4 → 36.5)。压得越狠,合并相对硬剪枝的收益越大。

顺带一提,合并权重里的温度 τ 是可调的------调低它就退化回硬剪枝。这个旋钮留给用户,算是很实用。

4.3 视觉 token 早退:深层干脆不要了

前面 Figure 6 已经说了深层保留率 <20%。论文用 PPL 扰动验证:逐层把所有视觉 token 拿掉,PPL 在某一层之后急剧下降并进入平台------具体是在 Qwen3.5-9B 的第 24 层之后。

MME/MMB/SQA 的结果更直观:

退出层 MME MMB SQA
1 967.3 22.6 83.7
12 2169.5 80.4 90.6
24 2401.6 85.2 92.3
32(不早退) 2398.2 85.6 92.2

在第 24 层把视觉 token 全扔掉,MME 反而比不早退还高一点点(2401.6 vs 2398.2)。 深层视觉 token 在这个混合架构里就是纯负债。

五、数据:三个压缩档,八基准,五个基线

主表(Qwen3.5-9B,8 基准平均相对性能,上界 880 token = 100%):

保留 50%(440 token)

方法 MME MMB GQA SQA T-VQA POPE VizWiz MMStar 平均
FastV 2351.6 84.8 60.4 92.1 79.5 88.8 67.6 45.3 97.5
SparseVLM 2333.1 84.7 60.1 92.2 80.1 88.7 67.5 45.6 97.5
DART 2220.4 83.3 59.6 91.7 69.3 88.9 67.0 48.3 95.5
VisionZip 2376.5 84.7 60.7 92.6 80.6 89.4 68.0 48.9 99.0
DTP(也是为线性注意力设计的) 2197.2 81.6 58.7 91.0 71.5 87.3 67.6 45.0 94.2
V-CoLA 2398.5 85.0 61.0 92.7 80.6 89.8 68.3 49.6 99.5

保留 25%(220 token):V-CoLA 94.8,VisionZip 94.5,SparseVLM 91.1,FastV 90.9,DART 88.4,DTP 86.3。

保留 12.5%(110 token) :V-CoLA 88.0 ,VisionZip 86.4,DART 79.2,DTP 75.7,SparseVLM 69.7,FastV 63.9。

真正的加速(语言模型 prefill 墙钟时间,ms):

视觉 token 不压缩 保留 50% 保留 25% 保留 12.5%
2K 269 145(1.86×) 88(3.06×) 61(4.41×)
4K 511 273(1.87×) 153(3.34×) 94(5.44×)
8K 1034 542(1.91×) 289(3.58×) 168(6.15×)

这套东西本身贵不贵? 组件级分解:改造后的 Extended Gated DeltaRule 在多查询场景(8K×4)把 135.1 ms 压到 35.1 ms(3.85×) ------因为把多花 query 塞进了同一次 chunk 计算;而 Adaptive Token Merging 本身只花 0.86 ms,约占整个模型 prefill 成本的 0.1%。

口径提示:摘要里说"剪枝带来的额外开销只占前向传播成本的 1.6%",而正文 Table 3 说"自适应合并在等的范围内花了 0.86 ms,约占 prefill 成本的 0.1%"。两者说的不是同一件事------前者是全链路(含重要性计算)相对前向成本,后者只算合并算子相对整段 prefill。引用时别混用。

泛化性(固定 ↓75%,同超参没做任何 per-model 调整):

模型 / 方法 MME SQA POPE MMStar
Qwen3.5-27B 上界 2517.4 97.0 90.5 58.1
├ DART 2173.0 91.9 82.4 44.5
├ VisionZip 2405.2 96.0 88.4 53.3
├ DTP 1798.2 89.2 70.2 43.1
└ V-CoLA 2414.5 96.1 88.8 53.7
InfiniteVL 上界 1998.9 86.0 87.9 53.7
├ DART 1885.5 84.7 85.0 49.0
├ VisionZip 1883.8 84.8 86.8 48.4
└ V-CoLA 1893.1 85.8 86.3 49.3

超参沾光 robustness 也不错:λ ∈ [0.05, 0.10] 表现接近,只有极端值才明显退化;(w₁,w₂) 取 (0,4) 和 (−4,4) 结果相近。而且同一套默认值在 9B、27B、InfiniteVL 三个模型上都是最优------没有 per-model 调参。

六、理想丰满,现实骨感

这部分是本文最该读的一节。

6.1 论文自己承认的两条

  1. 架构覆盖 :只验证了"交错线性注意力与 softmax 注意力"的混合 VLM。纯 Mamba 或全线性注意力的 VLM 没测。作者明确指出,无周期性的 softmax 层可能会改变重要性准则的行为。
  2. 线性注意力形式局限:分析与方法都锚在 Gated DeltaNet 形式上。理论上重建视角可以推广,但没有系统研究。

6.2 我在数据表里读出来的三条

① TextVQA 是重灾区,而且 V-CoLA 在这里并不占优。

看 12.5% 那一档:V-CoLA 的 T-VQA 是 46.0,上界是 83.2------相对保留率只有 55%,远低于 88.0% 的平均值 。而且它和 VisionZip 的 45.7 几乎打平。更尴尬的是在 ↓75% 那一档:V-CoLA 的 T-VQA 是 63.4,反而低于 VisionZip 的 65.7。

结论很明确:涉及文字识别(OCR 类)的任务,不要用激进的视觉 token 压缩。 文字是 token 密度最高、冗余度最低的信息,合并/丢弃会直接毁掉它。这一点适用于所有方法,不只是 V-CoLA。

② 优势集中在激进压缩区,温和压缩时和最强基线几乎持平。

50% 那一档,V-CoLA 99.5 vs VisionZip 99.0,只差 0.5pp 。真正的差距在 12.5%:V-CoLA 88.0 vs VisionZip 86.4 vs DART 79.2 vs FastV 63.9。你的收益有多大,取决于你想压多狠。 如果你只需要压到 50%,换方法的收益很有限;如果你要做 8× 压缩,那才是 V-CoLA 的主场。

③ 12.5% 档的 MME 上,VisionZip 反而更好。

V-CoLA 2012.0 vs VisionZip 2036.0。平均值上的领先是靠 GQA(57.5 vs 56.7)、POPE(88.3 vs 84.1)、VizWiz(68.3 vs 65.3)拉出来的。没有哪个方法在极端压缩下是全能的。

6.3 工程落地的三条硬约束

④ 它不是一个"拿来即用"的插件,它需要改 kernel。

V-CoLA 要能真的跑快,必须改造 Gated DeltaNet 算子本身(Extended Gated DeltaRule,支持多查询注入),并把重要性计算和 adaptive merging 全部塞进 chunk-wise 并行里。这意味着它和你使用的 kernel 库深度耦合:换一个 Triton/Flaggems 实现、换一个注意力后端的版本,都要重新适配。这是相对 FastV/VisionZip(纯 Tensor 操作,随便换后端)最大的落地成本。

⑤ training-free 是双刃剑。 好处是零训练成本、直接套在现成模型上;坏处是它拿不到任何训练期的适配------模型不会因为知道"后面会被压缩"而学会把信息集中到少数 token。

⑥ 评测尺度偏温和。 主表的八个基准都是短答案 VQA / 选择题,上界 880 个视觉 token。多轮长对话和小目标识别放在附录。真正在高分辨率文档、长视频(数万 token)上的表现,主实验没有直接回答------延迟表虽然做到了 8K token,但准确率只在 ~880 token 的尺度上验证过。

6.4 什么时候别用

erlang 复制代码
✗ OCR / 图表 / 含大量文字的图像(T-VQA 相对保留率只有 55%)
✗ 只需要温和压缩(50% 时相对最强基线只差 0.5pp,不值得改 kernel)
✗ 纯 Mamba / 全线性注意力 VLM(论文明确没测)
✗ 你的 kernel 栈不允许改 Gated DeltaNet 算子
✗ 期望"零适配、直接 pip install"

七、决策树

erlang 复制代码
你的 VLM 骨干是什么?
│
├─ 纯 softmax(Qwen3-VL / InternVL 系)
│   └─► 老方法继续用。FastV / VisionZip / SparseVLM 仍是性价比最高的选择
│       (注意:混合架构的结论不能反向套用到纯 softmax 上)
│
└─ 混合线性注意力(Qwen3.5 / Kimi-Linear / InfiniteVL 系)
    │
    ├─ 你的任务是 OCR / 文档 / 图表? ────► 【别激进压缩】先测 T-VQA 类的保真度
    │
    ├─ 目标压缩率?
    │   ├─ ≤ 50%(2×)  ─────────────────► 收益有限,先用 VisionZip 打基线
    │   ├─ ~75%(4×)   ─────────────────► 【值得上 V-CoLA】注意 T-VQA 上 VisionZip 可能更好
    │   └─ ~87.5%(8×) ─────────────────► 【强烈建议 V-CoLA】此档拉开最大差距(88.0 vs 79.2/63.9)
    │
    └─ 能改 kernel 吗?
        ├─ 能 ─────────────────────────► 上 Extended Gated DeltaRule,拿 1.86--6.15× prefill
        └─ 不能 ───────────────────────► 只有算法收益、拿不到系统收益,性价比大打折扣

三条实践建议:

  1. 先用你自己的 OCR/文字类子集过一遍,再决定全局压缩率。平均分会骗人,T-VQA 是照妖镜。
  2. 早退层(论文默认 24)一定要按你自己的模型重新标定。 用"逐层移除视觉 token 看 PPL 平台"这个便宜的办法在新模型上重跑一遍,成本很低。
  3. 把每次上线压缩的收益来源分开记账:合并策略的收益、早退的收益、kernel 改造的收益是三笔独立的钱,别混在一起算 ROI。

八、我的判断

这篇论文真正的价值不在那个 "99.5%"------它在宣告一个范式迁移的信号:

复制代码
softmax 时代:token 重要性 = 注意力分数(一个显式的、逐对的读数)
线性注意力时代:没有这个读数了,重要性必须重新定义

而新定义的来源很优雅------不是再找一个外部指标,而是读模型自己在压缩瓶颈下的取舍行为。这个思路不止能用在 token 压缩:

  • KV cache 驱逐:有界状态的模型该按什么丢?
  • 长上下文分片 / 检索:哪些 chunk 的信息真的还在状态里?
  • 可解释性:重建误差能不能当(token, layer)粒度的"记忆强度图"来读?

从这个角度看,V-CoLA 是"把 compressive bottleneck 当成 instrument"这条线的一个漂亮样本。同一份卡脖子,既是故障诊断书,也是最好的传感器。

三个待验证的开放问题:

  1. 这条重要性准则在多大程度上迁移到其他有界状态骨干(Mamba-2 / RWKV / MesaNet / DeltaNet 变体)?论文自己说没做,这是个明显的空位。
  2. 训练期感知压缩能不能翻盘 training-free ?如果模型在预训练/后训练阶段就知道会被压缩,L ≫ d 的天花板能不能部分绕过去?
  3. 87.5% 之后是什么曲线? 主表只到 12.5%,长尾(5%?2.5%?)会不会出现相变------如果有,那才是真正划出"哪些任务可以极限压缩"的边界。

数据来源:arXiv:2610.11251《V-CoLA: Vision Token Compression with Linear Attention》(Hao Jiang et al.,阿里巴巴云计算,2026-10-08)。实验平台 NVIDIA A100,评测框架 LMMs-Eval。文中所有数字均引自论文正文表格;摘要与正文关于剪枝开销的两个不同口径已在文中标注。本文不构成工程选型建议,实际收益请以上述三条硬约束(OCR 任务、压缩率、kernel 可改性)的自测为准。

相关推荐
米小虾1 小时前
一条 rollout 的两种死法:RLVR 的学习信号漏在哪,怎么补
人工智能
yychen_java1 小时前
第十二篇:完整项目实战——构建可验证的能源智能运维 Agent 中枢
运维·人工智能·能源
loulanyue_1 小时前
蚂蚁集团AI Native研发实践:从面向人类到面向Agent的下一代技术架构演进——读平台技术事业群总架构师黄挺2026云栖专场演讲
人工智能·大模型·软件架构·蚂蚁集团
HAHAXX81 小时前
影刀AI点数是怎么消耗的?拆解消耗规则 + 成本优化实战
人工智能·rpa
smartpi_ai1 小时前
离线语音识别模块选型指南:CI-03T、SU-32T、SU-03T 等模块在不同场景下的对比与选择
人工智能·ci/cd·语音识别
cuiZero01 小时前
主流大模型系列对比:GPT、GLM、DeepSeek 与 Claude 选型指南
大数据·人工智能·gpt
硅农深芯1 小时前
芯片设计中的版图依赖效应:被忽视的性能隐形约束
人工智能·layout·版图依赖效应·lde
闭包不眠1 小时前
Word转HTML后体积不对,裁掉的截图原图还在
前端·图像处理·人工智能·计算机视觉·html·word
TMT星球1 小时前
高精度还原指尖细节 觅蜂科技提出4D数据重建框架MEgoVista
人工智能·科技