尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Movement Pruning: Adaptive Sparsity by Fine-Tuning 解读

Movement Pruning: Adaptive Sparsity by Fine-Tuning 解读
📅 发布时间:2026/7/18 4:32:14

一、论文基本信息

论文题目:Movement Pruning: Adaptive Sparsity by Fine-Tuning

作者:Victor Sanh、Thomas Wolf、Alexander M. Rush

发表会议:NeurIPS 2020

方法名称:Movement Pruning

研究对象:BERT-base 等预训练语言模型的任务级剪枝

相关实现:Hugging Face 提供了 movement pruning / PruneBERT 相关代码和模型说明。官方相关仓库说明,这个方法用于对预训练模型如 BERT 做 fine-pruning,并强调它与 magnitude pruning 的区别:magnitude pruning 保留“远离 0 的权重”,movement pruning 保留“在微调过程中远离 0 的权重”。(GitHub)

这篇论文的核心问题是:

在预训练模型迁移到下游任务时,传统 magnitude pruning 是否仍然合适?

论文的回答是:不够合适。

原因是,BERT 这类模型的权重主要来自大规模预训练;下游 fine-tuning 通常只让权重发生很小变化。如果只看权重绝对值大小,那么剪枝决策很大程度上已经被预训练阶段决定了,而不是由当前下游任务决定。Movement Pruning 的思路是:不要只看权重当前有多大,而要看它在 fine-tuning 过程中是朝着“更重要”方向移动,还是朝着“可删除”方向移动。论文摘要明确指出,movement pruning 是一种简单、确定性的 first-order weight pruning 方法,更适合预训练模型的 fine-tuning 场景。


二、论文要解决的问题

传统 magnitude pruning 的逻辑非常直接:

权重绝对值大,说明重要。

权重绝对值小,说明不重要。

这种方法在从零开始训练的普通监督学习模型中很常见,也经常有效。因为模型权重完全由当前任务数据训练出来,权重大小和任务重要性之间通常存在一定关系。

但 BERT 这类预训练模型不一样。

预训练模型先在大规模通用语料上训练,再在下游任务上 fine-tune。Fine-tuning 阶段的数据通常比预训练数据小得多,权重不会发生剧烈变化。论文指出,在 transfer learning 场景中,权重值大多由原始预训练模型决定,fine-tuning 只做较小调整,因此 magnitude pruning 很难真正根据下游任务学习剪枝决策。

这就导致一个问题:

一个在预训练阶段绝对值很大的权重,不一定对当前下游任务重要。

一个原本绝对值较小的权重,也可能在 fine-tuning 中变得对当前任务重要。

所以 Movement Pruning 要解决的问题是:

如何让剪枝标准适应下游任务 fine-tuning,而不是被预训练权重大小锁死?


三、核心思想

Movement Pruning 的核心思想可以概括为:

保留那些在 fine-tuning 过程中远离 0 的权重,剪掉那些在 fine-tuning 过程中趋向 0 的权重。

这和 magnitude pruning 的判断标准完全不同。

Magnitude pruning 关心的是:

这个权重现在离 0 有多远?

Movement pruning 关心的是:

这个权重在当前任务训练过程中,是在远离 0,还是在靠近 0?

如果一个权重虽然当前绝对值很大,但 fine-tuning 过程中一直往 0 靠近,说明当前任务可能不需要它。

如果一个权重虽然当前绝对值不大,但 fine-tuning 过程中持续远离 0,说明当前任务正在强化它。

论文中明确说,movement pruning 与 magnitude pruning 的区别在于:低值和高值权重都可能被剪掉,只要它们在训练中收缩;而被保留的是那些在训练中远离 0 的连接。

这个思想非常适合 BERT 这种预训练模型,因为它真正利用了 fine-tuning 过程中产生的任务特定信号。


四、它是不是结构化剪枝?

严格来说,原始 Movement Pruning 主要是非结构化权重剪枝。

它剪的是单个 weight,而不是完整 attention head、FFN neuron、Transformer layer 或 channel。

也就是说,它产生的是稀疏矩阵:

某些权重变成 0。

矩阵整体形状不变。

Transformer 层数、hidden size、attention head 数量都不变。

