目录
前言
一、ERNIE结构分析
二、预训练的结构
1.基于字的Pretraining
2.基于结构的Pretraining
3.基于知识的Pretraining
三、预训练的流程
1.Pipeline
2.实例
3.综述
四、总结
1.数据处理
2.模型参数
预训练模型,百度的ERNIE第三代。相比T5 10billion, GPT 175billion 还有清华的M6的100billion,它只有10billion个参数,并且效果在中文50多项NLP任务上,刷新了最好记录。重点关注中文预训练模型。
整个架构分为两个模块
1. Universal Representation Module, 负责提取语义特征(可以使用多层的transformer).在任何时候,这里权重都是共享。采用一个多层的transformer-XL作为backbone。
2.Task-specific Representation Modules,负责提取task-specific的语义特征,参数是从在执行task-specific任务上学习的。
Knowledge masked language modeling从ERNIE1.0开始就引用了知识融合。通过mask盖住短语与命名实体词。这样做可以让模型去学习上下文环境和全文环境的依赖关系信息
Document Language Modeling生成的预训练模型使用传统的模型如GPT GPT2或者序列到序列模型如BART T5 ERNIE-GEN, 后者需要一个可靠的解码结构。 此处使用的是传统的方法。除此外,介绍了一种名为ENhanced Recurrence Memory Mechanism 在ERNIE-Doc中,能够比传统recurrence tranformer兼容更长的文本。实现的方法是是改变高层到底层的recurrence变成同层的recurrence.
sentence reordering延续ERNIE2,目的是为了让模型去学习被打乱句子顺序的关系。一个自然段,被随机切分成1到m个片段,然后随机的打乱这些片段。然后模型要求去识别这些所有的组合,可以看作是一个k分类的问题
sentence distance 修改传统长度NSP为一个三分类:
两个句子是否相邻; 不相邻句子是否在同一个文章; 句子是否在不同文章
Universal Knowledge-text prediction(UKTP) 这个是知识词mask的延伸。 这里除了那些无结构化的知识词外,还需要知识图Graph.
一对输入
Mask:随机的盖住三元组的关系与句子中的字 。
这样做的目的,是为了预测三元组的关系,模型需要识别出来三元组中实体的头和尾,然后再确定他们的在对应句子中的语义关系。处理的本质和distant supervision 算法在关系抽取任务中类似。distant supervision中,如果两个实体存在一种关系,任何包含这两个实体的句子都很大概率有这种关系。与此同时,在与之相对应的句子中预测字词,模型不仅需要考虑句子中的依存关系,也要考虑三元组的逻辑关系。
一个从百科给出的句子,
1. 首先去寻找知识图中的候选三元组,这些三元组中实体的头或者尾是文章的标题。
2.然后从候选三元组中选出一些,方法是选择那些实体头和尾都出现在文中同一个句子。
ERNIE3.0训练NLU网络是通过知识掩盖的方法,去提升模型在学习词汇信息; sentence reordering
和sentence distance是为了学习语法信息;最后UKTP是提升模型的记忆能力和推理能力。另外ERNIE3.0 是通过文本语言模型来训练NLG网络
训练数据:很多
数据的处理数据做的处理:
1)去重
2)字数少于10个的句子去掉
3)分词用百度自己的工具,去获得命名实体等,从而mask
总共375billion tokens, 使用了384块 v100显卡