🚀 DeBERTa-v3-base-mnli-fever-docnli-ling-2c
このモデルは、8つの自然言語推論(NLI)データセットを用いて訓練され、テキスト分類やゼロショット分類に適しています。長いテキストを含むDocNLIデータセットも使用しており、長距離推論を学習できます。
🚀 クイックスタート
このモデルは、8つのNLIデータセットの1,279,665の仮説 - 前提ペアを使用して訓練されました。これらのデータセットには、MultiNLI、Fever-NLI、LingNLI、DocNLI(ANLI、QNLI、DUC、CNN/DailyMail、Curationを含む)が含まれます。
ベースモデルは、MicrosoftのDeBERTa-v3-baseです。DeBERTaのv3バリアントは、異なる事前学習目的を含むことで、以前のバージョンのモデルを大幅に上回っています。詳細は、元のDeBERTa論文の付録11およびDeBERTa-V3論文を参照してください。
最高のパフォーマンス(ただし速度は低下)が必要な場合は、https://huggingface.co/MoritzLaurer/DeBERTa-v3-large-mnli-fever-anli-ling-wanli を使用することをおすすめします。
✨ 主な機能
- 8つのNLIデータセットを用いた訓練により、高精度なテキスト分類とゼロショット分類が可能。
- 長いテキストを含むDocNLIデータセットを使用しているため、長距離推論が学習されている。
- バイナリNLIで訓練されており、"entailment"または"not-entailment"を予測できる。
💻 使用例
基本的な使用法
シンプルなゼロショット分類パイプライン
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="MoritzLaurer/DeBERTa-v3-base-mnli-fever-docnli-ling-2c")
sequence_to_classify = "Angela Merkel is a politician in Germany and leader of the 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/DeBERTa-v3-base-mnli-fever-docnli-ling-2c"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
premise = "I first thought that I liked the movie, but upon second thought it was actually disappointing."
hypothesis = "The movie was good."
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", "not_entailment"]
prediction = {name: round(float(pred) * 100, 1) for pred, name in zip(prediction, label_names)}
print(prediction)
📚 ドキュメント
訓練データ
このモデルは、8つのNLIデータセットの1,279,665の仮説 - 前提ペアを使用して訓練されました。これらのデータセットには、MultiNLI、Fever-NLI、LingNLI、DocNLI(ANLI、QNLI、DUC、CNN/DailyMail、Curationを含む)が含まれます。
訓練手順
DeBERTa-v3-small-mnli-fever-docnli-ling-2cは、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=32, # batch size for evaluation
warmup_ratio=0.1, # number of warmup steps for learning rate scheduler
weight_decay=0.06, # strength of weight decay
fp16=True # mixed precision training
)
評価結果
このモデルは、MultiNLIとANLIのバイナリテストセットおよびFever-NLIのバイナリ開発セット(3クラスではなく2クラス)を使用して評価されました。使用された指標は精度です。
Property |
Details |
mnli-m-2c |
0.935 |
mnli-mm-2c |
0.933 |
fever-nli-2c |
0.897 |
anli-all-2c |
0.710 |
anli-r3-2c |
0.678 |
lingnli-2c |
0.895 |
🔧 技術詳細
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
制限事項とバイアス
潜在的なバイアスについては、元のDeBERTa論文およびさまざまな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 で連絡してください。
デバッグと問題
DeBERTa-v3は21年12月6日にリリースされ、古いバージョンのHF Transformersではモデルを実行する際に問題が発生する場合があります(例えば、トークナイザに関する問題が発生することがあります)。Transformers >= 4.13を使用すると、一部の問題が解決する可能性があります。