🚀 多语言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 。