Skip to content

DART:基于 Token 重复度的多模态大语言模型高效推理 ​

论文:Stop Looking for "Important Tokens" in Multimodal Language Models: Duplication Matters More

作者:Zichen Wen, Yifeng Gao, Shaobo Wang, Junyuan Zhang, Qintong Zhang, Weijia Li, Conghui He, Linfeng Zhang

机构:Shanghai Jiao Tong University、Shanghai AI Laboratory、Sun Yat-sen University、Peking University

发布时间:2025年2月(EMNLP 2025)

🔗 arXiv

分类标签:视觉 Token 压缩 Token Pruning Token Duplication FlashAttention 兼容 Training-Free

一句话总结 ​

提出 DART(Duplication-Aware Reduction of Tokens)——揭示了基于注意力分数的 importance-based token pruning 方法在 MLLM 中 2/3 场景甚至不如随机剪枝 的惊人事实,转而基于 token 重复度 而非重要性进行视觉 token 压缩:选择少量 pivot token(≤2%),计算余弦相似度找到高重复 token 并移除,保留信息差异最大的 token。该方法 training-free、兼容 FlashAttention,在 LLaVA-1.5-7B 上以 88.9% 的剪枝率仍保持 93.7% 原始性能(超越第二名 2.2%),实现 1.99× 总加速 和 2.99× prefill 加速。

一、问题与动机 ​

1.1 视觉 Token 的计算瓶颈 ​

多模态大语言模型(MLLMs)中视觉 token 数量远超文本 token(数十到数百倍),且视觉信号空间冗余度高、信息密度低。高分辨率图像(如 LLaVA-Next)编码出 2880 个视觉 token,视频模型更需处理多帧 token,导致注意力计算的二次复杂度成为推理瓶颈。

1.2 现有 Importance-Based 方法的四大问题 ​

大量工作(FastV、SparseVLM 等)基于注意力分数定义 token 重要性,然后剪掉"不重要"的视觉 token。但本文通过系统分析揭示了四个严重问题:

问题具体表现
(I) 忽略 token 间交互重要性分数是静态计算的 si=F(xi∣X),但剪掉某个 token 后其他 token 的重要性应该改变(如两个相似 token 剪掉一个后另一个应变更重要),这一动态交互被完全忽略
(II) 与 FlashAttention 不兼容高效注意力算子(FlashAttention)不提供注意力分数的中间访问,要获取注意力分数必须禁用 FlashAttention,导致速度和内存双重退化
(III) 位置偏差注意力分数对位置有系统偏差——位置上靠近末尾的 token 倾向获得更高的注意力分数,但这并不反映其真实价值
(IV) 显著的精度下降最令人震惊的发现——部分知名的 importance-based 方法在 2/3 的基准测试中表现不如随机剪枝(见 Fig. 2:FastV 和 SparseVLM 在 88.9% 剪枝率下多数指标低于随机基线)

1.3 重新审视:重要性 vs. 重复度 ​

上述问题引出一个根本性反思:在 token 压缩中,"哪些 token 重要"可能不是正确的问题;"哪些 token 是冗余重复的"才是关键。直觉上,当多个 token 的表征高度相似时,保留其中一个即可,不会损失信息。这一洞见受到 Transformer 中 token 趋于一致性(over-smoothing)现象的启发。

二、核心方法 ​

DART 的设计极其简洁,仅包含三个步骤,总开销不超过 0.08 秒。

2.1 Step 1:Pivot Token 选择 ​

从所有 token 中选择一小部分(不超过 2%,默认 8 个)作为 pivot token:

P={p1,p2,…,pk}⊆X,k≪n

Pivot token 的选择策略可以是:

  • K-norm:选择 K 矩阵 L1-norm 最大/最小的 token
  • V-norm:选择 V 矩阵 L1-norm 最大/最小的 token
  • Attention Score:选择注意力分数最高/最低的 token
  • 随机选择:甚至随机选取也能获得接近最优的效果

