Saiga
Collection
LLaMA-based or Mistral-based Russian chat models
β’
9 items
β’
Updated
β’
29
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 |