ERINE系列论文解读

news/2024/7/19 10:26:12 标签: 自然语言处理, 深度学习, transformer

ERNIE3.0论文解读 -潘登同学的NLP笔记

文章目录

    • ERNIE3.0论文解读 -潘登同学的NLP笔记
  • 从ERNIE 1.0开始
    • 知识集成
    • 模型架构
    • 数据规模
    • 预训练任务
  • 到ERNIE 2.0
    • 预训练任务
    • 模型结构
    • 与Bert的比较
  • 再到ERNIE3.0
    • 模型总览
    • 预训练任务
    • 实验结果
      • fine-tune实验

在这里插入图片描述

从ERNIE 1.0开始

ERINE 1.0的核心思想是只是融合,采用的是mask整个完整的实体

  • 核心:knowledge masking strategy,包括entity-level策略和phrase-level策略。也即是命名实体的masking(例如 J. K. Rowling三个词组成一个人名)和短语的masking(例如a series of, a kind of, kick the bucket)。
  • 文章的要点:knowledge masking strategies – 知识掩码策略
  • 这样在训练的时候,是一个phrase或者entity一起被掩码,而不是其中的一个词或者一个字。这样的话,phrases或者entities的先验知识就相对容易被学习到了。(例如Harry Potter和J. K. Rowling之间的关系)
  • 更进一步:ERNIE是隐含地自主学习knowledge以及长距离语义依赖,例如实体之间的关系,一个实体的属性,以及一个事件的类型,来指导词嵌入的学习。这样就可以更好的学习到易泛化且易改造的模型。

原句子:哈尔滨是黑龙江的省会,国际冰雪文化名城。

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

和GPT, BERT以及XLM一致,ERNIE也是采用多层Transformer 的Encoder部分作为基本构造模块。因为只需要Transformer的Encoder部分,该模块有如下优势:

  1. 高速并行化的矩阵乘积运算,不存在类似LSTM/GRU等的所谓auto-regression结构(前一个hidden state计算之后,才能计算后一个hidden state);
  2. Multi-head self-attention mechanism 可以在多个维度,更灵活的对词和词之间的关系进行建模,捕捉语法语义的依赖关系;

对于中文数据,ERNIE是基于character作为基本单位,并使用了Google的Yonghui Wu的WordPiece来切割中文句子

每个句子的第一个token是填充符号[CLS]。一个token的输入表示,就包括了对如下三个向量的求和:

  • Token embedding (near randomly initialized);
  • Segment embedding;
  • Position embedding;

知识集成

ERINE 1.0提出来一种多阶段知识masking的策略,来继承phrase/entity知识到语言表征学习。

  • 基本层面的masking。
    • 在训练阶段,随机mask 15%的基本语言单元(例如英文中的word,中文中的character)。之后,把句子中的其他部分作为输入,通过训练一个Transformer,来预测被掩码的词。注意的是,这里的Transformer就包括了Encoder-attention-Decoder部分了!并且Decoder的时候,还是auto-regression的架构(解码速度会比non auto-regression的架构慢很多)
    • 基于这一次masking,我们可以得到一个基本的 字向量表示(其用处在哪里?)。缺点在于,因为是随机mask的,高级别的语义知识难于被完全建模出来。
  • 短语级别masking。
    • 英文的话:使用词汇分析以及chunking工具来获取句子中短语的边界。中文则是依赖于和语言相关的分词工具来获取word/phrase的信息。当识别出来phrase/entity之后,我们是随机mask掉phrase或者entity中的所有的characters。这个时候,短语级别的知识就被嵌入到了character 表示中了。
  • 命名实体级别masking。
    • 命名实体包括了人名,地名,机构名,产品名等。和短语级别masking类似,这里也是基于已有的NER,词表等工具,找出句子中的命名实体,然后随机把整个命名实体mask掉。

模型架构

仿照BERT的模型规模。ERNIE使用了12层编码层(Transformer的Encoder Layer),768维度的隐层,以及12个注意力头。

数据规模

中文wikipedia – 21M句子;百度百科-51M句子;百度新闻-47M句子;百度贴吧-54M句子。

繁体转简体,大写转小写,一共有17,964个unicode character。注意,这个数字其实非常重要。

