IlyaGusev/saiga_scored
Viewer โข Updated โข 41.6k โข 1.61k โข 23
How to use IlyaGusev/saiga_llama3_8b with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="IlyaGusev/saiga_llama3_8b")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("IlyaGusev/saiga_llama3_8b")
model = AutoModelForCausalLM.from_pretrained("IlyaGusev/saiga_llama3_8b", device_map="auto")
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 IlyaGusev/saiga_llama3_8b with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "IlyaGusev/saiga_llama3_8b"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "IlyaGusev/saiga_llama3_8b",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/IlyaGusev/saiga_llama3_8b
How to use IlyaGusev/saiga_llama3_8b with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "IlyaGusev/saiga_llama3_8b" \
--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": "IlyaGusev/saiga_llama3_8b",
"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 "IlyaGusev/saiga_llama3_8b" \
--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": "IlyaGusev/saiga_llama3_8b",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use IlyaGusev/saiga_llama3_8b with Docker Model Runner:
docker model run hf.co/IlyaGusev/saiga_llama3_8b
Based on Llama-3 8B Instruct.
Llama.cpp version: link
Colab: link
ะะกะขะะ ะะะะ! WARNING! LET OP!
I've changed the prompt format from ChatML to the original Llama-3 format in v4. Don't forget to switch formats!
v4, v5, v6+: LLama-3 prompt format:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
ะขั โ ะกะฐะนะณะฐ, ััััะบะพัะทััะฝัะน ะฐะฒัะพะผะฐัะธัะตัะบะธะน ะฐััะธััะตะฝั. ะขั ัะฐะทะณะพะฒะฐัะธะฒะฐะตัั ั ะปัะดัะผะธ ะธ ะฟะพะผะพะณะฐะตัั ะธะผ.<|eot_id|><|start_header_id|>user<|end_header_id|>
ะะฐะบ ะดะตะปะฐ?<|eot_id|><|start_header_id|>assistant<|end_header_id|>
ะัะปะธัะฝะพ, ะฐ ั ัะตะฑั?<|eot_id|><|start_header_id|>user<|end_header_id|>
ะจะธะบะฐัะฝะพ. ะะฐะบ ะฟัะพะนัะธ ะฒ ะฑะธะฑะปะธะพัะตะบั?<|eot_id|><|start_header_id|>assistant<|end_header_id|>
v2, v3: ChatML prompt format:
<|im_start|>system
ะขั โ ะกะฐะนะณะฐ, ััััะบะพัะทััะฝัะน ะฐะฒัะพะผะฐัะธัะตัะบะธะน ะฐััะธััะตะฝั. ะขั ัะฐะทะณะพะฒะฐัะธะฒะฐะตัั ั ะปัะดัะผะธ ะธ ะฟะพะผะพะณะฐะตัั ะธะผ.<|im_end|>
<|im_start|>user
ะะฐะบ ะดะตะปะฐ?<|im_end|>
<|im_start|>assistant
ะัะปะธัะฝะพ, ะฐ ั ัะตะฑั?<|im_end|>
<|im_start|>user
ะจะธะบะฐัะฝะพ. ะะฐะบ ะฟัะพะนัะธ ะฒ ะฑะธะฑะปะธะพัะตะบั?<|im_end|>
<|im_start|>assistant
# ะัะบะปััะธัะตะปัะฝะพ ะพะทะฝะฐะบะพะผะธัะตะปัะฝัะน ะฟัะธะผะตั.
# ะะ ะะะะ ะขะะ ะะะคะะ ะะขะฌ ะะะะะะฌ ะ ะะ ะะะ.
# ะกะผ. https://github.com/vllm-project/vllm ะธะปะธ https://github.com/huggingface/text-generation-inference
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
MODEL_NAME = "IlyaGusev/saiga_llama3_8b"
DEFAULT_SYSTEM_PROMPT = "ะขั โ ะกะฐะนะณะฐ, ััััะบะพัะทััะฝัะน ะฐะฒัะพะผะฐัะธัะตัะบะธะน ะฐััะธััะตะฝั. ะขั ัะฐะทะณะพะฒะฐัะธะฒะฐะตัั ั ะปัะดัะผะธ ะธ ะฟะพะผะพะณะฐะตัั ะธะผ."
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
load_in_8bit=True,
torch_dtype=torch.bfloat16,
device_map="auto"
)
model.eval()
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
generation_config = GenerationConfig.from_pretrained(MODEL_NAME)
print(generation_config)
inputs = ["ะะพัะตะผั ััะฐะฒะฐ ะทะตะปะตะฝะฐั?", "ะกะพัะธะฝะธ ะดะปะธะฝะฝัะน ัะฐััะบะฐะท, ะพะฑัะทะฐัะตะปัะฝะพ ัะฟะพะผะธะฝะฐั ัะปะตะดัััะธะต ะพะฑัะตะบัั. ะะฐะฝะพ: ะขะฐะฝั, ะผัั"]
for query in inputs:
prompt = tokenizer.apply_chat_template([{
"role": "system",
"content": DEFAULT_SYSTEM_PROMPT
}, {
"role": "user",
"content": query
}], tokenize=False, add_generation_prompt=True)
data = tokenizer(prompt, return_tensors="pt", add_special_tokens=False)
data = {k: v.to(model.device) for k, v in data.items()}
output_ids = model.generate(**data, generation_config=generation_config)[0]
output_ids = output_ids[len(data["input_ids"][0]):]
output = tokenizer.decode(output_ids, skip_special_tokens=True).strip()
print(query)
print(output)
print()
print("==============================")
print()
User: ะะพัะตะผั ััะฐะฒะฐ ะทะตะปะตะฝะฐั?
Saiga: ะขัะฐะฒะฐ ะฒัะณะปัะดะธั ะทะตะปะตะฝัะผ ะธะท-ะทะฐ ะฝะฐะปะธัะธั ะฒ ะฝะตะน ั
ะปะพัะพัะธะปะปะฐ โ ะฟะธะณะผะตะฝัะฐ, ะบะพัะพััะน ะฟะพะผะพะณะฐะตั ัะฐััะตะฝะธัะผ ะฟะพะณะปะพัะฐัั ัะพะปะฝะตัะฝัั ัะฝะตัะณะธั ะดะปั ะฟัะพัะตััะฐ ัะพัะพัะธะฝัะตะทะฐ.
ะฅะปะพัะพัะธะปะป ะฟะพะณะปะพัะฐะตั ัะฒะตัะพะฒัะต ะปััะธ ั ะดะปะธะฝะพะน ะฒะพะปะฝั 400-500 ะฝะฐะฝะพะผะตััะพะฒ (ะฑะปะธะถะต ะบ ัะธะฝะตะผั) ะธ ะพััะฐะถะฐะตั ะปััะธ ั ะดะปะธะฝะพะน ะฒะพะปะฝั 600-700 ะฝะฐะฝะพะผะตััะพะฒ (ะฑะปะธะถะต ะบ ะบัะฐัะฝะพะผั), ััะพ ะดะตะปะฐะตั ะตะณะพ ะฒะธะดะธะผัะผ ะบะฐะบ ะทะตะปะตะฝัะน ัะฒะตั.
ะขะฐะบะธะผ ะพะฑัะฐะทะพะผ, ะทะตะปะตะฝัะน ัะฒะตั ัะฒะปัะตััั ัะตะทัะปััะฐัะพะผ ัะพะณะพ, ะบะฐะบ ั
ะปะพัะพัะธะปะป ะฒะทะฐะธะผะพะดะตะนััะฒัะตั ัะพ ัะฒะตัะพะผ, ะพะฑะตัะฟะตัะธะฒะฐั ัะฐััะตะฝะธั ะฝะตะพะฑั
ะพะดะธะผะพะน ัะฝะตัะณะธะธ ะดะปั ัะพััะฐ ะธ ัะฐะทะฒะธัะธั.
User: ะกะพัะธะฝะธ ะดะปะธะฝะฝัะน ัะฐััะบะฐะท, ะพะฑัะทะฐัะตะปัะฝะพ ัะฟะพะผะธะฝะฐั ัะปะตะดัััะธะต ะพะฑัะตะบัั. ะะฐะฝะพ: ะขะฐะฝั, ะผัั
Saiga: ะ ะฝะตะฑะพะปััะพะน ะดะตัะตะฒััะบะต ะฟะพะด ะพัะบััััะผ ะฝะตะฑะพะผ ะถะธะปะฐ ะดะตะฒะพัะบะฐ ะฟะพ ะธะผะตะฝะธ ะขะฐะฝั. ะะฝะฐ ะฑัะปะฐ ะพัะตะฝั ะฐะบัะธะฒะฝะพะน ะธ ะปัะฑััะตะน ะธะณัะฐัั ะฒ ัะฐะทะปะธัะฝัะต ะฒะธะดั ัะฟะพััะฐ. ะะดะฝะฐะถะดั, ะบะพะณะดะฐ ะพะฝะฐ ะฟัะพะณัะปะธะฒะฐะปะฐัั ะฟะพ ะฟะพะปัะผ, ัะฒะธะดะตะปะฐ ะฝะฐ ะทะตะผะปะต ะปะตะถะฐัะธะน ะผัั. ะญัะพ ะฑัะป ััะฐััะน, ะฝะพ ะฒัะต ะตัะต ะฟัะธะณะพะดะฝัะน ะดะปั ะธะณัั ะผััะธะบ.
ะขะฐะฝั ััะฐะทั ะถะต ัะตัะธะปะฐ ะฒะทััั ะตะณะพ ัะตะฑะต ะดะพะผะพะน ะธ ะฟะพะบะฐะทะฐัั ัะฒะพะตะผั ะดััะณั ะะธัะต. ะะธัะบะฐ ัะพะถะต ะพะฑะพะถะฐะป ัััะฑะพะป ะธ ะฒัะตะณะดะฐ ัะฐะด ะฑัะป ะฑั ะฟัะพะฒะตััะธ ะฒัะตะผั ะฒะผะตััะต ัะพ ัะฒะพะธะผะธ ะดััะทััะผะธ. ะะพะณะดะฐ ะพะฝะธ ะฒะตัะฝัะปะธัั ะดะพะผะพะน, ะขะฐะฝั ะฟะพะบะฐะทะฐะปะฐ ะตะผั ะฝะฐะนะดะตะฝะฝัะน ะผััะธะบ ะธ ะฟัะตะดะปะพะถะธะปะฐ ััะณัะฐัั ะฒ ัััะฑะพะป.
ะะธัะบะฐ ะฑัะป ััะฐััะปะธะฒ, ััะพ ั ะฝะธั
ะฟะพัะฒะธะปัั ะฝะพะฒัะน ะผัั, ะธ ะพะฝะธ ััะฐะทั ะถะต ะฝะฐัะฐะปะธ ะณะพัะพะฒะธัััั ะบ ะผะฐััั. ะะฝะธ ะฟะพัััะพะธะปะธ ะดะฒะต ะบะพะผะฐะฝะดั ะธ ะฝะฐัะฐะปะธ ะธะณัั. ะะณัะฐะปะธ ะพะฝะธ ะดะพ ะฒะตัะตัะฐ, ะฐ ะฟะพัะพะผ ัะตัะธะปะธ ัะดะตะปะฐัั ะฟะตัะตััะฒ ะธ ะฟัะธะณะพัะพะฒะธัั ัะถะธะฝ.
ะะพัะปะต ัะถะธะฝะฐ ะพะฝะธ ะฟัะพะดะพะปะถะธะปะธ ะธะณัั, ัะตะฟะตัั ัะถะต ั ะฑะพะปััะธะผ ัะฝััะทะธะฐะทะผะพะผ ะธ ัััะฐัััั. ะ ะบะพะฝัะต ะบะพะฝัะพะฒ, ะฟะพะฑะตะดะธัะตะปะตะผ ััะฐะปะฐ ะบะพะผะฐะฝะดะฐ ะขะฐะฝะธ, ะบะพัะพัะฐั ะทะฐะฑะธะปะฐ ะฑะพะปััะต ะณะพะปะพะฒ. ะัะต ะทะฐะบะพะฝัะธะปะพัั ะฒะตัะตะปัะผ ะฟัะฐะทะดะฝะธะบะพะผ ะธ ั
ะพัะพัะธะผะธ ะฒะพัะฟะพะผะธะฝะฐะฝะธัะผะธ ะพ ะฟัะพะฒะตะดะตะฝะฝะพะผ ะฒัะตะผะตะฝะธ.
ะะฐ ัะปะตะดัััะธะน ะดะตะฝั ะขะฐะฝั ะธ ะะธัะฐ ัะตัะธะปะธ ะฟัะธะณะปะฐัะธัั ัะฒะพะธั
ะดััะณะธั
ะดััะทะตะน ะฝะฐ ะธะณัั. ะะฝะธ ัะพะฑัะฐะปะธ ะฒัะตั
ะฒ ะพะดะฝะพะผ ะผะตััะต ะธ ะฟัะพะฒะตะปะธ ะตัั ะพะดะธะฝ ะทะฐั
ะฒะฐััะฒะฐััะธะน ะผะฐัั. ะญัะพั ะดะตะฝั ัะฐะบะถะต ััะฐะป ะฝะตะทะฐะฑัะฒะฐะตะผัะผ ะฑะปะฐะณะพะดะฐัั ะฝะพะฒะพะผั ะผััั, ะบะพัะพััะน ะฟัะธะฝะตั ัะฐะบ ะผะฝะพะณะพ ัะฐะดะพััะธ ะธ ัะปัะฑะพะบ.
ะัะฐะบ, ััะพั ะผะฐะปะตะฝัะบะธะน ะผัั, ะบะพัะพััะน ะขะฐะฝั ะฝะฐัะปะฐ ะฝะฐ ะฟะพะปะต, ััะฐะป ะฝะต ะฟัะพััะพ ะฟัะตะดะผะตัะพะผ ะดะปั ะธะณั, ะฝะพ ะธ ัะธะผะฒะพะปะพะผ ะดััะถะฑั ะธ ะฒะตัะตะปัั ะผะตะถะดั ะดะตััะผะธ. ะะฝ ะฟะพะผะพะณ ะธะผ ัะพะทะดะฐัั ะฝะตะทะฐะฑัะฒะฐะตะผัะต ะผะพะผะตะฝัั ะธ ัะบัะตะฟะธะป ะธั
ะพัะฝะพัะตะฝะธั.
v7:
v6:
v5:
v4:
v3:
v2:
Pivot: chatgpt_3_5_turbo
| model | length_controlled_winrate | win_rate | standard_error | avg_length |
|---|---|---|---|---|
| chatgpt_4_turbo | 76.04 | 90.00 | 1.46 | 1270 |
| chatgpt_3_5_turbo | 50.00 | 50.00 | 0.00 | 536 |
| saiga_llama3_8b, v6 | 49.33 | 68.31 | 2.26 | 1262 |
| sfr-iter-dpo | 49.11 | 74.94 | 2.13 | 1215 |
| suzume | 49.05 | 71.57 | 2.20 | 1325 |
| saiga_llama3_8b, v7 | 48.95 | 69.40 | 2.25 | 1266 |
| saiga_llama3_8b, v5 | 47.13 | 66.18 | 2.31 | 1194 |
| saiga_llama3_8b, v4 | 43.64 | 65.90 | 2.31 | 1200 |
| saiga_llama3_8b, v3 | 36.97 | 61.08 | 2.38 | 1162 |
| saiga_llama3_8b, v2 | 33.07 | 48.19 | 2.45 | 1166 |
| saiga_mistral_7b | 23.38 | 35.99 | 2.34 | 949 |
Pivot: sfr
| model | length_controlled_winrate | win_rate | standard_error | avg_length |
|---|---|---|---|---|
| sfr | 50.00 | 50.00 | 0.00 | 1215 |
| saiga_llama3_8b, v7 | 48.95 | 49.16 | 2.46 | 1266 |
| saiga_llama3_8b, v6 | 46.91 | 47.23 | 2.45 | 1262 |
| suzume_8b | 43.69 | 48.19 | 2.46 | 1325 |