UniLM解读

*************************************  https://blog.csdn.net/katrina1rani/article/details/110068578   ************************

 

 

 

 

 使用三种特殊的mask的预训练目标,从而使模型可以用于NLG  同时在NLU任务获得和和bert一样的效果。

 

网络设置

24层transformer   1024个hiddensize 16个attention heads

参数大小为330M

初始化为采用bert-large的参数初始化

 采用Gelu的激活函数

dropout比例为0.1

batch size为330

混合训练方式:

对于一个batch,1/3时间采用双向语言模型的目标,1/3的时间采用seqtoseq语言模型目标,最后1/3平均分配给两种单向学习的语言模型,

mask方式:

总体比例为15%,其中80%直接用mask替代,10%随机选择一个词替代,最后10%的情况用真实值。还有80%的情况是每次只mask一个词,20%的情况是mask调bigram或者trigram

attention控制,不同的训练方式,其关注的语境是不一样的

目标函数

单向语言模型   分别采取从左到右和从右到左的训练目标,采用上下三角信息不可见

双向语言模型    将M的值都置为0

序列到序列语言模型    左侧的序列属于编码阶段,右侧的序列属于解码阶段,以T1T2->T3T4T5举例说明,我们的输入就变成[SOS]T1T2[EOS]T3T4T5[EOS],T1和T2相互都能看到,并能看到两边的[SOS]和[EOS];而T4能看到[SOS]、T1、T2、[EOS]、T3及自己的信息。

 

三大优势

 

 1 三种不同的训练目标,网络参数共享

2  正是因为网络参数共享,使得模型避免了过拟合与某单一的语言模型,使得学习出来的模型更加general,根据有普适性

3  因为适用了seqtoseq的语言模型,使得其在能够完成呢过nlu任务的同时,也能够完成nlg任务

posted @ 2021-12-01 02:28  大大的海棠湾  阅读(262)  评论(0)    收藏  举报