预训练任务

  • 自然语言推理,Cross-lingual Natural Language Inference (XNLI) corpus

  • 语义相似度, Large-Scale Chinese Question Matching Corpus (LCQMC),主要是判断两个句子是否有相同的intention 意图(二元分类问题)。

  • 命名实体识别,MSRA-NER

  • 情感分类,ChnSentiCorp, 例如hotel, books,以及电脑领域。Positive/negative的分类。

  • 检索式QA,NLPCC-DBQA任务。

在这里插入图片描述

在这里插入图片描述

  • 可以看到,加入phrase-level和entity-level的mask策略,的确能带来一定的效果提升。

到ERNIE 2.0

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

在这里插入图片描述
.gif)]

预训练任务

此论文把预训练任务分成了三类,分别是:

  • word-aware,词汇 (lexical) 级别信息的学习
    • Knowledge Masking Task: 这包括了:knowledge masking,即对named entities,命名实体,如人名,地名,公司名,机构名等等的phrase-level的遮掩;这样的话,可以更好的捕捉相对完整的命名实体和上下文的关系;输入是一个句子,遮掩其中的若干个named entities,然后让预训练模型去预测这些被遮掩的phrases。类似于I live in New York. 然后mask得到[cls] I live in [mask] [mask]. [sep],经过transformer的encoder layers,去预测出来New York这个phrase。
    • Token-Document Relation Prediction Task一个单词是否属于一个segment(若干个句子组成的文章的片段、切片),背后的考量是那些频次比较大的单词,更能反应文章的主题等信息;输入是类似[cls] token [sep] segment [sep] 这样的结构,然后基于[cls]构造一个二分类的分类器,输出是二分类:判断token是否在segment中。segment来自一个document。
    • 还有就是Capitalization Prediction Task,即判定一个单词在一个文章中是否是大写的(首字母大写);输入是[cls] sentence [sep],输出是判断每个单词的大写的可能性0/1。
  • structure-aware,语法 (syntactic) 级别信息的学习
    • Sentence Reordering Task: 针对一个 paragraph (包含 M 个 segments),我们随机打乱 segments 的顺序,通过一个分类任务去预测打乱的顺序类别。
    • Sentence Distance Task:通过一个 3 分类任务,去判断句对 (sentence pairs) 位置关系 (包含邻近句子、文档内非邻近句子、非同文档内句子 3 种类别),更好的建模语义相关性。
  • Semantic-aware Tasks: 语义 (semantic) 级别信息的学习
    • Discourse Relation Task:通过判断句对 (sentence pairs) 间的修辞关系 (semantic & rhetorical relation),更好的学习句间语义。
      在这里插入图片描述

    • IR Relevance Task:信息检索的相关性方面的预训练任务,给定一个query和一个title (文档标题),然后执行一个三分类任务:0表示强相关,即有用户输入了query并点击title对应的url了(来自信息检索搜索引擎的log),1表示弱相关,即用户输入了query,并且title被展示给了用户,但是用户没有点击title;2表示不相关,即他们是完全无关的,随机构成的。输入[cls] query [sep] title [sep],然后经过encoder layers,之后基于[cls]的向量表示来构建多分类任务。

模型结构

在这里插入图片描述

都是采用的transformer encoder的结构(而且其中的层数,head 数等具有一定的一致性,例如都是有base版本和large版本);

上图中,对输入的token序列,进行了多种编码表示(四类):

  • token embedding,token的嵌入层;
  • position embedding,位置编码;
  • sentence embedding,区别句子的编码;(或者,区分query和title;区分question和passage);
  • task embedding,任务嵌入,不同的任务,具有不同的标签。

建立在transformer encoder之上,是三个“粒度“的预训练任务,从word-aware开始,到structure-aware,再到semantic-aware。

然后如下图所示,不同的”粒度“的损失函数的loss scores,可以叠加:
在这里插入图片描述

与Bert的比较

ERNIE2.0和bert的主要区别可以分为以下几个方面:

  • 预训练任务,ernie2.0明显更多一些预训练任务,特别是三个粒度的分类,涵盖了word, structure和semantic三个层级;
  • 预训练流程的不同,bert是continue learning,即一个预训练任务完成之后,可以进行下一个预训练任务,或者同时训练mlm和nsp。而ernie2.0则是逐次添加新的预训练任务,并且同步保持旧的预训练任务,从而实现一定程度的”联动“;
  • 效果上,ernie2.0更好。

在这里插入图片描述

上图是每个预训练任务所使用的具体的数据集合,可以看到前面四个数据集合,对应到了左边的五个预训练任务(红色大的矩形块);而最后两列的discourse relation和IR 相关性的任务都是(分别)只使用了最后两个数据集合。

