项目介绍:nli-deberta-v3-xsmall
nli-deberta-v3-xsmall是一个用于自然语言推理的跨编码器模型。该项目建立在微软的deberta-v3-xsmall模型基础上,旨在提供准确的句子对关系预测能力。主要应用于自然语言处理(NLP)领域的零样本分类任务。
模型简介
nli-deberta-v3-xsmall使用了SentenceTransformers库中的跨编码器类进行训练,是一个为自然语言推理设计的模型。模型输出三个分值,分别对应于“矛盾”、“蕴涵”和“中立”这三种关系标签。
训练数据
该模型是在SNLI(Stanford NLI)和MultiNLI数据集上进行训练的。通过这些数据集,模型学习如何辨别句子对之间的逻辑关系。
性能表现
nli-deberta-v3-xsmall在以下数据集上的准确率表现如下:
- SNLI测试集上,准确率为91.64%
- MNLI不匹配集上,准确率为87.77%
使用指南
nli-deberta-v3-xsmall模型可以通过预训练模型进行使用。使用示例如下:
from sentence_transformers import CrossEncoder
model = CrossEncoder('cross-encoder/nli-deberta-v3-xsmall')
scores = model.predict([('A man is eating pizza', 'A man eats something'),
('A black race car starts up in front of a crowd of people.',
'A man is driving down a lonely road.')])
# 将分数转换为标签
label_mapping = ['contradiction', 'entailment', 'neutral']
labels = [label_mapping[score_max] for score_max in scores.argmax(axis=1)]
与Transformers库的结合使用
除了通过SentenceTransformers库,用户还可以直接使用Transformers库来使用该模型。
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model = AutoModelForSequenceClassification.from_pretrained('cross-encoder/nli-deberta-v3-xsmall')
tokenizer = AutoTokenizer.from_pretrained('cross-encoder/nli-deberta-v3-xsmall')
features = tokenizer(['A man is eating pizza', 'A black race car starts up in front of a crowd of people.'],
['A man eats something', 'A man is driving down a lonely road.'],
padding=True, truncation=True, return_tensors="pt")
model.eval()
with torch.no_grad():
scores = model(**features).logits
label_mapping = ['contradiction', 'entailment', 'neutral']
labels = [label_mapping[score_max] for score_max in scores.argmax(dim=1)]
print(labels)
零样本分类
nli-deberta-v3-xsmall还可以用于零样本分类,即在没有特定标签训练的情况下进行分类任务。
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model='cross-encoder/nli-deberta-v3-xsmall')
sent = "Apple just announced the newest iPhone X"
candidate_labels = ["technology", "sports", "politics"]
res = classifier(sent, candidate_labels)
print(res)
通过这些工具和示例,用户可以轻松地将nli-deberta-v3-xsmall模型应用到各种自然语言推理和分类任务中。模型发布在Apache-2.0许可证下,使用者可以根据需要自由分发和修改代码。