|
--- |
|
language: |
|
- en |
|
tags: |
|
- text-classification |
|
- zero-shot-classification |
|
metrics: |
|
- accuracy |
|
widget: |
|
- text: "I liked the movie. [SEP] The movie was good." |
|
|
|
--- |
|
# MiniLM-L6-mnli-binary |
|
## Model description |
|
This model was trained on the [MultiNLI](https://huggingface.co/datasets/multi_nli) dataset. The model was trained for binary NLI, which means that the "neutral" and "contradiction" classes were merged into one class. The model therefore predicts "entailment" or "not_entailment". |
|
The base model is MiniLM-L6 from Microsoft, which is very fast, but a bit less accurate than other models. |
|
|
|
## Intended uses & limitations |
|
#### How to use the model |
|
```python |
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
import torch |
|
|
|
model_name = "MoritzLaurer/MiniLM-L6-mnli-binary" |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
model = AutoModelForSequenceClassification.from_pretrained(model_name) |
|
|
|
premise = "I liked the movie" |
|
hypothesis = "The movie was good." |
|
|
|
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", "not_entailment"] |
|
prediction = {name: round(float(pred) * 100, 1) for pred, name in zip(prediction, label_names)} |
|
print(prediction) |
|
``` |
|
### Training data |
|
[MultiNLI](https://huggingface.co/datasets/multi_nli). |
|
|
|
### Training procedure |
|
MiniLM-L6-mnli-binary was trained using the Hugging Face trainer with the following hyperparameters. |
|
``` |
|
training_args = TrainingArguments( |
|
num_train_epochs=5, # total number of training epochs |
|
learning_rate=2e-05, |
|
per_device_train_batch_size=32, # batch size per device during training |
|
per_device_eval_batch_size=32, # batch size for evaluation |
|
warmup_ratio=0.1, # number of warmup steps for learning rate scheduler |
|
weight_decay=0.06, # strength of weight decay |
|
fp16=True # mixed precision training |
|
) |
|
``` |
|
### Eval results |
|
The model was evaluated using the binary (matched) test set from MultiNLI. Accuracy: 0.886 |
|
|
|
## Limitations and bias |
|
Please consult the original MiniLM paper and literature on different NLI datasets for potential biases. |
|
|
|
### BibTeX entry and citation info |
|
If you want to cite this model, please cite the original MiniLM paper, the respective NLI datasets and include a link to this model on the Hugging Face hub. |