这里写自定义目录标题
剪枝方法总体分类
🔹 非结构化剪枝
权重幅值剪枝(Deep Compression)
初始化敏感度(SNIP, GraSP)
数据无关(SynFlow)
大模型快速剪枝(SparseGPT, Wanda)
🔹 结构化剪枝
通道/滤波器/神经元剪枝(ThiNet, Network Slimming, HRank, Trimming)
联合结构选择(Data-driven SSS, GAL, Centripetal SGD)
动态网络修剪(Dynamic Network Surgery)
归一化层敏感性(BERT-Busters)
层级/Block剪枝(ShortGPT, LaCo)
🔹 Transformer特有剪枝
注意力头剪枝(Are Sixteen Heads Really Better?)
Token剪枝(SpAtten, LazyLLM)
层级剪枝(LaCo, Sheared LLaMA)
MLP隐藏维度剪枝(DISP-LLM, SliceGPT)
2️⃣ 设计思路核心
💡 是否需要数据?
💡 是否需重训练/微调?
💡 适配非结构化/结构化/半结构化?
💡 是否面向推理阶段动态?
3️⃣ Transformer / ViT 剪枝特点
🎯 多头注意力 → 头剪枝
🎯 序列长度 → Token/层动态剪枝
🎯 LayerNorm/归一化 → 敏感维度处理
🎯 MLP隐藏层 → 维度可独立化剪枝
4️⃣ VGGT 适配点
🎥 局部+全局 Transformer → 层/头/通道组合剪枝
📸 多视角帧 Token → 需保留3D一致性 → Token剪枝需谨慎
📌 相机Token/深度预测头 → 结构剪枝需结合几何损失
5️⃣ 结论:是否需要专门设计?
✅ 通用剪枝方法可迁移
✅ Transformer特点(多头、序列、层归一化)决定专门剪枝思路更高效
✅ VGGT 等多任务多模态模型 → 更需结合结构/任务一致性
摘要
剪枝作为压缩深度神经网络的方法,在卷积网络、Transformer 和大规模语言模型中得到了广泛研究。本文系
统梳理了用户提供的剪枝方案,包括非结构化权重剪枝、结构化剪枝(滤波器、通道、神经元等)、注意力头
剪枝、Token 和层级剪枝等方法。我们介绍每种方法的核心思想和类型,讨论其在大模型/Transformer(如
GPT、BERT、LLaMA、ViT)中的适配性与创新点,包括是否需要重训练、是否依赖数据,以及是否具备对
层、头、通道等结构的感知能力。然后基于VGGT模型(融合局部/全局自注意力、支持3D重建任务)的架构特
点,分析现有剪枝方法如何应用于此场景或需作扩展。最后,对是否需要专门为Transformer设计剪枝策略进行
论证。我们指出,大部分剪枝思路可迁移到Transformer,但考虑其多头注意力、序列Token等特点,专门设计
(如注意力头/Token剪枝)往往更为高效。
引言
随着神经网络规模不断扩大,模型存储和推理成本剧增,剪枝技术成为缓解这一问题的重要手段。早期剪枝研
究主要针对卷积网络,通过移除冗余连接或滤波器来减小模型体积 。近年来,Transformer 架构在自然
语言处理和计算机视觉中的成功,使得如何对具有多头注意力和大规模参数的模型进行有效剪枝成为研究热
点。相关工作从不同角度出发:有针对训练初始状态的剪枝(如敏感度分析),也有针对训练后微调的剪枝,
还有针对推理阶段动态调整的剪枝策略。此外,剪枝方法可以分为非结构化剪枝(任意权重去零)和结构化剪
枝(去除整个滤波器、通道、注意力头等)。本文将按方法类型分类介绍主要研究进展,并分析它们在
Transformer结构中的应用情况。
方法分类
非结构化权重剪枝
权重幅值剪枝:最经典的方法是基于权重幅值的剪枝,即移除小绝对值权重。Song Han等提出的“Deep
Compression”方案首先学习权重重要性(通过训练),剪掉冗余连接,再结合量化和哈夫曼编码,大幅缩减
模型大小(AlexNet、VGG-16可压缩35×–49× )。这一流程包含剪枝后重训练步骤,以恢复精度 。
初始化剪枝:近年涌现多种在训练前进行一次性剪枝的方法。例如SNIP在训练开始前用梯度敏感度(连接对损
失的影响)评估权重重要性,剪掉低敏感性连接后再训练稀疏模型 ;GraSP保持梯度流(Gradient
Signal)通过网络,以在初始化时筛选出对训练影响小的权重,随后训练剩余网络 。这些方法一般依赖一批
训练数据或目标函数信息,无需迭代调度即可获得高稀疏度。
数据无关剪枝:如SynFlow等方法在无数据情况下也可剪枝,确保网络各路径流不被破坏。这类方法按梯度流
量或网络拓扑信息来评估剪枝影响,特点是数据需求最低。
大模型特别剪枝:面向大型预训练Transformer的剪枝也在快速发展。如SparseGPT(Frantar等,2023)专为
GPT-family设计,可以在无需重训练的情况下,一次性将BLOOM-176B等模型剪至50%甚至60%稀疏度,几乎
不损失性能 ;Movement Pruning(Sanh等,2020)在微调阶段使用“权重方向变化”作为重要性指标,
自适应剪去权重,极端稀疏时结合蒸馏可仅保留3%参数且性能损失很小 。这些方法依旧属于权重级非结构
化剪枝,但重点在于如何快速适应超大规模Transformer。
结构化剪枝
滤波器/通道剪枝:针对卷积网络,常将剪枝粒度提升为整个滤波器、通道或神经元等。Network Slimming
(Liu等,2017)通过在批归一化层的缩放系数上施加L1正则,使部分通道输出变为零,训练后去除对应通道,可同时减少模型尺寸和计算量 。ThiNet(Luo等,2017)则基于统计信息提出剪除某层中对下一层输出贡
献最小的滤波器 。HRank(Lin等,2020)计算每个滤波器生成特征图的秩,认为低秩特征对应滤波器冗
余,剪掉这些滤波器可在保证精度的同时显著降低FLOPs 。类似地,网络修剪(Network Trimming)通
过分析神经元输出中高比例的零活动(APoZ),迭代去除“常闭”神经元并微调 。这些方法都需要依赖训
练数据判断结构重要性,并在剪枝后进行重训练才能恢复性能。
联合/端到端结构剪枝:部分工作尝试一次性联合剪除多种结构。Data-Driven Sparse Structure Selection
(Huang等,2017)引入缩放因子并对其加稀疏正则,使网络自动选择要剪掉的通道、组或残差块,训练过程
端到端完成,不需要多次剪裁与微调 。GAL(Generative Adversarial Learning)(Lin等,2019)则用
生成对抗的方式学习滤波器/通道的软掩码,通过对齐压缩网络与原网络输出端到端地挖掘剪枝方案 。
Centripetal SGD(Ding等,2019)提出训练过程中将多个滤波器“向同一点收敛”,使其最终相同,这样剪
掉重复滤波器时不会损失性能,剪后无需额外微调 。这些方法一般需要修改优化过程或目标函数,并在训
练过程中(或训练后)产生结构剪枝结果。
注意力头/Token剪枝:Transformer特有的多头注意力为结构化剪枝提供了新维度。研究表明,许多注意力头
对性能贡献甚微,可被移除。早期研究(如Michel等人)发现BERT中数十个头可剪去而几乎不损性能。随后出现针对头、Token和层的多种策略:SpAtten(Wang等,2020)在注意力架构层面提出“级联Token和头剪
枝”,在推理时在线动态选择重要的Token和头,不需要修改权重,仅在硬件中支持稀疏计算 ;TR-BERT
(Ye等,2021)用强化学习为每个Token动态确定应经过的Transformer层数,实现推理速度2-5×加速 ;
LazyLLM(Fu等,2024)针对长上下文预填处理阶段,只为下一个预测重要的Token计算KV,动态跳过其他
Token,无需任何微调即可2.3×加速Llama-2 7B 。此外,也有专门剪除整个Transformer层级的工作,如
LaCo(Yang等,2024)提出“层坍塌”策略,将后续层与前一层合并,可直接删除30%–50%的层而保持大部
分性能 。这些方法大多利用Transformer序列处理特点,在推理阶段动态选择性计算或移除部分结构,与传
统CNN剪枝方法差别较大。
其它策略
自动化剪枝与搜索:如AMC(He等,2018)使用强化学习自动搜索稀疏率;噪声剪枝(NoiseOut)、NAS和
剪枝结合等方法也是探索方向。软剪枝和弹性剪枝等方法则不强行去零,而是通过正则化约束促使权重成为可
剪状态(Soft Filter Pruning, Thinet的优化版等)。
与 Transformer 结构的关联分析
Transformer 与传统CNN结构不同,没有卷积滤波器,但有自注意力头、多层感知机(MLP)和层归一化等组
件。对应地,剪枝方法在Transformer中的应用需考虑这些差异:
非结构化剪枝(如深度压缩、SNIP、GraSP、SparseGPT等)可直接作用于Transformer的线性层权
重。SparseGPT 直接针对GPT家族设计,实现了在推理前一次性剪去50%-60%权重 ,说明重量级非
结构化方法在LLM上可行。此外,Movement Pruning 等方法在微调阶段应用于Transformer,也证明
了通用权重剪枝策略对预训练语言模型有效 。然而,非结构化剪枝对硬件加速依赖专用稀疏矩阵运
算,目前在Transformer加速上尚有一定挑战。
注意力头剪枝:Transformer 具有可剥离的注意力头,这提供了天然的结构化粒度。一些方法(未在提
供文献中列出,但已有研究)直接评估和剪去影响较小的头。从SpAtten的硬件视角看,在线头剪枝可
显著节省计算 。Transformer特有的头剪枝策略不适用于CNN,因为CNN没有对应结构,但在自然
语言/视觉Transformer模型中广泛应用。
Token/序列剪枝:Transformer处理序列数据,可在序列层面上进行剪枝或早停。TR-BERT 和
LazyLLM 等方法利用这一点,在推理时动态减少输入Token或跳过层级,不改变模型权重。这种剪枝思
想也是Transformer特有,与CNN剪枝关注通道/滤波器不同。它们无需重训练,通过调整推理流程加
速,但只适用于序列模型。
层级剪枝:Transformer层之间相对独立,可直接删除某些层(如LaCo )。这一思路在CNN中亦有
对应(例如ResNet去除残差块),但Transformer层通常是重复堆叠的全连接结构,剪除层对性能的影
响与CNN有所不同。LaCo通过“层坍塌”保证剪枝后的层参数继承原层参数,保持模型结构完整性。
MLP/通道剪枝:Transformer 中 MLP 部分可以看作类似全连接层,可对其中的隐藏维度(通道)进行
剪枝。DISP-LLM 提出跨层独立选择要剪的维度,使每个层可以有不同的宽度 ,充分利用了
Transformer网络中各层特征维度的冗余性。这类按隐藏维度剪枝方法在CNN中对应通道剪枝,但
Transformer没有空间卷积,只能在特征维度上裁剪。
归一化层参数:BERT-Busters(Kovaleva等,2021)发现Transformer层归一化的缩放参数中存在少数
巨幅量(outlier),错误剪去这些维度会严重破坏模型性能 。这提示在Transformer剪枝时,需要
小心对待LayerNorm参数。这一现象特有于Transformer架构,不会在CNN中出现。
综上,对Transformer的剪枝既可借用传统卷积网络中的思想(权重剪枝、通道剪枝等),也应充分利用
Transformer自身的结构特性(头、层、Token)来设计更高效的方法。许多最新方法正是在这种结合中应运而
生。
VGGT剪枝适应性讨论
VGGT是一种用于图像和3D重建的新型Transformer架构:它将输入图像切分为Patch Token,并加入相机
Token,通过交替使用帧内(局部)和多帧(全局)自注意力层来融合信息 ;输出包括相机参数和深度图
等。因此,VGGT既包含标准Transformer层,也涉及多视图和几何重建任务等特殊要素。针对VGGT类模型的剪枝可考虑:
注意力头与层剪枝:VGGT中存在局部注意力和全球注意力的不同类型头,剪掉某些不重要的头有望减
少计算。可借鉴Transformer的头剪枝经验,但应区分局部/全球头的贡献,可能需要对两种注意力分别
评估。层级上,类似LaCo的层坍塌可直接减少Transformer层数量,但需注意3D任务精度保持。这方面
的现有剪枝方法可直接应用于Transformer部分。
Token剪枝:VGGT处理的是多视图帧序列和相机Token,可考虑在推理时动态移除某些帧的Token(如
果帧冗余)或降低Patch输入数量。然而,由于每帧的内容和相机信息在3D重建中很可能都很关键,简
单的Token剪枝可能影响几何精度。可能需要以3D度量(如点云一致性)为重要性指标来进行Token级
剪枝。
Channel/MLP剪枝:VGGT的MLP部分与标准Transformer类似,可剪掉隐藏维度。DISP-LLM提出的跨
层独立剪维可借鉴,使VGGT不同层对特征宽度有不同剪裁策略,提高灵活性。另外,摄像头预测头和
深度输出头可能包含专门的通道通路,对这些头的参数进行结构化剪枝也可考虑,但需保证特定输出质
量。
任务和数据依赖:VGGT的输出包括3D信息,剪枝时应以最终任务指标指导。相比纯分类任务,可能需
要更多的数据微调。部分方法如LLM Surgeon使用K-FAC曲率信息来指导剪枝,对于3D任务而言,可类
比利用包含几何损失的信息来评估剪枝影响。若剪枝依赖于目标损失梯度(如SNIP、GraSP),则应使
用包含3D重建误差的训练数据。
总体而言,VGGT作为包含局部/全局注意力和多头MLP的Transformer,其Transformer部分可适用常见的剪枝
技术(头剪枝、层剪枝、隐藏维度剪枝等)。但特殊点在于任务要求更高的精度和多模态输出,因此现有剪枝
方法可能需扩展以考虑多任务兼容和多模态重要性评估。例如,可能需要专门设计针对相机Token或帧Token的
剪枝策略,或引入几何一致性约束来辅助剪枝决策。
问题回答与总结
是否需要专门为Transformer设计剪枝方法? 答案倾向于“在实践中有必要关注Transformer的结构特点”。
虽然剪枝的基本原则(如基于权重重要性、结构稀疏性)是通用的,但Transformer特有的多头注意力、层归一
化和序列Token处理方式,使得某些剪枝策略需要专门设计。例如,注意力头剪枝和Token剪枝就是
Transformer架构所独有的思路,在CNN或RNN中并无对应机制。因此,许多近期工作针对Transformer结构提
出了定制方法(如注意力头移除、层级早停、动态Token选择等)并取得了显著效果 。另一方面,一些
经典方法(如非结构化权重剪枝、过滤器剪枝思想)也可迁移应用于Transformer的线性层和MLP部分(如
SparseGPT在不需要重训练的情况下对GPT模型进行了极高比例的权重剪枝 )。综上所述,Transformer剪
枝并不完全需要全新的剪枝原理,但针对Transformer的结构特点做出的专门优化往往能获得更好的效果。实
验中观察到,简单套用CNN剪枝方法到Transformer时,通常需要配合微调才能恢复性能,而考虑多头注意力
和序列等特性的方法则可在不降低性能甚至无需重训练的情况下高效剪枝 。因此,结合现有方法、模型
结构和实验经验,我们认为在剪枝Transformer类模型时,应当充分利用其结构信息——这意味着在通用剪枝方
案之上设计专门针对多头注意力、Token序列和LayerNorm的策略。
总结:我们系统回顾了多种剪枝方案,从非结构化到结构化、从CNN到Transformer,从训练前剪枝到推理动
态调整,都一一分析了其核心方法和应用场景 。对于Transformer及其扩展模型(如VGGT),
现有剪枝方法大多可迁移,但需要针对其注意力机制、序列处理、层归一化等特性进行调整 。未来研究
可探索更加自适应和多任务感知的剪枝方案,以支持复杂的Transformer模型在保持精度的同时进一步压缩计算
与存储资源。
【写在最后,本人在对VGGT这类大模型进行压缩的过程中,困惑于目前针对ViT系列的剪枝方案,哪怕看了一些文章对于这个问题仍是比较困惑,感觉大脑还是少了一张图,不同的结构对于剪枝的效果是怎么样的,对于整体性能的影响多大,还是空的】
参考文献:
[2301.00774] SparseGPT: Massive Language Models Can Be Accurately Pruned in One-Shot
https://arxiv.org/abs/2301.00774
[1810.02340] SNIP: Single-shot Network Pruning based on Connection Sensitivity
https://arxiv.org/abs/1810.02340
[1510.00149] Deep Compression: Compressing Deep Neural Networks with Pruning, Trained
Quantization and Huffman Coding
https://arxiv.org/abs/1510.00149
[1708.06519] Learning Efficient Convolutional Networks through Network Slimming
https://arxiv.org/abs/1708.06519
[2002.07376] Picking Winning Tickets Before Training by Preserving Gradient Flow
https://arxiv.org/abs/2002.07376
[2005.07683] Movement Pruning: Adaptive Sparsity by Fine-Tuning
https://arxiv.org/abs/2005.07683
[1707.06342] ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression
https://arxiv.org/abs/1707.06342
[2002.10179] HRank: Filter Pruning using High-Rank Feature Map
https://arxiv.org/abs/2002.10179
[1607.03250] Network Trimming: A Data-Driven Neuron Pruning Approach towards Efficient Deep
Architectures
https://arxiv.org/abs/1607.03250
[1707.01213] Data-Driven Sparse Structure Selection for Deep Neural Networks
https://arxiv.org/abs/1707.01213
[1903.09291] Towards Optimal Structured CNN Pruning via Generative Adversarial Learning
https://arxiv.org/abs/1903.09291
[1904.03837] Centripetal SGD for Pruning Very Deep Convolutional Networks with Complicated
Structure
https://arxiv.org/abs/1904.03837
[2012.09852] SpAtten: Efficient Sparse Attention Architecture with Cascade Token and Head Pruning
https://arxiv.org/abs/2012.09852
[2105.11618] TR-BERT: Dynamic Token Reduction for Accelerating BERT Inference
https://arxiv.org/abs/2105.11618
[2407.14057] LazyLLM: Dynamic Token Pruning for Efficient Long Context LLM Inference
https://arxiv.org/abs/2407.14057
[2402.11187] LaCo: Large Language Model Pruning via Layer Collapse
https://arxiv.org/abs/2402.11187
[2410.11988] DISP-LLM: Dimension-Independent Structural Pruning for Large Language Models
https://arxiv.org/abs/2410.11988
[2105.06990] BERT Busters: Outlier Dimensions that Disrupt Transformers
https://arxiv.org/abs/2105.06990
VGGT: Visual Geometry Grounded Transformer
https://arxiv.org/html/2503.11651v1
[2312.17244] The LLM Surgeon
https://arxiv.org/abs/2312.17244