1.ERNIE1.0

ERNIE(Enhanced Representation through Knowledge Integration) 是百度基于BERT开发的NLP模型。ERNIE使用了更多的语料,除维基百科等数据集外,还使用了中文维基百科,百度百科,百度新闻,百度贴吧数据集。该模型的参数: L = 12,H = 768,A = 12 (BERT BASE)。

ERNIE实现了实体级别的Mask,实体级别的连续Mask改变了训练Task,而BERT是基于单字的Mask,其区别如下图所示:

nlp常见面试问题 nlp intern_Mask


ERNIE的实体级别的Mask包括单字、实体和短语等三个级别,实现字粒度的输入:

nlp常见面试问题 nlp intern_人工智能_02


使用不同级别的Mask效果如下:

nlp常见面试问题 nlp intern_Mask_03


ERNIE还采用了Dialog embedding,输入层使用多轮对话修改NSP任务(random replace 构造负样本)

nlp常见面试问题 nlp intern_自然语言处理_04

2.ERNIE2.0

2.1 整体框架

随后百度使用Reddit和搜索数据扩充了数据集,提出多任务持续学习训练框架并构建三种类型的无监督任务,但保持参数与BERT一致,建立ERNIE2.0。其整体框架如下:

nlp常见面试问题 nlp intern_nlp常见面试问题_05


1)连续多任务学习不遗忘之前的训练结果;多任务高效的进行训练;使用上一任务的参数,并且新旧任务一起训练;将每个任务分成多次迭代,框架完成不同迭代的训练自动分配

nlp常见面试问题 nlp intern_nlp常见面试问题_06

2)多任务训练

Sentence level loss & word level loss;每个任务有独立的loss function, sentence task 可以和word task 一起训练

nlp常见面试问题 nlp intern_自然语言处理_07

2.2 模型结构

ERNIE2.0基于三种类型的无监督任务进行训练,其模型结构如下:

nlp常见面试问题 nlp intern_nlp常见面试问题_08


1)词法级别预训练任务(MASK LM)

Knowledge Masking Task(ERNIE 1.0):学习当前和全局依赖

Capitalization Prediction Task:大写用于专名识别等,小写也可用在其他任务

Token-Document Relation Prediction Task:token存在段落A中是否token会在文档的段落B中出现

2)语言结构级别预训练任务(NSP)

Sentence Reordering Task:文档中的句子打乱(分成1到m段,shuffle),识别正确顺序

Sentence Distance Task:句子间的距离,3分类任务
0 :相连的句子
1:同一文档中不相连的句子
2:两篇文档间的句子

3)语法级别预训练任务(NSP)

Discourse Relation Task:计算两句间的语义与修辞关系IR

Relevance Task:短文本信息检索关系(百度的核心)
Query-title (搜索数据)
0:搜索并点击(需求,服务业务场景)
1:搜索并展现(先验,相关性)
2:无关,随机替换(不想关)

2.3 连续多任务学习的效果

nlp常见面试问题 nlp intern_nlp常见面试问题_09


参考资料

[1]GLUE [2]ERNIE 1.0

[3]ERNIE 2.0

[4]ERNIE源码