资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

ERNIE预训练模型介绍

ERNIE 1.0: Enhanced Representation through kNowledge IntEgration

ERNIE 1.0 通过建模海量数据中的词、实体及实体关系,学习真实世界的语义知识。相较于 BERT 学习原始语言信号,ERNIE 直接对先验语义知识单元进行建模,增强了模型语义表示能力。

这里我们举个例子:

Learnt by BERT :哈 [mask] 滨是 [mask] 龙江的省会,[mask] 际冰 [mask] 文化名城。

Learnt by ERNIE:[mask] [mask] [mask] 是黑龙江的省会,国际 [mask] [mask] 文化名城。

BERT 模型中,我们通过『哈』与『滨』的局部共现,即可判断出『尔』字,模型没有学习与『哈尔滨』相关的任何知识。而 ERNIE 通过学习词与实体的表达,使模型能够建模出『哈尔滨』与『黑龙江』的关系,学到『哈尔滨』是 『黑龙江』的省会以及『哈尔滨』是个冰雪城市。

训练数据方面,除百科类、资讯类中文语料外,ERNIE 还引入了论坛对话类数据,利用 DLM(Dialogue Language Model)建模 Query-Response 对话结构,将对话 Pair 对作为输入,引入 Dialogue Embedding 标识对话的角色,利用 Dialogue Response Loss 学习对话的隐式关系,进一步提升模型的语义表示能力。

ERNIE 2.0: A Continual Pre-training Framework for Language Understanding

ERNIE 2.0 是基于持续学习的语义理解预训练框架,使用多任务学习增量式构建预训练任务。ERNIE 2.0 中,新构建的预训练任务类型可以无缝的加入训练框架,持续的进行语义理解学习。 通过新增的实体预测、句子因果关系判断、文章句子结构重建等语义任务,ERNIE 2.0 语义理解预训练模型从训练数据中获取了词法、句法、语义等多个维度的自然语言信息,极大地增强了通用语义表示能力。

ernie2.0_arch

我们对 ERNIE 2.0 模型和现有 SOTA 预训练模型在 9 个中文数据集、以及英文数据集合 GLUE 上进行效果比较。结果表明:ERNIE 2.0 模型在英语任务上几乎全面优于 BERTXLNet,在 7 个 GLUE 任务上取得了最好的结果;中文任务上,ERNIE 2.0 模型在所有 9 个中文 NLP 任务上全面优于 BERT

Pre-Training 任务

针对 ERNIE 2.0 模型,我们构建了多个预训练任务,试图从 3 个层面去更好的理解训练语料中蕴含的信息:

  • Word-aware Tasks: 词汇 (lexical) 级别信息的学习
  • Structure-aware Tasks: 语法 (syntactic) 级别信息的学习
  • Semantic-aware Tasks: 语义 (semantic) 级别信息的学习

同时,针对不同的 pre-training 任务,ERNIE 2.0 引入了 Task Embedding 来精细化地建模不同类型的任务。不同的任务用从 0 到 N 的 ID 表示,每个 ID 代表了不同的预训练任务。

ernie2.0_model

Word-aware Tasks

Knowledge Masking Task
  • ERNIE 1.0 中已经引入的 phrase & named entity 知识增强 masking 策略。相较于 sub-word masking, 该策略可以更好的捕捉输入样本局部和全局的语义信息。
Capitalization Prediction Task
  • 针对英文首字母大写词汇(如 Apple)所包含的特殊语义信息,我们在英文 Pre-training 训练中构造了一个分类任务去学习该词汇是否为大写。
Token-Document Relation Prediction Task
  • 针对一个 segment 中出现的词汇,去预测该词汇是否也在原文档的其他 segments 中出现。

Structure-aware Tasks

Sentence Reordering Task
  • 针对一个 paragraph (包含 M 个 segments),我们随机打乱 segments 的顺序,通过一个分类任务去预测打乱的顺序类别。
Sentence Distance Task
  • 通过一个 3 分类任务,去判断句对 (sentence pairs) 位置关系 (包含邻近句子、文档内非邻近句子、非同文档内句子 3 种类别),更好的建模语义相关性。

Semantic-aware Tasks

Discourse Relation Task
  • 通过判断句对 (sentence pairs) 间的修辞关系 (semantic & rhetorical relation),更好的学习句间语义。
IR Relevance Task
  • 学习 IR 相关性弱监督信息,更好的建模句对相关性。

对比 ERNIE 1.0 和 ERNIE 2.0

Pre-Training Tasks

