©PaperWeekly 原创 · 作者 | BNDSBilly

单位 | 中科院软件所

研究方向 | 自然语言处理

Abstract

大规模预训练语言模型规模不断扩大,导致模型压缩受到了越来越多的关注。当下最主流的两种模型压缩方式是模型剪枝和模型蒸馏。前者可以显著降低模型大小,但很难像后者一样大幅提升运行速度;而后者的缺点在于需要大量 unlabeled data 和昂贵的成本进行训练。

所以在本文中,作者提出了一个 task-specific 结构化剪枝方法 CoFi,可以在不使用任何 unlabeled data 的前提下达到与模型蒸馏方法基本相当的准确性和速度提升。在 GLUE 和 SQuAD 数据集上的实验表明,CoFi 生成的压缩模型可以提升超过 倍的速度,并且达到与原模型相当的精度。

论文标题:

Structured Pruning Learns Compact and Accurate Models

收录会议:

ACL 2022

论文链接:

https://arxiv.org/abs/2204.00408

代码链接:

https://github.com/princeton-nlp/CoFiPruning

Introduction

当下,预训练的语言模型已成为自然语言处理的中流砥柱。但这些模型在存储和计算时间方面的成本很高,推动了大量针对模型压缩相关的工作,帮助这些模型能够变得更小、更快。

模型剪枝致力于在一个大规模预训练模型中搜索一个更小、但可以与原模型表现相当的子网络,一般针对于解决特定任务。其整体趋势是移除一些细粒度单元,从而使得最终的子网络有较为灵活的结构。但到目前为止,模型剪枝很难实现对速度的大幅提升(最多达到 倍的提升)。

模型蒸馏则一般提前设定好一个较小的学生模型结构,并将原模型作为教师模型。通过在大量 unlabeled data 上进行蒸馏或 fine-tune 对学生模型参数进行训练。尽管这一方法可以大幅提升模型速度,但是需要大量的 unlabeled data 和昂贵的成本进行训练。 如下表所示,为一般的蒸馏和剪枝方法对比。

本文中,作者提出了一个针对特定任务的结构化剪枝方法 CoFi(Coarse and Fine-grained Pruning),主要思路是结合了对粗粒度单元(如自注意力层和前馈层)的剪枝和对细粒度单元(例如 heads 和 hidden dimensions)的剪枝。同时,作者还提出了一种分层蒸馏方法,可以动态的学习教师模型和学生模型之间的层映射关系,从而引入蒸馏的目标函数,帮助提升模型性能。

根据实验表明,CoFi 压缩的模型在 GLUE 和 SQuAD v1.1 数据集上的表现超过了其他的剪枝和蒸馏模型表现,实现了超过 倍的模型加速和 的参数剪枝,并且保持了原模型 以上的准确率。这说明,本文提出的 CoFi 方法是一种可以生成更小更快模型的剪枝方法,并且不需要额外的 unlabeled data 进行一般蒸馏。

Methods

3.1 Coarse- and Fine-Grained Pruning

模型剪枝一般逐步从原模型中移除冗余参数,之前的工作分别侧重于对 Transformer 结构中的不同组件进行剪枝。例如移除整个 Transformer 块( MHA 和 FFN 层)、移除多头注意力中的某些头、移除 FFN 层中的某些中间层等。

在本文中,作者提出了一种结合粗粒度剪枝和细粒度剪枝的方法,使得剪枝更加灵活。例如,作者加入了两个新的 masks ( 和 )分别控制对整个 MHA 层和 FFN 层的剪枝,而不用再将一对 MHA 和 FFN 看作一个整体:

上式中, 和 分别为之前工作中对多头注意力中头的剪枝 mask 和对 FFN 层的中间层的剪枝 mask。 为注意力机制的输出, 分别为前馈层的两个投影矩阵。

同时,作者还引入了 来对 MHA 和 FFN 的输出层维度进行剪枝,在对 BERT 的实验中,作者发现输出维度从原来的 降为了 ,但这仍然可以帮助提升模型效率。

通过如上方式,单个参数的剪枝策略不再受限于单个 mask,而是由多个 mask 共同控制,进一步提高了模型的灵活度。新提出的 mask 值参考 [1] [2] 进行学习。

3.2 Distillation to Pruned Models

模型蒸馏的目标函数一般为教师模型和学生模型的输出概率交叉熵 ,其中下标 分别代表学生模型和教师模型。

除此之外,在目标函数中加入中间层的蒸馏对模型表现也有帮助 [3]:设学生模型的第 层学习教师模型中第 层的输出,则中间层的损失函数为:

其中 为投影矩阵。但在模型剪枝方法中,最终得到的学生模型结构是一开始不知道的,所以很难建立层映射关系 。本文中,作者提出了一种动态建立层映射的方法:将教师模型的第 层去匹配最近的学生模型中的层:

