公司项目上有个文本生成的任务,难度比较大,花了相对不短的时间去熟悉这些模型,当然也没花太久,大概也就是读了下论文,以及网友们的一些介绍,现在记录总结下,后续应该会去阅读以及改写相关源码,便于做预训练以及fine-tune。
T5(text-to-text transfer transformer)
论文地址
万物皆可text的感觉,先看一下下面的图:
在上图中,包含了四个任务,机器翻译、文本分类、相似度得分、文本生成。个人感觉T5主要是作者依托公司强大的计算能力,进行各种各样的对比实验,得出一系列的结论。
模型介绍
注意力机制
采用的注意力机制,目前注意力机制有以下的几种:
假设有
X
X
X:
x
1
,
x
2
,
x
3
,
x
4
,
x
5
,
x
6
x_1,x_2,x_3,x_4,x_5,x_6
x1,x2,x3,x4,x5,x6,mask后作为模型输入的是
x
1
,
[
m
a
s
k
]
,
x
3
,
[
m
a
s
k
]
,
[
m
a
s
k
]
,
x
6
x_1,[mask],x_3,[mask],[mask],x_6
x1,[mask],x3,[mask],[mask],x6,对应不同的注意力方式如下:
Fully-visible(全部可见)
这个是注意力机制是自回归模型,在进行 x 2 , x 4 , x 5 x_2,x_4,x_5 x2,x4,x5的预测时,它们各自独立,互不干扰,跟transformer中的encoder(bert)一致;
Causal(因果相连)
这个是注意力机制的自编码模型,在进行 x 2 , x 4 , x 5 x_2,x_4,x_5 x2,x4,x5的预测时,根据方向的不同,前面的输出会对后面的输出产生影响,例如 x 4 x_4 x4受到 x 2 x_2 x2的影响, x 5 x_5 x5受到 x 4 x_4 x4、 x 2 x_2 x2的影响;跟transformer中的decoder一致;
Causal with prefix(因果与前缀)
不知道怎么翻译,是fully-visible和causal的中和体,针对上面的例子就是 x 4 x_4 x4、 x 5 x_5 x5收到 x 2 x_2 x2的影响,但是 x 4 x_4 x4与 x 5 x_5 x5互相独立,使用这种注意力机制的叫做部分自编码模型;
模型结构
transformer(encoder-decoder)
encoder部分是fully-visible注意力,decoder是causal注意力机制
language model
是causal注意力机制
Prefix LM
使用的是causal with prefix注意力机制
实验结论
预训练方法
竞争选手:(LM, Bert-style,Deshuffing)
获胜选手:Bert-style
原因:
LM的不具有上下文信息,只具有前文信息,总体效果不好(GPT-2);
Deshuffling(打乱句子顺序),训练学习难度太大,难以取得好的效果。
展示一个知乎回答:
mask策略
竞争选手:(单一mask, span mask, drop)
获胜选手:span mask
原因:单一mask信息的效果在文本生成任务的效果没有span mask,drop带来的效果,可能会出现多个候选词都合适,然后训练造成的结果不太好,猜测可能有误识别、过拟合的患处;span mask就是mask片段。
mask的比例
竞争选手: (10%,15%,25%,50%)
获胜选手:15%
原因:花钱得出来的结果吧,So,bert的作者也是厉害
mask的长度
竞争选手: (2,3,5,10)
获胜选手:3
原因:实验得出来的结果吧
其它
数据集(C4)
这对从互联网获取的数据,进行以下处理得到:
UniLM
论文地址
模型介绍
注意力机制
1. 双向注意力
图中的的bidirectional LM,互相影响,包含上下文信息;
2. 单向注意力
图中的Left-to-Right LM,当然Right-to-Left LM也是,叫做unbidirectional;
3. seq-to-seq注意力
1和2的中和吧,S1使用双向注意力,S2使用单项注意力。
公式
当中的核心值是
M
i
j
M_{ij}
Mij,它代表了不同的注意力机制所产生的影响。
模型结构
没啥说的,transformer走起
预训练目标
input: X:[
x
1
x_1
x1,
x
2
x_2
x2,
x
3
x_3
x3,
x
4
x_4
x4]
mask是
x
3
x_3
x3,此时预训练预测mask为
x
3
x_3
x3
如果使用bidirectional LM,此时
x
1
x_1
x1,
x
2
x_2
x2的M值为0,
x
4
x_4
x4的M值为-∞
如果使用unbidirectional LM,此时
x
1
x_1
x1,
x
2
x_2
x2,
x
4
x_4
x4的M值为0
对于seq-to-seq LM
有一个短语对,[
t
1
t_1
t1,
t
2
t_2
t2]与[
t
3
t_3
t3,
t
4
t_4
t4,
t
5
t_5
t5]
input: X: [SOS]
t
1
t
2
t_1t_2
t1t2[EOS]
t
3
t
4
t
5
t_3t_4t_5
t3t4t5[EOS]
t
1
,
t
2
t_1,t_2
t1,t2受[SOS]、第一个[EOS]、
t
1
t_1
t1和
t
2
t_2
t2的影响,操作处理跟unbidirectional LM相同
t
3
,
t
4
,
t
5
,
t
6
,
t_3,t_4,t_5,t_6,
t3,t4,t5,t6,[EOS]受他们前置的影响,操作处理跟bidirectional LM相同
预训练参数设置
1/3的bidirectional LM,1/3的sequence-to-sequence LM objective,1/6的从左到右、1/6的从右到左undirectional LM
MASS
论文地址
模型结构
其他没啥说的,随便找相关博客看看吧
GPT
累了,先欠着吧,来来转转都是这些
其它
teacher forcing
有一定的概率选择当前时段的输出,作为下一时段的输入;也有可能选择下一段时段的原始标记,作为下一时段的输入;