算法面试之Roberta、Albert
Roberta
RoBERTa基本没有什么太大创新,主要是在BERT基础上做了几点调整:
1)训练时间更长,batch size更大,训练数据更多;
2)移除了next predict loss;
3)训练序列更长;
4)动态调整Masking机制。
1.dynamic masking
原本的BERT采用的是static mask的方式,就是在create pretraining data中,先对数据进行提前的mask,为了充分利用数据,定义了dupe_factor,这样可以将训练数据复制dupe_factor份,然后同一条数据可以有不同的mask。注意这些数据不是全部都喂给同一个epoch,是不同的epoch,例如dupe_factor=10, epoch=40, 则每种mask的方式在训练中会被使用4次
dynamic masking: 每一次将训练example喂给模型的时候,才进行随机mask
2.No NSP and Input Format
Segment+NSP:bert style
Sentence pair+NSP:使用两个连续的句子+NSP。用更大的batch size
Full-sentences:如果输入的最大长度为512,那么就是尽量选择5