モデル概要
モデル特徴
モデル能力
使用事例
🚀 mDeBERTa-v3-base-xnli-multilingual-nli-2mil7
このモデルは、100言語で自然言語推論(NLI)を実行でき、多言語のゼロショット分類にも適しています。mDeBERTa-v3-baseモデルはMicrosoftによって事前学習され、XNLIデータセットとmultilingual-NLI-26lang-2mil7データセットでファインチューニングされています。
🚀 クイックスタート
モデルの概要
この多言語モデルは、100言語で自然言語推論(NLI)を実行でき、多言語のゼロショット分類にも適しています。基盤となるmDeBERTa-v3-baseモデルは、MicrosoftによってCC100多言語データセットの100言語で事前学習されました。その後、モデルはXNLIデータセットとmultilingual-NLI-26lang-2mil7データセットでファインチューニングされました。両方のデータセットには、40億人以上が話す27言語で270万以上の仮説 - 前提ペアが含まれています。
2021年12月現在、mDeBERTa-v3-baseは、Microsoftがthis paperで紹介した、最も性能の高い多言語ベースサイズのトランスフォーマーモデルです。
モデルの使い方
シンプルなゼロショット分類パイプライン
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="MoritzLaurer/mDeBERTa-v3-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/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7"
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)) # device = "cuda:0" or "cpu"
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)
📦 インストール
このセクションでは、具体的なインストール手順が元文書に記載されていないため、省略されています。
📚 ドキュメント
学習データ
このモデルは、multilingual-nli-26lang-2mil7データセットとXNLI検証データセットで学習されました。
multilingual-nli-26lang-2mil7データセットには、40億人以上が話す26言語で273万のNLI仮説 - 前提ペアが含まれています。データセットには言語ごとに10万5000のテキストペアが含まれています。これは、英語のデータセットMultiNLI、Fever-NLI、ANLI、LingNLI、WANLIに基づいており、最新のオープンソース機械翻訳モデルを使用して作成されました。データセットの言語は、['ar', 'bn', 'de', 'es', 'fa', 'fr', 'he', 'hi', 'id', 'it', 'ja', 'ko', 'mr', 'nl', 'pl', 'ps', 'pt', 'ru', 'sv', 'sw', 'ta', 'tr', 'uk', 'ur', 'vi', 'zh']です(ISO言語コードを参照)。詳細については、データシートを参照してください。さらに、英語についても他の言語と同じサンプリング方法に従って10万5000のテキストペアのサンプルが追加され、27言語になりました。
さらに、各言語について、10%の仮説 - 前提ペアのランダムなセットが追加され、英語の仮説が他の言語の前提とペアになりました(英語の前提と他の言語の仮説についても同じ)。このテキストペアの言語の混合により、ユーザーは他の言語のターゲットテキストに対して英語で仮説を立てることができます。
XNLI検証セットは、英語から14の他の言語にプロの翻訳された2490のテキストで構成されています(合計37350のテキスト)(this paperを参照)。XNLIには、14の言語のMultiNLIデータセットの14の機械翻訳バージョンの学習セットも含まれていますが、2018年の機械翻訳の品質問題のため、このデータは除外されました。
評価目的で、XNLI学習データから3つの言語(["bg","el","th"])が除外され、テストデータにのみ含まれています。これは、27言語でのNLIファインチューニング中には見ていないが、100言語での事前学習中に見た言語でのモデルの性能をテストするために行われました - 以下の評価指標を参照してください。
合計学習データセットのサイズは、328万7280の仮説 - 前提ペアでした。
学習手順
mDeBERTa-v3-base-mnli-xnliは、以下のハイパーパラメータでHugging Faceトレーナーを使用して学習されました。
training_args = TrainingArguments(
num_train_epochs=3, # 学習エポックの総数
learning_rate=2e-05,
per_device_train_batch_size=32, # 学習中のデバイスごとのバッチサイズ
gradient_accumulation_steps=2, # 実効的なバッチサイズを2倍にするため
warmup_ratio=0.06, # 学習率スケジューラのウォームアップステップ数
weight_decay=0.01, # 重み減衰の強度
fp16=False
)
評価結果
モデルは、15の言語のXNLIテストセット(言語ごとに5010のテキスト、合計75150)と、MultiNLI、Fever-NLI、ANLI、LingNLI、WANLIの英語テストセットで評価されました。多言語NLIモデルは、特定の言語のNLI学習データを受け取らずにNLIテキストを分類できることに注意してください(クロス言語トランスファー)。これは、モデルがmDeBERTaが事前学習された他の73の言語でもNLIを行うことができることを意味しますが、性能はおそらくNLIファインチューニング中に見た言語よりも低くなります。以下の表の["bg","el","th"]の言語の性能は、このクロス言語トランスファーの良い指標です。これらの言語は学習データに含まれていません。
XNLIサブセット | ar | bg | de | el | en | es | fr | hi | ru | sw | th | tr | ur | vi | zh |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
精度 | 0.794 | 0.822 | 0.824 | 0.809 | 0.871 | 0.832 | 0.823 | 0.769 | 0.803 | 0.746 | 0.786 | 0.792 | 0.744 | 0.793 | 0.803 |
速度 (テキスト/秒, A100-GPU) | 1344.0 | 1355.0 | 1472.0 | 1149.0 | 1697.0 | 1446.0 | 1278.0 | 1115.0 | 1380.0 | 1463.0 | 1713.0 | 1594.0 | 1189.0 | 877.0 | 1887.0 |
英語データセット | mnli_test_m | mnli_test_mm | anli_test | anli_test_r3 | fever_test | ling_test | wanli_test |
---|---|---|---|---|---|---|---|
精度 | 0.857 | 0.856 | 0.537 | 0.497 | 0.761 | 0.788 | 0.732 |
速度 (テキスト/秒, A100-GPU) | 1000.0 | 1009.0 | 794.0 | 672.0 | 374.0 | 1177.0 | 1468.0 |
また、モデルハブの他の多言語モデルが英語以外の言語で約90%の性能を主張している場合、著者はおそらくテスト中に間違いを犯しています。最新の論文のどれも、XNLIで80%を数ポイント上回る多言語平均性能を示していません(ここまたはここを参照)。
🔧 技術詳細
このセクションでは、具体的な技術詳細が元文書に記載されていないため、省略されています。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
制限事項とバイアス
潜在的なバイアスについては、元のDeBERTa-V3論文とさまざまなNLIデータセットに関する文献を参照してください。また、multilingual-nli-26lang-2mil7データセットは機械翻訳を使用して作成されたため、NLIのような複雑なタスクのデータの品質が低下します。あなたが興味のある言語については、Hugging Faceのデータセットビューアを介してデータを調べることができます。機械翻訳によって導入された文法エラーは、文法があまり重要でないゼロショット分類にとってはあまり問題になりません。
引用
もしこのデータセットがあなたに役立った場合は、次の記事を引用してください。
@article{laurer_less_2022,
title = {Less {Annotating}, {More} {Classifying} – {Addressing} the {Data} {Scarcity} {Issue} of {Supervised} {Machine} {Learning} with {Deep} {Transfer} {Learning} and {BERT} - {NLI}},
url = {https://osf.io/74b8k},
language = {en-us},
urldate = {2022-07-28},
journal = {Preprint},
author = {Laurer, Moritz and Atteveldt, Wouter van and Casas, Andreu Salleras and Welbers, Kasper},
month = jun,
year = {2022},
note = {Publisher: Open Science Framework},
}
協力のアイデアや質問
新しいモデルやデータセットの更新については、Twitterでフォローしてください。質問や協力のアイデアがある場合は、m{dot}laurer{at}vu{dot}nlまたはLinkedInで連絡してください。
デバッグと問題点
DeBERTa-v3は2021年末にリリースされたため、古いバージョンのHF Transformersではモデルを実行する際に問題が発生する可能性があります(例えば、トークナイザーに問題が生じる)。Transformers==4.13以上を使用すると、いくつかの問題が解決する可能性があります。mDeBERTaは現在、FP16をサポートしていないことに注意してください。詳細はこちらを参照してください:https://github.com/microsoft/DeBERTa/issues/77