所以它和 Head Pruning、LayerDrop、DynaBERT 这类结构化方法不同。

不过,Movement Pruning 的思想后来可以扩展到 block pruning 或结构化 pruning 中。例如后续工作会把 movement pruning 的思想用于更大的结构块。但这篇原始论文的核心方法是:

adaptive unstructured sparsity by fine-tuning。

这点很重要,因为它直接影响部署:

非结构化剪枝可以大幅减少非零参数量和存储。

但如果硬件或推理框架不能高效利用稀疏矩阵,实际推理速度不一定明显提升。

论文也明确指出,当前硬件对稀疏模型推理支持有限,从推理速度角度看,同等大小的小型 dense model 有时更理想。


五、方法细节:Score-Based Pruning

Movement Pruning 使用了一套score-based pruning框架。

简单说,每个权重 (W) 旁边都会有一个对应的重要性分数 (S)。

训练时,模型同时学习两类东西:

原始权重 (W)。

剪枝分数 (S)。

最后根据分数 (S) 生成二值 mask:

mask = 1,表示保留该权重。

mask = 0,表示剪掉该权重。

这和 magnitude pruning 的区别在于:magnitude pruning 的分数直接来自权重绝对值,而 movement pruning 的分数是在 fine-tuning 中学习出来的。

可以理解为:

Magnitude pruning:权重自己决定自己是否重要。

Movement pruning:额外学习一个“是否保留”的评分系统。


六、Hard Movement Pruning

论文提出了 hard movement pruning。

它的做法是:根据分数 (S) 保留 top-(v)% 的权重,其余权重 mask 为 0。

这里 (v) 表示保留比例。

例如:

保留 10% 权重,表示 90% 权重被剪掉。

保留 3% 权重,表示 97% 权重被剪掉。

问题是,top-k / top-v 操作本身不可导。也就是说,不能直接通过普通反向传播更新分数 (S)。

论文采用straight-through estimator,直通估计器。简单说,前向传播时用硬 mask,反向传播时假装 mask 操作可以传梯度,让梯度直接传给分数 (S)。论文明确说明,由于 Top-v 的梯度几乎处处为 0,它们在 backward pass 中忽略 Top-v,把梯度 straight-through 到 (S)。

这种设计的含义是:

前向时模型真的按照稀疏 mask 运行。

反向时分数仍然可以学习。

这就是 hard movement pruning 的核心。


七、为什么它能反映“movement”?

Movement Pruning 的分数更新和权重梯度有关。

直观上,如果一个权重的更新方向让它远离 0,那么对应分数会增加,更可能被保留。

如果一个权重的更新方向让它靠近 0,那么对应分数会下降,更可能被剪掉。

论文解释得很清楚:当权重在训练中远离 0 时,score 会增加;当权重向 0 收缩时,score 会降低。因此,score 可以被看作一种 movement accumulator,也就是对权重移动方向的累积记录。

这就是这篇论文最核心的思想。

它不是看某一时刻的权重大小,而是看 fine-tuning 过程中权重的运动趋势。

所以 Movement Pruning 更像是在问:

当前任务到底在强化哪些连接?

当前任务又在弱化哪些连接?


八、Soft Movement Pruning

除了 hard movement pruning,论文还提出了soft movement pruning。

Hard 版本用 top-v 保留固定比例权重;soft 版本则使用连续 mask,并加入稀疏正则,让模型自己学出稀疏结构。

可以这样理解:

Hard movement pruning:直接规定最后保留多少权重。

Soft movement pruning:通过正则项鼓励分数变稀疏,再根据阈值得到 mask。

Soft 版本通常表现更好,尤其在高稀疏率下。论文结果中,soft movement pruning 在 SQuAD、MNLI、QQP 上高稀疏区间普遍优于 magnitude pruning、L0 regularization 和 hard movement pruning。

原因也比较直观:

Hard top-v 对保留比例控制更直接,但训练中更硬、更不平滑。

Soft 版本让 mask 学习更连续,配合正则更容易优化。

所以论文最终实验中最强的通常是:

Soft Movement Pruning。


九、渐进式剪枝:不是一开始就剪到很稀疏

