|
--- |
|
library_name: transformers |
|
license: mit |
|
language: |
|
- fr |
|
- en |
|
tags: |
|
- french |
|
- chocolatine |
|
datasets: |
|
- jpacifico/french-orca-dpo-pairs-revised |
|
pipeline_tag: text-generation |
|
--- |
|
|
|
### Chocolatine-3B-Instruct-DPO-Revised |
|
|
|
DPO fine-tuned of [microsoft/Phi-3-mini-4k-instruct](https://huggingface.co/microsoft/Phi-3-mini-4k-instruct) (3.82B params) |
|
using the [jpacifico/french-orca-dpo-pairs-revised](https://huggingface.co/datasets/jpacifico/french-orca-dpo-pairs-revised) rlhf dataset. |
|
Training in French also improves the model in English, surpassing the performances of its base model. |
|
Window context = 4k tokens |
|
|
|
### Benchmarks |
|
|
|
Chocolatine is the best-performing 3B model on the [OpenLLM Leaderboard](https://huggingface.co/spaces/open-llm-leaderboard/open_llm_leaderboard) (august 2024) |
|
|
|
![image/png](https://github.com/jpacifico/Chocolatine-LLM/blob/main/Assets/benchmark_14B_V1.png?raw=false) |
|
|
|
|
|
| Metric |Value| |
|
|-------------------|----:| |
|
|**Avg.** |**27.63**| |
|
|IFEval (0-Shot) |56.23| |
|
|BBH (3-Shot) |37.16| |
|
|MATH Lvl 5 (4-Shot)|14.5| |
|
|GPQA (0-shot) |9.62| |
|
|MuSR (0-shot) |15.1| |
|
|MMLU-PRO (5-shot) |33.21| |
|
|
|
|
|
### MT-Bench-French |
|
|
|
Chocolatine-3B-Instruct-DPO-Revised is outperforming GPT-3.5-Turbo on [MT-Bench-French](https://huggingface.co/datasets/bofenghuang/mt-bench-french) by Bofeng Huang, |
|
used with [multilingual-mt-bench](https://github.com/Peter-Devine/multilingual_mt_bench) |
|
|
|
``` |
|
########## First turn ########## |
|
score |
|
model turn |
|
gpt-3.5-turbo 1 8.1375 |
|
Chocolatine-3B-Instruct-DPO-Revised 1 7.9875 |
|
Daredevil-8B 1 7.8875 |
|
Daredevil-8B-abliterated 1 7.8375 |
|
Chocolatine-3B-Instruct-DPO-v1.0 1 7.6875 |
|
NeuralDaredevil-8B-abliterated 1 7.6250 |
|
Phi-3-mini-4k-instruct 1 7.2125 |
|
Meta-Llama-3-8B-Instruct 1 7.1625 |
|
vigostral-7b-chat 1 6.7875 |
|
Mistral-7B-Instruct-v0.3 1 6.7500 |
|
Mistral-7B-Instruct-v0.2 1 6.2875 |
|
French-Alpaca-7B-Instruct_beta 1 5.6875 |
|
vigogne-2-7b-chat 1 5.6625 |
|
vigogne-2-7b-instruct 1 5.1375 |
|
|
|
########## Second turn ########## |
|
score |
|
model turn |
|
Chocolatine-3B-Instruct-DPO-Revised 2 7.937500 |
|
gpt-3.5-turbo 2 7.679167 |
|
Chocolatine-3B-Instruct-DPO-v1.0 2 7.612500 |
|
NeuralDaredevil-8B-abliterated 2 7.125000 |
|
Daredevil-8B 2 7.087500 |
|
Daredevil-8B-abliterated 2 6.873418 |
|
Meta-Llama-3-8B-Instruct 2 6.800000 |
|
Mistral-7B-Instruct-v0.2 2 6.512500 |
|
Mistral-7B-Instruct-v0.3 2 6.500000 |
|
Phi-3-mini-4k-instruct 2 6.487500 |
|
vigostral-7b-chat 2 6.162500 |
|
French-Alpaca-7B-Instruct_beta 2 5.487395 |
|
vigogne-2-7b-chat 2 2.775000 |
|
vigogne-2-7b-instruct 2 2.240506 |
|
|
|
########## Average ########## |
|
score |
|
model |
|
Chocolatine-3B-Instruct-DPO-Revised 7.962500 |
|
gpt-3.5-turbo 7.908333 |
|
Chocolatine-3B-Instruct-DPO-v1.0 7.650000 |
|
Daredevil-8B 7.487500 |
|
NeuralDaredevil-8B-abliterated 7.375000 |
|
Daredevil-8B-abliterated 7.358491 |
|
Meta-Llama-3-8B-Instruct 6.981250 |
|
Phi-3-mini-4k-instruct 6.850000 |
|
Mistral-7B-Instruct-v0.3 6.625000 |
|
vigostral-7b-chat 6.475000 |
|
Mistral-7B-Instruct-v0.2 6.400000 |
|
French-Alpaca-7B-Instruct_beta 5.587866 |
|
vigogne-2-7b-chat 4.218750 |
|
vigogne-2-7b-instruct 3.698113 |
|
``` |
|
|
|
### Usage |
|
|
|
You can run this model using my [Colab notebook](https://github.com/jpacifico/Chocolatine-LLM/blob/main/Chocolatine_3B_inference_test_colab.ipynb) |
|
|
|
You can also run Chocolatine using the following code: |
|
|
|
```python |
|
import transformers |
|
from transformers import AutoTokenizer |
|
|
|
# Format prompt |
|
message = [ |
|
{"role": "system", "content": "You are a helpful assistant chatbot."}, |
|
{"role": "user", "content": "What is a Large Language Model?"} |
|
] |
|
tokenizer = AutoTokenizer.from_pretrained(new_model) |
|
prompt = tokenizer.apply_chat_template(message, add_generation_prompt=True, tokenize=False) |
|
|
|
# Create pipeline |
|
pipeline = transformers.pipeline( |
|
"text-generation", |
|
model=new_model, |
|
tokenizer=tokenizer |
|
) |
|
|
|
# Generate text |
|
sequences = pipeline( |
|
prompt, |
|
do_sample=True, |
|
temperature=0.7, |
|
top_p=0.9, |
|
num_return_sequences=1, |
|
max_length=200, |
|
) |
|
print(sequences[0]['generated_text']) |
|
``` |
|
|
|
* **4-bit quantized version** is available here : [jpacifico/Chocolatine-3B-Instruct-DPO-Revised-Q4_K_M-GGUF](https://huggingface.co/jpacifico/Chocolatine-3B-Instruct-DPO-Revised-Q4_K_M-GGUF) |
|
|
|
* **Ollama**: [jpacifico/chocolatine-3b](https://ollama.com/jpacifico/chocolatine-3b) |
|
|
|
```bash |
|
ollama run jpacifico/chocolatine-3b |
|
``` |
|
|
|
Ollama *Modelfile* example : |
|
|
|
```bash |
|
FROM ./chocolatine-3b-instruct-dpo-revised-q4_k_m.gguf |
|
TEMPLATE """{{ if .System }}<|system|> |
|
{{ .System }}<|end|> |
|
{{ end }}{{ if .Prompt }}<|user|> |
|
{{ .Prompt }}<|end|> |
|
{{ end }}<|assistant|> |
|
{{ .Response }}<|end|> |
|
""" |
|
PARAMETER stop """{"stop": ["<|end|>","<|user|>","<|assistant|>"]}""" |
|
SYSTEM """You are a friendly assistant called Chocolatine.""" |
|
``` |
|
|
|
### Limitations |
|
|
|
The Chocolatine model is a quick demonstration that a base model can be easily fine-tuned to achieve compelling performance. |
|
It does not have any moderation mechanism. |
|
|
|
- **Developed by:** Jonathan Pacifico, 2024 |
|
- **Model type:** LLM |
|
- **Language(s) (NLP):** French, English |
|
- **License:** MIT |