EMNLP'21 | 让压缩语言模型自动搜索最优结构!

ed4f005e84257247ead3eed890a458b6.png

文 | Cheney
编 | 智商掉了一地

既让模型跑得快又好,又要空间占用少,真的有这样效果爆表的操作存在吗?

在当前疫情反复的情况下,大家平时出门用健康宝刷脸的频率变得越来越高。如果每次人脸识别都需要等很久的话,那也太让人焦虑啦,甚至会有砸手机的冲动。而且我们还想让模型的识别效果好,不能经常出错,就得用一些跑起来很慢的大模型来提升效果。那么问题来了,咋在这两者之间做个平衡呢,既让模型跑得又快又好,又要占用空间够少,还能效果爆表?那就不得不提模型压缩和最近兴起的自动机器学习技术了,在压缩模型的同时还能自动搜索出效果更优的结构,岂不美哉。

ef19eca1e12c9ed9e5a8b29b529c664b.png

在NLP领域,预训练语言模型(如BERT等)在大量任务上都取得了不错的效果,但是它们有着过大的体积以及推理时间,这严重限制了实际的部署。为了解决这个问题,很多模型压缩方法被提出,例如知识蒸馏(Knowledge Distillation,KD)技术。虽然用于预训练模型压缩的知识蒸馏方向取得了很大的进展,但针对Transformer结构中的前馈神经网络(Feed-forward Network, FFN)压缩和改进方面的研究还很少,其计算代价是多头注意力(Multi-head Attention,MHA)模块的2-3倍;同时[1]也指出,前馈网络里的多层感知器(Multilayer Perceptron,MLP)结构可以防止自注意机制带来的秩崩塌(rank collapse)的问题,可以帮助模型的优化。因此,如何在最大限度压缩前馈网络的同时,寻找到具有更优秀非线性的前馈网络结构,进而提升模型效果,是个很值得关注的问题。

此外,自动机器学习技术,特别是模型架构自动化搜索(Neural Architecture Search,NAS),在计算机视觉和自然语言处理领域已经崭露头角,可以自动地从庞大的搜索空间中搜索出比人工设计的结构效果更优的模型。因此可以很自然地想到利用这类技术搜索出符合需求的前馈网络结构。但由于搜索空间往往极其庞大和复杂,如何高效地进行模型架构搜索也是亟待解决的问题。

基于网络架构搜索的模型压缩方法之前也有很多人进行研究,比如AdaBERT[2]基于卷积神经网络搜索任务自适应的小模型。然而,这些方法没有针对Transformer中前馈网络的非线性进行探究;搜索空间受限于人工设计,不够灵活;泛化性也值得考究。

为了解决上述问题,今天我们介绍一篇收录于Findings of EMNLP 2021的工作EfficientBERT。在搜索空间方面,该方法主要针对Transformer中前馈网络的数学表达式进行搜索,以发现具有更优非线性的模型结构;同时也将网络的堆叠层数和中间通道数加入进来,以综合平衡模型的参数量和推理时间。在搜索方法方面,该文提出了一种由粗到细的搜索策略,渐进地对搜索空间中的每个部分进行搜索,以提升搜索效率;同时提出了一种热启动知识蒸馏(Warm-up KD)策略,使每个搜索子结构在训练时可以更快地收敛,并提升模型的泛化性能。

论文标题
EfficientBERT: Progressively Searching Multilayer Perceptron via Warm-up Knowledge Distillation

论文链接
https://arxiv.org/abs/2109.07222

开源代码
https://github.com/cheneydon/efficient-bert

1c0aab2df056cc22e915fba62606d469.png1 方法5bf2fc86a944650980c6f27eced50b34.png

本文提出的方法主要分成两个部分:搜索空间的设计,以及基于热启动知识蒸馏的渐进搜索方法

74059d670451ddb5f6107601f9579027.png
▲EfficientBERT搜索整体框架

1.1 搜索空间

搜索空间设计方面,首先对前馈网络的数学表达式进行搜索,以此反映网络的非线性能力,并为其定义了如下几种基本的数学操作符号:

