HuggingFaceH4/ultrafeedback_binarized
Viewer • Updated • 187k • 16.2k • 336
How to use kaist-ai/mistral-orpo-alpha with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="kaist-ai/mistral-orpo-alpha")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("kaist-ai/mistral-orpo-alpha")
model = AutoModelForCausalLM.from_pretrained("kaist-ai/mistral-orpo-alpha")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))How to use kaist-ai/mistral-orpo-alpha with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "kaist-ai/mistral-orpo-alpha"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "kaist-ai/mistral-orpo-alpha",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/kaist-ai/mistral-orpo-alpha
How to use kaist-ai/mistral-orpo-alpha with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "kaist-ai/mistral-orpo-alpha" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "kaist-ai/mistral-orpo-alpha",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "kaist-ai/mistral-orpo-alpha" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "kaist-ai/mistral-orpo-alpha",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use kaist-ai/mistral-orpo-alpha with Docker Model Runner:
docker model run hf.co/kaist-ai/mistral-orpo-alpha
Mistral-ORPO is a fine-tuned version of mistralai/Mistral-7B-v0.1 using the odds ratio preference optimization (ORPO). With ORPO, the model directly learns the preference without the supervised fine-tuning warmup phase. Mistral-ORPO-⍺ is fine-tuned exclusively on HuggingFaceH4/ultrafeedback_binarized.
| Model Name | Size | Align | MT-Bench | AlpacaEval 1.0 | AlpacaEval 2.0 |
|---|---|---|---|---|---|
| Mistral-ORPO-⍺ | 7B | ORPO | 7.23 | 87.92 | 11.33 |
| Mistral-ORPO-β | 7B | ORPO | 7.32 | 91.41 | 12.20 |
| Zephyr β | 7B | DPO | 7.34 | 90.60 | 10.99 |
| TULU-2-DPO | 13B | DPO | 7.00 | 89.5 | 10.12 |
| Llama-2-Chat | 7B | RLHF | 6.27 | 71.37 | 4.96 |
| Llama-2-Chat | 13B | RLHF | 6.65 | 81.09 | 7.70 |
| Model Type | Prompt-Strict | Prompt-Loose | Inst-Strict | Inst-Loose |
|---|---|---|---|---|
| Mistral-ORPO-⍺ | 0.5009 | 0.5083 | 0.5995 | 0.6163 |
| Mistral-ORPO-β | 0.5287 | 0.5564 | 0.6355 | 0.6619 |
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("kaist-ai/mistral-orpo-alpha")
tokenizer = AutoTokenizer.from_pretrained("kaist-ai/mistral-orpo-alpha")
# Apply chat template
query = [{'role': 'user', 'content': 'Hi! How are you doing?'}]
prompt = tokenizer.apply_chat_template(query, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors='pt')
# Generation with specific configurations
output = model.generate(
**inputs,
max_new_tokens=128,
do_sample=True,
temperature=0.7
)
response = tokenizer.batch_decode(output)
#<|user|>
#Hi! How are you doing?</s>
#<|assistant|>
#I'm doing well, thank you! How are you?</s>
@misc{hong2024orpo,
title={ORPO: Monolithic Preference Optimization without Reference Model},
author={Jiwoo Hong and Noah Lee and James Thorne},
year={2024},
eprint={2403.07691},
archivePrefix={arXiv},
primaryClass={cs.CL}
}