用于自然语言推理与零样本分类的跨编码器
此模型使用SentenceTransformers中的Cross-Encoder类开发,专用于自然语言推理(NLI),通过SNLI和MultiNLI数据集训练,可输出矛盾、蕴含及中立标签分数。预训练模型兼容零样本分类,便于通过SentenceTransformers或Transformers库应用于多种文本推理与分类场景。
nli-roberta-base项目是一个用于自然语言推理(Natural Language Inference, NLI)的模型。它采用了Cross-Encoder进行训练,适用于多种语言任务,尤为关注零样本分类(Zero-Shot Classification)。
nli-roberta-base模型采用Roberta基础版(roberta-base)为基础,通过SentenceTransformers的Cross-Encoder类对其进行训练。Cross-Encoder是一种能够处理句子对的技术,可以对其进行分类以确定句子之间的逻辑关系。
这个模型主要在两个大型数据集上进行了训练:
对于每对输入的句子,模型将输出三个分数,分别表示“矛盾”(contradiction)、“蕴含”(entailment)和“中性”(neutral)这三种逻辑关系。
模型的性能评估及其详细结果可以在SBERT.net的预训练Cross-Encoder页面中找到。通过这些指标可以了解模型在不同任务中的表现水平。
用户可以通过以下代码快速应用预训练模型进行推理任务:
from sentence_transformers import CrossEncoder model = CrossEncoder('cross-encoder/nli-roberta-base') 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 = ['矛盾', '蕴含', '中性'] labels = [label_mapping[score_max] for score_max in scores.argmax(axis=1)]