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 PruningToken DuplicationFlashAttention 兼容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 间交互 | 重要性分数是静态计算的 |
| (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:
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
如果
2.3 Step 3:保留低重复度 Token
对每个 pivot
最终保留的 token 集合为所有 pivot token 加上所有低重复度 token 的并集:
其中阈值
用大白话说:与 pivot token 高度相似的视觉 token 被视为冗余信息,直接移除;与 pivot token 差异大的 token 说明携带了独特信息,必须保留。
2.4 理论保证
论文提供了严格的理论分析。在 Lipschitz 连续性和有界嵌入两个假设下:
引理 1(有界距离):被剪掉的 token
引理 2(有界近似误差):原始 token 集合
定理 1(性能保证):模型输出的差异有上界:
用大白话说:当
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% |
| SparseVLM | 96.3% | 93.8% | 84.6% |
| MustDrop | 97.2% | 95.6% | 90.1% |
| FiCoCo-V | 96.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 + FastV | 94.0% | 91.0% | 84.0% |
| Qwen2-VL-7B + DART | 97.0% | 94.3% | 87.5% |
| MiniCPM-V2.6 + FastV | 89.0% | 83.4% | 68.4% |
| MiniCPM-V2.6 + DART | 92.9% | 88.6% | 76.1% |
注意:对于训练时已做 token merging 的模型(如 Qwen2-VL)或使用 Resampler 压缩的模型(如 MiniCPM),DART 的增益略低,因为每个 token 信息密度更高,剪掉单个 token 的信息损失更大。
3.3 视频理解任务
在 Video-LLaVA 上保留 50% 视觉 token:
| 方法 | TGIF Acc | MSVD Score | MSRVT Acc | Avg Acc | Avg Score |
|---|---|---|---|---|---|
| Video-LLaVA | 47.0 | 3.9 | 57.3 | 58.2 | 3.6 |
| + FastV | 45.2 | 3.9 | 55.0 | 57.1 | 3.5 |
| + DART | 46.3 | 4.0 | 56.7 | 58.0 | 3.7 |
3.4 效率分析
在 LLaVA-Next-7B 上(2880 → 320 tokens):
| 方法 | 总时间 | Prefill 时间 | FLOPs | KV Cache | POPE F1 | 总加速 | Prefill 加速 |
|---|---|---|---|---|---|---|---|
| Vanilla | 36:16 | 22:51 | 100% | 1512 MB | 86.5 | 1.00× | 1.00× |
| FastV | 18:17 | 7:41 | 12.8% | 168 MB | 78.3 | 1.98× | 2.97× |
| SparseVLM | 23:11 | - | 15.6% | 168 MB | 82.3 | 1.56× | - |
| DART | 18:13 | 7:38 | 12.8% | 168 MB | 84.1 | 1.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 策略 | GQA | MMB | MME | POPE | Avg. |
|---|---|---|---|---|---|
| Random | 59.0 | 63.2 | 1772 | 80.6 | 96.0% |
| A-Score ♠ (最高) | 59.2 | 63.1 | 1826 | 81.1 | 96.9% |
| A-Score ♡ (最低) | 58.4 | 62.9 | 1830 | 81.0 | 96.7% |
| K-norm ♠ | 58.7 | 63.2 | 1840 | 80.1 | 96.8% |
| V-norm ♡ | 59.4 | 64.3 | 1825 | 81.6 | 97.2% |
| SparseVLM | 56.0 | 60.0 | 1745 | 80.5 | 93.9% |
| FastV | 49.6 | 56.1 | 1490 | 59.6 | 81.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 的模态来源
| 来源 | MME | TextVQA |
|---|---|---|
| All Tokens (视觉+文本) | 1840 | 56.4 |
| Visual Tokens only | 1819 | 56.3 |
| Text Tokens only | 1810 | 55.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 最核心的贡献不是方法本身(方法极其简单),而是观察和洞见:
- Importance-based 方法不如随机剪枝——这个发现直接动摇了整个 token pruning 领域的方法论基础
- 多组不同的 token 子集都能达到相当性能——这说明不存在唯一的"关键 token 集合",重要的是保留信息的多样性而非特定 token 的"重要性"
这一思路与信息论中的冗余消除原理一致:压缩的最优策略不是保留"最重要"的部分,而是消除"最冗余"的部分。
5.2 与 Elastic Cache 的互补关系
| 方面 | Elastic Cache | DART |
|---|---|---|
| 压缩对象 | 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),两者互补