语言: 中文
标签:
- exbert
许可证: mit
数据集:
- 书籍语料库
- 维基百科
RoBERTa大型模型
基于掩码语言建模(MLM)目标在英语语料上预训练的模型。该模型由这篇论文提出,并首次发布于此代码库。该模型区分大小写:例如能区分"english"和"English"的不同。
免责声明:RoBERTa的发布团队未为此模型编写说明卡片,故本说明卡片由Hugging Face团队撰写。
模型描述
RoBERTa是基于海量英文语料通过自监督方式预训练的transformer模型。这意味着它仅对原始文本进行预训练,没有任何人工标注(因此可以利用大量公开数据),通过自动化过程从文本生成输入和标签。
具体而言,它采用掩码语言建模(MLM)目标进行预训练。模型会随机遮盖输入句子中15%的词汇,然后将整个被遮盖的句子输入模型,要求预测被遮盖的词汇。这与传统循环神经网络(RNN)逐词处理的方式不同,也不同于GPT等自回归模型内部遮盖未来标记的做法。这种机制使模型能学习句子的双向表征。
通过这种方式,模型学习到英语语言的内部表征,这些表征可用于提取对下游任务有用的特征。例如,如果您有一个带标签句子的数据集,可以使用BERT模型生成的特征作为输入来训练标准分类器。
预期用途与限制
您可以直接使用原始模型进行掩码语言建模,但主要用途是针对下游任务进行微调。请参阅模型中心寻找您感兴趣任务的微调版本。
请注意,该模型主要适用于需要使用完整句子(可能包含掩码)进行决策的任务,如序列分类、标记分类或问答。对于文本生成等任务,应使用GPT2等模型。
使用方法
您可以直接使用pipeline进行掩码语言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='roberta-large')
>>> unmasker("Hello I'm a <mask> model.")
在PyTorch中获取文本特征:
from transformers import RobertaTokenizer, RobertaModel
tokenizer = RobertaTokenizer.from_pretrained('roberta-large')
model = RobertaModel.from_pretrained('roberta-large')
text = "替换为您想要的任意文本。"
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
在TensorFlow中:
from transformers import RobertaTokenizer, TFRobertaModel
tokenizer = RobertaTokenizer.from_pretrained('roberta-large')
model = TFRobertaModel.from_pretrained('roberta-large')
text = "替换为您想要的任意文本。"
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
局限性与偏差
模型训练数据包含大量未经过滤的互联网内容,远非中立。因此,模型预测可能存在偏见:
>>> unmasker("The man worked as a <mask>.")
>>> unmasker("The woman worked as a <mask>.")
这种偏差也会影响该模型的所有微调版本。
训练数据
RoBERTa模型在五个数据集的联合体上预训练:
这些数据集总计包含160GB文本。
训练过程
预处理
文本采用字节级Byte-Pair Encoding(BPE)分词,词汇表50,000词。模型输入为512个连续标记的片段,可能跨文档。新文档开头用<s>
标记,结尾用</s>
标记。
掩码策略细节:
- 15%的标记被遮盖
- 80%情况替换为
<mask>
- 10%情况替换为随机标记
- 10%情况保持原词
与BERT不同,掩码在预训练期间动态进行(每轮迭代不同)。
预训练
模型在1024块V100 GPU上训练50万步,批量大小8K,序列长度512。使用Adam优化器(学习率4e-4,β₁=0.9,β₂=0.98,ε=1e-6),权重衰减0.01,前3万步学习率预热,之后线性衰减。
评估结果
在下游任务微调后,模型取得以下成绩:
Glue测试结果:
任务 |
MNLI |
QQP |
QNLI |
SST-2 |
CoLA |
STS-B |
MRPC |
RTE |
得分 |
90.2 |
92.2 |
94.7 |
96.4 |
68.0 |
96.4 |
90.9 |
86.6 |
BibTeX引用信息
@article{DBLP:journals/corr/abs-1907-11692,
author = {刘寅寒等},
title = {RoBERTa:一种鲁棒优化的BERT预训练方法},
journal = {CoRR},
volume = {abs/1907.11692},
year = {2019}
}