模型简介
模型特点
模型能力
使用案例
🚀 多语言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/)上与我交流。



