RoBERTa基础模型
该模型采用掩码语言建模(MLM)目标在英语语料上进行预训练,相关论文见此处,代码首发于该仓库。该模型区分大小写:例如能区分"english"和"English"。
免责声明:RoBERTa研发团队未提供模型卡片,本文档由Hugging Face团队撰写。
模型描述
RoBERTa是基于Transformer架构的预训练模型,通过自监督方式在海量英语文本上训练而成。其预训练过程完全基于原始文本,无需人工标注(因此可利用大量公开数据),通过自动化流程从文本生成输入和标签。
具体采用掩码语言建模(MLM)目标:随机遮蔽输入句子中15%的词汇,要求模型预测被遮蔽的词汇。与传统循环神经网络(RNN)逐词处理或GPT类自回归模型遮蔽未来词不同,该方法能学习句子的双向表征。
通过这种预训练,模型可提取适用于下游任务的文本特征。例如对于已标注句子数据集,可将RoBERTa生成的特征作为标准分类器的输入。
应用场景与限制
虽然可直接用于掩码语言建模,但本模型主要适用于下游任务微调。可访问模型中心寻找特定任务的微调版本。
需注意:本模型主要针对需要整句(可能含遮蔽)输入的任务,如序列分类、标记分类或问答。文本生成任务建议使用GPT2等模型。
使用方法
掩码填充示例
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='roberta-base')
>>> unmasker("Hello I'm a <mask> model.")
PyTorch特征提取
from transformers import RobertaTokenizer, RobertaModel
tokenizer = RobertaTokenizer.from_pretrained('roberta-base')
model = RobertaModel.from_pretrained('roberta-base')
text = "输入任意文本"
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
TensorFlow特征提取
from transformers import RobertaTokenizer, TFRobertaModel
tokenizer = RobertaTokenizer.from_pretrained('roberta-base')
model = TFRobertaModel.from_pretrained('roberta-base')
text = "输入任意文本"
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
偏差问题
由于训练数据包含大量未过滤的互联网内容,模型预测可能存在偏见。例如:
- "The man worked as a " 可能预测为机械师/服务员
- "The Black woman worked as a " 可能预测为女招待/女佣
这种偏差会影响所有基于该模型的微调版本。
训练数据
融合五个数据集共计160GB文本:
- BookCorpus:11,038本未出版书籍
- 英文维基百科(排除列表/表格/标题)
- CC-News:2016-2019年间6,300万篇英语新闻
- OpenWebText:GPT-2训练数据集WebText的开源复现
- Stories:经筛选符合故事叙述风格的CommonCrawl子集
训练细节
预处理
- 使用字节级BPE编码,词表50,000
- 输入为512个连续token(可能跨文档)
- 文档起始标记
<s>
,结束标记</s>
动态掩码策略
- 15%的token被遮蔽
- 80%概率替换为
<mask>
- 10%概率替换为随机token
- 10%概率保持原词
预训练配置
- 硬件:1,024块V100 GPU
- 步数:500K
- 批大小:8K
- 序列长度:512
- 优化器:Adam(学习率6e-4,β₁=0.9,β₂=0.98,ε=1e-6)
- 学习率:24,000步热身后线性衰减
评估结果
GLUE测试集表现:
任务 |
MNLI |
QQP |
QNLI |
SST-2 |
CoLA |
STS-B |
MRPC |
RTE |
得分 |
87.6 |
91.9 |
92.8 |
94.8 |
63.6 |
91.2 |
90.2 |
78.7 |
引用
@article{DBLP:journals/corr/abs-1907-11692,
author = {Yinhan Liu et al.},
title = {RoBERTa: {A} Robustly Optimized {BERT} Pretraining Approach},
journal = {CoRR},
volume = {abs/1907.11692},
year = {2019},
url = {http://arxiv.org/abs/1907.11692}
}