BAM!利用知识蒸馏和多任务学习构建的通用语言模型

自 BERT 崛起以来,语言模型的预训练任务就被推至研究前沿,很多研究者都尝试构建更高效的通用自然语言理解模型。在这篇论文中,作者提出结合多任务学习与 BERT,从而在 11 项 NLP 任务上都获得极好的效果。

在今年年初,微软发布了一个多任务自然语言理解模型,它在通用语言理解评估基准 GLUE 上取得了当时最好的效果:11 项 NLP 基准任务中有 9 项超过了 BERT。至此,各种 NLP 预训练方法都被提了出来,GLUE 基准也出现越来越多的新研究。

如下所示为目前 GLUE 基准的排名,Jacob 等人提出的原版 BERT 引发了一系列后续研究与改进,其中 BERT+BAM 的模型就是本文介绍的方法。

在 BAM + BERT 的这篇论文中,作者表示构建能够执行多个任务的单个模型一直是 NLP 领域的难题。多任务 NLP 对很多应用而言是无效的,多任务模型通常比单任务模型性能差。但是该研究提出利用知识蒸馏方法,让单任务模型高效教导多任务模型,从而在不同单任务上都有很好的表现。

知识蒸馏BERT

知识蒸馏即将知识从「教师」模型迁移到「学生」模型,执行方式为训练学生模型模仿教师模型的预测。在「born-again network」(Furlanello et al., 2018) 中,教师和学生具备同样的神经网络架构和模型大小,然而令人惊讶的是,学生网络的性能超越了教师网络。该研究将这一想法扩展到多任务模型训练环境中。

研究者使用多个变体对比 Single→Multi born-again 知识蒸馏,这些变体包括单模型到单模型的知识蒸馏和多任务模型到多任务模型的知识蒸馏。此外,该研究还提出了一个简单的教师退火(teacher annealing)方法,帮助学生模型超越教师模型,大幅改善预测结果。

如下所示为整体模型的结构,其采用多个任务的单模型与对应标签作为输入。其中多任务模型主要基于 BERT,因此该多任务模型能通过知识蒸馏学习到各单任务模型的语言知识。模型会有一个教师退火的过程,即最开始由多个单任务模型教多任务模型学习,而随着训练的进行,多任务模型将更多使用真实任务标签进行训练。

图 1:该研究提出方法概览。λ 在训练过程中从 0 线性增加到 1。

研究者在 GLUE 自然语言处理基准任务上使用无监督预训练环境 (Dai and Le, 2015; Peters et al., 2018) 和多任务精调 BERT 对该方法进行了实验评估。该研究提出的训练方法 Born-Again Multi-tasking (BAM) 持续优于标准单任务和多任务训练,在 GLUE 基准上获得了当前最优准确率。后续的分析证明多任务模型受益于更好的正则化和相关任务之间的知识迁移。

论文:BAM! Born-Again Multi-Task Networks for Natural Language Understanding

论文链接:https://openreview.net/forum?id=SylnYlqKw4

摘要:训练性能匹配甚至优于单任务设置的多任务神经网络是很有挑战性的。为了解决这个问题,该研究提出使用知识蒸馏,即用单任务模型教多任务模型。研究者使用 teacher annealing 来增强这一训练过程,teacher annealing 是一种新型方法,它将模型从知识蒸馏逐渐转换为监督学习,帮助多任务模型超越担任其老师的单任务模型。研究者在 GLUE 基准上使用多任务精调 BERT 评估了该方法。实验结果表明该研究提出的方法显著优于标准单任务和多任务训练,获得了当前最优准确率

方法

如前所述,BAM 主要结合了 BERT多任务学习,且其中多任务学习最开始通过知识蒸馏的方式进行学习,再慢慢转为通过真实标签的有监督学习。一言以蔽之,BAM 方法主要可以分为多任务学习知识蒸馏

多任务训练