英文与中文都有训练

  • 对于英文,一共有9个具体任务
    在这里插入图片描述

通常来说,NLP可以分为(分类)自然语言理解(NLU)和(生成)自然语言生成(NLG)。在NLU方面,时下相对流行的GLUE(General Language Understanding Evaluation)排行榜举例,其上集合了九项NLU的任务,分别是

  • CoLA(The Corpus of Linguistic Acceptability):纽约大学发布的有关语法的数据集,该任务主要是对一个给定句子,判定其是否语法正确,因此CoLA属于单个句子的文本二分类任务;
  • SST(The Stanford Sentiment Treebank),是斯坦福大学发布的一个情感分析数据集,主要针对电影评论来做情感分类,因此SST属于单个句子的文本分类任务(其中SST-2是二分类,SST-5是五分类,SST-5的情感极性区分的更细致);
  • MRPC(Microsoft Research Paraphrase Corpus),由微软发布,判断两个给定句子,是否具有相同的语义,属于句子对的文本二分类任务;
  • STS-B(Semantic Textual Similarity Benchmark),主要是来自于历年SemEval中的一个任务(同时该数据集也包含在了SentEval),具体来说是用1到5的分数来表征两个句子的语义相似性,本质上是一个回归问题,但依然可以用分类的方法做,因此可以归类为句子对的文本五分类任务;+ QQP(Quora Question Pairs),是由Quora发布的两个句子是否语义一致的数据集,属于句子对的文本二分类任务;
  • MNLI(Multi-Genre Natural Language Inference),同样由纽约大学发布,是一个文本蕴含的任务,在给定前提(Premise)下,需要判断假设(Hypothesis)是否成立,其中因为MNLI主打卖点是集合了许多不同领域风格的文本,因此又分为matched和mismatched两个版本的MNLI数据集,前者指训练集和测试集的数据来源一致,而后者指来源不一致。该任务属于句子对的文本三分类问题。+ QNLI(Question Natural Language Inference),其前身是SQuAD 1.0数据集,给定一个问句,需要判断给定文本中是否包含该问句的正确答案。属于句子对的文本二分类任务;
  • RTE(Recognizing Textual Entailment),和MNLI类似,也是一个文本蕴含任务,不同的是MNLI是三分类,RTE只需要判断两个句子是否能够推断或对齐,属于句子对的文本二分类任务;
  • WNLI(Winograd Natural Language Inference),也是一个文本蕴含任务,不过似乎GLUE上这个数据集还有些问题;
    在这里插入图片描述

下面的实验也证明了连续多任务是要比分开的多任务和一直的多任务要好的
在这里插入图片描述

  • 对于中文数据集也是9个

在这里插入图片描述

  • 机器阅读理解: Machine Reading Comprehension (MRC): CMRC
  • 命名实体识别:Named Entity Recognition (NER): MSRA-NER (Levow 2006).
  • 自然语言蕴含(推断)Natural Language Inference (NLI): XNLI (Conneau et al. 2018).
  • 情感分析 Sentiment Analysis (SA): ChnSentiCorp 4.
  • 语义相似度 Semantic Similarity (SS): LCQMC (Liu et al. 2018), and BQ Corpus (Chen et al. 2018).
  • 问答Question Answering (QA): NLPCC-DBQA 5.

再到ERNIE3.0

在这里插入图片描述

在过去的一两年里,预训练语言模型的一个重要趋势是其模型规模不断扩大,这导致预训练的困惑度降低,在下游任务中表现更好。Megatron-LM,有10亿个参数,被提出用于语言理解,使用简单但高效的层内模型并行方法,在几个数据集上取得了最先进的结果。T5[1]以100亿个参数探索了预训练模型的极限,但很快这个记录就被拥有1750亿个参数的GPT-3模型[2]打破了,该模型在few-shot甚至zero-shot的设置下具有良好的性能。不久之后,Switch-Transformer被提出,成为世界上第一个万亿参数的预训练语言模型。

然而,这些具有数千亿参数的大规模预训练语言模型是在普通文本上训练的。例如,1750亿参数的GPT-3是在具有570GB过滤文本的Common Crawl语料库上训练的。这样的原始文本缺乏对语言知识和世界知识等知识的明确表述。此外,大多数大规模的模型是以自回归的方式进行训练的,但是[6]显示,这种模型在适应下游语言理解任务时,表现出较差的传统微调性能。

