项目介绍:XLM-RoBERTa (base-sized model)
XLM-RoBERTa的起源
XLM-RoBERTa是一种面向多语言处理的深度学习模型,是在一个包含100种语言的过滤后的CommonCrawl数据集上进行预训练的。此模型约有2.5TB的数据量,是在文章《大规模无监督跨语言表示学习》中首次介绍的。该项目最初发布在一个开源的代码库中,并由Hugging Face团队撰写了相关的模型说明。
模型描述
XLM-RoBERTa是RoBERTa的多语言版本。RoBERTa本身是一个预训练的转换模型(transformers model),采用了一种自监督学习的方式进行训练。具体来说,它对原始文本数据进行预训练,而无需人工标注,通过自动化过程从文本中生成输入和标签。
模型的预训练目标是掩蔽语言建模(Masked Language Modeling, MLM)。这一方法通过随机掩蔽句子中15%的词,然后让模型预测这些被掩蔽的词汇,从而使模型学习到句子的双向表示。这和传统的递归神经网络(RNN)以及自回归模型(如GPT)不同,前者通常是逐词看到文本,后者则掩蔽未来的词汇。
通过这样的训练方式,XLM-RoBERTa能够学习并内化100种语言的表示,可用于生成适用于不同下游任务的特征。例如,在有标注句子数据集的情况下,可以用XLM-RoBERTa模型产生的特征进行标准的分类器训练。
用途与限制
虽然可以直接用于掩蔽语言建模,但XLM-RoBERTa更多的是为了在下游任务上进行微调。用户可以在模型库中寻找对某些特定任务已微调的版本。该模型主要面向使用整句话(可能经过掩蔽)进行决策的任务,如序列分类、标记分类或问题回答等。对于文本生成任务,建议用户使用如GPT2这样的其他模型。
如何使用
XLM-RoBERTa可以通过pipeline直接用于掩蔽语言建模,例如:
from transformers import pipeline
unmasker = pipeline('fill-mask', model='xlm-roberta-base')
unmasker("Hello I'm a <mask> model.")
输出结果可能会依概率生成如下句子:
- Hello I'm a fashion model.
- Hello I'm a new model.
- Hello I'm a model model.
- Hello I'm a French model.
- Hello I'm a sexy model.
对于特定文本特征的提取,可以在PyTorch中使用:
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained('xlm-roberta-base')
model = AutoModelForMaskedLM.from_pretrained("xlm-roberta-base")
# 准备输入
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
# 前向传播(前馈传递)
output = model(**encoded_input)
引用信息
如果您在研究中使用了XLM-RoBERTa模型,建议引用其相关的学术论文:
@article{DBLP:journals/corr/abs-1911-02116,
author = {Alexis Conneau et al.},
title = {Unsupervised Cross-lingual Representation Learning at Scale},
journal = {CoRR},
volume = {abs/1911.02116},
year = {2019},
url = {http://arxiv.org/abs/1911.02116},
}
更多信息可以通过Hugging Face的模型页面或相关资源获取。