🚀 Multilingual MiniLMv2-L6-mnli-xnli
このモデルは100以上の言語で自然言語推論(NLI)を実行でき、多言語のゼロショット分類にも適しています。軽量で高速推論が可能で、特定の言語のNLI訓練データがなくてもNLIテキストを分類できます。
🚀 クイックスタート
このモデルは多言語の自然言語推論(NLI)やゼロショット分類に使用できます。以下に使用方法の例を示します。
✨ 主な機能
- 100以上の言語で自然言語推論(NLI)を実行可能。
- 多言語のゼロショット分類に適している。
- 蒸留モデルであり、軽量で高速推論が可能。
📦 インストール
このモデルはHugging FaceのTransformersライブラリを使用して利用できます。以下のコマンドでインストールできます。
pip install transformers
💻 使用例
基本的な使用法
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="MoritzLaurer/multilingual-MiniLMv2-L6-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)
高度な使用法
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model_name = "MoritzLaurer/multilingual-MiniLMv2-L6-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)
📚 ドキュメント
モデルの説明
この多言語モデルは100以上の言語で自然言語推論(NLI)を実行でき、多言語のゼロショット分類にも適しています。基盤となるmultilingual-MiniLM-L6モデルはMicrosoftによって作成され、XLM-RoBERTa-largeから蒸留されました(詳細は元の論文とこのリポジトリを参照)。その後、このモデルは15言語の仮説と前提のペアを含むXNLIデータセットと英語のMNLIデータセットでファインチューニングされました。
蒸留モデルの主な利点は、教師モデル(XLM-RoBERTa-large)よりも小さく(推論が速く、メモリ要件が低い)、欠点は大きな教師モデルの一部の性能を失うことです。
最も高速な推論速度が必要な場合は、この6層のモデルをお勧めします。より高い性能が必要な場合は、mDeBERTa-v3-base-mnli-xnliをお勧めします(2023年2月14日現在)。
訓練データ
このモデルはXNLI開発データセットとMNLI訓練データセットで訓練されました。XNLI開発セットは英語から14の他の言語に専門家によって翻訳された2490のテキストで構成されています(合計37350のテキスト)(この論文を参照)。XNLIには15言語のMNLIデータセットの15の機械翻訳バージョンの訓練セットが含まれていますが、これらの機械翻訳の品質問題のため、このモデルはXNLI開発セットの専門家による翻訳と元の英語のMNLI訓練セット(392702のテキスト)でのみ訓練されました。機械翻訳されたテキストを使用しないことで、モデルが15の言語に過学習するのを避け、事前学習された他の言語の大規模な忘却を避け、訓練コストを大幅に削減できます。
訓練手順
このモデルはHugging Faceのトレーナーを使用して、以下のハイパーパラメータで訓練されました。正確な基盤モデルはmMiniLMv2-L6-H384-distilled-from-XLMR-Largeです。
training_args = TrainingArguments(
num_train_epochs=3, # 総訓練エポック数
learning_rate=4e-05,
per_device_train_batch_size=64, # 訓練中のデバイスごとのバッチサイズ
per_device_eval_batch_size=120, # 評価用のバッチサイズ
warmup_ratio=0.06, # 学習率スケジューラのウォームアップステップ数
weight_decay=0.01, # 重み減衰の強度
)
評価結果
このモデルはXNLIテストセットの15言語で評価されました(言語ごとに5010のテキスト、合計75150)。多言語NLIモデルは、特定の言語のNLI訓練データを受け取らずにNLIテキストを分類することができます(クロス言語転送)。これは、モデルが訓練された他の言語でもNLIを行うことができることを意味しますが、XNLIで利用可能な言語よりも性能が低い可能性があります。
論文で報告されているmultilingual-MiniLM-L6の平均XNLI性能は0.68です(表11を参照)。この再実装の平均性能は0.713です。この性能の向上はおそらく、訓練データにMNLIが追加され、このモデルが-baseではなくXLM-RoBERTa-largeから蒸留されたことによるものです(multilingual-MiniLM-L6-v2)。
データセット |
avg_xnli |
ar |
bg |
de |
el |
en |
es |
fr |
hi |
ru |
sw |
th |
tr |
ur |
vi |
zh |
正解率 |
0.713 |
0.687 |
0.742 |
0.719 |
0.723 |
0.789 |
0.748 |
0.741 |
0.691 |
0.714 |
0.642 |
0.699 |
0.696 |
0.664 |
0.723 |
0.721 |
速度(テキスト/秒、A100 GPU、評価バッチ=120) |
6093.0 |
6210.0 |
6003.0 |
6053.0 |
5409.0 |
6531.0 |
6205.0 |
5615.0 |
5734.0 |
5970.0 |
6219.0 |
6289.0 |
6533.0 |
5851.0 |
5970.0 |
6798.0 |
データセット |
mnli_m |
mnli_mm |
正解率 |
0.782 |
0.8 |
速度(テキスト/秒、A100 GPU、評価バッチ=120) |
4430.0 |
4395.0 |
🔧 技術詳細
このモデルは、Microsoftによって作成されたmultilingual-MiniLM-L6モデルを基盤としています。このモデルはXLM-RoBERTa-largeから蒸留され、XNLIデータセットとMNLIデータセットでファインチューニングされました。蒸留モデルの使用により、モデルのサイズを小さくし、推論速度を向上させることができます。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
制限事項とバイアス
潜在的なバイアスについては、元の論文とさまざまな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で連絡してください。