Movement Pruning 不是一开始就把模型剪到 3% 或 10% 权重。

它采用类似 automated gradual pruning 的方式:训练前期先保持较高保留率,随着 fine-tuning 进行,逐渐提高稀疏率,最后达到目标保留比例。

论文遵循 Zhu and Gupta 的 cubic sparsity scheduling,并且发现剪枝结束后加入一定 cool-down 步骤可以提升高稀疏率下表现。

这个设计很重要。

如果一开始就强行剪到极高稀疏度,模型还没适应任务,性能很容易崩。

渐进式剪枝的好处是:

先让模型学习任务。

再逐步收紧稀疏约束。

最后用 cool-down 让稀疏模型稳定下来。


十、实验设置

论文主要实验对象是BERT-base-uncased。

作者做的是task-specific pruning,也就是针对每个下游任务分别 fine-prune。论文说明,实验使用 BERT-base-uncased,并冻结 embedding modules,只 fine-tune Transformer layers 和任务特定 head;所有稀疏率都相对于 BERT-base 统计,对应模型大小。

实验任务包括三个英文 benchmark:

任务类型数据量指标
SQuAD v1.1抽取式问答约 8K 训练样本EM / F1
MNLI自然语言推理约 393K 训练样本matched / mismatched accuracy
QQP句子对相似 / 重复问题判断约 364K 训练样本accuracy / F1

论文明确说明,SQuAD 是 span extraction,MNLI 和 QQP 是 paired sentence classification。

对比方法包括:

Magnitude Pruning。

L0 Regularization。

Reweighted Proximal Pruning。

LayerDrop。

mini-BERT。

论文还测试了 movement pruning 与知识蒸馏结合后的效果。


十一、实验结果解读

11.1 高稀疏率下,Movement Pruning 明显优于 Magnitude Pruning

论文最重要的结果是:

在高稀疏率下,movement pruning 明显优于 magnitude pruning。

当保留权重较多时,例如剩余 70% 以上,magnitude pruning 表现很好,甚至通常优于 movement pruning。但随着稀疏率提高,magnitude pruning 开始快速下降,而 movement pruning 更稳定。论文在结果部分明确指出,低稀疏区间 magnitude pruning 表现更好,但高稀疏区间 movement pruning 明显胜出。

这正好符合论文的理论判断:

低稀疏率时,剪掉少量小权重就够了。

高稀疏率时,必须根据任务重新判断哪些连接真正重要。

Magnitude pruning 只看权重大小,不能充分适应下游任务;movement pruning 利用 fine-tuning 中的任务信号,因此高稀疏率更强。


11.2 只保留 10% 权重时,Soft Movement Pruning 表现最好

论文 Table 2 报告了 10% 和 3% 剩余权重下的结果。

在SQuAD Dev上,BERT-base fine-tuned 是80.4 / 88.1 EM/F1。当只保留10% 权重时,Magnitude Pruning 为67.7 / 78.5,L0 Regularization 为69.9 / 80.0,Movement Pruning 为71.9 / 81.7,Soft Movement Pruning 为71.3 / 81.5。当只保留3% 权重时,Soft Movement Pruning 达到69.5 / 79.9,明显优于 Magnitude Pruning 的40.1 / 54.5。

在MNLI Dev上,10% 权重下 Soft Movement Pruning 达到80.7 / 81.1,3% 权重下达到79.0 / 79.6,明显优于 Magnitude Pruning。

在QQP Dev上,10% 权重下 Soft Movement Pruning 达到90.5 / 87.1,3% 权重下达到89.3 / 85.6,也显著优于 Magnitude Pruning。

这个结果很强,因为它说明:

即使只保留极少量 encoder 权重,BERT 仍然可以保留相当多的下游任务性能。


11.3 加入蒸馏后,性能进一步提升

论文进一步把 pruning 和 knowledge distillation 结合起来。Teacher 使用 fine-tuned BERT-base,训练目标是任务损失和输出分布蒸馏损失的组合。论文指出,蒸馏会提升所有剪枝方法,在所有数据集和稀疏率下都有帮助。

