精读笔记
Problem Setting
论文标题:Rethinking Depth Pruning for Vision Transformers: A Heterogeneity-Aware Perspective(arXiv preprint / 2026-07-07)。这篇论文面对的是 ViT 结构化压缩里一个很现实的问题:depth pruning 理论上最容易转化为端到端 latency speedup,但也是最难恢复精度的剪枝维度。传统说法把失败归因于“整层删除太粗”,但这篇的判断更具体:失败主要来自把不同类型层当成同质对象来排序和删除。真正困难点在于,attention 层承担 token mixing,FFN 激活层承担局部非线性,两者被删除后的功能损伤、梯度信号和 fine-tuning 可恢复性完全不同。以前方法卡在两个位置:一是只剪 attention 或只剪 block,速度/精度 trade-off 很快到顶;二是直接联合剪不同组件会遇到 FFN expansion-contraction 的维度不匹配。关键矛盾是:要获得 depth pruning 的真实硬件收益,必须剪掉足够重的顺序计算;但越跨结构类型剪,越不能用统一 saliency 来决定谁该被删。
Motivation
已有 width pruning、head pruning、token pruning 的共同问题是容易保持精度但未必带来等比例真实吞吐提升;depth pruning 则相反,速度收益直接但结构扰动过大。作者的核心观察不是“某些层冗余”这个老命题,而是 attention 层和 activation-function 层的冗余在训练动力学上异质:activation 被单层删除时瞬时精度可能近乎崩溃,但 fine-tuning 后恢复很快;attention 删除时初始损伤较小,但多层删除会持续削弱 token mixing,恢复更慢。这个现象说明 immediate accuracy、gradient magnitude、TE 这类局部指标都可能误导预算分配。关键缺口是:现有 pruning 把“剪哪些层”和“不同类型剪多少”混在一个排序问题里,而这两个问题本质上不应由同一标尺解决。
Core Idea
HetDPT 的核心思想是把异质 depth pruning 拆成两层决策:先决定在 attention 和 activation 两类结构之间如何分配剪枝预算,再在每一类内部找具体冗余层。这个改写很重要,因为它承认跨类型 importance 不可比,从而避免梯度尺度差异把搜索推向系统性偏置;同时它把目标从“剪完当下掉点最小”改成“fine-tuning 后最终 accuracy 最优”,更贴近实际部署流程。
另一个关键思想是选择剪 GELU 而不是直接剪 FFN linear。直接删除 FFN 的第一层或第二层会破坏 D→4D→D 的维度链路,而删除中间非线性后,两个线性层可以合并为一个线性映射,既保持维度闭合,又把结构深度实质降低。这个设计把“activation redundancy”转化成了一个可部署的结构变换:不是动态跳过,也不是 mask 稀疏化,而是静态改写计算图。和 prior 的本质区别在于,它不是找更强 saliency,而是重新定义了 depth pruning 的候选对象和比较边界。
Method
方法中真正必要的机制只有三类。第一,MAP-based budget allocation:它解决的是不同类型层该各剪多少的问题,而不是具体剪哪层。由于 attention 和 activation 的恢复曲线不同,预算不能由单点 saliency 决定;MAP 用少量 prune–fast-finetune–evaluate 数据拟合 accuracy surface,再在预算约束下枚举最优比例。核心变化是把 heterogeneous pruning 从离散层排序问题转成低维结构比例优化。
第二,within-type importance estimation:它解决的是给定预算后具体删哪些 attention / activation 的问题。这里仍可用 trainable mask / gradient 类方法,但只在同质集合内比较。它的必要性在于 gradient disparity 使跨类型比较失真,而类型内梯度至少具有相近语义和尺度。
第三,activation removal + linear merging:它解决维度不匹配和真实加速问题。剪 activation 后 FFN 从 Linear–GELU–Linear 退化为两个线性映射的复合,可无损合并。这个步骤是 HetDPT 区别于普通 layer dropping 的关键工程闭环:剪枝后的结构不是带分支的稀疏网络,而是更浅、更硬件友好的 dense network。
Key Insight / Why It Works
最核心的贡献是识别并利用了 ViT depth redundancy 的异质性。方法有效的根因不是 MAP 多高级,也不是 polynomial 拟合本身,而是它避免了一个错误建模假设:不同结构类型的层可以共享一个 importance 坐标系。gradient disparity 会让训练式搜索偏向某类层,recovery asymmetry 会让短视指标低估 activation pruning 的长期可恢复性;HetDPT 正好把这两个 failure mode 拆开处理。
我认为真正起作用的是三点:一是预算分配先验,它把剪枝搜索空间从组合爆炸压到二维比例曲面,等价于加入强结构先验;二是 activation pruning 这个候选对象选择,它绕开 FFN linear 剪枝的维度障碍,同时保留可合并路径;三是 fine-tuning 后评估而非即时评估,这更像一种 recovery-aware architecture search。MAP 的理论部分主要是合理化工具,贡献有限:Stone–Weierstrass 只能说明多项式有表达能力,不能保证少量 fast-finetune 样本拟合到正确排序;constant bias 假设也偏强。
哪些可能只是辅助:self-distillation、与 Isomorphic Pruning 组合、长 fine-tuning recipe 很可能贡献了部分最终数字,但不是 paper 的机制核心。HetDPT+ 的极限压缩结果更像“好的 depth pruning 前处理 + 强 width pruning pipeline”的组合收益,不能完全归因于 HetDPT 本身。这里没有 retrieval、test-time compute 或 memory reuse;本质上是 better inductive bias + recovery-aware structural search。若要迁移,最重要的不是 MAP 形式,而是“异质组件不要共享 saliency,先分预算再类型内选择”这个建模原则。
Relation To Prior Work
它最接近三条线:ViT depth pruning(如 NOSE)、joint width-depth pruning(WD-Pruning / Isomorphic Pruning 相关路线)、以及 DepthShrinker 式删除非线性并合并线性/卷积算子。和 NOSE 的本质差异是,NOSE 主要在 attention/MLP learner 层面找可删结构,而 HetDPT 明确把 attention 与 activation 的异质恢复行为作为建模对象;和 width pruning 的差异是,HetDPT 优先减少顺序深度而不是缩窄通道,因此更容易获得真实吞吐提升。
看似新的部分里,polynomial predictor、fast-finetune surrogate、mask-based importance 都不是新思想,本质上是轻量 NAS / pruning search 的常见工具重组。实质创新在两个地方:第一,把 GELU activation layer 当成 depth pruning 的静态候选对象,并通过线性合并获得部署友好结构;第二,提出 cross-type budget allocation + within-type selection 这个异质剪枝范式。它属于结构化压缩谱系里从“统一 saliency 剪枝”向“typed structural search / recovery-aware pruning”演化的一步。
Dataset / Evaluation
评估覆盖分类、迁移、检测、分割和大模型 DINOv2-Giant,任务范围比一般 ViT pruning 论文更完整;同时报告 H800 上 throughput,而不是只报 MACs,这对 depth pruning claim 很关键。实验基本支持两个核心论断:混合剪 attention + activation 优于单类型 depth pruning;HetDPT 与 width/token pruning有一定正交性。
但 evaluation 仍有几个限制。第一,主要结论仍围绕 DeiT/Swin 这类标准 ViT 架构,MAP 需要按 architecture family 重新拟合,跨架构泛化没有被真正证明。第二,dense prediction 结果是验证不崩,而不是证明下游结构泛化;COCO/ADE20K 的设置更像 sanity check。第三,HetDPT+ 与 SOTA compression 的比较混入 width pruning、KD、不同 baseline 训练 recipe,增益归因不完全干净。第四,真实部署只在单类 GPU profiling 上体现,未说明 CPU、edge GPU、batch size 变化、kernel fusion 条件下收益是否稳定。
Limitation
最大限制是方法把困难从“组合层选择”转移到了“可靠估计 recovery-aware accuracy surface”。MAP 在论文里被描述得很轻量,但它依赖 prune–fast-finetune–evaluate 样本;如果模型族、数据分布、fine-tuning recipe 或目标硬件改变,surface 可能要重采样。文中未充分说明 MAP 跨模型、跨任务、跨压缩强度的迁移性。
理论部分的上限也明显:连续 relaxation、constant bias、zero-mean independent noise 都是较强假设,不能真正保证 fast-finetune 排序等于 full-finetune 排序。多项式拟合只是在二维预算空间可行,不代表更细粒度异质组件或更多 layer types 时仍 scalable。
activation pruning 的泛化边界也不清楚。GELU 删除后线性合并等价于降低 FFN 非线性容量,这在 ImageNet-style 分类上可恢复,不代表在细粒度、多模态、OOD 或需要复杂 compositional reasoning 的视觉任务上同样安全。对于 DINOv2-Giant 只在 CIFAR-100 上验证,可能主要证明 overparameterized representation 有冗余,而不是证明方法具备强泛化。
此外,HetDPT+ 的高倍加速增益来源不清:一部分可能来自已有 width pruning 的强 baseline,一部分来自 KD / fine-tuning / profiling 条件。论文需要更干净地分解 depth pruning、activation merging、width pruning、distillation 各自贡献。
Takeaway
- 第一,ViT depth pruning 不应再被建模成 homogeneous layer dropping;不同结构类型的剪后恢复动力学应进入搜索目标。
- 第二,activation-function layer 是一个被低估的静态压缩对象。
- 删除非线性再合并线性层这件事在 Transformer FFN 中很有迁移价值,尤其适合追求真实 latency 而非稀疏 MAC 的场景。
- 第三,未来更值得做的是 general recovery predictor:能否不为每个 architecture family 重新采样 MAP,而是学习跨模型的剪枝恢复规律。
一句话总结
这篇论文把 ViT 深度剪枝从统一 saliency 的层删除问题推进到异质组件的 recovery-aware 预算分配问题,真正贡献是把 activation pruning 与类型感知结构搜索结合成可部署的 depth compression 路线。