用大白话说:pivot token 相当于"代表团",代表了整个 token 集合的特征分布。后续通过度量其他 token 与代表团的相似度,来判断哪些 token 是冗余的。

2.2 Step 2:计算 ε-Duplicate Score ​

定义 pivot token pi 与视觉 token xj 之间的 重复度分数 为余弦相似度:

dup(pi,xj)=pi⊤xj∥pi∥∥xj∥

如果 dup(pi,xj)>ϵ,则认为 xj 是 pi 的 ε-duplicate(ε-重复体)。

2.3 Step 3:保留低重复度 Token ​

对每个 pivot pi,其关联的保留集合为:

Ri={xj∣dup(pi,xj)≤ϵ}

最终保留的 token 集合为所有 pivot token 加上所有低重复度 token 的并集:

R=P∪(⋃pi∈PRi)

其中阈值 ϵ 根据预设的压缩比例动态确定。

用大白话说:与 pivot token 高度相似的视觉 token 被视为冗余信息,直接移除;与 pivot token 差异大的 token 说明携带了独特信息,必须保留。

2.4 理论保证 ​

论文提供了严格的理论分析。在 Lipschitz 连续性和有界嵌入两个假设下:

引理 1(有界距离):被剪掉的 token xj 与最近 pivot pi 的距离有上界:

minpi∈P|pi−xj|≤2(1−ϵ)⋅B

引理 2(有界近似误差):原始 token 集合 X 与保留集合 R 的 Hausdorff 距离有上界:

dH(X,R)≤2(1−ϵ)⋅B

定理 1(性能保证):模型输出的差异有上界:

∥f(X)−f(R)∥≤K2(1−ϵ)⋅B

用大白话说:当 ϵ 越接近 1(即只剪掉与 pivot 极其相似的 token),性能损失的上界越小。这为 DART 通过调节 ϵ 控制性能-效率权衡提供了理论依据。

2.5 方法特性 ​

特性说明
Training-Free无需任何训练或微调
FlashAttention 兼容pivot 选择可用 K/V-norm 或随机,完全不需要注意力分数
极低开销token 压缩过程仅需 ≤0.08 秒
与 importance-based 正交可与注意力分数方法组合使用(用注意力分数选 pivot,再用重复度做剪枝)
空间均匀性保留的 token 在图像上分布均匀,无位置偏差

三、实验结果 ​

3.1 主实验:图像理解任务 ​

在 LLaVA-1.5-7B 上,10 个基准测试的平均性能(百分比为相对 vanilla 的保留率):

