# Model Card for Oasis

Mistral-7B-v0.1 model fine-tuned on the Ultrafeedback dataset using techinques shown in the paper [Self-Rewarding Language Models](https://arxiv.org/abs/2401.10020).

## Results

| model_name   |   Average |   arc_challenge |    gsm8k |   hellaswag |     mmlu |   truthfulqa_mc2 |   winogrande |
|:-------------|----------:|----------------:|---------:|------------:|---------:|-----------------:|-------------:|
| Oasis        |  0.701904 |        0.613481 | 0.741471 |    0.848337 | 0.639652 |         0.602897 |     0.765588 |

## Instruction format

In order to leverage instruction fine-tuning, your prompt should be surrounded by `[INST]` and `[/INST]` tokens. The very first instruction should begin with a begin of sentence id. The next instructions should not. The assistant generation will be ended by the end-of-sentence token id.


E.g.
```
text = "<s>[INST] What is your favourite condiment? [/INST]"
"Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!</s> "
"[INST] Do you have mayonnaise recipes? [/INST]"
```

This format is available as a [chat template](https://huggingface.co/docs/transformers/main/chat_templating) via the `apply_chat_template()` method:

```python
from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda" # the device to load the model onto

model = AutoModelForCausalLM.from_pretrained("Xenon1/Oasis")
tokenizer = AutoTokenizer.from_pretrained("Xenon1/Oasis")

messages = [
    {"role": "user", "content": "What is your favourite condiment?"},
    {"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
    {"role": "user", "content": "Do you have mayonnaise recipes?"}
]

encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt")

model_inputs = encodeds.to(device)
model.to(device)

generated_ids = model.generate(model_inputs, max_new_tokens=1000, do_sample=True)
decoded = tokenizer.batch_decode(generated_ids)
print(decoded[0])
```

## Model Architecture
This instruction model is based on Mistral-7B-v0.1, a transformer model with the following architecture choices:
- Grouped-Query Attention
- Sliding-Window Attention
- Byte-fallback BPE tokenizer
{"language": ["en"], "license": "apache-2.0", "tags": ["mistral", "Oasis"], "pipeline_tag": "text-generation"}
transformers safetensors mixtral text-generation mistral Oasis en arxiv:2401.10020 license:apache-2.0 autotrain_compatible endpoints_compatible text-generation-inference region:us