2e1bf5ea7a2db841f12c903b667580b7.png
▲候选数学操作符号

同时该文也对前馈网络的堆叠层数和中间通道扩增比例进行搜索,以平衡模型的参数量和推理时间,分别从{1, 2, 3, 4}和{1, 1/2, 1/3, 1/4}中选取。在搜索时,每个前馈网络结构通过一个有向无环图构建,且上述操作被放入中间节点中来处理输入特征。

值得一提的是,正如上述框架图所示,该文对每层前馈网络整体的数学表达式进行搜索,包括激活函数以及一些复杂的嵌套或组合表达,且各层网络的表达式也各不相同。比如该文搜到的EfficientBERT模型第4, 5层的表达式为linear2_2(gelu(linear2_2(max(x,tanh(x)),wb1)),wb2)linear1_2(relu(mul(linear1_2(x,wb1),x)),wb2),其中linear x_y表示其所在的前馈网络的堆叠层数为x、中间通道扩增比例为1/y,wb i表示第i个线性层的权重和偏置。

1.2 搜索方法

首先是基础搜索模型(Base Model)结构的设计。该文综合采用了之前工作的一些压缩方法,比如嵌入层因子分解(embedding factorization),减少模型宽度、深度、中间通道扩增比例等。

接下来是搜索过程,整个搜索过程被分为三个阶段:

  • 第一阶段,对整个搜索空间进行联合搜索,其基于上述基础搜索模型结构。每个搜索子模型通过LaNAS[3]中提出的一种可学习的采样决策树进行采样,使得更具有潜力的子模型可以以更大的概率被采样到。为了避免不同数学表达式之间参数干扰的问题,在这个阶段不同的子模型被单独地进行训练。同时,为了使每个子模型的训练更快地收敛,该文提出一种热启动知识蒸馏方法。首先建立一个热启动超级网络,该网络有着最大的堆叠层数和中间通道扩增比例。将该超级网络通过知识蒸馏预训练好之后固定其权重,在搜索时每个子模型从对应位置继承其权重,之后利用知识蒸馏只需要少量的预训练和微调步数即可达到收敛,节省了大量搜索时间。

  • 第二阶段,对数学表达式进行单独搜索,以发掘其更多样化的表达并评估其对模型最终效果的影响,并将其它两个部分的结构固定住(即堆叠层数和中间通道扩增比例)。该阶段基于第一阶段搜索到的结构进行搜索,并采用和第一阶段相同的知识蒸馏方式。

  • 第三阶段,对堆叠层数和中间通道扩增比例进行联合搜索。该阶段基于第二阶段搜索到的结构进行搜索,其数学表达式被固定,但使用了不同的堆叠层数和中间通道扩增比例组合,以增加搜索多样性。由于无需对数学表达式进行搜索,该阶段采用权重共享方法加速搜索。在该阶段的热启动知识蒸馏过程中,将热启动超级网络预训练好之后,其权重不再被固定;在搜索时,每个搜索子模型被均匀采样,继承超级网络参数后进行训练,且不同子模型的参数可以共享。为了提高模型的泛化性,在训练时采用了多任务训练的方法,让每个子模型在不同种类的下游任务上进行微调。其中嵌入层和Transformer层的参数在所有任务上共享,但不对预测层参数进行共享。

553705ba058506732de6344c4e63d607.png2 实验213ec296285547b0dccc0ef97f32d430.png

首先是在GLUE test和SQuAD dev数据集上与之前的模型压缩方法进行比较:

780ac3a18ec8a151d760b59c169f1149.png
▲GLUE test数据集比较结果
669ce1b69cbb2f1bc94975afe7d38e84.png
▲SQUAD dev数据集比较结果

并在GLUE dev数据集上与之前相关的利用架构搜索进行模型压缩的方法进行比较:

31e37a5b2d4e32118bbb29fcece859ab.png
▲GLUE dev数据集比较结果

可以看到,在相似的参数量下,本文搜索到的模型EfficientBERT效果远远超过了之前效果最好的模型压缩方法(TinyBERT[4], MobileBERT[5], MiniLM[6]等),也超过了之前利用架构搜索的模型压缩方法(AdaBERT[2],NAS-BERT[7]等)。