模型:该研究所有模型均基于 BERT 构建。该模型将 byte-pair-tokenized 的输入句子传输到 Transformer 网络,为每个 token 生成语境化的表征。对于分类任务,研究者使用标准 softmax 层直接分类。对于回归任务,研究者使用最后一层的特征向量,并使用 sigmoid 激活函数。在该研究开发的多任务模型中,除了基于 BERT 的分类器,所有模型参数在所有任务上共享,这意味着不到 0.01% 的参数是任务特定的。和 BERT 一样,字符级词嵌入和 Transformer 使用「masked LM」预训练阶段的权重进行初始化。

训练:单任务训练按照 Devlin 等人 (2018) 的研究来执行。至于多任务训练,研究者将打乱不同任务的顺序,即使在小批量内也会进行 shuffle。最后模型的训练为最小化所有任务上的(未加权)损失和。

知识蒸馏

该研究使用知识蒸馏方法,让单任务模型来教多任务模型。这里学生网络和教师网络具备同样的模型架构。

知识蒸馏中学生网络要模仿教师网络,这有可能导致学生网络受限于教师网络的性能,无法超过教师网络。为了解决该问题,该研究提出 teacher annealing,在训练过程中混合教师预测和 gold label。

实验

数据:研究人员使用 GLUE 基准(Wang 等人,2019 年)的 9 种自然语言理解任务上进行实验,包括文本蕴涵(RTE 和 MNLI)、问答蕴涵(QNLI)、释义(MRPC)、问题释义(QQP)、文本相似度(STS)、情感分类(SST2)、语言可接受性语料库(CoLA)和威诺格拉德模式(WNLI)等。

训练细节:研究人员并没有简单地对多任务模型的数据集进行 shuffle,而是遵循 Bowman 等人(2018 年)的任务抽样流程。这保证了超大数据集任务不会过度主导训练。研究人员还采用 Howard 和 Ruder(2018 年)的层级学习率技巧。

参数:对于单任务模型而言,除在每一任务的开发集上将层级学习率 α 设置为 1.0 或 0.9 外,研究人员使用与原始 BERT 实验相同的超参数。对于多任务模型而言,研究人员训练模型的时间更长(6 个 epoch 而不是 3 个),批量更大(128 代替 32),并且使用 α = 0.9 以及 1e-4 的学习率。所有模型使用 BERT-Large 模型的预训练权重

实验结果:开发集上的结果报告了所有 GLUE 任务(除 WNLI 之外)的平均分。所有结果都是至少 20 次使用不同随机种子的试验的中位数。研究人员发现有必要进行大量实验,因为在不同的运行下实验结果有显著差异。例如,多任务模型下 CoLA、RTE 和 MRPC 的分数标准差均超过 ±1,单任务模型下的标准差甚至更大。

结果

表 1:在 GLUE 开发集上对比不同方法。根据 bootstrap hypothesis test,∗、∗∗ 和 ∗∗∗ 表明单任务和多任务模型都有显著改善(分别是 p < .05、p < .01 和 p < .001)。

表 2:测试集结果对比。

表 3:模型简化测试。根据曼-惠特尼 U 检验(Mann-Whitney U test),Single→Multi 之间的差距显著 (p < .001)。

表 4:哪些任务组合有助于 RTE 分数?根据曼-惠特尼 U 检验,每对任务之间的差距显著 (p < .01)。

理论论文BAM知识蒸馏多任务学习BERT
3
相关数据
微软机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
基于Transformer 的双向编码器表征技术

BERT是谷歌发布的基于双向 Transformer的大规模预训练语言模型,该预训练模型能高效抽取文本信息并应用于各种NLP任务,并刷新了 11 项 NLP 任务的当前最优性能记录。BERT的全称是基于Transformer的双向编码器表征,其中“双向”表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部分信息。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

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

自然语言理解技术

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

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

参数技术

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

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

神经网络技术

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

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

大数据技术技术

大数据,又称为巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。

正则化技术

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

自然语言处理技术

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

知识蒸馏技术

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

多任务学习技术

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