任务 ERNIE 1.0 模型 ERNIE 2.0 英文模型 ERNIE 2.0 中文模型
Word-aware ✅ Knowledge Masking ✅ Knowledge Masking
✅ Capitalization Prediction
✅ Token-Document Relation Prediction
✅ Knowledge Masking
Structure-aware ✅ Sentence Reordering ✅ Sentence Reordering
✅ Sentence Distance
Semantic-aware ✅ Next Sentence Prediction ✅ Discourse Relation ✅ Discourse Relation
✅ IR Relevance

效果验证

中文效果验证

我们在 9 个任务上验证 ERNIE 2.0 中文模型的效果。这些任务包括:自然语言推断任务 XNLI;阅读理解任务 DRCD、DuReader、CMRC2018;命名实体识别任务 MSRA-NER (SIGHAN2006);情感分析任务 ChnSentiCorp;语义相似度任务 BQ Corpus、LCQMC;问答任务 NLPCC2016-DBQA 。任务的详情和效果会在如下章节中介绍。

自然语言推断任务

数据集
XNLI

评估

指标

acc

dev
test
BERT Base
78.1 77.2
ERNIE 1.0 Base
79.9 (+1.8) 78.4 (+1.2)
ERNIE 2.0 Base
81.2 (+3.1) 79.7 (+2.5)
ERNIE 2.0 Large
82.6 (+4.5) 81.0 (+3.8)
  • XNLI
