博客专栏

EEPW首页 > 博客 > ACL2021 | 多粒度输入信息不降低推理速度,腾讯看点提出高效预训练方法LICHEE

ACL2021 | 多粒度输入信息不降低推理速度,腾讯看点提出高效预训练方法LICHEE

发布人:机器之心时间:2021-08-15来源:工程师

既能利用多粒度输入信息,又不降低推理速度,腾讯看点等机构的研究者在一篇 ACL 论文中提出了一种高效的语言模型预训练方法荔枝 LICHEE。经过半年多的摸索改进,荔枝 LICHEE 同时登顶 CLUE 分类榜单、阅读理解榜单、总榜单,其相关的技术创新也被 ACL 2021 录用。

近日,腾讯看点 NLP 内容算法专家郭伟东在机器之心举办的 ACL 论文分享会上对此研究进行了解读,欢迎大家浏览视频。

基于大型语料库的语言模型预训练在构建丰富的上下文表示方面已经取得了巨大的成功,也在一系列自然语言理解任务中实现了显著的性能提升。然而,现有的预训练语言模型(如 BERT)大多是基于单粒度训练而成的,通常伴随细粒度的字符或 sub-word,这使其很难学习粗粒度词汇和短语的准确含义 。

为了得到更加准确的模型,部分研究者试图通过在预训练阶段 mask 连续 token 的序列,将粗粒度信息纳入到用细粒度分词训练的模型中。还有研究者提出了一种可以处理多粒度输入文本的模型——AMBERT。它利用两个具有共享权重的编码器将细粒度 token 和粗粒度 token 分别编码为两个上下文表示序列。虽然 AMBERT 效果不错,但它的推理成本却比原始 BERT 高了一倍左右,这在业界的很多场景下都是不可接受的。

为了得到更加准确的模型,主要的研究方向分为两类:

在 MASK 层引入粗粒度信息,如 whole word mask 或者 ERNIE 1.0;

在嵌入层引入粗粒度信息,如 ZEN 何 AMBert。

前者的好处是不需要修改模型,只需要在数据预处理阶段对整个词做连续 mask 就好,缺点是没有充分使用文本中的词信息(没有 mask 的词依然会使用字粒度)。后面的 ERINIE-gram 直接把词作为整体进行预测,会导致最后 softmax 层效率极大降低,导致训练周期变长。后者的好处是充分使用了全文的词信息,但是缺点是引入了额外的计算逻辑,导致效率降低。以 AMBERT 为例,它利用两个具有共享权重的编码器将细粒度 token 和粗粒度 token 分别编码为两个上下文表示序列。虽然 AMBERT 效果不错,但它的推理成本却比原始 BERT 高了一倍左右,这在业界的很多场景下都是不可接受的。

在这篇 ACL 论文中,来自腾讯看点和阿尔伯塔大学的研究者提出了一种简单但高效的预训练方法——荔枝 LICHEE。该方法可以在预训练阶段有效利用多种粒度的输入信息来增强预训练语言模型(PLM)的表示能力。

1.jpg

论文链接:https://arxiv.org/pdf/2108.00801.pdf

与 AMBERT 不同的是:AMBERT 利用两个编码器编码细粒度和粗粒度 token,这使得推理成本大大增加;但在 LICHEE 中,输入文本的多粒度信息融合发生在嵌入层,不需要改变 PLM 原有的模型结构,因此几乎不会带来额外的推理开销。

具体来说,LICHEE 首先会将输入文本处理成细粒度和粗粒度 token。然后,这些 token 会被传送到两个嵌入层,生成对应的向量表示。接下来,两种向量表示通过池化操作进行融合,形成多粒度嵌入向量,作为 PLM 编码器的输入。最后,我们得到由 PLM 编码器生成的增强上下文表示(包含细粒度和粗粒度信息)并将其用于下游任务。

在 CLUE 和 SuperGLUE 上进行的实验表明,该方法在中、英两种语言的多个自然语言理解任务中都能带来全面的性能提升,而且几乎不增加额外的推理成本。采用该方法的最优集成模型在 CLUE 基准上实现了 SOTA 性能。

此外,使用荔枝做特征抽取器,在词法分析任务 CLUENER 和千言数据集文本相似度任务上取得了超越其他模型的结果。

2.jpg3.png

在机器之心 7 月 31 日举办的 ACL 2021 论文分享会上,本文第一作者、腾讯看点 NLP 内容算法专家郭伟东详细介绍了他们的这项研究成果,感兴趣的同学可以点击阅读原文查看回顾视频。

方法概览

下图 1 显示了 LICHEE 的框架。它利用多粒度输入信息来增强预训练语言模型的表示能力。

4.jpg