方法保留 192 tokens (↓66.7%)保留 128 tokens (↓77.8%)保留 64 tokens (↓88.9%)
ToMe (ICLR'23)88.5%80.4%70.1%
FastV (ECCV'24)91.2%86.4%77.3%
HiRED (AAAI'25)91.5%90.2%87.0%
SparseVLM96.3%93.8%84.6%
MustDrop97.2%95.6%90.1%
FiCoCo-V96.1%94.9%91.5%
DART (Ours)98.8%98.0%93.7%

关键观察:

  • 极端压缩下优势更显著:88.9% 剪枝率时 DART 超越第二名 FiCoCo-V 2.2%(93.7% vs. 91.5%)
  • 在 LLaVA-Next-7B(2880 tokens → 320 tokens,↓88.9%)上同样领先:DART 93.9% vs 第二名 HiRED 91.8%,优势 2.1%

3.2 更先进模型上的验证 ​

模型↓66.7%↓77.8%↓88.9%
Qwen2-VL-7B + FastV94.0%91.0%84.0%
Qwen2-VL-7B + DART97.0%94.3%87.5%
MiniCPM-V2.6 + FastV89.0%83.4%68.4%
MiniCPM-V2.6 + DART92.9%88.6%76.1%

注意:对于训练时已做 token merging 的模型(如 Qwen2-VL)或使用 Resampler 压缩的模型(如 MiniCPM),DART 的增益略低,因为每个 token 信息密度更高,剪掉单个 token 的信息损失更大。

3.3 视频理解任务 ​

在 Video-LLaVA 上保留 50% 视觉 token:

方法TGIF AccMSVD ScoreMSRVT AccAvg AccAvg Score
Video-LLaVA47.03.957.358.23.6
+ FastV45.23.955.057.13.5
+ DART46.34.056.758.03.7

3.4 效率分析 ​

在 LLaVA-Next-7B 上(2880 → 320 tokens):

方法总时间Prefill 时间FLOPsKV CachePOPE F1总加速Prefill 加速
Vanilla36:1622:51100%1512 MB86.51.00×1.00×
FastV18:177:4112.8%168 MB78.31.98×2.97×
SparseVLM23:11-15.6%168 MB82.31.56×-
DART18:137:3812.8%168 MB84.11.99×2.99×

关键发现:虽然 SparseVLM 的 FLOPs 仅比 DART 多 2.8%,但实际加速比低了 21.6%(1.56× vs. 1.99×),说明 仅靠 FLOPs 衡量加速效果缺乏实际意义——SparseVLM 和 MustDrop 的多阶段顺序 token 处理流程导致了显著的速度退化。

3.5 消融实验 ​

Pivot Token 选择策略的鲁棒性 ​

在 LLaVA-1.5-7B 上保留 128 tokens,8 个 pivot(4 visual + 4 text):

Pivot 策略GQAMMBMMEPOPEAvg.
Random59.063.2177280.696.0%
A-Score ♠ (最高)59.263.1182681.196.9%
A-Score ♡ (最低)58.462.9183081.096.7%
K-norm ♠58.763.2184080.196.8%
V-norm ♡59.464.3182581.697.2%
SparseVLM56.060.0174580.593.9%
FastV49.656.1149059.681.5%

核心结论:

  • 随机选 pivot 仅比最优策略低 1.2%,但仍超越所有 importance-based 方法 2.1%——这强有力地证明了"重复度比重要性更关键"
  • 选择"最重要"的 token 作为 pivot(A-Score ♠)仅比选择"最不重要"的(A-Score ♡)好 0.2%,颠覆了传统认知
  • 两种策略(K-norm ♠ 和 K-norm ♡)保留的 token 重叠度平均 不到 50%,但性能相当,说明存在多组不同的有效 token 子集

Pivot Token 数量 ​

Pivot token 过少(1-2 个)缺乏多样性,过多(20+)则多数保留的 token 就是 pivot 本身,退化为 importance-based 方法。默认 8 个 在性能和效率间取得最佳平衡。

剪枝层的选择 ​

  • 浅层剪枝(layer 2)速度最快但性能略有下降
  • 深层剪枝(layer 10-20)性能接近甚至超过 vanilla 模型(在 POPE 上),暗示剪掉重复 token 可能减少幻觉
  • 极端情况:在 layer 15-20 剪掉全部视觉 token,性能仅下降 0.1%-1.6%,揭示了 MLLM 中视觉模态利用不充分的问题

Pivot Token 的模态来源 ​

来源MMETextVQA
All Tokens (视觉+文本)184056.4
Visual Tokens only181956.3
Text Tokens only181055.7

两种模态的 pivot 都对性能有贡献,说明 DART 隐式地引入了文本引导的 token 选择,且无需显式计算跨模态注意力分数。

四、局限性与未来方向 ​

4.1 无法应用于黑盒模型 ​

DART 需要访问模型内部的 token 表征来计算重复度,无法应用于 GPT、Claude 等闭源模型的 API 调用场景。

4.2 高信息密度 token 的挑战 ​

对于训练时已做 token 压缩的模型(如 Qwen2-VL 的训练时 token merging、MiniCPM-V2.6 的 Resampler 模块),每个视觉 token 的信息密度更高,剪掉单个 token 会导致更大的信息损失,DART 的效果相对减弱(但仍保持 97.0% 和 92.9% 在 66.7% 剪枝率下)。

4.3 Token 剪枝减少幻觉的机制尚不明确 ​

实验中发现深层 token 剪枝在 POPE 上甚至超过 vanilla 模型,暗示剪掉重复 token 可能有助于减少幻觉。但这一现象背后的机制尚待深入研究——是因为去除冗余信息减少了模型对重复模式的过度依赖,还是因为缩短序列长度减轻了注意力的稀释效应?

五、个人思考 ​

5.1 "重复度 > 重要性"的范式转变 ​

DART 最核心的贡献不是方法本身(方法极其简单),而是观察和洞见:

  1. Importance-based 方法不如随机剪枝——这个发现直接动摇了整个 token pruning 领域的方法论基础
  2. 多组不同的 token 子集都能达到相当性能——这说明不存在唯一的"关键 token 集合",重要的是保留信息的多样性而非特定 token 的"重要性"

这一思路与信息论中的冗余消除原理一致:压缩的最优策略不是保留"最重要"的部分,而是消除"最冗余"的部分。

5.2 与 Elastic Cache 的互补关系 ​

方面Elastic CacheDART
压缩对象KV Cache 向量视觉 Token
压缩时机指令编码后 + 生成过程中Prefill 阶段 Layer 2 之后
重要性度量注意力列求和余弦相似度(重复度)
冗余处理桶内均值合并直接剪除
FlashAttention不兼容(需注意力分数)完全兼容
加速来源减小 KV Cache,加速 decode减少 token 数量,加速 prefill + decode

两种方法关注不同维度的冗余——Elastic Cache 关注时序维度上 KV 向量的冗余,DART 关注空间维度上视觉 token 的冗余。理论上两者可以组合使用:先用 DART 在浅层剪掉冗余视觉 token,再用 Elastic Cache 在生成阶段压缩 KV Cache。

5.3 与 OPERA 幻觉观察的关联 ​

DART 的一个有趣发现是深层 token 剪枝可以减少幻觉。这与 OPERA 的发现形成呼应——OPERA 发现幻觉与注意力集中在少数 summary token 相关,而 DART 通过移除高重复度 token(这些 token 表征相似,可能正是 OPERA 所说的 summary token 群),打破了注意力的过度聚合模式,从而天然地缓解了幻觉。

5.4 方法的简洁性与普适性 ​

DART 的整个流程不超过 5 行伪代码:选 pivot → 算余弦相似度 → 取最不相似的保留。这种极致的简洁性使其几乎可以零成本集成到任何 MLLM 中。更深层地说,DART 的成功暗示视觉 token 中存在大量结构化冗余——这不仅是一个效率问题,也揭示了当前 VLM 视觉编码器在信息压缩方面的不足,可能为设计更高效的视觉编码策略提供方向。

参考 ​

  • FastV(Chen et al., 2024):基于注意力分数的视觉 token 剪枝——DART 的主要基线之一,DART 证明其在多数场景中不如随机剪枝
  • SparseVLM(Zhang et al., 2024):跨模态注意力引导的稀疏视觉 token 选择——另一个 importance-based 基线,同样被 DART 大幅超越
  • ToMe(Bolya et al., 2023):Token Merging,在 ViT 层中合并相似 token——与 DART 共享"相似 token 冗余"的直觉,但 ToMe 在语言模型中打破了跨模态交互
  • FlashAttention(Dao et al., 2022):IO-aware 精确注意力加速——DART 的重要设计约束,确保与高效注意力算子兼容
  • MustDrop(Liu et al., 2024):多阶段视觉 token dropping——DART 在性能和速度上均超越的强基线
  • Elastic Cache(Liu et al., 2024):importance-driven KV cache merging——与 DART 关注不同维度的冗余(KV Cache vs. 视觉 Token),两者互补