这一过程可以高度并行化,不会过多影响模型效率。同时,为了防止交叉匹配(例如教师模型的高层匹配了学生模型的低层,而教师模型的低层匹配了学生模型的高层),作者还加入了额外限制,规定教师模型某一层只能匹配比上一次匹配的学生模型层更低的层。

综上所述,最终的蒸馏目标函数即为 。

Experiments

4.1 Experiments Setup

本文在 GLUE 和 SQuAD v1.1 两个数据集上进行实验,首先利用蒸馏目标函数对模型进行 finetune,然后利用剪枝逐步增加模型稀疏度。最终得到了从 的不同稀疏度的模型。本文使用了 DistillBERT、TinyBERT、DynaBERT 等模型和 FLOP、Movement Pruning 等方法进行结果对比。

4.2 Main Results

如上图所示,作者分别从加速和模型大小两个角度将 CoFi 与其他模型、方法进行了对比,可以看到 CoFi 在各个层面上都比现有压缩模型有更好的表现。从下表也可以看出,CoFi 生成的剪枝模型提供了超过 倍的加速比,并且在大部分任务上取得了优于四层 TinyBERT 的表现。

4.3 Ablation Study

作者首先探究了 节提出的结合粗细粒度剪枝方法的有效性。如下表所示,作者分别删除了 和 、 两类掩码,并探究了 和 两种稀疏度下模型的表现。可以看到,去除隐藏层维度掩码后,模型会有微弱的速度提升,但性能全面下降;此外,去除 MHA 和 FFN 层掩码会导致高稀疏度模型的速度显著下降。

其次,作者探究了不同目标函数对模型表现的作用,如下表所示,作者发现去掉蒸馏目标函数会导致模型性能全面大幅下降,这表明加入蒸馏的目标函数是必要的。同时,作者比较了动态建立层映射方法和提前固定好层映射方法的表现。对比发现,固定层映射的表现不如 CoFi 的动态方法。

4.4 Structures of Pruned Models

作者还探究了最终模型的结构,发现了以下几种现象:

(1)FFN 层维度有了显著的减小,且剪枝比例远高于 MHA 层的剪枝结果。例如在 稀疏度模型中,FFN 层的剪枝比例高达 ,而 MHA 层的比例仅为 ,说明 FFN 层较 MHA 层更加高度冗余。

(2)CoFi 更倾向于对上层的单元进行剪枝,例如上层的 MHA 层头数剩余更少。

(3)综合各个数据集上的 CoFi 剪枝模型,作者发现 MHA 层被保留的更多(如下如所示),这可能说明 MHA 层更有助于解决下游任务。

Conclusion

本文提出了 CoFi,这是一种结合了粗细粒度级别单元的结构化剪枝方法。根据实验表明,CoFi 可以在不使用大量 unlabeled data 的前提下,得到与标准蒸馏模型完全不同结构的压缩模型,能在超过 倍的加速下取得有竞争力的表现。

作者认为,尽管由于上游剪枝选择的复杂性,本文并没有讨论将 CoFi 用于任务无关模型的结构化剪枝。但未来的研究可以对该方法进行进一步探讨,因为与一般蒸馏相比,从大型预训练模型中剪枝可能会产生更少的计算量,并得到更灵活的模型结构。

参考文献

[1] C Louizos, M Welling, and DP Kingma. 2018. Learning sparse neural networks through l0 regularization. In International Conference on Learning Representations (ICLR).

[2] Ziheng Wang, Jeremy Wohlwend, and Tao Lei. 2020b. Structured pruning of large language models. In Empirical Methods in Natural Language Processing (EMNLP), pages 6151–6162.

[3] Siqi Sun, Yu Cheng, Zhe Gan, and Jingjing Liu. 2019. Patient knowledge distillation for BERT model compression. In Empirical Methods in Natural Language Processing (EMNLP), pages 4314–4323.

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

​ACL 2022 | 普林斯顿陈丹琦组:模型剪枝的加速方法相关推荐

  1. 陈丹琦带队全员女将发新论文!提出AI消除性别偏见新方法,适用于任何模型 | EMNLP 2022...

    Pine 明敏 发自 凹非寺 量子位 | 公众号 QbitAI 陈丹琦新论文来了! 研究团队全员女将,这是她在普林斯顿的第一篇all-female author论文. 论文主题也和女性议题有关. 论文 ...

  2. 清华姚班校友陈丹琦斩获2022斯隆奖!「诺奖风向标」27位华人学者入选

      视学算法报道   编辑:桃子 拉燕 [新智元导读]刚刚,有「诺奖风向标」之称的斯隆研究奖公布了最新获奖名单.今年,共有118名学者当选.值得一提的是,清华姚班毕业的华人科学家陈丹琦位列其中. 刚刚 ...

  3. 清华姚校友陈丹琦斩获2022斯隆奖!博士论文是近十年最热之一!共计27位华人入选...

    来源:新智元 有「诺奖风向标」之称的斯隆研究奖公布了最新获奖名单. 今年,共有118名学者获斯隆研究奖,华人学者占27席.他们将获得75000美元,这笔款项可在两年的时间内用于支持其研究的任何费用. ...

  4. 清华姚班陈丹琦等27位华人学者获奖,斯隆奖2022年获奖名单颁布!

    整理 | 于轩 出品 | 程序人生 (ID:coder _life) 近日,素有"诺奖风向标"之称的斯隆研究奖颁布了2022年获奖名单.斯隆研究奖于1955年设立,每年颁发一次,旨 ...

  5. ACL 2020今日放榜,779篇论文被接收,姚班校友陈丹琦首日演讲

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI ACL 2020,今天终于放榜啦! 今年的ACL总共有3088篇投稿,大会接收了779篇论文,其中长论文571篇.短论文208篇,接受率2 ...

  6. 清华姚班陈丹琦等27位华人学者获奖,斯隆奖2022年获奖名单颁布

    近日,素有"诺奖风向标"之称的斯隆研究奖颁布了2022年获奖名单.斯隆研究奖于1955年设立,每年颁发一次,旨在支持和奖励处于职业生涯早期的杰出科学家和学者.本次共有118位科学研 ...

  7. 骆驼QA:基于陈丹琦CoQA数据集的中文阅读理解模型,可给定知识文本进行问答...

    前言:骆驼(Luotuo)项目是由冷子昂@商汤科技,陈启源@华中师范大学以及李鲁鲁@商汤科技发起的中文大语言模型开源项目,包含了一系列语言模型,感兴趣的可以去github上了解下,非常棒. 进NLP群 ...

  8. 伯克利摘得最佳论文,陈丹琦、杨笛一等华人团队获杰出论文,ACL2022奖项公布...

    视学算法报道 编辑:陈萍.杜伟 刚刚,NLP 领域国际顶会 ACL2022 公布获奖论文信息,其中加州大学伯克利分校的增量句法表示研究被评为最佳论文.此外,最佳主题论文.杰出论文也揭晓. ACL 是计 ...

  9. 斯坦福大学陈丹琦等人解读机器阅读最新进展:超越局部模式匹配

    来源:AI 科技评论 不久前,斯坦福大学的计算机科学博士陈丹琦的一篇长达 156 页的毕业论文<Neural Reading Comprehension and Beyond>成为「爆款文 ...

  10. 陈丹琦带着清华特奖学弟发布新成果:打破谷歌BERT提出的训练规律!这个庆祝方式太学神了吧...

    萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 新晋斯隆奖得主如何庆祝? 公开最新研究成果算不算? 就在斯隆奖宣布当天,陈丹琦团队展示了最新的研究成果. 团队发现,经典NLP模型BERT提出的预 ...

最新文章

  1. 浮动元素会引起的问题和你的解决办法
  2. python模拟键盘输入字符_Python | 根据关键字符串遍历窗口 模拟键盘输入操作
  3. CMU提出「十字绣网络」,自动决定多任务学习的最佳共享层
  4. mysql字段编码转换_mysql字符集编码转换
  5. 信息学奥赛一本通 1820:【00NOIP提高组】进制转换 | 洛谷 P1017 [NOIP2000 提高组] 进制转换
  6. 陕师大计算机科学学院研究生,陕师大研究生
  7. 自动化Ansible常见命令
  8. php mysql多表关联删除_MySQL中多表删除方法
  9. web集群之haproxy相关配置
  10. Nacos服务注册发现
  11. 物理内存管理之zone详解
  12. 怎么把安装包挂在HTML,怎么把安装包拷贝到u盘
  13. 轻松处理 针式打印机故障解决方法
  14. 2013-C++第15周项目参考解答链接集
  15. flashfxp连接失败,flashfxp连接失败怎么办
  16. 解除控制伽卡他卡控制
  17. 狗是人类最忠诚的伙伴,当狗遇到不同的人会有不同的反应,下面要求编写一个案例模拟狗遇到不同的人时的反应。
  18. 易企秀前端压缩源码分析与还原
  19. window7 安装TortoiseGit没有git.exe 和 右键没有clone等按钮解决方法
  20. latex 大于小于大于等于小于等于

热门文章

  1. 测试用例设计常用方法
  2. 如何优化多数据集关联报表
  3. Java零基础到进阶(真的零基础,也可以当笔记看~)
  4. Chrome谷歌浏览器安装crx后缀插件方法
  5. android辅助功能截屏,Android 截屏的三种方法
  6. 【仿美团点餐App】—— 首页(二)
  7. MongoDB——客户端Robo 3T v1.4.3 安装
  8. 瑟瑟发抖小网工之ISIS协议
  9. HTML单选框-多选框-按钮
  10. 今晚20:00整!中国首个量子计算操作系统即将发布