接下来,本文也给出各阶段搜索到模型的最终性能,验证提出的渐进架构搜索方法、以及搜索空间中各个部分的有效性:

4294e68de7f13533f88a1730ca270841.png
▲不同搜索阶段模型最终性能

本文也给出各个阶段的搜索时间,验证提出的渐进搜索方法的加速能力:

e46c9dc7c1d04a2b838c873bcf1f05ac.png
▲由粗到细搜索方法各阶段搜索时间

可以看到,本文提出的渐进搜索方法不仅可以搜索出更具有潜力的模型结构,而且可以加速搜索进程。

为了测试搜到的模型结构的泛化能力,EfficientBERT结构随后被迁移到了TinyBERT上:

5958337af9bb2339b84c6ff4fe415e9e.png
▲模型结构迁移效果

此外,本文也给出各个子模型在搜索阶段和最终测试阶段预测结果的相关性结果,验证所提出的热启动知识蒸馏方法对不同子模型效果的预测排序能力:

c34fd86aaceb813b4af3c014f224a06c.png
▲热启动知识蒸馏排序能力

可以看到,使用热启动知识蒸馏方法,子模型在各个下游任务上都可以在搜索和最终测试阶段的预测结果之间保持很高的正相关性。

为了直观地评估模型的非线性能力,本文对搜索到的前馈网络结构进行了可视化:

2c1ed084e5d7c1eeebd8c1bdf285394c.png
▲前馈网络非线性能力可视化

其中(d)-(f)是随机采样出的效果更差的几个搜索子模型。从上图可以看出,(a)-(c)相比于(d)-(f)曲线更加流畅且异常突增区域更少;并且从(a)到(c),曲线的复杂程度越来越低,显示了搜索到的模型EfficientBERT优秀的非线性能力。

最后,本文将各个阶段搜索到的模型整体结构进行了可视化:

833102b58eb883567dad001db1a0f101.png
▲模型整体结构图

从最终阶段搜到的EfficientBERT结构中可以发现一些有趣的规律

  • 由于多数前馈网络中间通道扩增比例为1/2,且多数前馈网络堆叠层数少于2,因此搜索得到的EfficientBERT非常轻量;

  • 更低层有着更大的堆叠层数或中间通道扩增比例(如第1, 2层),以最大程度地丰富模型的语义表达能力;

  • 更高层有着更复杂的数学表达式(如第4, 5层),以提高模型的非线性表达能力。

c546bfd3099c54e43c9521b5cd8818e7.png3 总结5bf3e1595dc2457ba5f81e26b020c15c.png

本文主要针对前馈网络的尺寸和非线性能力进行压缩和提升,设计了一种非常灵活庞大的搜索空间进行自动化架构搜索。为了提高搜索效率,本文提出了一种由粗到细的架构搜索方法,并在每个搜索阶段采用了一种热启动知识蒸馏方法来加速搜索并提高模型的泛化能力。大量实验证明了搜索到的模型EfficientBERT的有效性。

8c3e7f0b5e49b667c47537f78db8946e.png后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

f8e49e49c64105e63a9cfb40524cee52.gif 79ce9618f17afbca613b7f3cfc7543b0.png

[1] Yihe Dong, et al. Attention is not all you need: Pure attention loses rank doubly exponentially with depth. ICML 2021.

[2] Daoyuan Chen, et al. AdaBERT: Task-adaptive bert compression with differentiable neural architecture search. IJCAI 2020.

[3] Linnan Wang, et al. Sample-efficient neural architecture search by learning action space. TPAMI 2021.

[4] Xiaoqi Jiao, et al. TinyBERT: Distilling BERT for natural language understanding. Findings of EMNLP 2020.

[5] Zhiqing Sun, et al. MobileBERT: a compact task-agnostic BERT for resource-limited devices. ACL 2020.

[6] Wenhui Wang, et al. MiniLM: Deep self-attention distillation for task-agnostic compression of pre-trained transformers. NeurIPS 2020.

[7] Jin Xu, et al. NAS-BERT: Task-agnostic and adaptive-size bert compression with neural architecture search. KDD 2021.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直播分享丨前沿技术讲习班:知识图谱前沿技术与应用(CIPS ATT27)

本文转载自公众号:智源社区助手。作为大数据时代重要的知识表示方式,知识图谱是人工智能领域构建和应用知识的新阶段,它能够更好地实现大规模数据的认知与推理。同时,知识图谱和深度学习相互协作,是实现具有强鲁棒性、…

美团O2O排序解决方案——线上篇

美团的愿景是连接消费者和商家,而搜索在其中起着非常重要的作用。随着业务的发展,美团的商家和团购数正在飞速增长。这一背景下,搜索排序的重要性显得更加突出:排序的优化能帮助用户更便捷地找到满足其需求的商家和团购&#xff0…

手把手教你模型选择,模型评估

数据来源是:头条新闻数据,经过处理之后的部分数据如下: 首先通过交叉验证,取选择模型: from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier from sklearn.s…

LeetCode 1030. 距离顺序排列矩阵单元格(排序Lambda表达式BFS)

文章目录1. 题目2. 解题2.1 multimap2.2 Lambda 表达式排序2.3 BFS搜索1. 题目 给出 R 行 C 列的矩阵&#xff0c;其中的单元格的整数坐标为 (r, c)&#xff0c;满足 0 < r < R 且 0 < c < C。 另外&#xff0c;我们在该矩阵中给出了一个坐标为 (r0, c0) 的单元格…

干货 | 带你理解对比学习损失函数的性质以及温度系数的作用

文 | Feng源 | 对白的算法屋很多小伙伴都了解对比学习&#xff0c;但要说温度系数的作用可能就不太清楚了。卷友们好&#xff0c;我是对白。对比学习中的温度系数是一个神秘的参数&#xff0c;大部分论文都默认采用小的温度系数来进行自监督对比学习&#xff08;例如0.07&#…

论文浅尝 | Data Intelligence第4期正式上线啦

本文转载自公众号&#xff1a;数据智能英文刊各位关注DI期刊的专家学者和业界同仁&#xff1a;Data Intelligence第4期正式上线啦&#xff01;本期共出版2篇研究性论文&#xff0c;5篇数据论文&#xff0c;1篇实践类论文。点击每篇文章标题下方的二维码可直达论文全文页面。敬请…

细说ReactiveCocoa的冷信号与热信号(三):怎么处理冷信号与热信号

第一篇文章中我们介绍了冷信号与热信号的概念&#xff0c;前一篇文章我们也讨论了为什么要区分冷信号与热信号&#xff0c;下面我会先为大家揭晓热信号的本质&#xff0c;再给出冷信号转换成热信号的方法。 揭示热信号的本质 在ReactiveCocoa中&#xff0c;究竟什么才是热信号呢…

LeetCode 1260. 二维网格迁移(二维转一维)

1. 题目 给你一个 n 行 m 列的二维网格 grid 和一个整数 k。你需要将 grid 迁移 k 次。 每次「迁移」操作将会引发下述活动&#xff1a; 位于 grid[i][j] 的元素将会移动到 grid[i][j 1]。 位于 grid[i][m - 1] 的元素将会移动到 grid[i 1][0]。 位于 grid[n - 1][m - 1] …

困惑度、主题一致性,lda模型找出主题相关词

困惑度perplexity&#xff1a;句子的概率的倒数。如果句子的概率越大&#xff0c;说明这句话越符合人话的规律&#xff0c;即p&#xff08;句子&#xff09;&#xff0c;pp困惑度越小。模型对该句子就越不困惑。 通俗一点解释下就是&#xff0c;困惑度表示的对于一篇文章来说…

patch成为了ALL You Need?挑战ViT、MLP-Mixer的简单模型来了

文 | 机器之心编辑部源 | 机器之心ViT&#xff08;Vision Transformer&#xff09;等视觉模型的强大性能&#xff0c;是来自于 Transformer&#xff0c;还是被忽略的 patch&#xff1f;有研究者提出了简单 ConvMixer 模型进行证明&#xff0c;直接将 patch 作为输入&#xff0c…