在这项工作中,为了解决单一自回归框架带来的问题,并探索大规模参数的知识增强预训练模型的性能,我们提出了一个名为ERNIE 3.0的统一框架,通过融合自回归网络和自编码网络,在由纯文本和大规模知识图谱组成的4TB语料库上训练大规模知识增强模型。提出的ERNIE 3.0可以通过zero-shot学习、few-shot学习或微调来处理自然语言理解任务和自然语言生成任务。此外,提议的框架支持在任何时候引入各种定制任务。这些任务共享相同的编码网络,并通过多任务学习进行训练。这种方法使不同任务之间的词汇、句法和语义信息的编码成为可能。此外,当给定一个新任务时,我们的框架可以根据以前的训练参数逐步训练分布式表示,而不需要从头开始训练。

模型总览

在这里插入图片描述

  • 通用表示模块
    ERNIE 3.0使用多层Transformer-XL作为骨干网络,就像其他预训练模型如XLNet、Segatron和ERNIE-Doc一样,其中Transformer-XL与Transformer相似,但引入了一个辅助递归记忆模块以帮助对长文本建模。我们把这个骨干称为通用表示模块,它在所有的任务范式中都是共享的。谚语说,Transformer可以通过self-attention来捕捉序列中每个token的上下文信息,并生成一个上下文嵌入的序列。显然,Transformer模型的规模越大,其捕捉和存储各种不同层次的语义信息的能力就越强。因此,ERNIE 3.0设置了规模较大的通用表示模块,通过学习不同范式的各种预训练任务,使模型能够有效地从训练数据中捕获通用词汇和句法信息。而需要特别注意力的是,记忆模块只对自然语言生成任务有效,同时控制注意力mask矩阵。
  • 特定任务的表示模块
    与基本共享表示模块类似,特定任务表示模块也是一个多层Transformer-XL,用于捕捉不同任务范式的顶层语义表示。ERNIE 3.0将特定任务的表示模块设置为可管理的规模,即基础模型规模,而不是多任务学习中常用的多层感知器或浅层Transformer,这将产生三个明显的好处,第一是基础网络比多层感知器和浅层Transformer有更强的捕捉语义信息的能力;第二是具有基础模型规模的特定任务网络使ERNIE 3. 0能够在不大幅增加大规模模型参数的情况下区分不同任务范式的顶层语义信息;最后,特定任务网络的模型规模比共享网络小,在只对特定任务表示模块进行微调的情况下,将导致大规模预训练模型的可实现的实际应用。ERNIE 3.0构建了两个特定任务的表示模块,即NLU特定表示模块和NLG特定表示模块,其中前者是一个双向建模网络,而后者是一个单向建模网络。

预训练任务

  • 单词意识的预训练任务
    • 知识mask语言模型 ERNIE 1.0提出了一个有效的策略,通过知识集成来加强表示,即知识集成mask语言模型任务。它引入了短语mask和命名实体mask,预测整个被mask的短语和命名实体,以帮助模型学习本地语境和全球语境中的依赖信息。
    • 文档语言模型 生成性预训练模型通常利用传统的语言模型(如GPT,GPT-2)或seq2seq的语言模型(如BART,T5,ERNIE-GEN)作为预训练任务,后者在网络上进行辅助解码器结构训练。ERNIE 3.0选择了传统的语言模型作为预训练任务,以降低网络的复杂性,提高统一预训练的效果。此外,为了使ERNIE 3.0的NLG网络能够对较长的文本进行建模,我们引入了ERNIE-Doc中提出的增强递归记忆机制,该机制通过将转移一层向下的递归改为同层递归,可以对比传统递归transformer更大的有效语境长度进行建模。
  • 结构感知的预训练任务
    • 句子重排 句子重排任务是在ERNIE 2.0中引入的,目的是训练模型通过重组排列的句段来学习句子之间的关系。在长度上,一个给定的段落在预训练中被随机分词成1到m个片段,所有的组合被随机的排列组合打乱。然后,预训练的模型被要求重组这些被排列的句段,被建模为一个k类分类问题,k为排列的总个数
    • 句子距离 句子距离任务是传统的下一句预测(NSP)任务的延伸,被广泛用于各种预训练模型中,以提高其学习句子级信息的能力,它可以被建模为一个3类分类问题。这三类分别代表两个句子是相邻的,不相邻但在同一个文档中,以及来自两个不同的文档。
  • 通用知识-文本预测 为了将知识纳入一个预训练语言模型,我们引入了通用知识-文本预测(UKTP)任务,它是知识mask语言模型的一个延伸。知识mask语言模型只需要非结构化文本,而通用知识-文本预测任务则需要非结构化文本和知识图谱。下图说明了通用知识-文本预测任务。给出一对知识图谱中的三元祖和百科全书中的相应句子,我们随机mask三元祖中的关系或句子中的单词。为了预测三元祖中的关系,模型需要检测头部实体和尾部实体的提及情况,并确定它们在相应句子中的语义关系。这个过程的本质与关系抽取任务中的远端监督算法相似。远端监督算法认为,如果两个实体参与了某种关系,任何包含这两个实体的句子都可能表达这种关系。同时,为了预测相应句子中的词,该模型不仅考虑了句子中的依赖信息,还考虑了三元祖中的逻辑关系。具体来说,获得一个三元祖和这个对应句子的程序如下:从百科全书中给定一个文档,我们首先在知识图谱中找到头部实体或尾部实体被提及的候选三元祖,然后从候选三元祖中选择头部实体和尾部实体被提及的句子在该文档中相同的句子。

