61 lines
2.3 KiB
Markdown
61 lines
2.3 KiB
Markdown
---
|
|
language:
|
|
- en
|
|
license: apache-2.0
|
|
library_name: transformers
|
|
datasets:
|
|
- argilla/distilabel-capybara-dpo-7k-binarized
|
|
---
|
|
|
|
# Mistral-v0.2-orpo
|
|
|
|
|
|

|
|
|
|
*Mistral-v0.2-orpo* is a fine-tuned version of the new **[Mistral-7B-v0.2](https://huggingface.co/alpindale/Mistral-7B-v0.2-hf)** on **[argilla/distilabel-capybara-dpo-7k-binarized](https://huggingface.co/datasets/argilla/distilabel-capybara-dpo-7k-binarized)**
|
|
preference dataset using *Odds Ratio Preference Optimization (ORPO)*. The model has been trained for 1 epoch. It took almost 8 hours on A100 GPU.
|
|
|
|
## 💥 LazyORPO
|
|
|
|
This model has been trained using **[LazyORPO](https://colab.research.google.com/drive/19ci5XIcJDxDVPY2xC1ftZ5z1kc2ah_rx?usp=sharing)**. A colab notebook that makes the training
|
|
process much easier. Based on [ORPO paper](https://colab.research.google.com/corgiredirector?site=https%3A%2F%2Fhuggingface.co%2Fpapers%2F2403.07691)
|
|
|
|
|
|

|
|
|
|
#### 🎭 What is ORPO?
|
|
|
|
Odds Ratio Preference Optimization (ORPO) proposes a new method to train LLMs by combining SFT and Alignment into a new objective (loss function), achieving state of the art results.
|
|
Some highlights of this techniques are:
|
|
|
|
* 🧠 Reference model-free → memory friendly
|
|
* 🔄 Replaces SFT+DPO/PPO with 1 single method (ORPO)
|
|
* 🏆 ORPO Outperforms SFT, SFT+DPO on PHI-2, Llama 2, and Mistral
|
|
* 📊 Mistral ORPO achieves 12.20% on AlpacaEval2.0, 66.19% on IFEval, and 7.32 on MT-Bench out Hugging Face Zephyr Beta
|
|
|
|
|
|
#### 💻 Usage
|
|
|
|
```python
|
|
import torch
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
|
|
torch.set_default_device("cuda")
|
|
|
|
model = AutoModelForCausalLM.from_pretrained("abideen/Mistral-v0.2-orpo", torch_dtype="auto", trust_remote_code=True)
|
|
tokenizer = AutoTokenizer.from_pretrained("abideen/Mistral-v0.2-orpo", trust_remote_code=True)
|
|
|
|
inputs = tokenizer('''
|
|
"""
|
|
Write a detailed analogy between mathematics and a lighthouse.
|
|
"""''', return_tensors="pt", return_attention_mask=False)
|
|
|
|
outputs = model.generate(**inputs, max_length=200)
|
|
text = tokenizer.batch_decode(outputs)[0]
|
|
print(text)
|
|
|
|
```
|
|
|
|
## 🏆 Evaluation
|
|
|
|
### COMING SOON |