XNLI 是由 Facebook 和纽约大学的研究者联合构建的自然语言推断数据集,包括 15 种语言的数据。我们用其中的中文数据来评估模型的语言理解能力。[链接: https://github.com/facebookresearch/XNLI]

阅读理解任务

数据集
DuReader
CMRC2018
DRCD

评估

指标

em

f1-score
em
f1-score
em
f1-score
dev
dev
dev
test
dev
test
BERT Base 59.5 73.1 66.3 85.9 85.7 84.9 91.6 90.9
ERNIE 1.0 Base 57.9 (-1.6) 72.1 (-1.0) 65.1 (-1.2) 85.1 (-0.8) 84.6 (-1.1) 84.0 (-0.9) 90.9 (-0.7) 90.5 (-0.4)
ERNIE 2.0 Base 61.3 (+1.8) 74.9 (+1.8) 69.1 (+2.8) 88.6 (+2.7) 88.5 (+2.8) 88.0 (+3.1) 93.8 (+2.2) 93.4 (+2.5)
ERNIE 2.0 Large 64.2 (+4.7) 77.3 (+4.2) 71.5 (+5.2) 89.9 (+4.0) 89.7 (+4.0) 89.0 (+4.1) 94.7 (+3.1) 94.2 (+3.3)
  • DuReader
DuReader 是百度在自然语言处理国际顶会 ACL 2018 发布的机器阅读理解数据集,所有的问题、原文都来源于百度搜索引擎数据和百度知道问答社区,答案是由人工整理的。实验是在 DuReader 的单文档、抽取类的子集上进行的,训练集包含15763个文档和问题,验证集包含1628个文档和问题,目标是从篇章中抽取出连续片段作为答案。[链接: https://arxiv.org/pdf/1711.05073.pdf]
  • CMRC2018
CMRC2018 是中文信息学会举办的评测,评测的任务是抽取类阅读理解。[链接: https://github.com/ymcui/cmrc2018]
  • DRCD
DRCD 是台达研究院发布的繁体中文阅读理解数据集,目标是从篇章中抽取出连续片段作为答案。我们在实验时先将其转换成简体中文。[链接: https://github.com/DRCKnowledgeTeam/DRCD]

命名实体识别任务

数据集
MSRA-NER(SIGHAN2006)

评估

指标

f1-score

dev
test
BERT Base 94.0 92.6
ERNIE 1.0 Base 95.0 (+1.0) 93.8 (+1.2)
ERNIE 2.0 Base 95.2 (+1.2) 93.8 (+1.2)
ERNIE 2.0 Large 96.3 (+2.3) 95.0 (+2.4)
  • MSRA-NER (SIGHAN2006)
MSRA-NER (SIGHAN2006) 数据集由微软亚研院发布,其目标是识别文本中具有特定意义的实体,包括人名、地名、机构名。

情感分析任务

数据集
ChnSentiCorp

评估

指标

acc

dev
test
BERT Base 94.6 94.3
ERNIE 1.0 Base 95.2 (+0.6) 95.4 (+1.1)
ERNIE 2.0 Base 95.7 (+1.1) 95.5 (+1.2)
ERNIE 2.0 Large 96.1 (+1.5) 95.8 (+1.5)
  • ChnSentiCorp
ChnSentiCorp 是一个中文情感分析数据集,包含酒店、笔记本电脑和书籍的网购评论。

问答任务

数据集
NLPCC2016-DBQA

评估

指标

mrr

f1-score

dev
test
dev
test
BERT Base 94.7 94.6 80.7 80.8
ERNIE 1.0 Base 95.0 (+0.3) 95.1 (+0.5) 82.3 (+1.6) 82.7 (+1.9)
ERNIE 2.0 Base 95.7 (+1.0) 95.7 (+1.1) 84.7 (+4.0) 85.3 (+4.5)
ERNIE 2.0 Large 95.9 (+1.2) 95.8 (+1.2) 85.3 (+4.6) 85.8 (+5.0)
  • NLPCC2016-DBQA
NLPCC2016-DBQA 是由国际自然语言处理和中文计算会议 NLPCC 于 2016 年举办的评测任务,其目标是从候选中找到合适的文档作为问题的答案。[链接: http://tcci.ccf.org.cn/conference/2016/dldoc/evagline2.pdf]

语义相似度

数据集
LCQMC
BQ Corpus

评估

指标

acc
acc
dev
test
dev
test
BERT Base 88.8 87.0 85.9 84.8
ERNIE 1.0 Base 89.7 (+0.9) 87.4 (+0.4) 86.1 (+0.2) 84.8
ERNIE 2.0 Base 90.9 (+2.1) 87.9 (+0.9) 86.4 (+0.5) 85.0 (+0.2)
ERNIE 2.0 Large 90.9 (+2.1) 87.9 (+0.9) 86.5 (+0.6) 85.2 (+0.4)

* LCQMC 、BQ Corpus 数据集需要向作者申请,LCQMC 申请地址:http://icrc.hitsz.edu.cn/info/1037/1146.htm, BQ Corpus 申请地址:http://icrc.hitsz.edu.cn/Article/show/175.html

  • LCQMC
LCQMC 是在自然语言处理国际顶会 COLING 2018 发布的语义匹配数据集,其目标是判断两个问题的语义是否相同。[链接: http://aclweb.org/anthology/C18-1166]
  • BQ Corpus
BQ Corpus 是在自然语言处理国际顶会 EMNLP 2018 发布的语义匹配数据集,该数据集针对银行领域,其目标是判断两个问题的语义是否相同。[链接: https://www.aclweb.org/anthology/D18-1536]

英文效果验证

ERNIE 2.0 的英文效果验证在 GLUE 上进行。GLUE 评测的官方地址为 https://gluebenchmark.com/ ,该评测涵盖了不同类型任务的 10 个数据集,其中包含 11 个测试集,涉及到 Accuracy, F1-score, Spearman Corr,. Pearson Corr,. Matthew Corr., 5 类指标。GLUE 排行榜使用每个数据集的平均分作为总体得分,并以此为依据将不同算法进行排名。

GLUE - 验证集结果

数据集 CoLA SST-2 MRPC STS-B QQP MNLI-m QNLI RTE
评测指标 matthews corr. acc acc pearson corr. acc acc acc acc
BERT Large 60.6 93.2 88.0 90.0 91.3 86.6 92.3 70.4
XLNet Large 63.6 95.6 89.2 91.8 91.8 89.8 93.9 83.8
ERNIE 2.0 Large 65.4
(+4.8,+1.8)
96.0
(+2.8,+0.4)
89.7
(+1.7,+0.5)
92.3
(+2.3,+0.5)
92.5
(+1.2,+0.7)
89.1
(+2.5,-0.7)
94.3
(+2.0,+0.4)
85.2
(+14.8,+1.4)

我们使用单模型的验证集结果,来与 BERT/XLNet 进行比较。

GLUE - 测试集结果

数据集 - CoLA SST-2 MRPC STS-B QQP MNLI-m MNLI-mm QNLI RTE WNLI AX
评测指标 score matthews corr. acc f1-score/acc spearman/pearson corr. f1-score/acc acc acc acc acc acc matthews corr.
BERT Base 78.3 52.1 93.5 88.9/84.8 85.8/87.1 71.2/89.2 84.6 83.4 90.5 66.4 65.1 34.2
ERNIE 2.0 Base 80.6
(+2.3)
55.2
(+3.1)
95.0
(+1.5)
89.9/86.1
(+1.0/+1.3)
86.5/87.6
(+0.7/+0.5)
73.2/89.8
(+2.0/+0.6)
86.1
(+1.5)
85.5
(+2.1)
92.9
(+2.4)
74.8
(+8.4)
65.1 37.4
(+3.2)
BERT Large 80.5 60.5 94.9 89.3/85.4 86.5/87.6 72.1/89.3 86.7 85.9 92.7 70.1 65.1 39.6
ERNIE 2.0 Large 83.6
(+3.1)
63.5
(+3.0)
95.6
(+0.7)
90.2/87.4
(+0.9/+2.0)
90.6/91.2
(+4.1/+3.6)
73.8/90.1
(+1.7/+0.8)
88.7
(+2.0)
88.8
(+2.9)
94.6
(+1.9)
80.2
(+10.1)
67.8
(+2.7)
48.0
(+8.4)

由于 XLNet 暂未公布 GLUE 测试集上的单模型结果,所以我们只与 BERT 进行单模型比较。上表为ERNIE 2.0 单模型在 GLUE 测试集的表现结果。

ERNIE tiny

为了提升ERNIE模型在实际工业应用中的落地能力,我们推出ERNIE-tiny模型。

ernie_tiny

ERNIE-tiny作为小型化ERNIE,采用了以下4点技术,保证了在实际真实数据中将近4.3倍的预测提速。

  1. 浅:12层的ERNIE Base模型直接压缩为3层,线性提速4倍,但效果也会有较大幅度的下降;
  2. 胖:模型变浅带来的损失可通过hidden size的增大来弥补。由于fluid inference框架对于通用矩阵运算(gemm)的最后一维(hidden size)参数的不同取值会有深度的优化,因为将hidden size从768提升至1024并不会带来速度线性的增加;
  3. 短:ERNIE Tiny是首个开源的中文subword粒度的预训练模型。这里的短是指通过subword粒度替换字(char)粒度,能够明显地缩短输入文本的长度,而输入文本长度是和预测速度有线性相关。统计表明,在XNLI dev集上采用subword字典切分出来的序列长度比字表平均缩短40%;
  4. 萃:为了进一步提升模型的效果,ERNIE Tiny扮演学生角色,利用模型蒸馏的方式在Transformer层和Prediction层去学习教师模型ERNIE模型对应层的分布或输出,这种方式能够缩近ERNIE Tiny和ERNIE的效果差异。

Benchmark

ERNIE Tiny轻量级模型在公开数据集的效果如下所示,任务均值相对于ERNIE Base只下降了2.37%,但相对于“SOTA Before BERT”提升了8%。在延迟测试中,ERNIE Tiny能够带来4.3倍的速度提升 (测试环境为:GPU P4,Paddle Inference C++ API,XNLI Dev集,最大maxlen=128,测试结果10次均值)

model XNLI(acc) LCQCM(acc) CHNSENTICORP(acc) NLPCC-DBQA(mrr/f1) Average Latency
SOTA-before-ERNIE 68.3 83.4 92.2 72.01/- 78.98 -
ERNIE2.0-base 79.7 87.9 95.5 95.7/85.3 89.70 633ms(1x)
ERNIE-tiny-subword 75.1 86.1 95.2 92.9/78.6 87.33 146ms(4.3x)

ERNIE-Gen

基本介绍

  • ERNIE-GEN是针对通用生成任务的预训练模型,在4类生成任务的5个英文公开数据集上超过微软 MASS 和 UNILM、Facebook BART、谷歌 T5 等参数规模更大、预训练数据更多的竞品模型取得SOTA效果,在中文任务上较通用ERNIE模型提升显著。
  • 目前文心提供ERNIE-GEN中文模型。

原理介绍

ERNIE-GEN的核心技术和创新主要体现在以下三个方面:

  • 针对encoder-decoder 联合建模能力较弱的问题,提出了多片段-多粒度预训练采样策略,增强了 encoder 和 decoder 的交互。
  • 针对seq2seq 曝光偏差问题, 提出基于 Infilling 机制的 pretrain-finetune 框架, 并进一步引入噪声增强策略。
  • 考虑到人类的思考模式,提出将 span 预测引入生成预训练中,增强语义学习。

image.png

模型效果

image.png

ERNIE-Word

基本介绍

  • ERNIE-Word是利用百度研发的先进中文预训练语言模型ERNIE产出的静态词向量。
  • 其充分利用ERNIE编码的丰富语义信息,将ERNIE与词向量训练相结合,产出了收敛更快、效果更好的静态词向量,在多个公开的词向量内部任务评价上达到业界领先的效果。详细对比如下表所示。
  • ERNIE-Word在不同的NLP任务中均可以作为预训练词向量使用,有助于开发者提升模型效果,特别是浅层模型或训练数据量较少的情况下,建议使用预训练ERNIE-Word词向量

image.png

效果验证

  • 我们选择公开的review情感分析数据进行实验,其中训练集仅3950条,较适合验证在训练数据量较少的情况下,使用预训练ERNIE-Word词向量带来的提升。通过重复5次实验,结果如下:

image.png

  • 可以看到使用ERNIE-Word有较稳定的提升,在开发集上平均提升2.78%,在测试集上平均提升1.73%,因此建议开发者在训练数据量较少的情况下尝试使用预训练ERNIE-Word词向量。
  • 模型效果 image.png

ERNIE-Health

基本介绍

  • 为提升ERNIE在医疗文本领域的效果;在海量医疗文本数据上进行有效预训练,并且在现有ERNIE预训练策略上增加了针对医疗问答匹配任务与定制医疗词汇Mask策略,并在部分开源医疗数据进行了验证

image.png

  • 医疗实体识别:CCKS2019评测任务一,主要目标是对于给定的一组电子病历纯文本文档,任务的目标是识别并抽取出与医学临床相关的实体提及,并将它们归类到预定义类别,比如疾病、治疗、检查检验等。
  • 医疗问答匹配:CHIP2019评测任务二,主要目标是针对中文的疾病问答数据,进行病种间的迁移学习。具体而言,给定来自5个不同病种的问句对,要求判定两个句子语义是否相同或者相近。

ERNIE-Sentiment

基本介绍

  • 相比于通用预训练中主要关注事实型文本(如新闻、百科 等),情感分析更侧重于分析主观型文本中蕴涵的情感和观点,因此有必要专门面向情感分析研发情感预训练模型。
  • 为此,我们提出了基于情感知识增强的情感预训练算法 SKEP。此算法采用无监督方法自动挖掘情感知识,然后利用情感知识构建预训练目标,从而让机器学会理解情感语义。该方法被NLP会议ACL 2020收录,论文地址[SKEP: Sentiment Knowledge Enhanced Pre-training for Sentiment Analysis](https://arxiv.org/abs/2005.05635]。

ERNIE-Law

基本介绍

  • 为提升ERNIE在法律文本领域的效果,我们基于通用ERNIE训练了法律领域ERNIE;
  • 法律文本一般可分为刑事类和民事类两大类,因此我们分别训练了刑事法律模型(ERNIE_Law_penal)与民事法律模型(ERNIE_Law_civil);
  • 其相关训练与预测性能指标与ERNIE-Base相同。
  • 在法律模型的训练过程中,我们在通用ERNIE的基础上新增多粒度案由分类预训练任务等,进一步提高了ERNIE在法律文本领域的效果。

效果验证

  • 模型在评测数据上效果如下:

image.png

  • 罪名预测:CAIL2018评测任务一
  • 法条推荐:CAIL2018评测任务二

image.png

  • CJRC民事领域:CAIL2019评测任务一(阅读理解)选取民事领域(domain=civil)且qa类型非是否类语料部分

ERNIE-IE

基本介绍

ERNIE-IE预训练模型将人工构造的大规模知识图谱中蕴含的知识注入ERNIE预训练模型,使模型不仅可以学习到文本中蕴含的语义信息,还可以记住更多的事实知识,提高ERNIE预训练模型对知识的敏感度,在知识类任务上获得显著收益

原理介绍

  1. 为了使得ERNIE可以学习到图谱中的结构化信息和实体语义信息,我们将采样的的图谱子图序列化为文本,生成对应的的Mask矩阵和相对位置矩阵(以便控制ERNIE学习结构信息),共有两类隐式图(二叉树,线性表)

image.png

  1. 另外为了使模型获取文本信息和结构信息的对齐,我们设计了知识抽取任务将三元组与相关文本对齐
  2. 为了使得ERNIE可以更加清晰的学习结构信息,我们设计了双向相对位置编码及层次编码,使模型可以更清晰的学习知识

模型效果

image.png

ERNIE-ErrorCorrection

基本介绍

  • 文本错误在人们的日常工作中是常见,有效识别和纠正这些错误,对于理解语言非常重要;ERNIE-ErrorCorrection基于大规模预训练模型ERNIE强大的语言理解能力,创新性的引入了针对文本纠错场景的训练任务和特征,在多个纠错任务上效果显著

原理介绍

  • ERNIE-ErrorCorrection
  • 基于大规模预训练模型ERNIE强大的语言理解能力;设计了文本纠错预训练任务(对训练样本中人为引入字音字形相近的错误或者错误表述,使模型进行纠错恢复);除此之外,我们还设计了针对纠错任务的字音字形特征,进一步提升模型的文本纠错能力

模型效果

image.png

ERNIE使用

  • ernie网络配置超参数说明

image.png

  • 不同版本ERNIE建议的batch_size大小

    • 以v100机器为例,不同版本ernie所推荐的最大batch_size如下所示。

image.png