在这里插入图片描述

ERNIE 3.0通过知识mask语言模型来训练NLU网络,以提高捕获词汇信息的能力;通过训练句子重排任务和句子距离辨别任务来加强捕获句法信息的能力;最后通过通用知识-文本预测任务来优化模型,以提高知识记忆和推理能力。同时,ERNIE 3.0用文档语言模型任务训练NLG网络,以实现各种生成风格。

  • 预训练过程
    • 预训练算法: 渐进式训练最初是为了提高稳定性而提出的,它从一个高效的小模型开始,逐渐增加容量。最近的研究利用这一范式来加速模型训练。随着大规模预训练的不断推进, 其巨大的计算开销成为进一步开发更强大模型的主要负担. 渐进式训练的初步应用已经在transformer预训练中得到了体现。BERT设计了一个两阶段的训练,在前90%的更新中减少序列长度。也从一个小值到满值逐步线性增加批次量。也注意到,相对于输入规模,分阶段改变正则化因子可以加快训练网络的速度。为了进一步提高训练过程的收敛速度,我们提议通过逐步同时增加包括输入序列长度、批次大小、学习率和dropout rate在内的训练因子,以更全面、更平稳的方式调整训练正则化因子。事实上,Transformer模型采用学习率预热策略来提高训练稳定性是很常见的,我们改进的渐进式学习策略与现有策略是兼容的。
    • 预训练数据: 为了保证ERNIE 3.0预训练的成功,我们构建了一个大规模、多种类、高质量的中文文本语料库,存储量达4TB,分11个不同的类别。据我们所知,与CLUECorpus2020(100GB)、中文多模态预训练数据(300GB)、CPM-2使用的WuDaoCorpus2.0(2.3TB中文数据和300GB英文数据)和PanGu Corpus(1.1TB)相比,这是目前最大的中文预训练语料。
      • 重复数据删除是在不同的粒度上进行的,包括字符级、段落级和文档级。在字符层面,我们用一个单一的字符替换连续的相同字符(即空格、制表符、叹号、问号等)。在段落层面,我们用一个单一的段落替换两个由N个句子组成的相同的连续段落,其中0<N<100。上述两种重复数据删除策略对于ERNIE 3.0生成不重复的内容至关重要。最后,我们采用Message Digest Algorithm5(MD5),通过比较每个文档中最长的前3个句子的MD5之和来过滤重复的文档。
      • 少于10个单词的句子被过滤掉,因为它们可能是有问题的或不完整的句子,包含的语义信息有限,无法用于模型预训练。
      • 我们进一步使用正则表达式进行句子分词,并基于百度的单词分词工具进行单词分词。这有助于ERNIE 3.0在预训练期间学习更好的句子边界和命名实体知识。
      • 然后,每个数据集都要乘以用户定义的乘数,以增加截断数据后的数据多样性,用于NLU-网络预训练。
    • ERNIE 3.0的通用表示模块和特定任务表示模块都使用Transformer-XL结构作为骨干。对于通用表示模块,我们采用了一个具有48层、4096个隐藏单元和64个头的结构。对于特定任务的表示模块,我们采用12层、768个隐藏单元和12个头的结构。通用表示模块和特定任务表示模块的总参数为100亿。使用的激活函数是GeLU。上下文的最大序列长度和语言生成的记忆长度分别设置为512和128。所有预训练任务的总批次大小被设置为6144。我们使用Adam,学习率为1e-4,β1=0.9,β2=0.999,L2权重衰减为0.01,学习率在前一万步中进行预热,学习率线性衰减。在前一万步中,我们还使用渐进式学习来加速预训练初始阶段的收敛。该模型用384块NVDIA v100 GPU卡训练了总共3750亿个token,并在PaddlePaddle框架上实现。凭借在[48, 49]中使用的参数分片,我们设法减少了我们的模型的内存使用,并解决了模型的总参数超过单个GPU卡的内存的问题。

