T5.1.1:使用GLU改进预训练语言模型T5.
- paper:GLU Variants Improve Transformer
- arXiv:link
本文中作者借助门控线性单元(gated linear unit,GLU)对预训练语言模型T5进行了一次升级。将之前的预训练语言模型T5记为T5.1.0,而使用GLU后的预训练语言模型记为T5.1.1。T5.1.1相对于T5.1.0的主要区别如下:
- T5.1.0中全连接层的激活函数使用ReLU:\(\text{FFN}_{\text{ReLU}}(x,W_1,W_2)=\text{max}(xW_1,0)W_2\);而T5.1.1中激活函数使用GELU激活的门控线性单元:\(\text{FFN}_{\text{GEGLU}}(x,W,V,W_2)=(\text{GELU}(xW) \otimes xV)W_2\)。尽管这样增加了一半参数,但效果明显提升。
- T5.1.0中编码器输入端的Embedding,解码器输入端的Embedding和解码器输出端的Embedding是共享参数的;而T5.1.1中只让编码器输入端的Embedding和解码器输入端的Embedding共享参数,额外训练解码器输出端的Embedding。尽管这样大大增加了参数量,但效果会更好。
- T5.1.1在预训练阶段只做无监督预训练,且去掉了Dropout;在下游任务的微调阶段使用Dropout。
门控线性单元其实是一类方法的总称。对于具有门控特性的激活函数$\sigma$,可以构造门控线性单元:
\[GLU(x,W,V) = \sigma(xW) \otimes xV\]实验证明门控线性单元能够有效地提升T5模型的性能: