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(xiX),但剪掉某个 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,kn

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)=pixjpixj

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

2.3 Step 3:保留低重复度 Token

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

Ri={xjdup(pi,xj)ϵ}

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

R=P(piPRi)

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

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

2.4 理论保证

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

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

minpiP|pixj|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),两者互补