加入蒸馏后,在SQuAD上,10% 权重时 Soft Movement Pruning 达到76.6 / 84.9,3% 权重时达到72.7 / 82.3。在MNLI上,10% 权重时达到81.2 / 81.8,3% 权重时达到79.5 / 80.1。在QQP上,10% 权重时达到90.2 / 86.8,3% 权重时达到89.1 / 85.5。

这里的重点是:

Movement Pruning 本身已经很强,但和蒸馏结合后,在极高稀疏率下仍能保持更高性能。

论文摘要也指出,结合蒸馏后,模型可以在只剩3% 参数的情况下仍保持较小精度损失。(arXiv)


11.4 Movement Pruning 与 Magnitude Pruning 得到的稀疏模型差异很大

论文分析发现,movement pruning 和 magnitude pruning 最终保留下来的权重分布差异明显。

Magnitude pruning 会直接删除接近 0 的权重,因此剩余权重分布呈现明显“两边大、中间空”的形态。

Movement pruning 则不同。它不仅可能保留小权重,也可能剪掉大权重。论文观察到,movement pruning 的 score 和权重绝对值之间没有简单关系;高绝对值和低绝对值权重都可能重要,也都可能被剪。

这说明:

Movement Pruning 学到的不是“权重大就保留”,而是“对当前任务有用就保留”。

这正是它在 transfer learning 场景中优于 magnitude pruning 的根本原因。


11.5 全局剪枝与局部剪枝差距不大,但高稀疏下全局略有优势

论文还比较了 local selection 和 global selection。

Local selection 是在每个矩阵内部选出 top-v 权重。

Global selection 是在全网络所有矩阵中统一选出 top-v 权重。

直觉上,global selection 可以让不同层、不同矩阵获得不同稀疏率,因此可能更好。但论文发现,二者整体差距不大;只有在高稀疏率下,global movement pruning 有一定优势,例如在 SQuAD 只保留 3% 权重时差距约 2.3 F1。

论文还发现,全局一阶方法倾向于给低层保留更多权重,而高层被剪得更重。

这个现象很有意思:

BERT 低层可能承担更通用、基础的表示功能,因此在极高稀疏下更需要保留。


十二、方法优点

12.1 专门适合预训练模型 fine-tuning 场景

Movement Pruning 最大的贡献就是指出:

预训练模型剪枝不能只看权重大小,必须考虑 fine-tuning 过程中的任务适应方向。

这比传统 magnitude pruning 更符合 BERT 这类迁移学习模型的特点。


12.2 高稀疏率下效果明显更好

论文最有说服力的地方是在 10%、3% 剩余权重这种极端稀疏下,movement pruning 仍能保持较好性能,而 magnitude pruning 大幅下降。

这说明它真正适合extreme sparsity场景。


12.3 方法简单,不需要二阶信息

Movement Pruning 使用一阶梯度信号,不需要计算 Hessian 或复杂二阶近似。

所以它比二阶 pruning 方法更容易实现,也更适合大模型。

论文也明确指出,它不需要昂贵的二阶导数计算,importance scores 可以作为标准 fine-tuning 的副产物获得。


12.4 可以和蒸馏结合

它本身不依赖 teacher,但如果加入知识蒸馏,性能还能进一步提升。论文结果显示,distillation 会增强所有剪枝方法,而 soft movement pruning + distillation 表现最强。

这说明它和蒸馏、量化等压缩方法是互补的。


12.5 可以得到极小存储模型

Hugging Face 的实现说明中提到,movement pruning 可以获得极高稀疏模型,例如只保留约 5% 权重时仍保留约 95% dense performance;也展示了通过标准稀疏存储把 BERT encoder 大幅压缩的可能性。(GitHub)

这说明它对模型存储压缩很有价值。


十三、方法局限

13.1 原始方法是非结构化稀疏,不一定带来真实加速

这是 Movement Pruning 最大的局限。

它剪掉的是单个权重,得到的是稀疏矩阵。如果底层硬件和推理框架不能高效执行稀疏矩阵乘法,那么实际推理速度可能不会明显提升。

Hugging Face 相关说明也指出,标准 PyTorch 推理下,movement pruning 得到的极稀疏模型并没有明显 inference speed 提升,需要专门面向稀疏架构的推理设置。(GitHub)

