机器之心编辑部

百度正式发布ERNIE 2.0,16项中英文任务超越BERT、XLNet,刷新SOTA

今天,百度 ERNIE 再升级,发布持续学习语义理解框架 ERNIE 2.0,同时借助飞桨高效分布式训练优势发布了基于此框架的 ERNIE 2.0 预训练模型。该模型在共计 16 个中英文任务上超越了 BERT 和 XLNet,取得了 SOTA 效果。

近两年,以 BERT、XLNet 为代表的无监督预训练技术在多个自然语言处理任务上取得了技术突破。基于大规模数据的无监督预训练技术在自然语言处理领域变得至关重要。

百度发现,之前的工作主要通过词或句子的共现信号,构建语言模型任务进行模型预训练。例如,BERT 通过掩码语言模型和下一句预测任务进行预训练。XLNet 构建了全排列的语言模型,并通过自回归的方式进行预训练。

然而,除了语言共现信息之外,语料中还包含词法、语法、语义等更多有价值的信息。例如,人名、地名、机构名等词语概念知识,句子间顺序和距离关系等结构知识,文本语义相似度和语言逻辑关系等语义知识。那么如果持续地学习各类任务,模型的效果能否进一步提升?这就是 ERNIE 2.0 希望探索的。

ERNIE 2.0 新一代升级

之前机器之心就曾介绍过百度开源的 ERNIE 1.0,今天百度也开源了 ERNIE 2.0 的 Fine-tuning 代码和英文预训练模型。那么相比 1.0,ERNIE 2.0 的升级包括哪些方面呢?

  • ERNIE 2.0 开源地址:https://github.com/PaddlePaddle/ERNIE

具体而言:

  • BERT、XLNet 等主流方法都强调通过强力的 Transformer 直接构建语言模型,而 ERNIE 2.0 通过多任务预训练的方法加强模型学到的语言知识。

  • ERNIE 2.0 通过增量学习的方式更新,也就是说可以通过自定义的 NLP 任务微调已训练模型,加强预训练效果。

  • ERNIE 2.0 模型在英语任务上很多都优于 BERT 和 XLNet,在 7 个 GLUE 任务上取得了最好的结果;中文任务上,ERNIE 2.0 模型在所有 9 个中文 NLP 任务上全面优于 BERT。

当然这只是更新主要体现的方面,还有很多核心思想、调优技巧都隐藏在模型中。下面就让我们看看 ERNIE 2.0 的主要思想及具体结构都是什么样的吧。

ERNIE 2.0 是什么

如前所述,文本中还有很多非常有价值的信息,为此百度提出持续学习语义理解框架 ERNIE 2.0。该框架支持增量引入不同角度的自定义预训练任务,以捕捉语料中词法、语法、语义等信息。这些任务通过多任务学习对模型进行训练更新,每当引入新任务时,该框架可在学习该任务的同时,不遗忘之前学到过的信息。

  • ERNIE 2.0 论文地址:https://arxiv.org/pdf/1907.12412v1.pdf

ERNIE 框架支持随时引入各种自定义任务,这些任务共享相同的编码网络并通过多任务学习实现训练。这种多任务学习的方法使得不同任务中词汇、句法和语义信息的编码能共同学习。此外,当我们给出新的任务时,ERNIE 2.0 框架可以根据先前预训练的权重增量地学习分布式表征。

如下原论文图 1 所示,ERNIE 2.0 框架是基于预训练/微调架构构建的,这种架构在 NLP 中非常流行。ERNIE 2.0 与 BERT 或 XLNet 等经典预训练方法的不同之处在于,它并不是在少量的预训练任务上完成的,而是通过不断引入大量预训练任务,从而帮助模型高效地学习词汇、句法和语义表征。

此外重要的是,ERNIE 2.0 框架能通过多任务学习持续更新预训练模型,这也就是「连续预训练」的含义。在每一次微调中,ERNIE 会首先初始化已经预训练的权重,然后再使用具体任务的数据微调模型。

图 1:ERNIE 2.0 框架,如上所示 ERNIE 2.0 可以序列地学习不同的任务,并通过微调适应各种新的自然语言理解任务。

注意其中的连续预训练过程,它可以分为两个步骤,即构建无监督预训练任务和通过多任务学习增量地更新 ERNIE 模型。这里不同的任务是一个序列,因此模型在学习新任务时能记住已经学到过的知识。

