一、T5的网络结构和流程
T5模型和原始的Transformer结构基本一致,具体的做了如下几点改动:
- 简化了Layer normalization,其中激活只是重新调整,没有添加附加偏差。
-
使用了简化的相对位置embedding,即每个位置对应一个数值而不是向量,原来的Transformer采用sin/cos习得position embeddings,而T5将(key和query)相对位置的数值加在attention softmax之前的logits上,每个head的有自己的position embeddings,所有的层共享一套position embeddings,每一层都计算一次,让模型对位置更加敏感。
二、T5的预训练过程
T5对预训练目标进行了大范围搜索,总共四个层面来进行比较。
1、高层次方法对比,总共三种方法:
prefix language modeling,从左到右顺序预测
bert-sytle,效果最好
deshuffling,将文本打乱,然后还原
2、对文本一部分进行破坏时的策略,也分三种方法:
masked法,将被破坏的token替换成特殊字符,如[M]
replace space法,把mask法中相邻[M]都合成一个特殊符,每一小段替换一个特殊符,提高计算效率,效果最好
drop法,没有替换操作,直接随机丢弃一些字符
3、探索对文本进行多大程度的破坏,挑了 4 个值:10%,15%,25%,50%,最后发现还是BERT的15%效果最好
4、 Replace Spans需要决定对大概多长的小段进行破坏,于是对不同长度进行探索:2,3,5,10这四个值,最后发现Span length=3时的效果最好
此时就获得了完整的 T5 模型及其训练方法:
transformer encoder-decoder架构;bert-style破坏方法;replace spans的文本破坏策略;15%的文本破坏比;Replace Spans破坏时小段长度为3。