OpenKG开源系列 | 轻量级知识图谱抽取开源工具OpenUE

OpenKG地址&#xff1a;http://openkg.cn/tool/openueGitHub地址&#xff1a;https://github.com/openkg-org/openueGitee地址&#xff1a;https://gitee.com/openkg/openueOpenUE网站&#xff1a;http://openue.openkg.cn论文地址&#xff1a;https://aclanthology.org/2020.e…

通俗理解kaggle比赛大杀器xgboost

原文链接 通俗理解kaggle比赛大杀器xgboost 说明&#xff1a;若出现部分图片无法正常显示而影响阅读&#xff0c;请以此处的文章为准&#xff1a;xgboost 题库版。 时间&#xff1a;二零一九年三月二十五日。 0 前言 xgboost一直在竞赛江湖里被传为神器&#xff0c;比如时不时某…

LeetCode 690. 员工的重要性(图的DFSBFS)

文章目录1. 题目2. 解题2.1 DFS2.2 BFS1. 题目 给定一个保存员工信息的数据结构&#xff0c;它包含了员工唯一的id&#xff0c;重要度 和 直系下属的id。 比如&#xff0c;员工1是员工2的领导&#xff0c;员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结…

论文浅尝 | LGESQL: 结合线性有向图以及普通有向图的自然语言转换SQL语句模型...

LGESQL: Line Graph Enhanced Text-to-SQL Model with Mixed Local and Non-Local Relations笔记整理&#xff1a;郭心南来源&#xff1a;ACL2021链接&#xff1a;https://arxiv.org/abs/2106.01093Github地址&#xff1a;https://github.com/rhythmcao/text2sql-lgesql概述本文…

召回粗排精排-级联漏斗(上)

文 | 水哥源 | 知乎saying1. 把点击多的item曝光提升是推荐模型的基本能力&#xff0c;也是基本要求。后验不好的曝光提高也可能是好模型&#xff0c;后验好的曝光不提高&#xff0c;可以开除推荐模型了2. 在起量阶段&#xff0c;各路item需要争宠&#xff0c;谁能最快博取精排…

美团Android资源混淆保护实践

前言 Android应用中的APK安全性一直遭人诟病&#xff0c;市面上充斥着各种被破解或者汉化的应用&#xff0c;破解者可以非常简单的通过破解工具就能对一个APK进行反编译、破解、汉化等等&#xff0c;这样就可以修改原有代码的逻辑、添加新代码、添加或修改资源、或者更有甚者植…

搞不懂,为啥现在什么公司都在考算法???

昨天在知乎上刷到一个热门问题:程序员需要达到什么水平才能顺利拿到 20k 无压力&#xff1f;其中一个最热门的回答是&#xff1a;“其实&#xff0c;无论你是前端还是后端、想进大厂还是拿高薪&#xff0c;算法都一定很重要。”为什么&#xff0c;算法会如此重要&#xff1f;不…

OpenKG开源系列 | 中文高中地理知识图谱CKGG(南京大学)

OpenKG地址&#xff1a;http://openkg.cn/dataset/ckggGitHub地址&#xff1a;https://github.com/nju-websoft/CKGG数据地址&#xff1a;https://doi.org/10.5281/zenodo.4668711论文地址&#xff1a;https://doi.org/10.1007/978-3-030-88361-4_25开放许可协议&#xff1a;CC…

LeetCode 892. 三维形体的表面积(数学)

1. 题目 在 N * N 的网格上&#xff0c;我们放置一些 1 * 1 * 1 的立方体。 每个值 v grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。 请你返回最终形体的表面积。 示例 1&#xff1a; 输入&#xff1a;[[2]] 输出&#xff1a;10示例 2&#xff1a; 输入&#x…

淘宝数据,数据处理,时间序列分析,获客分析,购买路径分析

-- 创建数据库 create database taobao; use taobao; desc use_behaviour;-- 创建表格 create table use_behaviour( user_id int(9), item_id int(9), category_id int(9), behaviour_type varchar(5), timestamps int(14));-- 查询已导入多少条 select count(*) from use_…