🚀 多言語XLM - V - base - mnli - xnli
この多言語モデルは、116の言語で自然言語推論(NLI)を実行でき、多言語のゼロショット分類にも適しています。基盤となるXLM - V - baseモデルはMeta AIによって作成され、CC100多言語データセットで事前学習されました。その後、15の言語の仮説 - 前提ペアを含むXNLIデータセットと英語のMNLIデータセットでファインチューニングされました。
XLM - V - baseは2023年1月23日にthis paperで公開されました。その主な革新点は、より大きくて良質な語彙です。以前の多言語モデルは25万トークンの語彙を持っていましたが、XLM - Vは100万トークンを「知っています」。改善された語彙により、より多くの言語の表現が可能になります。
🚀 クイックスタート
✨ 主な機能
- 116の言語で自然言語推論(NLI)を実行できる。
- 多言語のゼロショット分類に適している。
- 改善された語彙により、より多くの言語の表現が可能。
📦 インストール
このドキュメントには明示的なインストール手順が記載されていないため、このセクションをスキップします。
💻 使用例
基本的な使用法
シンプルなゼロショット分類パイプライン
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="MoritzLaurer/xlm-v-base-mnli-xnli")
sequence_to_classify = "Angela Merkel ist eine Politikerin in Deutschland und Vorsitzende der CDU"
candidate_labels = ["politics", "economy", "entertainment", "environment"]
output = classifier(sequence_to_classify, candidate_labels, multi_label=False)
print(output)
高度な使用法
NLIの使用例
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model_name = "MoritzLaurer/xlm-v-base-mnli-xnli"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
premise = "Angela Merkel ist eine Politikerin in Deutschland und Vorsitzende der CDU"
hypothesis = "Emmanuel Macron is the President of France"
input = tokenizer(premise, hypothesis, truncation=True, return_tensors="pt")
output = model(input["input_ids"].to(device))
prediction = torch.softmax(output["logits"][0], -1).tolist()
label_names = ["entailment", "neutral", "contradiction"]
prediction = {name: round(float(pred) * 100, 1) for pred, name in zip(prediction, label_names)}
print(prediction)
📚 ドキュメント
モデルのトレーニングデータ
このモデルは、XNLI開発データセットとMNLIトレーニングデータセットでトレーニングされました。XNLI開発セットは、英語から他の14の言語に専門家によって翻訳された2490のテキストで構成されています(合計37350のテキスト)(this paperを参照)。XNLIには15の言語のMNLIデータセットの15の機械翻訳バージョンのトレーニングセットが含まれていますが、これらの機械翻訳の品質問題のため、このモデルはXNLI開発セットの専門家による翻訳と元の英語のMNLIトレーニングセット(392702のテキスト)でのみトレーニングされました。機械翻訳されたテキストを使用しないことで、モデルが15の言語に過学習するのを避けることができます。また、XLM - Vが事前学習された他の約101の言語の大規模な忘却を避け、トレーニングコストを大幅に削減することができます。
トレーニング手順
xlm - v - base - mnli - xnliは、以下のハイパーパラメータを使用してHugging Faceのトレーナーでトレーニングされました。
training_args = TrainingArguments(
num_train_epochs=3, # total number of training epochs
learning_rate=2e-05,
per_device_train_batch_size=32, # batch size per device during training
per_device_eval_batch_size=120, # batch size for evaluation
warmup_ratio=0.06, # number of warmup steps for learning rate scheduler
weight_decay=0.01, # strength of weight decay
)
評価結果
このモデルは、15の言語のXNLIテストセットで評価されました(言語ごとに5010のテキスト、合計75150)。多言語NLIモデルは、特定の言語のNLIトレーニングデータを受け取らずにNLIテキストを分類することができます(クロスリンガル転移)。これは、モデルがXLM - Vがトレーニングされた他の約101の言語でもNLIを行うことができることを意味しますが、XNLIで利用可能な言語に比べて性能はおそらく低くなります。
また、モデルハブ上の他の多言語モデルが英語以外の言語で約90%の性能を主張している場合、最新の論文(主により大きなモデルの論文)のどれもがXNLIで80%を数ポイント上回る多言語平均性能を示していないため、著者はおそらくテスト中に間違いを犯しています(hereまたはhereを参照)。
論文で報告されているXLM - VのXNLI平均性能は0.76です(table 2を参照)。この再実装では平均性能が0.78です。この性能向上は、トレーニングデータにMNLIが追加されたおかげである可能性があります。mDeBERTa - v3 - base - mnli - xnliは平均性能が0.808で、より小さく(XLM - Vは3GBに対してmDeBERTaは560MB)、より高速です(mDeBERTaの小さな語彙のおかげで)。この差はおそらくmDeBERTa - v3の改善された事前学習目的に起因しています。タスクに応じて、mDeBERTa - v3 - base - mnli - xnliを使用する方が良いかもしれませんが、XLM - Vは改善された語彙に基づいて一部の言語でより良い性能を発揮する可能性があります。
データセット |
平均 |
アラビア語 |
ブルガリア語 |
ドイツ語 |
ギリシャ語 |
英語 |
スペイン語 |
フランス語 |
ヒンディー語 |
ロシア語 |
スワヒリ語 |
タイ語 |
トルコ語 |
ウルドゥー語 |
ベトナム語 |
中国語 |
正解率 |
0.780 |
0.757 |
0.808 |
0.796 |
0.79 |
0.856 |
0.814 |
0.806 |
0.751 |
0.782 |
0.725 |
0.757 |
0.766 |
0.729 |
0.784 |
0.782 |
GPU A100の速度 (テキスト/秒) |
na |
3501.0 |
3324.0 |
3438.0 |
3174.0 |
3713.0 |
3500.0 |
3129.0 |
3042.0 |
3419.0 |
3468.0 |
3782.0 |
3772.0 |
3099.0 |
3117.0 |
4217.0 |
データセット |
mnli_m (英語) |
mnli_mm (英語) |
正解率 |
0.852 |
0.854 |
GPU A100の速度 (テキスト/秒) |
2098.0 |
2170.0 |
🔧 技術詳細
このドキュメントには明示的な技術詳細が記載されていないため、このセクションをスキップします。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
🔧 制限事項とバイアス
潜在的なバイアスについては、元のXLM - Vの論文とさまざまなNLIデータセットに関する文献を参照してください。
📚 引用
このモデルを使用する場合は、以下を引用してください:Laurer, Moritz, Wouter van Atteveldt, Andreu Salleras Casas, and Kasper Welbers. 2022.
‘Less Annotating, More Classifying – Addressing the Data Scarcity Issue of Supervised Machine Learning with Deep Transfer Learning and BERT - NLI’.
Preprint, June. Open Science Framework. https://osf.io/74b8k.
💬 協力のアイデアや質問は?
協力に関するアイデアや質問がある場合は、m{dot}laurer{at}vu{dot}nlまたはLinkedInで連絡してください。