RoBERTa
由 Facebook 提出,核心思路是 “通过优化 BERT 的训练过程和超参数,释放其潜力”,并未改变 BERT 的基础模型结构(仍为
Transformer Encoder 堆叠),主要改进包括:
- 移除 Next Sentence
Prediction(NSP)任务
BERT 中的 NSP
任务被证明效果有限(甚至可能引入噪声),因为其设计过于简单(仅判断两句话是否连续),难以有效学习句子级语义关系。RoBERTa 直接移除
NSP,仅保留 Masked Language Model(MLM)任务,通过更长的文本序列(单句或多句拼接)让模型自然学习上下文关联。
- 采用动态掩码(Dynamic
Masking)替代静态掩码
BERT 采用 “静态掩码”:在预处理阶段一次性对语料进行掩码,之后每个训练 epoch
都使用相同的掩码模式。
RoBERTa 改为 “动态掩码”:每个训练 epoch
对输入文本重新生成掩码模式,增加了训练的随机性和数据多样性,迫使模型更全面地学习上下文依赖。
- 增大训练批次(Batch
Size)和训练步数
BERT 原始训练的 batch size 为 16/32(较小),RoBERTa 将 batch size
大幅提升至 8192(通过梯度累积实现),并延长训练时间(从 BERT 的 1M 步增至 300K 步,但总计算量更高)。更大的 batch
size 有助于模型学习更稳定的全局特征,减少过拟合风险。
- 使用更多、更丰富的训练数据
BERT 训练数据约 16GB(BookCorpus + Wikipedia),RoBERTa
扩展了训练语料,新增了:
- CC-News(约 76GB)、OpenWebText(约 38GB)、Stories(约
31GB)等,总数据量增至约 160GB,覆盖更广泛的语言场景,提升模型泛化能力。
- 支持更长的输入序列
BERT 默认输入序列长度为 512 tokens,但实际训练中部分样本使用较短序列(128
tokens)。RoBERTa 取消了短序列训练,统一使用 512 tokens 的长序列,更适合处理长文本语义。