🚀 MiniLM-L6-mnli-fever-docnli-ling-2c
本项目的模型可用于文本分类和零样本分类任务,通过在多个自然语言推理(NLI)数据集上训练,能够学习长距离推理,实现对“蕴含”或“非蕴含”的预测。
🚀 快速开始
使用示例
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "MoritzLaurer/MiniLM-L6-mnli-fever-docnli-ling-2c"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
premise = "I first thought that I liked the movie, but upon second thought it was actually disappointing."
hypothesis = "The movie was good."
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", "not_entailment"]
prediction = {name: round(float(pred) * 100, 1) for pred, name in zip(prediction, label_names)}
print(prediction)
✨ 主要特性
- 该模型在来自8个NLI数据集的1279665个假设 - 前提对上进行训练,这些数据集包括MultiNLI、Fever-NLI、LingNLI和DocNLI(其中包括ANLI、QNLI、DUC、CNN/DailyMail、Curation)。
- 它是模型中心唯一在8个NLI数据集上训练的模型,其中DocNLI包含非常长的文本,有助于学习长距离推理。
- 模型基于二元NLI进行训练,用于预测“蕴含”或“非蕴含”。DocNLI将“中立”和“矛盾”类别合并为“非蕴含”,以创建更多训练数据。
- 基础模型是微软的MiniLM-L6,速度非常快,但比其他模型的准确性稍低。
📚 详细文档
预期用途和限制
模型使用方法
使用该模型时,可参考上述代码示例。
训练数据
该模型在来自8个NLI数据集的1279665个假设 - 前提对上进行训练,具体数据集如下:
训练过程
使用Hugging Face训练器进行训练,超参数设置如下:
training_args = TrainingArguments(
num_train_epochs=3,
learning_rate=2e-05,
per_device_train_batch_size=32,
per_device_eval_batch_size=32,
warmup_ratio=0.1,
weight_decay=0.06,
fp16=True
)
评估结果
使用MultiNLI和ANLI的二元测试集以及Fever-NLI的二元开发集(两类而非三类)对模型进行评估,评估指标为准确率。
mnli-m-2c |
mnli-mm-2c |
fever-nli-2c |
anli-all-2c |
anli-r3-2c |
(to upload) |
|
|
|
|
局限性和偏差
如需了解潜在偏差,请参考原始MiniLM论文和不同NLI数据集的相关文献。
BibTeX引用和引用信息
如果您想引用此模型,请引用原始MiniLM论文、相应的NLI数据集,并包含此模型在Hugging Face中心的链接。
合作想法或问题咨询
如果您有问题或合作想法,请通过m.laurer{at}vu.nl联系我,或访问LinkedIn。