公司项目上有个文本生成的任务,难度比较大,花了相对不短的时间去熟悉这些模型,当然也没花太久,大概也就是读了下论文,以及网友们的一些介绍,现在记录总结下,后续应该会去阅读以及改写相关源码,便于做预训练以及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 x 1 ,x 2 ,x 3 ,x 4 ,x 5 ,x 6 ,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 x 1 ,[m a s k ],x 3 ,[m a s k ],[m a s k ],x 6 ,对应不同的注意力方式如下:
; Fully-visible(全部可见)
这个是注意力机制是自回归模型,在进行x 2 , x 4 , x 5 x_2,x_4,x_5 x 2 ,x 4 ,x 5 的预测时,它们各自独立,互不干扰,跟transformer中的encoder(bert)一致;
Causal(因果相连)
这个是注意力机制的自编码模型,在进行x 2 , x 4 , x 5 x_2,x_4,x_5 x 2 ,x 4 ,x 5 的预测时,根据方向的不同,前面的输出会对后面的输出产生影响,例如x 4 x_4 x 4 受到x 2 x_2 x 2 的影响,x 5 x_5 x 5 受到x 4 x_4 x 4 、x 2 x_2 x 2 的影响;跟transformer中的decoder一致;
Causal with prefix(因果与前缀)
不知道怎么翻译,是fully-visible和causal的中和体,针对上面的例子就是x 4 x_4 x 4 、x 5 x_5 x 5 收到x 2 x_2 x 2 的影响,但是x 4 x_4 x 4 与x 5 x_5 x 5 互相独立,使用这种注意力机制的叫做部分自编码模型;
模型结构
; 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}M i j ,它代表了不同的注意力机制所产生的影响。
; 模型结构
没啥说的,transformer走起
预训练目标
input: X:[x 1 x_1 x 1 ,x 2 x_2 x 2 ,x 3 x_3 x 3 ,x 4 x_4 x 4 ]
mask是x 3 x_3 x 3 ,此时预训练预测mask为x 3 x_3 x 3
如果使用bidirectional LM,此时x 1 x_1 x 1 ,x 2 x_2 x 2 的M值为0,x 4 x_4 x 4 的M值为-∞
如果使用unbidirectional LM,此时x 1 x_1 x 1 ,x 2 x_2 x 2 ,x 4 x_4 x 4 的M值为0
对于seq-to-seq LM
有一个短语对,[t 1 t_1 t 1 ,t 2 t_2 t 2 ]与[t 3 t_3 t 3 ,t 4 t_4 t 4 ,t 5 t_5 t 5 ]
input: X: [SOS]t 1 t 2 t_1t_2 t 1 t 2 [EOS]t 3 t 4 t 5 t_3t_4t_5 t 3 t 4 t 5 [EOS]
t 1 , t 2 t_1,t_2 t 1 ,t 2 受[SOS]、第一个[EOS]、t 1 t_1 t 1 和t 2 t_2 t 2 的影响,操作处理跟unbidirectional LM相同
t 3 , t 4 , t 5 , t 6 , t_3,t_4,t_5,t_6,t 3 ,t 4 ,t 5 ,t 6 ,[EOS]受他们前置的影响,操作处理跟bidirectional LM相同
预训练参数设置
1/3的bidirectional LM,1/3的sequence-to-sequence LM objective,1/6的从左到右、1/6的从右到左undirectional LM
; MASS
模型结构
其他没啥说的,随便找相关博客看看吧
; GPT
累了,先欠着吧,来来转转都是这些
其它
teacher forcing
有一定的概率选择当前时段的输出,作为下一时段的输入;也有可能选择下一段时段的原始标记,作为下一时段的输入;
Original: https://blog.csdn.net/lcomecon/article/details/122489982
Author: lcomecon
Title: 模型之T5,UniLM,MASS,GPT
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/530626/
转载文章受原作者版权保护。转载请注明原作者出处!