该框架以文本序列作为输入,它们被分解为 token 序列。在这篇论文中,研究者选择保留两个词汇,并用两个分词器执行细粒度和粗粒度分词,词汇中的 item 是基于它们在预训练语料库中的 token 频率来选择的。此外,「细粒度」和「粗粒度」的定义因语言而异。例如,在英文中,词汇和短语通常分别被用作细粒度和粗粒度 token。但在中文中,细粒度和粗粒度 token 就要对应汉字和词汇。

在论文中,对于一个给定的输入文本序列 T,研究者用1629031275437059.jpg表示第 i 个细粒度 token;用1629031318514095.jpg来表示一个粗粒度 token,这个 token 由 j 和 k 之间的细粒度 token 1629031341399092.jpg组成。比如说,在图 1 中,粗粒度 token「 New York Times 」由第一、第二和第三个细粒度 token 组成,并表示为1629031367750368.jpg分词之后,研究者利用两个独立的嵌入层将分解之后的 token 映射为它们的向量表示。具体来说,每个细粒度的 token1629031394591368.jpg被传递到一个细粒度嵌入层,以产生该 token 的细粒度嵌入向量1629031418288611.jpg,其中的 d 表示该细粒度嵌入的维数。类似的,通过将 token1629031459741991.jpg馈入粗粒度嵌入层,可以得到拥有相同维度 d 的粗粒度嵌入1629031483288723.jpg。公式如下:

12.jpg

对于每个 token 1629031513934147.jpg,研究者通过执行一个最大池化操作来构建其多粒度嵌入向量1629031534359891.jpg。公式如下:

15.jpg

其中, j ≤ i ≤ k。注意,d 等于单粒度 PLM 的原始嵌入维数,以证明性能增益是由于引入了多粒度信息,而不是修改了模型结构造成的。

最后,将组合嵌入向量1629031569579790.jpg馈入 PLM 编码器,以构建最终的、借助多粒度信息增强的上下文表示1629031593757636.jpg。公式如下:

18.jpg

实验结果

中文任务

如下表 1 所示,研究者在三个预训练语言模型(BERT、ALBERT 和 GPT)上采用了本文中提出的多粒度预训练方法,并在 CLUE 排行榜上比较了这些模型和它们的单粒度基线。从结果可以看出,通过利用文本输入的多粒度信息,荔枝 LICHEE 实现了明显的性能提升。

19.jpg

为了进一步探索荔枝 LICHEE 的潜力,研究者将其应用到了一个基于 BERT-large 的集成模型上,并在 CLUE 基准上进行了评估。如下表 2 所示,LICHEE 在 CLUE 9 项任务中的平均分明显高于其他平台,还在 IFLYTEK、CSL 两项自然语言理解任务上取得了 SOTA 结果。这一表现进一步证明了 LICHEE 能够显著提高语言模型的表示能力,并且对大量下游 NLU 任务普遍有效。

20.jpg

为了评估多粒度设计的影响,并对多粒度嵌入的不同集成方法进行全面的分析,研究者还在 CLUE 基准上进行了消融分析。下表 3 列出了不同训练策略下模型变量的表现,包括两种单粒度方法和五种多粒度方法。从中可以看出,有最大池化加持的荔枝 LICHEE 平均分高于其他所有方法,在 3 项 CLUE 任务中达到了最高分数。

21.jpg

英文任务

为了评估 荔枝 LICHEE 在英文任务中的表现,并将其与单粒度基线 BERT-WWM 进行比较,研究者在 SuperGLUE 基准上进行了实验。

如下表 4 所示,用荔枝 LICHEE 方法预训练的 BERT 模型在 8 项 SuperGLUE 任务中都超越了单粒度基线 BERT-WWM,平均分比后者高出 1.89。这一结果表明,荔枝 LICHEE 的有效性很大程度上归功于其多粒度表示的信息增益,而不仅仅是 token 边界信息。

22.jpg

推理速度

除了荔枝 LICHEE 在中、英语言任务中的表现,研究者还探索了其推理速度。并将其与原始的单粒度 BERT 和另一种多粒度方法 AMBERT 进行了比较。

下图 5 给出了在序列长度为 512 的二分类任务上测试的 FLOP 和加速结果比较。

23.jpg

可以看出,AMBERT 的 FLOP 是 87.0B,比单粒度 BERT 高出一倍,这意味着推理时间也增加一倍。对于很多现实世界的应用来说,这通常是不可接受的。相比之下,荔枝 LICHEE 的 FLOP 仅为 43.5B,比单粒度基线高出的部分几乎可以忽略不计,因为多出来的操作只包括粗粒度 token 的一个嵌入查找操作和集成细粒度与粗粒度嵌入向量的最大池化操作。所以总的来说,荔枝 LICHEE 可以实现显著的性能提升,而无需额外的推理时间。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

交换机相关文章:交换机工作原理




关键词: 深度学习

相关推荐

技术专区

关闭