🚀 マルチリンガルMiniLMv2-L12-mnli-xnli
このマルチリンガルモデルは、100 以上の言語で自然言語推論 (NLI) を実行でき、マルチリンガルのゼロショット分類にも適しています。基盤となるマルチリンガル-MiniLM-L12 モデルは Microsoft によって作成され、XLM-RoBERTa-large から蒸留されました(詳細は元の論文を参照、また、このリポジトリに最新情報があります)。その後、このモデルは、15 の言語の仮説-前提ペアを含む XNLI データセットと英語の MNLI データセットでファインチューニングされました。
🚀 クイックスタート
このマルチリンガルモデルは、100 以上の言語で自然言語推論 (NLI) を行うことができ、マルチリンガルのゼロショット分類にも適しています。
✨ 主な機能
- 100 以上の言語で自然言語推論 (NLI) を実行可能。
- マルチリンガルのゼロショット分類に適している。
- 蒸留モデルであり、教師モデル (XLM-RoBERTa-large) よりも小さく、推論が速く、メモリ要件が低い。
📦 インストール
このドキュメントには具体的なインストール手順が記載されていないため、このセクションをスキップします。
💻 使用例
基本的な使用法
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="MoritzLaurer/multilingual-MiniLMv2-L12-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-L12-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) を実行でき、マルチリンガルのゼロショット分類にも適しています。基盤となるマルチリンガル-MiniLM-L12 モデルは Microsoft によって作成され、XLM-RoBERTa-large から蒸留されました(詳細は元の論文を参照、また、このリポジトリに最新情報があります)。その後、このモデルは、15 の言語の仮説-前提ペアを含む XNLI データセットと英語の MNLI データセットでファインチューニングされました。
蒸留モデルの主な利点は、教師モデル (XLM-RoBERTa-large) よりも小さく(推論が速く、メモリ要件が低い)、欠点は、大きな教師モデルの一部の性能を失うことです。
推論速度を最速にするには、6 層モデルの使用をおすすめします(このページのモデルは 12 層で、速度が遅くなります)。より高い性能が必要な場合は、(2023 年 2 月 14 日現在)mDeBERTa-v3-base-mnli-xnli をおすすめします。
学習データ
このモデルは、XNLI 開発データセットと MNLI 学習データセットで学習されました。XNLI 開発セットは、英語から 14 の他の言語に専門家によって翻訳された 2490 のテキストで構成されています(合計 37350 のテキスト)(詳細は この論文を参照)。XNLI には、15 の言語の MNLI データセットの機械翻訳版 15 の学習セットが含まれていますが、これらの機械翻訳の品質問題のため、このモデルは XNLI 開発セットの専門家による翻訳と元の英語の MNLI 学習セット(392702 のテキスト)のみで学習されました。機械翻訳されたテキストを使用しないことで、モデルが 15 の言語に過学習するのを防ぎ、事前学習された他の言語の性能が大幅に低下するのを防ぎ、学習コストを大幅に削減することができます。
学習手順
このモデルは、Hugging Face のトレーナーを使用して、以下のハイパーパラメータで学習されました。実際の基盤モデルは mMiniLMv2-L12-H384-distilled-from-XLMR-Large です。
training_args = TrainingArguments(
num_train_epochs=3, # total number of training epochs
learning_rate=4e-05,
per_device_train_batch_size=64, # 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 テキストを分類することができます(クロス言語転移)。これは、モデルが学習された他の言語でも NLI を行うことができることを意味しますが、XNLI で利用可能な言語よりも性能が低い可能性が高いです。
論文に報告されている multilingual-MiniLM-L12 の平均 XNLI 性能は 0.711 です(表 11 参照)。この再実装では、平均性能が 0.75 です。この性能の向上は、学習データに MNLI を追加したことと、このモデルが -base ではなく XLM-RoBERTa-large から蒸留されたことによるものと考えられます(multilingual-MiniLM-L12-v2)。
データセット |
平均 XNLI |
アラビア語 |
ブルガリア語 |
ドイツ語 |
ギリシャ語 |
英語 |
スペイン語 |
フランス語 |
ヒンディー語 |
ロシア語 |
スワヒリ語 |
タイ語 |
トルコ語 |
ウルドゥー語 |
ベトナム語 |
中国語 |
正解率 |
0.75 |
0.73 |
0.78 |
0.762 |
0.754 |
0.821 |
0.779 |
0.775 |
0.724 |
0.76 |
0.689 |
0.738 |
0.732 |
0.7 |
0.762 |
0.751 |
速度(テキスト/秒、A100 GPU、評価バッチ=120) |
4535.0 |
4629.0 |
4417.0 |
4500.0 |
3938.0 |
4959.0 |
4634.0 |
4152.0 |
4190.0 |
4368.0 |
4630.0 |
4698.0 |
4929.0 |
4291.0 |
4420.0 |
5275.0 |
データセット |
MNLI-m |
MNLI-mm |
正解率 |
0.818 |
0.831 |
速度(テキスト/秒、A100 GPU、評価バッチ=120) |
2912.0 |
2902.0 |
🔧 技術詳細
このセクションには、具体的な技術的な詳細が記載されています。モデルの構造、学習方法、評価方法などの詳細については、上記の「ドキュメント」セクションを参照してください。
📄 ライセンス
このモデルは 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 で連絡してください。