模型概述
模型特點
模型能力
使用案例
🚀 多語言XLM-V-base-mnli-xnli
這是一個多語言模型,可對116種語言進行自然語言推理(NLI),因此也適用於多語言零樣本分類。該模型能幫助用戶在多種語言場景下高效進行文本分類和推理任務,節省標註數據的成本。
🚀 快速開始
本多語言模型可對116種語言進行自然語言推理(NLI),因此也適用於多語言零樣本分類。基礎的XLM-V-base模型由Meta AI創建,並在CC100多語言數據集上進行預訓練。然後,它在包含15種語言的假設 - 前提對的XNLI數據集以及英文MNLI數據集上進行微調。 XLM-V-base於2023年1月23日在這篇論文中發佈。其主要創新點在於擁有更大、更好的詞彙表:之前的多語言模型詞彙表有250000個標記,而XLM-V“知曉”100萬個標記。改進後的詞彙表能夠更好地表示更多語言。
✨ 主要特性
- 多語言支持:可對116種語言執行自然語言推理,適用於多語言零樣本分類。
- 創新詞彙表:擁有100萬個標記的詞彙表,相比之前的多語言模型有顯著提升,能更好地表示更多語言。
- 跨語言遷移能力:能夠在未接收特定語言的NLI訓練數據的情況下對NLI文本進行分類。
💻 使用示例
基礎用法
簡單的零樣本分類管道
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="MoritzLaurer/xlm-v-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/xlm-v-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)) # 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)
📚 詳細文檔
訓練數據
該模型在XNLI開發數據集和MNLI訓練數據集上進行訓練。XNLI開發集包含2490篇從英語專業翻譯為其他14種語言的文本(每種語言37350篇文本)(詳見這篇論文)。需要注意的是,XNLI包含15種語言的MNLI數據集的15個機器翻譯版本的訓練集,但由於這些機器翻譯存在質量問題,該模型僅在XNLI開發集的專業翻譯文本和原始英文MNLI訓練集(392702篇文本)上進行訓練。不使用機器翻譯文本可以避免模型對15種語言過擬合;避免對XLM - V預訓練的其他約101種語言產生災難性遺忘;並顯著降低訓練成本。
訓練過程
xlm-v-base-mnli-xnli使用Hugging Face訓練器進行訓練,超參數如下:
training_args = TrainingArguments(
num_train_epochs=3, # 總訓練輪數
learning_rate=2e-05,
per_device_train_batch_size=32, # 訓練時每個設備的批量大小
per_device_eval_batch_size=120, # 評估時的批量大小
warmup_ratio=0.06, # 學習率調度器的熱身步數
weight_decay=0.01, # 權重衰減強度
)
評估結果
該模型在XNLI測試集的15種語言上進行評估(每種語言5010篇文本,共75150篇)。需要注意的是,多語言NLI模型能夠在不接收特定語言的NLI訓練數據的情況下對NLI文本進行分類(跨語言遷移)。這意味著該模型也能夠對XLM - V訓練的其他約101種語言進行NLI,但性能很可能低於XNLI中可用的語言。
另外,如果模型中心的其他多語言模型聲稱在非英語語言上的性能約為90%,作者很可能在測試過程中出現了錯誤,因為最新的論文(大多是更大的模型)顯示,在XNLI上多語言平均性能超過80%幾個百分點的情況都很少見(詳見此處或此處)。
論文中報告的XLM - V在XNLI上的平均性能為0.76(詳見表2)。本次重新實現的平均性能為0.78。性能的提升可能得益於在訓練數據中加入了MNLI。需要注意的是,[mDeBERTa - v3 - base - mnli - xnli](https://huggingface.co/MoritzLaurer/mDeBERTa - v3 - base - mnli - xnli)的平均性能為0.808,並且模型更小(XLM - V為3GB,mDeBERTa為560MB),速度更快(得益於mDeBERTa更小的詞彙表)。這種差異可能源於mDeBERTa - v3改進的預訓練目標。根據具體任務,可能更適合使用[mDeBERTa - v3 - base - mnli - xnli](https://huggingface.co/MoritzLaurer/mDeBERTa - v3 - base - mnli - xnli),但由於XLM - V改進的詞彙表,它在某些語言上可能表現更好。
數據集 | 平均 | 阿拉伯語 | 保加利亞語 | 德語 | 希臘語 | 英語 | 西班牙語 | 法語 | 印地語 | 俄語 | 斯瓦希里語 | 泰語 | 土耳其語 | 烏爾都語 | 越南語 | 中文 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
準確率 | 0.780 | 0.757 | 0.808 | 0.796 | 0.79 | 0.856 | 0.814 | 0.806 | 0.751 | 0.782 | 0.725 | 0.757 | 0.766 | 0.729 | 0.784 | 0.782 |
GPU A100速度(文本/秒) | 無 | 3501.0 | 3324.0 | 3438.0 | 3174.0 | 3713.0 | 3500.0 | 3129.0 | 3042.0 | 3419.0 | 3468.0 | 3782.0 | 3772.0 | 3099.0 | 3117.0 | 4217.0 |
數據集 | mnli_m(英語) | mnli_mm(英語) |
---|---|---|
準確率 | 0.852 | 0.854 |
GPU A100速度(文本/秒) | 2098.0 | 2170.0 |
🔧 技術細節
模型基於Meta AI創建的XLM - V - base模型,先在CC100多語言數據集上預訓練,再在XNLI和MNLI數據集上微調。其創新的詞彙表有100萬個標記,相比之前的多語言模型有顯著提升,能更好地表示更多語言。訓練時使用Hugging Face訓練器,並設置了特定的超參數。評估在XNLI測試集的15種語言上進行,展現了一定的跨語言遷移能力。
📄 許可證
本項目採用MIT許可證。
⚠️ 侷限性和偏差
有關潛在偏差,請參考原始XLM - V論文和不同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聯繫我,或在[領英](https://www.linkedin.com/in/moritz - laurer/)上與我交流。



