🚀 XLM-RoBERTa (base-sized model)
XLM-RoBERTaモデルは、100言語を含む2.5TBのフィルタリングされたCommonCrawlデータで事前学習されています。このモデルは、Conneauらによる論文 Unsupervised Cross-lingual Representation Learning at Scale で導入され、このリポジトリ で最初に公開されました。
なお、XLM-RoBERTaを公開したチームはこのモデルのモデルカードを作成していないため、このモデルカードはHugging Faceチームによって作成されています。
🚀 クイックスタート
XLM-RoBERTaは、RoBERTaの多言語版です。100言語を含む2.5TBのフィルタリングされたCommonCrawlデータで事前学習されています。
RoBERTaは、自己教師付き学習により大規模コーパスで事前学習されたトランスフォーマーモデルです。これは、人間が何らかの形でラベル付けを行わず、生のテキストのみを使用して事前学習されていることを意味します(このため、大量の公開データを使用することができます)。そして、それらのテキストから入力とラベルを自動的に生成するプロセスが行われます。
具体的には、マスク言語モデリング(MLM)の目的で事前学習されています。文を入力として受け取り、モデルは入力の単語の15%をランダムにマスクし、そのマスクされた文全体をモデルに通して、マスクされた単語を予測する必要があります。これは、通常、単語を1つずつ見る従来の再帰型ニューラルネットワーク(RNN)や、内部的に未来のトークンをマスクするGPTのような自己回帰型モデルとは異なります。これにより、モデルは文の双方向的な表現を学習することができます。
このようにして、モデルは100言語の内部表現を学習し、それを下流のタスクに有用な特徴を抽出するために使用することができます。たとえば、ラベル付けされた文のデータセットがある場合、XLM-RoBERTaモデルが生成する特徴を入力として使用して、標準的な分類器を学習させることができます。
✨ 主な機能
- 多言語対応: 100言語を含むデータで事前学習されているため、多言語のタスクに対応しています。
- マスク言語モデリング: マスクされた単語を予測することができ、下流のタスクに有用な特徴を抽出することができます。
💻 使用例
基本的な使用法
マスク言語モデリングのパイプラインでこのモデルを直接使用することができます。
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='xlm-roberta-base')
>>> unmasker("Hello I'm a <mask> model.")
[{'score': 0.10563907772302628,
'sequence': "Hello I'm a fashion model.",
'token': 54543,
'token_str': 'fashion'},
{'score': 0.08015287667512894,
'sequence': "Hello I'm a new model.",
'token': 3525,
'token_str': 'new'},
{'score': 0.033413201570510864,
'sequence': "Hello I'm a model model.",
'token': 3299,
'token_str': 'model'},
{'score': 0.030217764899134636,
'sequence': "Hello I'm a French model.",
'token': 92265,
'token_str': 'French'},
{'score': 0.026436051353812218,
'sequence': "Hello I'm a sexy model.",
'token': 17473,
'token_str': 'sexy'}]
高度な使用法
与えられたテキストの特徴を取得する方法を以下に示します。
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)
📚 ドキュメント
想定される使用法と制限
生のモデルをマスク言語モデリングに使用することはできますが、主に下流のタスクで微調整することを目的としています。モデルハブ を参照して、あなたが興味のあるタスクで微調整されたバージョンを探してください。
このモデルは主に、文全体(潜在的にマスクされたもの)を使用して決定を行うタスク、例えばシーケンス分類、トークン分類、質問応答などで微調整することを目的としていることに注意してください。テキスト生成などのタスクについては、GPT2のようなモデルを探すべきです。
BibTeX引用
@article{DBLP:journals/corr/abs-1911-02116,
author = {Alexis Conneau and
Kartikay Khandelwal and
Naman Goyal and
Vishrav Chaudhary and
Guillaume Wenzek and
Francisco Guzm{\'{a}}n and
Edouard Grave and
Myle Ott and
Luke Zettlemoyer and
Veselin Stoyanov},
title = {Unsupervised Cross-lingual Representation Learning at Scale},
journal = {CoRR},
volume = {abs/1911.02116},
year = {2019},
url = {http://arxiv.org/abs/1911.02116},
eprinttype = {arXiv},
eprint = {1911.02116},
timestamp = {Mon, 11 Nov 2019 18:38:09 +0100},
biburl = {https://dblp.org/rec/journals/corr/abs-1911-02116.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
関連リンク
📄 ライセンス
このモデルはMITライセンスの下で公開されています。