🚀 多語言mDeBERTa - v3 - base - mnli - xnli
該多語言模型可對100種語言進行自然語言推理(NLI),因此也適用於多語言零樣本分類。它能有效解決在多種語言場景下進行文本分類和推理的問題,為跨語言的自然語言處理任務提供了強大的支持。
🚀 快速開始
多語言mDeBERTa - v3 - base - mnli - xnli模型可用於自然語言推理(NLI)和零樣本分類任務。以下是使用該模型的簡單示例。
✨ 主要特性
- 支持100種語言的自然語言推理(NLI),適用於多語言零樣本分類。
- 基於mDeBERTa - base架構,截至2021年12月,是表現最佳的多語言基礎大小的Transformer模型。
- 訓練時使用專業翻譯文本,避免對部分語言過擬合,減少訓練成本。
📦 安裝指南
暫未提供安裝相關內容,可根據Hugging Face Transformers庫的通用安裝方法進行安裝。
💻 使用示例
基礎用法
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)
高級用法
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-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),因此也適用於多語言零樣本分類。基礎模型由微軟在CC100多語言數據集上進行預訓練。然後在XNLI數據集(包含來自15種語言的假設 - 前提對)以及英文MNLI數據集上進行微調。
截至2021年12月,mDeBERTa - base是表現最佳的多語言基礎大小的Transformer模型,由微軟在這篇論文中提出。
如果你正在尋找一個更小、更快(但性能稍低)的模型,可以嘗試[multilingual - MiniLMv2 - L6 - mnli - xnli](https://huggingface.co/MoritzLaurer/multilingual - MiniLMv2 - L6 - mnli - xnli)。
訓練數據
該模型在XNLI開發數據集和MNLI訓練數據集上進行訓練。XNLI開發集由2490篇從英語專業翻譯成其他14種語言的文本組成(總共37350篇文本)(見這篇論文)。請注意,XNLI包含MNLI數據集的15種機器翻譯版本的訓練集,用於15種語言,但由於這些機器翻譯存在質量問題,該模型僅在XNLI開發集的專業翻譯文本和原始英文MNLI訓練集(392702篇文本)上進行訓練。不使用機器翻譯文本可以避免模型對15種語言過擬合;避免對mDeBERTa預訓練的其他85種語言產生災難性遺忘;並顯著降低訓練成本。
訓練過程
mDeBERTa - v3 - base - mnli - xnli使用Hugging Face訓練器進行訓練,使用以下超參數:
training_args = TrainingArguments(
num_train_epochs=2, # total number of training epochs
learning_rate=2e-05,
per_device_train_batch_size=16, # batch size per device during training
per_device_eval_batch_size=16, # batch size for evaluation
warmup_ratio=0.1, # number of warmup steps for learning rate scheduler
weight_decay=0.06, # strength of weight decay
)
評估結果
該模型在XNLI測試集的15種語言上進行評估(每種語言5010篇文本,總共75150篇)。請注意,多語言NLI模型能夠在沒有接受特定語言的NLI訓練數據的情況下對NLI文本進行分類(跨語言遷移)。這意味著該模型也能夠對mDeBERTa訓練的其他85種語言進行NLI,但性能很可能低於XNLI中可用的語言。
還要注意的是,如果模型中心的其他多語言模型聲稱在非英語語言上的性能約為90%,作者很可能在測試過程中犯了錯誤,因為最新的論文中沒有一篇顯示多語言平均性能比XNLI上的80%高出幾個百分點以上(見這裡或這裡)。
平均 |
阿拉伯語(ar) |
保加利亞語(bg) |
德語(de) |
希臘語(el) |
英語(en) |
西班牙語(es) |
法語(fr) |
印地語(hi) |
俄語(ru) |
斯瓦希里語(sw) |
泰語(th) |
土耳其語(tr) |
烏爾都語(ur) |
越南語(vi) |
中文(zh) |
0.808 |
0.802 |
0.829 |
0.825 |
0.826 |
0.883 |
0.845 |
0.834 |
0.771 |
0.813 |
0.748 |
0.793 |
0.807 |
0.740 |
0.795 |
0.8116 |
🔧 技術細節
該模型基於mDeBERTa - base架構,在多語言自然語言處理任務上有出色表現。訓練過程中,通過選擇專業翻譯文本和合適的超參數,避免了過擬合和災難性遺忘問題,同時降低了訓練成本。在評估時,利用跨語言遷移能力,可對多種語言進行自然語言推理,但在非XNLI語言上性能可能有所下降。
📄 許可證
本項目採用MIT許可證。
侷限性和偏差
請參考原始DeBERTa - V3論文和不同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](https://www.linkedin.com/in/moritz - laurer/)上與我交流。
調試和問題
請注意,DeBERTa - v3於2021年底發佈,較舊版本的HF Transformers在運行該模型時似乎存在問題(例如,導致分詞器出現問題)。使用Transformers >= 4.13或更高版本可能會解決一些問題。請注意,mDeBERTa目前不支持FP16,詳情見:https://github.com/microsoft/DeBERTa/issues/77 。