实验结果

fine-tune实验

在这里插入图片描述

在这里插入图片描述

  • 自然语言理解任务
    • 情感分析。nlpcc2014-sc 6, se-absa16_phns 7, se-absa16_came, bdci2019 8. 情感分析是一项分类任务,旨在确定一个句子是积极的、消极的还是中性的。我们考虑了来自不同领域的4个数据集,包括购物(NLPCC2014-SC)、电子(SE-ABSA16_PHNS、SE-ABSA16_CAM)和金融(BDCI2019)。ERNIE 3.0在所有四个数据集上都实现了大幅改进。
    • 观点提取。COT-BD , COT-DP , COT-MFW .情感分析任务类似,意见提取要求模型对句子的意见进行挖掘。我们使用来自中国客户评论(COTE)的3个子数据集。实验结果表明,ERNIE 3.0也以很大的优势超过了目前的SoTA系统。
    • 自然语言推理。xnli , ocnli , cmnli . 自然语言推理的任务是确定一个给定的前提是否在语义上包含另一个假设。我们使用OCNLI和XNLI数据集。结果表明,ERNIE 3.0在两个数据集上分别取得了3.9和0.7的准确性改进。在XNLI数据集上的改进相当有限,这可能是由于数据集的质量较差,因为XNLI数据集是从英语翻译过来的。
    • Winograd Schema Challenge CLUEWSC2020 Winograd Schemas挑战赛。WSC2020是一项解决拟态问题的任务,要求模型决定句子中的代词和名词是否共指,ERNIE 3.0取得了25.7分的重大改进。
    • 关系抽取。FinRE , SanWen .关系抽取的任务是识别不同实体如人和组织之间的关系。我们考虑了FinRE和SanWen–两个分别用于金融新闻和中国文学的关系抽取数据集。ERNIE 3.0比以前的SoTA模型平均高出2.46分。
    • 事件提取。CCKS2020 9.与关系抽取类似,事件提取任务的目的是识别事件实体并将其归入不同的类别。我们选择了CCKS2020–一个金融领域的文本级事件主体提取数据集。ERNIE 3.0在测试集上有3点改进。
    • 语义相似性。AFQMC , LCQMC , CSL , PAWS-X , BQ Corpus .语义相似性是一项经典的NLP任务,它决定了各种术语如单词、句子、文档之间的相似性。在这项工作中,我们专注于句子层面的相似性任务。我们在不同领域的几个数据集上测试ERNIE 3.0,包括AFQMC、LCQMC、CSL、PAWS-X和BQ。实验结果表明,ERNIE 3.0的性能明显优于基线模型。特别是在参数量相当的情况下,ERNIE 3.0在LCQMC数据集上以1.2分的优势超过了CPM-2。
    • 中文新闻分类。Tnews 10, iflytek , thucnews 11, cnse , cnss .我们还对ERNIE 3.0的中文新闻分类进行了评估。我们考虑了6个数据集,包括新闻标题(TNEWS)、应用描述(IFLYTEK)和新闻故事(THUCNEWS、CNSE、CNSS)。在不同类型的分类任务下,ERNIE 3.0能够持续实现更好的准确性,平均提高2.8分。
    • 闭卷问答。NLPCC-DBQA 12, CHIP2019, cMedQA , cMedQA2 , CKBQA 13, WebQA 。闭卷问答的目的是直接回答问题,不需要任何额外的参考资料或知识。我们选择了一个一般的QA数据集NLPCC-DBQA和三个医学领域的数据集–CHIP2019、cMedQA和cMedQA2来测试ERNIE 3.0的能力。实验结果表明,ERNIE 3.0在所有的QA任务上都表现得更好,我们认为知识增强的预训练方法确实给闭卷的QA任务带来了好处。
    • 命名实体识别。CLUENER , Weibo , OntoNotes , CCKS2019 14. 命名实体识别是一项经典的NLP任务,对文本中的实体进行提取和分类。我们选择了广泛使用的OntoNotes、CLUENER、微博,以及一个特定领域的数据集CCKS2019。从结果来看,ERNIE 3.0在所有数据集上的表现都优于基线模型。
    • 机器阅读理解。CMRC 2018 , CMRC2019 , DRCD , DuReader , Dureader robust , Dureader checklist, Dureaderyesno 15, C3 , CHID 。我们全面评估了ERNIE 3.0在不同方面的机器阅读理解能力,包括跨度预测阅读理解(CMRC2018,DuReader,DRCD,DuReader检查表),多选阅读理解(C3,DuReader yesno),cloze和完成(CHID,CMRC2019),以及鲁棒性测试(Dureader robust)。在知识强化预训练的帮助下,ERNIE 3.0超越了基线模型,在所有类型的任务上都有明显的提升。更具体地说,ERNIE 3.0在5个跨度预测任务上实现了至少1.0分的EM改进,在多项选择任务上平均实现了0.89分的准确性改进。另外,在参数量相当的情况下,ERNIE 3.0在C3数据集上以0.6分的成绩超越了CPM-2。对于鲁棒性测试,ERNIE 3.0在具有过度敏感和过度稳定样本的测试集上也表现最好。
    • 法律文件分析。CAIL2018-任务1 , CAIL2018-任务2 .接下来,我们测试ERNIE 3.0在文档分析上的能力,我们选择了两个特定领域的法律任务。这两个来自CAIL2018的数据集都是多标签的文档分类任务。ERNIE 3.0的性能优于ERNIE 2.0,并有明显的增长。
    • Cant的理解。DogWhistle Insider, DogWhistle Outsider. Cant,也被称为双关语,是人类的一种高级语言用法。然而,机器要理解这种类型的语言是相当困难的。我们在DogWhistle–一个基于Decrypto游戏的数据集上测试了ERNIE 3.0的Cant理解能力。该模型需要在相应的cant的指导下选择正确的答案。ERNIE 3.0得到了最好的结果,并显示了它在理解更难的语言方面的潜力。
    • 文档检索。Sogou-log。文件检索的目的是与给定的查询文件相匹配。我们评估了ERNIE 3.0在搜狗日志上的检索能力。按照以前的工作,我们报告了NDCG@1在测试-相同测试集上的表现和MRR在测试-原始测试集上的表现,ERNIE 3.0优于CPM-2。

