今天分享一个Bert的改进工作RoBERTa。RoBERTa是训练充分的Bert。 主要掌握以下几点,与Bert相比较,RoBERTa预训练的时候: 动态掩码:comparable or slightly better 去掉NSP任务并且更改数据输入格式为全部填充可以跨越多个文档(不分上下句) 更多数据,更大bsz,更多的步数,更长训练时间。
1. 动态掩码
首先明确Bert使用的是静态掩码。但是这样会存在一个现象,比如我训练40个epoches,那么每次epoches都是使用同一批数据。 这其实不是什么大问题,我们在深度学习训练模型的时候,每个epoches基本都没咋变过。 不过对于Bert,其实本质是一个自监督模型。每次的训练输入如果是不同的,对于模型肯定是更好的。
2. NSP和模型数据输入格式
这一点其实很有意思。 我们先说RoBERTa 的四种输入形式和实验效果,然后再详细分析: SEGMENT-PAIR+NSP:就是Bert的输入形式 SENTENCE-PAIR+NSP:输入的是一对句子,即前后是单个句子 FULL-SENTENCES:输入为全量的句子,填满512的长度,采集样本的时候可以跨越文章的界限,去除了NSP loss DOC-SENTENCES:输入和FULL-SENTENCE类似,但是一个样本不能跨越两个document
3. 数据+bsz+steps
数据:Bert:16G;RoBERTa:160G;十倍 bsz:Bert:256;RoBERTa:8K steps:Bert:1M;RoBERTa:300K/500K
4. 总结
简单总结一下学到的东西: 动态掩码:comparable or slightly better 去掉NSP任务并且更改数据输入格式为全部填充可以跨越多个文档 更多数据,更大bsz,更多的步数,更长训练时间 动态掩码那里,说到一个复制10份的细节,那里是针对的Bert,RoBERTa是每次输入之前才mask,注意区分,不要搞混。
内容中包含的图片若涉及版权问题,请及时与我们联系删除


评论
沙发等你来抢