BERT:
1. 使用NSP和MLM两个任务
2. 使用WordPiece方式(基于BPE算法的改进)构建词表
3. 使用transformer的encoder结构,但在transformer的基础上,使用的是position embedding
4. transformer的encoder和decoder的block都是6个,8个头,512的embedding size,而bert base的参数为12个block, hidden_size为768,共有12个头。bert large的参数为24个block, hidden_size为1024,有16个头。
RoBERTa:
在bert基础上:
1. 语料从16G扩充到160G
2. 使用BPE编码
3. 使用动态mask: 预先将数据复制n份,然后每份都进行随机的mask。(hugging face使用的是在每个epoch使用不同的mask策略)
4. Adam优化器的beta2由0.999变为了0.98;bs由256增大到2k/8k
5.移除NSP任务
6. 混合精度训练
注:WordPiece和BPE的区别
两者都是先将word切分为character
WordPiece:通过语言模型的最大似然合并char
BPE:通过连着出现的频率合并char
ALBERT:
在bert基础上:
1. 词向量因式分解
2. 参数共享: 每一个Block内的参数共享
3. 引入SOP任务:正例与NSP相同,负例仅仅调换两个句子的顺序