让压缩语言模型自动搜索最优结构!
本工作主要由本实验室王广润、彭杰锋、梁小丹等指导学生完成。该工作EfficientBert于2021年完成,该工作搜索出的EfficientBert参数规模是主流预训练大模型BERTBASE的近七分之一,推理速度是BERTBASE的近五倍,并取得了优异的性能。EfficientBert目前持续完善,在各类企业级应用场景中广泛使用。
既让模型跑得快又好,又要空间占用少,真的有这样效果爆表的操作存在吗?
在当前疫情反复的情况下,大家平时出门用健康宝刷脸的频率变得越来越高。如果每次人脸识别都需要等很久的话,那也太让人焦虑啦,甚至会有砸手机的冲动。而且我们还想让模型的识别效果好,不能经常出错,就得用一些跑起来很慢的大模型来提升效果。那么问题来了,咋在这两者之间做个平衡呢,既让模型跑得又快又好,又要占用空间够少,还能效果爆表?那就不得不提模型压缩和最近兴起的自动机器学习技术了,在压缩模型的同时还能自动搜索出效果更优的结构,岂不美哉。
在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)策略,使每个搜索子结构在训练时可以更快地收敛,并提升模型的泛化性能。
点击阅读原文