许灿文、周王春澍、葛涛作者自然语言计算组来源

EMNLP 2020 | 忒修斯之船启发下的知识蒸馏新思路

编者按:深度学习的发展推动了很多大型神经网络模型的诞生,这些模型在多个领域中都取得了当前最优的性能,基于 Transformer 的预训练模型也在自然语言理解(NLU)和自然语言生成(NLG)领域中成为主流。然而,这些模型所包含的参数量巨大,计算成本高昂,极大地阻碍了此类模型在生产环境中的应用。为了解决该问题,来自微软亚洲研究院自然语言计算组的研究员们提出了一种模型压缩的新思路。

随着深度学习的流行,很多大型神经网络模型诞生,并在多个领域中取得当前最优的性能。尤其是在自然语言处理(NLP)领域中,预训练和调参已经成为其中大多数任务的新范式。基于 Transformer 的预训练模型在自然语言理解(NLU)和自然语言生成(NLG)领域中成为主流。尽管这些模型从“过参数化”的特性中获益,但它们往往包含数百万甚至数十亿个参数,这就使得此类模型的计算成本高昂,且从内存消耗和高延迟的角度来看计算低效。这一缺陷极大地阻碍了此类模型在生产环境中的应用。

为了解决该问题,研究人员提出了很多神经网络压缩技术。一般而言,这些技术可以分为三类:量化权重剪枝知识蒸馏(Knowledge Distillation)。其中,由于知识蒸馏能够压缩预训练语言模型,所以得到了极大关注。知识蒸馏利用大型教师模型“教”紧凑的学生模型模仿教师的行为,从而将教师模型中嵌入的知识迁移到较小的模型中。但是,学生模型的性能状况取决于设计良好的蒸馏损失函数,正是这个函数使得学生模型可以模仿教师的行为。近期关于知识蒸馏的研究甚至利用更复杂的模型特定蒸馏损失函数,以实现更好的性能。

近日,来自微软亚洲研究院自然语言计算组的研究员们提出了一种与显式地利用蒸馏损失函数来最小化教师模型与学生模型距离的知识蒸馏不同的模型压缩新方法。受到著名哲学思想实验“忒修斯之船”的启发(即如果船上的木头逐渐被替换,直到所有的木头都不是原来的木头,那这艘船还是原来的那艘船吗?),研究员们在 EMNLP 2020 上发表了 Theseus Compression for BERT (BERT-of-Theseus),该方法逐步将 BERT 的原始模块替换成参数更少的替代模块(点击文末阅读原文,了解论文详情)。研究员们将原始模型叫做“前辈”(predecessor),将压缩后的模型叫做“接替者”(successor),分别对应知识蒸馏中的教师和学生。

该方法的工作流程如下图所示。首先为每个前辈模块指定一个接替者模块,然后在训练阶段中以一定的概率(如抛硬币)决定是否用替代模块随机替换对应的前辈模块,并按照新旧模块组合的方式继续训练。在模型收敛后,将所有接替者模块组合成接替者模型,进而执行推断。这样就可以将大型前辈模型压缩成紧凑的接替者模型了。

举例来说,假设现在有两支篮球队每支各五人,一支是经验老道的全明星球队,另一支则是年轻球员组成的青训队。为了提高青训队的水平,所以随机选派青训队员去替换掉全明星队中的球员,然后让这个混合的球队不断地练习、比赛。通过向前辈学习经验,新加入成员的实力会有所提升,也能学会和其他队员的配合,逐渐的这个混合球队就拥有了接近全明星球队的实力。之后重复这个过程,直到青训队员都被充分训练,最终青训队员也能自己组成一支实力突出的球队。相比之下,如果没有“老司机”来带一带,青训队无论如何训练,水平也不会达到全明星队的实力。

事实上,Theseus 压缩与知识蒸馏的思路有些类似,都是鼓励压缩模型模仿原始模型的行为,但 Theseus 压缩有很多独特的优势。