如下图 2 所示为连续预训练的架构,它包含一系列共享的文本编码层来编码上下文信息,这些文本编码层可以通过循环神经网络或 Transformer 构建,且编码器的参数能通过所有预训练任务更新。

图 2:ERNIE 2.0 中多任务预训练的架构。

最后,为了验证上面这种预训练方式的有效性,百度的研究者通过一系列无监督自然语言处理任务构建预训练模型。如下图 3 所示为 ERNIE 2.0 具体模型结构,我们可以看到它主要包含三类预训练任务。其中 word-aware 任务将教会模型捕捉词汇层面的信息,structure-aware 任务将教会模型捕捉句法层面的信息,semantic-aware 任务则负责提供语义方面的信息了。

图 3:ERNIE 2.0 模型的具体结构,其采用的 7 个任务都可以分到三大类中。

值得注意的是,相比 BERT 等模型,ERNIE 2.0 会带有一个任务嵌入,这个嵌入对于不同的任务都是唯一的,因此在精调的过程中模型能清楚地知道目前预训练的任务到底是什么。

因此,依托该框架的 ERNIE 2.0 预训练模型不仅实现了 SOTA 效果,而且为开发人员定制自己的 NLP 模型提供了方案。

ERNIE 2.0 效果怎么样

百度研究者分别比较了 ERNIE 2.0 和当前最优预训练模型在中英文任务上的性能。英文任务中,ERNIE 2.0 在自然语言理解数据集 GLUE 的 7 个任务上击败了 BERT 和 XLNet。中文上,ERNIE 2.0 在阅读理解、情感分析、问答等不同类型的 9 个数据集上超越了 BERT,并刷新了 SOTA。

为了方便与 BERT 进行对比,百度研究者使用与 BERT 相同的 transformer 模型设置。ERNIE 2.0 base 模型使用 48 块英伟达 v100 GPU,large 模型使用了 64 块英伟达 v100 GPU。ERNIE 2.0 在百度深度学习框架 PaddlePaddle 中实现。

数据

模型训练所用英文数据是维基百科和 BookCorpus,另有一部分来自 Reddit,此外,百度使用 Discovery 数据作为篇章关系数据。而中文数据则包括来自百度搜索引擎的百科、新闻、对话、信息检索和篇章关系数据。具体数据统计情况见下表:

ERNIE 2.0 在英文任务上的性能

ERNIE 2.0 模型在 GLUE 数据集上的性能如下表所示。我们可以从表中看到,ERNIE 2.0_BASE 模型在全部 10 项任务中的性能均超越 BERT_BASE,得到了 80.6 的分数。

ERNIE 2.0_LARGE 在除 MNLI-m 以外的其他任务中的性能均超过 BERT_LARGE 和 XLNet_LARGE。而 ERNIE 2.0LARGE 在全部任务测试集上的性能均超过 BERT_LARGE,得到了 83.6 的分数,比之前的 SOTA 模型 BERT_LARGE 提升了 3.1%。

表 6:模型在 GLUE 上的结果,其中开发集上的结果是五次实验结果的中位数,测试集结果是通过 GLUE 评估服务完成的。

ERNIE 2.0 在中文任务上的性能

研究者在 9 个中文 NLP 任务上进行了大量实验,这些任务包括机器阅读理解、命名实体识别、自然语言推断、语义相似度、语义分析和问答。

那么具体效果如何呢?下表展示了 ERNIE 2.0 等模型在这些中文任务上的性能。

表 7:模型在 9 项常规中文 NLP 任务中的结果。模型结果均为五次实验结果的中位数,粗体字表示 SOTA 结果。

ERNIE 2.0 在全部 9 项任务上的性能均超越 BERT_BASE,且 ERNIE 2.0_LARGE 在这些中文任务上获得了最优性能,创造了新的 SOTA 结果。

工程深度学习智能互联网语言模型自然语言处理百度大脑
2
相关数据
增量学习技术

增量学习作为机器学习的一种方法,现阶段得到广泛的关注。对于满足以下条件的学习方法可以定义为增量学习方法: * 可以学习新的信息中的有用信息 * 不需要访问已经用于训练分类器的原始数据 * 对已经学习的知识具有记忆功能 * 在面对新数据中包含的新类别时,可以有效地进行处理

信息检索技术

信息检索(IR)是基于用于查询检索信息的任务。流行的信息检索模型包括布尔模型、向量空间模型、概率模型和语言模型。信息检索最典型和最常见的应用是搜索引擎。

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

多任务学习技术

语言模型技术

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

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