在这里插入图片描述

  • 自然语言生成任务:
    • 文本归纳。LCSTS 我们考虑大规模中文短文总结(LCSTS)数据集,它需要一个模型来理解文本并提炼关键信息以生成连贯的、信息丰富的总结。LCSTS是一个经典的中文文本摘要数据集,由200万个真实的中文短文组成,并附有来自新浪微博的简短总结。ERNIE 3.0取得了48.46%的Rouge-L得分,超过了参数量相当的CPM-2(11B)和目前的SoTA ProphetNet-zh。
    • 问题生成:KBQG 16, DuReader-QG 问题生成是机器阅读理解(MRC)的反向任务,它要求模型理解一份文件并根据给定的简短答案生成一个合理的问题。我们使用一套三个数据集,包括知识库问题生成(KBQG),两个名为Dureader和Dureader robust的MRC数据集。与基线相比,ERNIE 3.0在这三个数据集上的表现最好。
    • 闭卷答题。Matinf-QA .
    • 数学。Math23K。为了测试ERNIE 3.0执行简单算术运算的能力,我们考虑了Math23K数据集,该数据集包含23161个小学生的真实数学单词问题,有问题描述、结构化公式和答案。ERNIE 3.0经过微调,可以生成给定问题描述的结构化公式的后缀表达式,然后用Python eval()函数计算出最终答案(注意’[‘和’]‘应分别替换为’(‘和’)‘,同时’%‘应替换为’*0.01’以避免使用Python eval()函数解题失败)。这表明ERNIE 3.0是一个很好的数学求解器,与CPM-2的69.37%相比,它取得了75%的高精确度。
    • 广告生成。AdGen。我们考虑AdGen,它由来自中国电子商务平台的119K对广告文本和服装规格表组成。它要求模型生成一个长的广告文本,涵盖一件衣服的所有给定的属性-价值对。一个属性-价值对用冒号拼接,几个属性-价值对根据它们的段号用"|"顺序拼接起来。然后我们把结构化的属性-价值对字符串作为ERNIE 3.0的输入。结果表明,ERNIE 3.0能够通过从结构性输入中提取信息来生成连贯而耐人寻味的长篇广告文本,与CPM-2相比,BLEU-4提高了19.56%。
    • 翻译。WMT20-enzh。对于ERNIE 3.0,我们主要考虑对中文语料库进行预训练。为了测试它的多语言能力,我们扩大了我们的单词量,包括额外的10K英文子词。在经典的多语言数据集WMT20-enzh上,我们对ERNIE 3.0进行了微调,将英语翻译成中文。与mT5-xxLarge和CPM-2相比,ERNIE 3.0 17是最好的,呈现出卓越的多语言能力。
    • 对话生成。KdConv。接下来,我们对ERNIE 3.0在对话生成任务上进行评估。我们考虑了一个中国的多领域知识驱动的对话数据集,其中包含来自三个领域(电影、音乐和旅游)的4.5K对话。我们在上述三个领域的融合数据集上训练和测试ERNIE 3.0,只给出对话历史来生成当前语料。知识三要素被排除在输入之外,所以它适合于测试模型在预训练期间利用固有的知识来模拟多轮对话的能力。与基线相比,ERNIE 3.0的性能提高了很多,提高了8.1个百分点,我们认为知识图谱增强了预训练属性很多。

