RoBERTa(稳健优化的BERT预训练方法)是一种由Facebook AI研究人员于2019年提出的语言模型。它是BERT的一种变体,通过修改预训练过程来在下游自然语言处理任务中取得更好的性能。RoBERTa保留了BERT的仅编码器Transformer (architecture)架构,但改变了关键训练细节,包括动态掩码、更大的批大小以及移除下一句预测目标。这些调整带来了改进的表示,并在GLUE和SQuAD等基准上取得了更高的分数。
该模型以开源项目形式发布,权重和代码可供研究社区使用。RoBERTa迅速成为NLP研究中的常见基线,并影响了后续模型,如XLNet和ALBERT。其成功凸显了预训练超参数和数据规模在深度学习模型中的重要性。
架构
RoBERTa使用与BERT相同的仅编码器transformer架构。它由分词器、嵌入层、一组transformer块以及用于预训练的任务头组成。分词器采用WordPiece,词汇表大小为30,000,未知标记被替换为特殊的[UNK]标记。嵌入层结合了标记类型、位置和分段类型嵌入,这些嵌入通过LayerNorm求和并归一化,为基础模型中的每个标记生成768维向量。
编码器堆栈由层数(L)和隐藏大小(H)参数化,自注意力头数等于H/64,前馈大小为4H。RoBERTa提供多种配置,如基础版(12L/768H)和大型版(24L/1024H),与BERT的规模相匹配。对于下游任务,任务头通常被替换为特定于任务的模块,并对模型进行微调,从而实现高效的迁移学习。
训练差异
RoBERTa在多个方面修改了BERT的预训练。最显著的变化是使用动态掩码,即在训练过程中动态生成掩码标记,而不是对数据应用一次静态掩码。这增加了训练样本的多样性,并帮助模型更好地泛化。此外,RoBERTa移除了BERT用于学习句子关系的下一句预测(NSP)任务。研究表明,NSP对良好性能并非必要,其移除简化了训练目标。
RoBERTa还使用比BERT更大的批大小和更多的训练步骤进行训练,并使用更大的语料库,其中包含超出原始BookCorpus和Wikipedia的额外数据。训练使用字节级字节对编码(BPE)分词器,与WordPiece相比,能更优雅地处理词汇表外单词。这些变化共同促成了RoBERTa性能的提升。
性能与影响
RoBERTa在发布时在多个基准上取得了最先进的结果。在GLUE基准上,它超越了BERT和其他模型,得分达到88.5,而BERT为82.1。在SQuAD 2.0上,它取得了89.4的F1分数,超过了之前的模型。这些结果表明,在不改变架构的情况下,对预训练进行仔细优化可以带来显著收益。
该模型的成功推动了预训练策略的进一步研究,促成了GPT-3和其他大规模模型的发展。RoBERTa也成为了文本分类、问答和命名实体识别等任务的标准工具。其开源可用性促进了学术界和工业界的广泛采用。
应用
RoBERTa被用于各种自然语言处理应用。它作为情感分析的基础模型,将文本分类为正面或负面。在问答中,它可以提取段落中的答案,如SQuAD所示。它还应用于文本摘要、语言推理和语义相似性任务。许多生产系统,包括客户服务和内容审核中的系统,已集成基于RoBERTa的模型。
由于RoBERTa是预训练模型,它可以在相对较少的示例下针对特定数据集进行微调,使其适用于标注数据有限的领域。其稳健性和性能使其成为许多NLP流程的首选,即使更新模型已经出现。
遗产
RoBERTa对机器学习领域产生了持久影响。它强调了训练动态和数据质量的重要性,促使研究人员重新审视预训练协议。该模型的设计原则,如动态掩码和移除辅助目标,被后续模型如DeBERTa和ELECTRA所采纳。RoBERTa仍然是评估新预训练方法的参考点,并截至2026年继续在研究和工业中使用。