文章目录
ERNIE
- ERNIE: Enhanced Representation through Knowledge Integration (Baidu)
贡献:通过实体和短语mask能够学习语法和句法信息的语言模型,在很多中文自然语言处理任务上达到state-of-the art。
方法:与bert类似
训练数据集:中文维基百科,百度百科,百度新闻,百度贴吧
参数: L = 12,H = 768,A = 12 (BERT BASE)
实体级别的Mask
人名,地名,专有名词等都可以作为实体。
下图可以看出,a series of是一个短语,那么就要连续一起mask。后面的也是一样。
为什么只是mask而没有把实体作为输入,预测实体输出?原因就是实体的种类太多了,OOV,准确率不高。
不同级别的mask(单字、实体、短语)
其他细节
-
中文繁体->简体
-
英文大写->小写
-
词表大小17964
Dialog embedding
输入层使用多轮对话修改NSP任务(random replace 构造负样本)
与bert对比
ERNIE 1.0 做了什么
- 更多的中文语料语料
- 实体级别的连续Mask——>改变了训练Task。改变了训练的任务。
- 能否通过重新设计Task提升效果?
ERNIE 2.0
ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding (Baidu)
贡献:
- 多任务持续学习预训练框架 ERNIE 2.0
- 构建三种类型的无监督任务,训练模型并刷新GLUE
- Fine-tuning code & English model
数据更多: Reddit 搜索数据等
参数与BERT一致
整体框架
连续多任务学习
-
不遗忘之前的训练结果
-
多任务高效的进行训练
-
使用上一任务的参数,并且新旧任务一起训练
-
将每个任务分成多次迭代,框架完成不同迭代的训练自动分配
多任务训练
Sentence level loss & word level loss
每个任务有独立的loss function, sentence task 可以和word task 一起训练。
模型结构