http://www.niftyadmin.cn/n/740127.html

相关文章

python 面向对象(进阶篇)

面向对象是一种编程方式&#xff0c;此编程方式的实现是基于对 类 和 对象 的使用类 是一个模板&#xff0c;模板中包装了多个“函数”供使用&#xff08;可以讲多函数中公用的变量封装到对象中&#xff09;对象&#xff0c;根据模板创建的实例&#xff08;即&#xff1a;对象&…

Python 面向对象(初级篇)

面向过程&#xff1a;根据业务逻辑从上到下写垒代码函数式&#xff1a;将某功能代码封装到函数中&#xff0c;日后便无需重复编写&#xff0c;仅调用函数即可面向对象&#xff1a;对函数进行分类和封装&#xff0c;让开发“更快更好更强...”面向过程编程最易被初学者接受&…

Python 资源大全中文版

我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理。awesome-python是 vinta 发起维护的 Python 资源列表&#xff0c;内容包括&#xff1a;Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习…

lisp 中望cad 选项卡_中望3D 2021 正式版发布,内核建模能力优化加速用户创新设计!...

官网&#xff1a;https://www.zwcad.com/2020年6月30日&#xff0c;中望软件自主研发的三维CAD/CAM一体化软件——中望3D正式发布了2021版&#xff0c;通过持续对底层算法的优化&#xff0c;进一步增强了中望3D2021的健壮性和稳定性&#xff0c;新版本同步改进了界面和操作流程…

Python--常用模块

random 模块随机&#xff1a;在某个范围内取到每一个值的概率是相同的import random # 随机小数 print(random.random()) # 0-1之内的随机小数 print(random.uniform(1, 5)) # 任意范围之内的随机小数# 随机整数 print(random.randint(1, 2)) # [1,2] 包含2在…

opencv 平面法向量_高中数学:平面向量数量积及其应用,三角形‘四心’模型...

【考试要求】1.理解平面向量数量积的含义及其物理意义&#xff1b;2.了解平面向量的数量积与向量投影的关系&#xff1b;3.掌握数量积的坐标表达式&#xff0c;会进行平面向量数量积的运算&#xff1b;4.能运用数量积表示两个向量的夹角&#xff0c;会用数量积判断两个平面向量…

lj245a引脚功能图_AT89S51单片机——2.引脚

常见的40引脚DIP(双列直插)&#xff0c;如下图所示。图 AT89S51引脚按功能分类&#xff1a;一、电源及时钟引脚1、电源引脚Vcc(40脚)&#xff1a;5V电源Vss(20脚)&#xff1a;数字地2、时钟引脚XTAL1(19脚)&#xff1a;输入端使用片内振荡器&#xff0c;应接外部石英晶体和微调…

python爬虫---requests库的用法

python爬虫---requests库的用法requests是python实现的简单易用的HTTP库&#xff0c;使用起来比urllib简洁很多因为是第三方库&#xff0c;所以使用前需要cmd安装pip install requests安装完成后import一下&#xff0c;正常则说明可以开始使用了。基本用法&#xff1a;requests…