|
--- |
|
license: apache-2.0 |
|
base_model: google/mt5-small |
|
tags: |
|
- generated_from_trainer |
|
metrics: |
|
- rouge |
|
- bleu |
|
- meteor |
|
datasets: |
|
- natural_questions |
|
model-index: |
|
- name: mt5-small |
|
results: |
|
- task: |
|
type: Question answering from context |
|
name: Question answering |
|
dataset: |
|
type: natural-questions |
|
name: Adapted Natural Questions |
|
metrics: |
|
- type: bleu |
|
value: 34.1596 |
|
name: BLEU |
|
verified: true |
|
- type: rouge |
|
value: 44.4366 |
|
name: ROUGE1 |
|
verified: true |
|
- type: rouge |
|
value: 38.8202 |
|
name: ROUGE2 |
|
verified: true |
|
- type: rouge |
|
value: 43.113 |
|
name: ROUGEl |
|
verified: true |
|
- type: rouge |
|
value: 43.1423 |
|
name: ROUGElsum |
|
verified: true |
|
- type: meteor |
|
value: 0.4049 |
|
name: METEOR |
|
verified: true |
|
|
|
--- |
|
|
|
# mt5-small |
|
|
|
This model is a fine-tuned version of [google/mt5-small](https://huggingface.co/google/mt5-small) on an enhanced version of the Natural Questions dataset. |
|
It achieves the following results on the evaluation set: |
|
- Loss: 0.7291 |
|
- Rouge1: 44.4366 |
|
- Rouge2: 38.8202 |
|
- Rougel: 43.113 |
|
- Rougelsum: 43.1423 |
|
- Bleu: 34.1596 |
|
- Gen Len: 12.6724 |
|
- Meteor: 0.4049 |
|
- True negatives: 69.7281 |
|
- False negatives: 10.4037 |
|
- Cosine Sim: 0.763 |
|
|
|
## Model description |
|
|
|
This model is fine-tuned for long-form, closed-domain question answering - question-answering from context. It uses a heavily refined version of [Google's Natural Questions dataset](https://ai.google.com/research/NaturalQuestions/). |
|
|
|
Answers to the questions were rewritten using [OpenAI's GPT-3.5 Turbo model](https://platform.openai.com/docs/models). |
|
|
|
Please see [the following repo](https://github.com/pointonjoel/MSc-Diss) for all code and adaptations. |
|
|
|
## Intended uses & limitations |
|
|
|
The model requires questions to be submitted using the following format using the input message: |
|
\[CONTEXT\] <\s> \[QUESTION\] |
|
|
|
It is trained to respond appropriately when a question cannot be answered using the provided context. |
|
|
|
It can give false negatives and false positives on occasion (see Training Results), and all answers must be checked appropriately. |
|
|
|
## Training and evaluation data |
|
|
|
More information needed |
|
|
|
## Usage |
|
```python |
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
# Load model and tokenizer |
|
model_name = "psxjp5/mt5-small" |
|
model = AutoModelForSeq2SeqLM.from_pretrained(model_name) |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
|
|
# Generate text |
|
context = "Once upon a time" |
|
question = "What is time" |
|
input_ids = tokenizer(context, question, return_tensors="pt").input_ids |
|
outputs = model.generate(input_ids, max_new_tokens=150) |
|
|
|
print(tokenizer.decode(output[0], skip_special_tokens=True)) |
|
``` |
|
|
|
## Training procedure |
|
|
|
### Training hyperparameters |
|
|
|
The following hyperparameters were used during training: |
|
- learning_rate: 0.001 |
|
- train_batch_size: 16 |
|
- eval_batch_size: 16 |
|
- seed: 9 |
|
- gradient_accumulation_steps: 8 |
|
- total_train_batch_size: 128 |
|
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08 |
|
- lr_scheduler_type: linear |
|
- num_epochs: 20 |
|
- weight_decay: 0.007 |
|
- dropout: 0.4 |
|
|
|
### Training results |
|
|
|
| Training Loss | Epoch | Step | Validation Loss | Rouge1 | Rouge2 | Rougel | Rougelsum | Bleu | Gen Len | Meteor | True negatives | False negatives | Cosine Sim | |
|
|:-------------:|:-----:|:----:|:---------------:|:-------:|:-------:|:-------:|:---------:|:-------:|:-------:|:------:|:--------------:|:---------------:|:----------:| |
|
| 2.5724 | 1.0 | 175 | 0.9876 | 18.7781 | 15.6002 | 18.22 | 18.2686 | 7.6676 | 7.7661 | 0.1628 | 72.8701 | 56.677 | 0.4003 | |
|
| 1.1469 | 1.99 | 350 | 0.8580 | 36.8209 | 31.2514 | 35.5008 | 35.5462 | 25.7137 | 12.0014 | 0.3311 | 62.8399 | 20.3934 | 0.66 |
|
| |
|
| 0.9468 | 2.99 | 525 | 0.7997 | 40.4128 | 34.716 | 39.0867 | 39.0972 | 29.3028 | 12.4287 | 0.3656 | 63.4441 | 15.295 | 0.7114 | |
|
| 0.8129 | 3.98 | 700 | 0.7733 | 42.6764 | 36.7266 | 41.2465 | 41.2833 | 32.0644 | 12.9002 | 0.3871 | 62.1752 | 11.413 | 0.7425 | |
|
| 0.7228 | 4.98 | 875 | 0.7483 | 42.9082 | 36.957 | 41.482 | 41.5233 | 32.4942 | 12.8866 | 0.3906 | 63.3233 | 11.5166 | 0.747 | |
|
| 0.6493 | 5.97 | 1050 | 0.7293 | 40.3205 | 34.9632 | 39.1111 | 39.1168 | 28.8249 | 11.6867 | 0.3674 | 73.8973 | 17.9865 | 0.7068 | |
|
| 0.5883 | 6.97 | 1225 | 0.7172 | 42.7342 | 37.0855 | 41.4069 | 41.424 | 32.1296 | 12.48 | 0.3887 | 70.0302 | 12.7847 | 0.7392 | |
|
| 0.5409 | 7.96 | 1400 | 0.7387 | 44.6657 | 38.8426 | 43.3276 | 43.3496 | 34.4773 | 12.9395 | 0.4084 | 66.3444 | 9.5238 | 0.7658 | |
|
| 0.5035 | 8.96 | 1575 | 0.7330 | 43.4925 | 38.0013 | 42.2697 | 42.2372 | 32.6131 | 12.2789 | 0.3979 | 72.6284 | 12.8364 | 0.7```1 | |
|
| 0.4652 | 9.95 | 1750 | 0.7291 | 44.4366 | 38.8202 | 43.113 | 43.1423 | 34.1596 | 12.6724 | 0.4049 | 69.7281 | 10.4037 | 0.763 | |
|
|
|
|
|
### Framework versions |
|
|
|
- Transformers 4.31.0 |
|
- Pytorch 2.0.1+cu118 |
|
- Datasets 2.13.1 |
|
- Tokenizers 0.13.3 |