所以它更直接的收益是:

模型存储变小。

而不是一定:

端到端推理马上变快。


13.2 需要任务级 fine-pruning

Movement Pruning 是在下游任务 fine-tuning 阶段学习稀疏结构。

这意味着每个任务通常要单独 fine-prune 一次。

如果希望得到一个通用稀疏 BERT,然后直接迁移到所有任务,这篇论文没有完全解决。


13.3 对低稀疏率不一定优于 magnitude pruning

论文结果显示,在低稀疏率、保留权重较多时,magnitude pruning 往往表现更好或更稳定。

所以 Movement Pruning 的优势主要在:

高稀疏率。

如果只剪掉少量权重,传统 magnitude pruning 可能已经足够。


13.4 训练和调参比简单 magnitude pruning 更复杂

Magnitude pruning 很简单:按权重大小排序剪掉即可。

Movement Pruning 需要额外 score 参数、mask 学习、稀疏率调度、warm-up、cool-down、soft/hard 选择等。

所以它的工程复杂度更高。


13.5 没有直接解决结构化压缩问题

如果目标是减少 heads、减少 layers、减少 FFN blocks、减少 hidden size,Movement Pruning 原始形式不是直接答案。

它可以作为更大结构块剪枝的思想基础,但原论文主要做的是 weight-level pruning。


十四、整体评价

Movement Pruning 的核心价值在于,它重新定义了预训练模型剪枝时“重要性”的含义。

在普通监督学习中,权重大小往往能反映任务重要性;但在 BERT 这样的预训练模型中,权重大小更多反映预训练阶段的通用知识。下游任务 fine-tuning 时,真正重要的是:哪些连接被当前任务进一步强化,哪些连接正在被弱化。

因此,Movement Pruning 的判断标准非常自然:

保留那些在 fine-tuning 中远离 0 的权重。

剪掉那些在 fine-tuning 中趋向 0 的权重。

这让它比 magnitude pruning 更适合 task-specific transfer learning 场景。实验也证明,在只保留 10% 甚至 3% encoder 权重的极端稀疏条件下,movement pruning 尤其是 soft movement pruning,明显优于 magnitude pruning 和 L0 regularization。

不过,它的核心局限也很清楚:它主要产生非结构化稀疏。如果没有稀疏硬件或专门推理库,参数少不等于速度快。因此,它更适合存储压缩、稀疏模型研究,或者作为后续 block pruning / structured sparse pruning 的基础思想。


十五、一句话总结

《Movement Pruning: Adaptive Sparsity by Fine-Tuning》提出一种面向预训练语言模型的任务自适应剪枝方法:不再根据权重绝对值大小决定保留或删除,而是根据 fine-tuning 过程中权重是否远离 0 来学习剪枝分数;实验表明,在 BERT 的 SQuAD、MNLI 和 QQP 任务上,Movement Pruning 尤其是 Soft Movement Pruning 在高稀疏率下明显优于 Magnitude Pruning,并且与蒸馏结合后可以在只保留极少参数时仍保持较强性能。

相关新闻

  • NVIDIA Isaac Lab:机器人强化学习的仿真训练与Sim2Real迁移实战
  • 飞腾 D3000M 迷你国产核心板硬件方案解析|狭小舱体高算力机载整机选型指南
  • 银行级多维聚合实战:滚动窗口、unstack与自定义聚合的生产规范

最新新闻

  • 亨得利官方名表服务中心|详细地址与官方热线权威信息通知(2026年7月更新) - 亨得利官方
  • HLW8112芯片软件实现代码(17)
  • MCP协议如何优化长上下文AI开发流程
  • 技术博客写作指南:编程语言、框架与开发工具实践
  • AI技术如何革新传统网络爬虫
  • 无人机生态环境监测、图像处理与GIS数据分析综合实践技术应用

日新闻

  • 宝珀中国官方售后服务中心|官方热线和维修地址权威信息声明(2026年7月更新) - 宝珀官方售后服务中心
  • # 2026年北京知识产权律师推荐怎么选?看这五点关键不踩雷 - 本地品牌推荐
  • 2026实测教程:生成的拼豆图纸不满意怎么修改才省事 - 省事研究所

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号