Token Pruning 领域批判性分析

一、ViT Token Pruning:一个逐渐饱和的方向

1. 方法论同质化严重

这 18 篇工作本质上都在回答同一个问题:“哪些 token 不重要?“答案无非三条路:

  • Attention score(EViT、ATS、Zero-TPrune)—— 用 CLS token 的 attention 做重要性度量

  • Learnable predictor(DynamicViT、SPViT、A-ViT)—— 加一个小网络来预测

  • Similarity-based merging(ToMe、TPS、DiffRate)—— 相似的 token 合并

从 2021 到 2025,核心 idea 没有本质突破。DiffRate 把压缩率变成可学习参数算是最有 taste 的改进之一,但大多数后续工作只是在排列组合:pruning + merging(TPS)、不同的重要性度量(PageRank in Zero-TPrune)、不同的应用场景(视频、SSM)。

2. 评估体系的缺陷

几乎所有工作都在 ImageNet classification 上比较 accuracy vs FLOPs/throughput tradeoff。但这个评估有根本问题:

  • Classification 太简单了——pruning 30-50% token 对分类影响不大,因为分类本身只需要少量关键特征。这让所有方法看起来都很有效,掩盖了方法间的真实差异。

  • 缺少 dense prediction 的系统评估——检测、分割等任务对空间信息敏感得多,真正考验 pruning 的质量。Token Cropr (CVPR’25) 才开始认真做这件事,说明之前 4 年的工作都在一个过于友好的 benchmark 上自娱自乐。

  • 吞吐量测量不规范——有的报 FLOPs 减少,有的报实际 throughput,有的报 latency。FLOPs 减少 ≠ 实际加速(不规则稀疏在 GPU 上很难高效执行),很多工作故意只报 FLOPs 避免暴露实际加速不理想。

3. 与现代架构脱节

大部分工作针对 DeiT-S/B,这些是 2020-2021 年的模型。现在主流的视觉骨干是 SwinV2、InternViT、SigLIP 等,很多还采用了 window attention、flash attention 等机制,使得基于全局 attention score 的 pruning 策略不再直接适用。NeurIPS’24 那篇 Vision SSM pruning 意识到了这个问题,但解决得并不彻底。


二、VLM Token Pruning:当前最活跃、最有价值的子方向

1. 问题定义比 ViT 更明确、更实际

VLM 中视觉 token 数量确实是性能瓶颈。LLaVA-1.5 一张图 576 tokens,LLaVA-NeXT 可能 2880+。在 LLM decode 阶段,每个 token 的 KV cache 开销乘以序列长度,视觉 token 的冗余直接影响推理成本。所以这个方向的 motivation 比 ViT pruning 实在得多。

2. 方法创新度依然有限

FastV 的核心发现——“layer 2 之后视觉 attention 变稀疏”——是一个很好的 empirical observation,但后续工作(ATP-LLaVA、PyramidDrop、PACT 等)本质上都是在这个 observation 上做微调:

  • 换一种方式算 importance score

  • 换一个 layer 做 pruning

  • 加 spatial awareness

  • 从 image 扩展到 video

缺乏对根本问题的反思:为什么视觉 token 会冗余?是 visual encoder 的问题还是 cross-modal projection 的问题?如果 CLIP 本身生成的 token 就高度冗余,那应该从 encoder 端解决,而不是在 LLM 内部事后补救。LLaVA-PruMerge 稍微触及了这一点(利用 CLIP attention 的稀疏性),但没有深入。

3. 训练 vs 推理的割裂

大部分 VLM pruning 工作是 training-free 的(推理时直接 prune),好处是即插即用,坏处是模型从未学习过如何在缺少某些 token 的情况下工作。PyramidDrop 做了 training-aware 的实验,效果显著好于 training-free,但这条路还没被充分探索。


三、KV Cache 压缩:工程价值高但理论深度不够

H2O、StreamingLLM、SnapKV 等工作的 insight 很好(heavy hitter、attention sink),但后续工作越来越像系统工程优化而非方法创新。KIVI 做量化、MiniCache 做 cross-layer 共享、GEAR 组合三种技术——都是在已知框架内做增量改进。


四、整个领域的系统性问题

1. 缺乏统一的理论框架

没有人从信息论的角度严格回答过:

  • 一个 token 序列的”最优”压缩率是多少?

  • 在给定信息损失预算下,pruning、merging、quantization 哪个更优?

  • 不同层的信息冗余是如何分布的,能否给出理论分析而非 empirical observation?

所有工作都是实验驱动的启发式方法,缺乏理论指导。

2. Pruning 与其他加速技术的关系不清晰

Token pruning 和以下技术存在交互但几乎没人系统研究过:

  • FlashAttention:FlashAttention 不输出 attention weights,导致很多基于 attention score 的方法不能直接用(TopV 提到了这个问题但只是绕过了它)

  • 模型量化:pruning 50% token + W4A16 量化,效果是叠加的还是有 diminishing return?

  • 知识蒸馏:pruning 后蒸馏恢复精度 vs 直接训一个更小的模型,哪个更 cost-effective?

  • MoE 架构:MoE 本身就有稀疏激活,token pruning 在 MoE 上的效果如何?

3. 动态 vs 静态的取舍没有被认真讨论

动态 pruning(per-instance, per-layer)理论上更优但带来调度开销和 batching 困难。在实际部署中,一个 batch 内不同样本 prune 不同数量的 token 会导致严重的 padding 浪费或实现复杂度。几乎没有工作认真处理这个工程现实。


五、未来可以深挖的方向

方向为什么值得做难度
Training-aware VLM token pruningPyramidDrop 已证明训练时考虑 pruning 效果显著优于 training-free,但这条路还很空
Token pruning + FlashAttention 原生集成当前方法要么不兼容 FA,要么需要 workaround,需要从 kernel 层面解决
Visual encoder 端的 token 生成优化与其在 LLM 内部 prune,不如让 encoder 直接生成更少、更好的 token(TokenLearner 的思路在 VLM 时代重新审视)
跨模态 token 预算分配给定总 token 预算,视觉和文本各分多少?不同任务(VQA vs captioning vs reasoning)最优比例不同
长视频 / 多图场景的 token 管理视频 LLM 的 token 数爆炸式增长,DyCoke 只是开始
信息论驱动的 pruning 理论给 pruning 一个理论 lower bound,指导方法设计而非 trial-and-error
Pruning-aware 的模型架构设计设计天然适合 token pruning 的 attention 机制,而非在标准 transformer 上做事后修补
与 Sparse Attention(如 NSA, MInference)的统一Token pruning 本质上是一种 structured sparsity,和 sparse attention 的理论联系值得建立

总结

这个领域最大的问题是方法创新的 marginal return 在递减。ViT token pruning 基本饱和了,VLM token pruning 还有 2-3 年的窗口期但也在快速同质化。真正有长期价值的工作应该是:(1) 建立理论框架,(2) 与系统层面深度集成(FA kernel、编译器),(3) 从架构设计层面解决冗余问题而非事后修补。