模型剪枝经典论文精读:Rethinking the Value of Network Pruning
一、论文基本信息论文题目Rethinking the Value of Network Pruning作者Zhuang Liu、Mingjie Sun、Tinghui Zhou、Gao Huang、Trevor Darrell发表信息ICLR 2019论文链接arXiv / OpenReview官方代码https://github.com/Eric-mingjie/rethinking-network-pruning这篇论文发表于 ICLR 2019论文作者包括 Zhuang Liu、Mingjie Sun、Tinghui Zhou、Gao Huang 和 Trevor Darrell。官方代码仓库说明其包含论文复现实验代码和训练好的 ImageNet 模型并且论文对应 ICLR 2019。这篇论文的核心观点非常具有冲击力对于许多结构化剪枝方法剪枝后继承原始大模型权重并 fine-tune并不一定比用随机初始化重新训练同一个剪枝结构更好。换句话说很多时候真正有价值的不是“被保留下来的重要权重”而是“剪枝得到的网络结构”。论文摘要明确指出作者在多种结构化剪枝方法中观察到fine-tuning 剪枝模型通常只能达到与随机初始化重新训练相当甚至更差的效果。二、论文要解决的问题在这篇论文之前网络剪枝通常默认采用一个三阶段流程1. 先训练一个大的过参数化模型 2. 根据某种重要性准则剪掉冗余参数、通道或 filter 3. 继承未剪掉的权重对剪枝后的模型进行 fine-tuning。这个流程背后有两个常见假设。第一个假设是大模型是必要的。因为大模型表达能力更强先训练大模型再从中剪掉冗余部分应该比直接训练小模型更好。第二个假设是被保留下来的权重很重要。剪枝算法之所以要设计复杂的重要性指标就是为了找出“重要权重”或“重要通道”然后继承这些权重继续 fine-tune。这篇论文要重新审视的正是这两个假设剪枝真正有价值的部分到底是什么 是大模型中继承下来的重要权重 还是剪枝算法找到的网络结构论文指出传统剪枝流程通常认为大模型训练、剪枝准则和继承权重都很重要但作者的大量实验显示对于结构化剪枝方法这些直觉并不总是成立。三、核心思想这篇论文的核心思想可以概括为一句话不要只比较“剪枝 fine-tuning”和原始大模型还必须比较“剪枝结构从头训练”的结果。过去很多剪枝论文的实验逻辑是原始大模型 ↓ 剪枝 ↓ fine-tuning ↓ 剪枝模型精度接近原模型 ↓ 说明剪枝方法有效但这篇论文提出这样的实验不够严格。因为即使剪枝模型表现不错也不能说明“继承原始权重”有价值。我们还应该问如果我只保留剪枝后的结构 把权重全部随机初始化 然后从头训练 它会不会一样好甚至更好作者的实验结论是在很多结构化剪枝方法中答案是“会”。于是论文把剪枝方法的价值拆成两个部分1. 权重价值 剪枝后继承的原始权重是否真的有用 2. 结构价值 剪枝算法找到的通道数、层宽度、稀疏模式是否真的有用论文最重要的结论是对于很多结构化剪枝方法结构比权重更重要。这也是标题中 “Rethinking the Value” 的真正含义重新思考网络剪枝的价值到底来自哪里。四、方法细节4.1 对比对象fine-tune vs train from scratch论文核心实验不是提出新的 pruning criterion而是重新设计评估方式。对于一个已经剪枝得到的模型作者比较三种训练方式Fine-tuned: 从大模型继承未剪掉的权重然后 fine-tuning。 Scratch-E: 使用剪枝后的网络结构随机初始化权重 训练与原始大模型相同的 epoch 数。 Scratch-B: 使用剪枝后的网络结构随机初始化权重 训练与原始大模型相同的计算预算。这里的 Scratch-E 和 Scratch-B 是理解论文的关键。Scratch-E关注的是训练轮数是否相同。Scratch-B关注的是计算预算是否相同。论文指出在多数情况下Scratch-E 已经足够与 fine-tuning 相当在部分情况下Scratch-B 可以进一步保证比较的公平性。作者也说明为了保持实验接近原论文如果原剪枝方法有公开训练设置就沿用原实现否则对较简单方法进行复现。4.2 两类结构化剪枝预定义结构与自动发现结构论文把剪枝方法分成两类。第一类是predefined target architecture也就是目标结构预先由人指定。例如每一层都剪掉 50% channels。不管具体剪掉哪些通道最后每一层剩下多少通道是确定的。第二类是automatically discovered target architecture也就是目标结构由剪枝算法自动决定。例如某些层剪得多某些层剪得少最后形成一个非均匀的通道分布。这一区分非常重要。因为对于预定义结构如果最后结构本来就是人工指定的那么我们甚至可以跳过整个“训练大模型 → 剪枝 → fine-tuning”流程直接训练这个小结构。论文 Figure 2 也专门区分了 predefined 与 automatically discovered target architectures。可以这样理解预定义结构剪枝 剪枝算法主要决定哪些权重要继承 但最终网络宽度是人已经定好的。 自动结构剪枝 剪枝算法不仅决定哪些权重要继承 还决定每层最终保留多少通道。因此这篇论文对两类方法的结论略有不同。4.3 对预定义结构剪枝的重新解释对于预定义结构剪枝例如每层固定剪掉一定比例的 filters论文的结论很直接如果从头训练剪枝后的结构就能达到 fine-tuning 的效果那么完整剪枝流程就不是必要的。例如 L1-norm Filter Pruning、ThiNet、Channel Pruning 等方法很多实验都预先定义了目标剪枝比例。既然目标结构已经确定那么真正需要检验的是这个结构本身是不是好 继承原始权重是不是必要论文实验显示在许多这种设定下随机初始化训练剪枝后的结构可以达到与 fine-tuning 相同甚至更好的结果。4.4 对自动结构剪枝的重新解释对于自动结构剪枝例如 Network Slimming情况更有意思。这类方法确实需要先训练一个大模型因为剪枝算法要通过训练过程或重要性指标自动决定每层保留多少通道。此时剪枝流程的价值可能仍然存在但价值不一定是“继承权重”而是找到一个高效的网络结构。论文指出对于自动结构化剪枝训练剪枝结构本身从头开始也常常能取得与 fine-tuning 相当甚至更好的结果。这说明剪枝算法更像是一种 architecture search而不是简单的 weight selection。这也是这篇论文非常关键的视角转变传统理解 pruning 找重要权重 本文观点 structured pruning 找高效结构4.5 为什么这篇论文很重要这篇论文并没有否定剪枝。它否定的是一种不严谨的实验结论剪枝模型精度高 ≠ 继承权重很有价值 ≠ 剪枝准则真的找到了不可替代的重要权重如果一个剪枝后的结构从随机初始化开始训练也能达到同样精度那么我们就不能把最终性能完全归功于“剪枝保留的重要权重”。更合理的解释是剪枝方法可能找到了一个不错的小网络结构。这使得剪枝研究必须引入更强的 baseline同样结构从头训练。五、关键公式与实验比较方式这篇论文不是公式驱动的剪枝方法因此没有像 ThiNet、Channel Pruning 或 Network Slimming 那样的核心优化公式。它的关键在于实验对照。5.1 传统剪枝流程W_large Train(A_large) A_pruned, W_pruned Prune(A_large, W_large) W_finetuned FineTune(A_pruned, W_pruned)其中(A_{large})原始大模型结构(W_{large})大模型训练得到的权重(A_{pruned})剪枝后的结构(W_{pruned})从大模型继承下来的未剪权重(W_{finetuned})fine-tuning 后的权重。传统剪枝论文通常报告的是Accuracy(A_pruned, W_finetuned)5.2 本文提出的关键 baseline论文要求额外比较W_scratch Train(A_pruned, random initialization)也就是Accuracy(A_pruned, W_scratch)然后比较Accuracy(A_pruned, W_finetuned) vs Accuracy(A_pruned, W_scratch)如果Accuracy(A_pruned, W_scratch) ≥ Accuracy(A_pruned, W_finetuned)那么说明继承大模型权重并不是必要条件。5.3 结构价值与权重价值这篇论文可以抽象成下面这个判断如果剪枝结构从头训练也很好 说明结构有价值。 如果继承权重明显优于从头训练 说明权重也有价值。而论文在大量结构化剪枝实验中观察到的现象是结构价值明显 权重价值并不稳定很多时候并不显著。六、实验设置6.1 数据集和模型论文主要在CIFAR-10、CIFAR-100 和 ImageNet上进行实验使用的典型网络包括VGG、ResNet 和 DenseNet。作者说明这些数据集和网络结构是剪枝文献中的常用基准。论文评估了多类剪枝方法包括1. L1-norm based Filter Pruning 2. ThiNet 3. Regression based Feature Reconstruction 4. Network Slimming 5. Sparse Structure Selection 6. Soft Filter Pruning 7. Unstructured weight-level pruning官方 GitHub README 也列出了这七种被评估的方法其中前六种是结构化剪枝最后一种是非结构化权重剪枝。6.2 训练和 fine-tuning 设定论文在 CIFAR 上通常训练 160 epochsfine-tuning 40 epochs在 ImageNet 上训练 90 epochsfine-tuning 20 epochs。作者指出这种设置仍然相对有利于传统剪枝流程因为比较 Scratch 模型时没有额外计算 fine-tuning 成本。这点很重要。因为如果从计算预算角度看传统流程实际上包含训练大模型 剪枝 fine-tuning而从头训练剪枝结构只需要训练小模型因此如果后者精度相当那么在训练成本上可能更有优势。七、实验结果解读7.1 L1-norm Filter Pruning从头训练并不差对于 L1-norm based filter pruning论文在 CIFAR 和 ImageNet 上都比较了 fine-tuned、Scratch-E 和 Scratch-B。例如在 ImageNet ResNet-34 上未剪枝模型准确率为 73.31ResNet-34-A fine-tuned 为 72.56Scratch-E 为 72.77Scratch-B 为 73.03ResNet-34-B fine-tuned 为 72.29Scratch-E 为 72.55Scratch-B 为 72.91。也就是说从头训练剪枝结构并没有明显落后甚至更好。这直接挑战了上一篇 L1 filter pruning 中隐含的假设保留下来的 L1 大 filter 权重很重要。这篇论文的结果说明至少在这些设定下剪枝后的通道结构可能比继承的权重更重要。7.2 ThiNet从头训练常常更好论文也重新评估了 ThiNet。ThiNet 本来强调通过下一层输出重构选择通道并逐层剪枝、fine-tuning。但在这篇论文中作者发现对于 VGG-16 和 ResNet-50Scratch-E 和 Scratch-B 几乎总是可以比 fine-tuned 模型取得更好表现且有时优势明显。论文在 Table 2 中专门报告了 ThiNet 的结果并指出除极端剪枝的 VGG-Tiny 外从头训练通常不差。这说明一个问题即使剪枝算法用复杂的重构准则选择通道 继承下来的权重也未必比随机初始化更有价值。7.3 Channel PruningLASSO 选通道的价值也需要重新解释对于Channel Pruning for Accelerating Very Deep Neural Networks论文同样比较了 fine-tuning 与从头训练。这类方法使用 LASSO 选择通道并用最小二乘重建权重。直觉上它似乎更应该保留“重要权重”。但本文结果仍然表明剪枝结构从头训练可以达到相当结果。因此LASSO 的价值可能不只是找出“必须继承的权重”而是找到了一个合理的小网络结构。7.4 Network Slimming剪枝更像结构搜索Network Slimming 是自动结构化剪枝方法。它通过 BN gamma 稀疏化自动决定每层保留通道数。论文对 Network Slimming 的分析非常关键。作者发现Network Slimming 找到的 VGG-16 剪枝结构在参数效率上优于均匀剪枝结构同样从头训练时Network Slimming 得到的结构可以用更少参数达到相近精度。这说明 Network Slimming 的主要价值可能是发现每一层应该保留多少通道。而不是保留原始大模型中的某一组 gamma 或卷积权重。论文 Figure 3 显示Network Slimming 得到的 VGG-16 通道结构比 uniform pruning 更具参数效率。7.5 非结构化剪枝结论更复杂论文也测试了 Han et al. 的非结构化权重剪枝。对于非结构化剪枝结论不像结构化剪枝那么简单。作者发现在较小数据集上从头训练稀疏结构有时也能接近 fine-tuning但在 ImageNet 这类大规模任务上从头训练高度稀疏网络通常更困难fine-tuning 仍然有明显优势。论文在摘要和正文中都指出对于非结构化剪枝尤其在 ImageNet 上训练 from scratch 会失败或明显不如 fine-tuning。这点很重要。它说明本文并不是简单说所有剪枝都不需要继承权重。更准确的说法是对于许多结构化剪枝方法 继承权重的价值被高估了。 但对于高稀疏的非结构化剪枝 尤其在大规模任务上 继承权重可能仍然有价值。7.6 与 Lottery Ticket Hypothesis 的关系这篇论文还和Lottery Ticket Hypothesis做了比较。Lottery Ticket Hypothesis 强调在随机初始化大网络中存在某些“中奖彩票”子网络这些子网络配合其原始初始化可以被训练到较好性能。而 Rethinking Pruning 的结果更偏向于在作者评估的结构化剪枝设定中如果使用合适的大初始学习率winning ticket initialization 并没有比随机初始化带来提升。论文摘要也明确提到在最优学习率下Frankle Carbin 使用的 winning ticket initialization 不优于随机初始化。这两个工作看似矛盾其实研究对象不同Lottery Ticket: 更关注稀疏子网络和原始初始化。 Rethinking Pruning: 更关注结构化剪枝后的小网络是否需要继承权重。八、方法优点8.1 提出了更严格的剪枝评估标准这篇论文最大的贡献不是新算法而是新的评估标准。它告诉后续研究者只报告 “prune fine-tune” 的结果是不够的必须加入same architecture, train from scratch这个 baseline。否则我们无法判断剪枝方法到底是找到了重要权重 还是只是找到了一个还不错的小结构。8.2 揭示结构化剪枝的真正价值论文把结构化剪枝重新解释为一种 architecture search。对于自动剪枝方法剪枝算法可能真正学到的是每层应该保留多少通道 哪些 stage 应该更宽 哪些 stage 可以更窄。这使剪枝和神经架构搜索之间建立了联系。论文也明确指出自动结构化剪枝有时可以被看作搜索高效模型结构的一种方式。8.3 对后续剪枝论文影响很大这篇论文之后很多结构化剪枝论文都会主动加入train from scratch baseline或者强调我们的剪枝结构从头训练也不如继承权重 我们的剪枝准则不仅找到结构也找到更好的初始化 我们的方法节省训练成本而不只是提升精度。因此这篇论文实际上提高了剪枝论文的实验标准。8.4 提醒研究者公平比较训练预算论文指出有些早期剪枝论文中剪枝模型表现优于 scratch baseline可能和 scratch baseline 的训练超参数、数据增强、训练预算设置不充分有关。论文作者认为训练小模型时应使用合理调参而不是简单沿用不合适的设置。这对后续实验非常重要。一个弱 baseline 很容易夸大剪枝算法的贡献。九、方法局限9.1 它不是新的剪枝算法这篇论文并没有提出一种新的剪枝准则也没有给出新的压缩方法。它更像是一篇系统性实验分析论文。因此如果读者期待直接拿它来剪模型可能会失望。它真正的价值是告诉我们怎么正确评价剪枝方法。9.2 结论主要针对已评估的剪枝方法论文评估了多种典型剪枝方法但不代表所有剪枝方法都满足相同结论。尤其对于后来的硬件感知剪枝、训练中动态稀疏、Transformer/LLM 剪枝、稀疏 MoE、token pruning 等方法不能直接套用本文结论。9.3 非结构化剪枝上结论更复杂论文自己也指出非结构化剪枝在 ImageNet 上并不符合“从头训练同样好”的简单结论。高度稀疏网络从随机初始化开始训练更困难继承权重和 fine-tuning 仍然可能很重要。因此不能把本文简单总结成剪枝都没用。更准确的说法是对于很多结构化剪枝方法 继承权重的价值被高估了 但剪枝结构本身仍然可能有价值。9.4 没有否定预训练模型在现实部署中的作用论文也承认如果已经有一个预训练大模型并且训练预算有限那么从大模型剪枝并 fine-tune 可能仍然更快。论文指出在已有预训练大模型、训练预算很少、或需要获得多个不同压缩率模型时传统 pruning fine-tuning 仍然有实际价值。所以这篇论文不是说工程上永远应该从头训练而是说研究论文中必须公平比较 scratch baseline。十、后续影响这篇论文对模型剪枝领域的影响非常大。第一它改变了结构化剪枝论文的实验范式。后续论文如果声称剪枝有效通常需要回答为什么不直接训练这个小模型第二它把剪枝和架构搜索联系起来。对于自动结构化剪枝剪枝算法可能真正贡献的是高效结构而不是继承的权重。第三它促进了更公平的 baseline 设计。论文明确建议未来结构化剪枝研究需要更谨慎的 baseline evaluation。从专栏脉络上看这篇论文可以放在这里Pruning Filters for Efficient ConvNets ↓ ThiNet ↓ Channel Pruning ↓ Network Slimming ↓ Rethinking the Value of Network Pruning前几篇论文都在回答如何选择要剪掉的通道而这篇论文追问的是剪枝选择出来的权重真的重要吗 还是剪枝后的结构才重要这使它成为理解结构化剪枝研究脉络时非常关键的一篇论文。十一、一句话总结《Rethinking the Value of Network Pruning》通过系统比较“剪枝后 fine-tuning”和“同结构随机初始化从头训练”指出许多结构化剪枝方法的核心价值不在于继承所谓重要权重而在于发现高效网络结构从而极大提升了剪枝研究的 baseline 标准。