首先,Theseus 压缩在压缩过程中仅使用任务特定的损失函数。而基于知识蒸馏的方法除了使用任务特定的损失函数外,还需加入繁琐的蒸馏损失函数作为优化目标。

其次,与近期研究 TinyBERT 等不同,Theseus 压缩不使用 Transformer 特定特征进行压缩,这就为压缩广泛模型提供了可能性。与知识蒸馏仅使用原始模型执行推断不同,该方法允许前辈模型与压缩后的接替者模型共同训练,从而实现更深层次的梯度级交互,并简化训练过程。

此外,混合了前辈模块和接替者模块的不同模块组合还添加了额外的正则化项(类似于 Dropout)。该方法基于课程学习(Curriculum Learning)方法来驱动模块替换,将模块替换概率从低到高逐渐增加,从而实现优异的 BERT 压缩性能。利用Theseus 压缩方法压缩得到的 BERT 模型运算速度是之前的1.94 倍,并且保留了原始模型超过 98% 的性能,优于其它基于知识蒸馏的压缩的基线方法。

通过在预训练语言模型 BERT 上的成功实验,微软亚洲研究院的研究员们希望可以为模型压缩打开一种全新的思路,并希望看到这一方法在计算机视觉等领域的更广泛应用。

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

理论EMNLP 2020
相关数据
微软亚洲研究院机构

微软亚洲研究院于1998年在北京成立,是微软公司在亚太地区设立的基础及应用研究机构,也是微软在美国本土以外规模最大的一个研究院。微软亚洲研究院从事自然用户界面、智能多媒体、大数据与知识挖掘、人工智能、云和边缘计算、计算机科学基础等领域的研究,致力于推动计算机科学前沿发展,着眼下一代革命性技术的创新,助力微软实现长远发展战略。通过与微软产品部门紧密合作,微软亚洲研究院将众多创新技术转移到了微软的核心产品中,如Office、Windows、Azure、Bing、Visual Studio、Xbox Kinect以及小冰、Cortana和Microsoft Translator等人工智能产品。

https://www.msra.cn/
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

Dropout技术

神经网络训练中防止过拟合的一种技术

自然语言理解技术

自然语言理解是人工智能的核心课题之一,也被广泛认为是最困难和最具标志性的任务。最经典的两个人工智能思想实验——图灵测试和中文房间,都是围绕自然语言理解来构建的。自然语言理解在人工智能技术体系中的重要性不言而喻,它一方面承载着机器和人的交流,另一方面直达知识和逻辑。自然语言理解也是人工智能学者孜孜以求的圣杯,机器学习的巨擘 Michael I. Jordan 就曾经在 Reddit 上的 AMA(Ask Me Anything)栏目中畅想用十亿美元建立一个专门用于自然语言理解的实验室。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

知识蒸馏技术

Hinton 的工作引入了知识蒸馏压缩框架,即通过遵循“学生-教师”的范式减少深度网络的训练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩罚“学生”。为了完成这一点,学生学要训练以预测教师的输出,即真实的分类标签。这种方法十分简单,但它同样在各种图像分类任务中表现出较好的结果。

自然语言生成技术

自然语言生成(NLG)是自然语言处理的一部分,从知识库或逻辑形式等等机器表述系统去生成自然语言。这种形式表述当作心理表述的模型时,心理语言学家会选用语言产出这个术语。自然语言生成系统可以说是一种将资料转换成自然语言表述的翻译器。不过产生最终语言的方法不同于编译程式,因为自然语言多样的表达。NLG出现已久,但是商业NLG技术直到最近才变得普及。自然语言生成可以视为自然语言理解的反向: 自然语言理解系统须要厘清输入句的意涵,从而产生机器表述语言;自然语言生成系统须要决定如何把概念转化成语言。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

神经网络压缩技术

神经网络压缩方向是目前深度学习研究的一个热门的方向,其主要的研究方向是压缩,蒸馏,网络架构搜索,量化等。

推荐文章
暂无评论
暂无评论~