Ernie

Github:https://github.com/PaddlePaddle/ERNIE

1. ERNIE 1.0

ERNIE 1.0:https://arxiv.org/pdf/1904.09223.pdf

Bert 通过 Basic-Level Masking 来学习单词或字的表征,不同的是,Ernie 使用的是 phrase-level strategy 和 entity-level strategy。将一个 phrase 或者 entity (人名,地名,组织机构名,产品等名词) 作为一个整体掩码。

例如:对 “Harry Potter is a series of fantasy novels written by J. K. Rowling” 掩码时,Bert 和 Ernie 的区别如下图:

通过这种方式,使得模型在训练过程中隐性学到知识依赖,更长语义依赖。Basic-Level Masking、Phrase-Level Masking、Entity-Level Masking 掩码区别:

2. ERNIE 2.0

ERNIE 2.0:https://arxiv.org/pdf/1907.12412.pdf

在 Ernie 2.0 论文中提到,预训练模型通常都是通过训练语料中词和句子的共现来进行学习。但是,像词法、语法、语义信息对于模型来说也是非常有价值的内容。比如:

  1. NER 中的人名、地名、组织名中可能也会包含一些概念信息 (conceptual information),
  2. 句子的顺序和近似等信息能够使得模型学习到结构化的表征 (structure-aware representations),
  3. 文档级的相似度,句子间的话语关系(discourse relations among sentences) 使模型学习到语义的表征(semantic-aware representations)。

为了能够使得模型学习到上面提到的这些有价值的信息,论文中提出了一种:连续预训练学习框架,该框架使得模型能够增量式的在不同的雨预训练任务上进行学习。

简单讲 Ernie 2.0 主要做了以下两件事情:

1. 提出一种能够进行增量训练的连续预训练框架
2. 提出 3 种不同的训练任务用于帮助模型去获得前面提到的词法、语法、语义等层面的信息

下图为 3 种不同的任务,以及具体的预训练任务:

从这张图,我们可以看到,Ernie 2.0 的输入会将 Token Embedding、Position Embedding、Sentence Embedding、Task Embedding 相加之后送入后续网络进行上下文特征提取。

下图为 Ernie 2.0 Framework:

  1. 先根据大数据和先验知识构建一系列的预训练任务(左下角)
  2. 进行增量式的连续学习
  3. 预训练模型在具体任务数据集上进行微调用于下游任务

这个增量式的学习,论文中共提到了 3 种 方法,如下图:

这三个方法,我的理解是:

  1. Sequential Multi-task Learning:第一阶段 Task1 先进行训练,第二阶段 Task1、Task2 在 Task1 学习参数基础上进行训练,同时会存在多个训练任务
  2. Multi-taks Learning:应该是 Task1、Task2 … Taskn 同时训练
  3. Continual Learning:应该 Task1 训练完成之后,Task2 在 Task1 学习参数基础上进行训练,同时只有一个任务在训练

论文中还提到,输入之后需要进行上下文的编码,这部分网络可以使用循环神经网络,也可以使用基于自注意力机制的深度 transformer 网络。

另外,多任务的训练,就需要进行多任务损失的计算,Ernie 2.0 使用了 sentence-level 损失和 token-level 损失,Bert 的 MLM 就是 token-level 损失,NSP 就是 setence-level 损失。

关于 Ernie 2.0 三种预训练任务的细节可以论文中查看。

3. ERNIE 3.0

ERNIE 3.0:https://arxiv.org/pdf/2107.02137.pdf

Ernie 3.0 中主要了两件事:

  1. 自编码模型适合解决 NLU 任务,自回归模型适合解 NLG 任务,Ernie 3.0 将两者融合,使得一个模型通过 zero/few shot learning 或者 fine tuning 就能够同时兼顾这两方面的任务
  2. Ernie 3.0 时一个包含了 10 billion 参数的大型预训练模型,并且该模型在 NLU 和 NLG 两方面都得到了极好的成绩

Ernie 3.0 的框架:

  1. 将大量的文本数据和知识进行编码
  2. 送到 Universal Representation 网络进行通用的信息,论文提到这一层用 Transformer-XL 网络
  3. 接下来将提取到的通用信息用于 Task-spectific Representation 网络学习,这一层包含 NLU、NLG 任务的两个 Transformer-XL 网络
  4. 最后,经过 fine tuning、zero-shot、few-shot learning 用于下游任务

在 Ernie 3.0 中论文中设计了一些用于网络连续学习的预训练任务,部分任务和 Ernie 2.0 相同,任务主要包含 3 类:

  1. Word-aware Pre-training Tasks
  2. Structure-aware Pre-training Tasks
  3. Knowledge-aware Pre-training Tasks

具体任务描述,可以参考论文中的细节。

未经允许不得转载:一亩三分地 » Ernie
评论 (0)

3 + 3 =