Saiga/Llama3 8B, Russian Llama-3-based chatbot

Based on Llama-3 8B Instruct.

Llama.cpp version: link

Colab: link

Prompt format

ะžะกะขะžะ ะžะ–ะะž! 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

Code example

# ะ˜ัะบะปัŽั‡ะธั‚ะตะปัŒะฝะพ ะพะทะฝะฐะบะพะผะธั‚ะตะปัŒะฝั‹ะน ะฟั€ะธะผะตั€.
# ะะ• ะะะ”ะž ะขะะš ะ˜ะะคะ•ะ ะ˜ะขะฌ ะœะžะ”ะ•ะ›ะฌ ะ’ ะŸะ ะžะ”ะ•.
# ะกะผ. 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()

Output examples

User: ะŸะพั‡ะตะผัƒ ั‚ั€ะฐะฒะฐ ะทะตะปะตะฝะฐั? 
Saiga: ะขั€ะฐะฒะฐ ะฒั‹ะณะปัะดะธั‚ ะทะตะปะตะฝั‹ะผ ะธะท-ะทะฐ ะฝะฐะปะธั‡ะธั ะฒ ะฝะตะน ั…ะปะพั€ะพั„ะธะปะปะฐ โ€“ ะฟะธะณะผะตะฝั‚ะฐ, ะบะพั‚ะพั€ั‹ะน ะฟะพะผะพะณะฐะตั‚ ั€ะฐัั‚ะตะฝะธัะผ ะฟะพะณะปะพั‰ะฐั‚ัŒ ัะพะปะฝะตั‡ะฝัƒัŽ ัะฝะตั€ะณะธัŽ ะดะปั ะฟั€ะพั†ะตััะฐ ั„ะพั‚ะพัะธะฝั‚ะตะทะฐ.
ะฅะปะพั€ะพั„ะธะปะป ะฟะพะณะปะพั‰ะฐะตั‚ ัะฒะตั‚ะพะฒั‹ะต ะปัƒั‡ะธ ั ะดะปะธะฝะพะน ะฒะพะปะฝั‹ 400-500 ะฝะฐะฝะพะผะตั‚ั€ะพะฒ (ะฑะปะธะถะต ะบ ัะธะฝะตะผัƒ) ะธ ะพั‚ั€ะฐะถะฐะตั‚ ะปัƒั‡ะธ ั ะดะปะธะฝะพะน ะฒะพะปะฝั‹ 600-700 ะฝะฐะฝะพะผะตั‚ั€ะพะฒ (ะฑะปะธะถะต ะบ ะบั€ะฐัะฝะพะผัƒ), ั‡ั‚ะพ ะดะตะปะฐะตั‚ ะตะณะพ ะฒะธะดะธะผั‹ะผ ะบะฐะบ ะทะตะปะตะฝั‹ะน ั†ะฒะตั‚.
ะขะฐะบะธะผ ะพะฑั€ะฐะทะพะผ, ะทะตะปะตะฝั‹ะน ั†ะฒะตั‚ ัะฒะปัะตั‚ัั ั€ะตะทัƒะปัŒั‚ะฐั‚ะพะผ ั‚ะพะณะพ, ะบะฐะบ ั…ะปะพั€ะพั„ะธะปะป ะฒะทะฐะธะผะพะดะตะนัั‚ะฒัƒะตั‚ ัะพ ัะฒะตั‚ะพะผ, ะพะฑะตัะฟะตั‡ะธะฒะฐั ั€ะฐัั‚ะตะฝะธั ะฝะตะพะฑั…ะพะดะธะผะพะน ัะฝะตั€ะณะธะธ ะดะปั ั€ะพัั‚ะฐ ะธ ั€ะฐะทะฒะธั‚ะธั.
User: ะกะพั‡ะธะฝะธ ะดะปะธะฝะฝั‹ะน ั€ะฐััะบะฐะท, ะพะฑัะทะฐั‚ะตะปัŒะฝะพ ัƒะฟะพะผะธะฝะฐั ัะปะตะดัƒัŽั‰ะธะต ะพะฑัŠะตะบั‚ั‹. ะ”ะฐะฝะพ: ะขะฐะฝั, ะผัั‡
Saiga: ะ’ ะฝะตะฑะพะปัŒัˆะพะน ะดะตั€ะตะฒัƒัˆะบะต ะฟะพะด ะพั‚ะบั€ั‹ั‚ั‹ะผ ะฝะตะฑะพะผ ะถะธะปะฐ ะดะตะฒะพั‡ะบะฐ ะฟะพ ะธะผะตะฝะธ ะขะฐะฝั. ะžะฝะฐ ะฑั‹ะปะฐ ะพั‡ะตะฝัŒ ะฐะบั‚ะธะฒะฝะพะน ะธ ะปัŽะฑัั‰ะตะน ะธะณั€ะฐั‚ัŒ ะฒ ั€ะฐะทะปะธั‡ะฝั‹ะต ะฒะธะดั‹ ัะฟะพั€ั‚ะฐ. ะžะดะฝะฐะถะดั‹, ะบะพะณะดะฐ ะพะฝะฐ ะฟั€ะพะณัƒะปะธะฒะฐะปะฐััŒ ะฟะพ ะฟะพะปัะผ, ัƒะฒะธะดะตะปะฐ ะฝะฐ ะทะตะผะปะต ะปะตะถะฐั‰ะธะน ะผัั‡. ะญั‚ะพ ะฑั‹ะป ัั‚ะฐั€ั‹ะน, ะฝะพ ะฒัะต ะตั‰ะต ะฟั€ะธะณะพะดะฝั‹ะน ะดะปั ะธะณั€ั‹ ะผัั‡ะธะบ.
ะขะฐะฝั ัั€ะฐะทัƒ ะถะต ั€ะตัˆะธะปะฐ ะฒะทัั‚ัŒ ะตะณะพ ัะตะฑะต ะดะพะผะพะน ะธ ะฟะพะบะฐะทะฐั‚ัŒ ัะฒะพะตะผัƒ ะดั€ัƒะณัƒ ะœะธัˆะต. ะœะธัˆะบะฐ ั‚ะพะถะต ะพะฑะพะถะฐะป ั„ัƒั‚ะฑะพะป ะธ ะฒัะตะณะดะฐ ั€ะฐะด ะฑั‹ะป ะฑั‹ ะฟั€ะพะฒะตัั‚ะธ ะฒั€ะตะผั ะฒะผะตัั‚ะต ัะพ ัะฒะพะธะผะธ ะดั€ัƒะทัŒัะผะธ. ะšะพะณะดะฐ ะพะฝะธ ะฒะตั€ะฝัƒะปะธััŒ ะดะพะผะพะน, ะขะฐะฝั ะฟะพะบะฐะทะฐะปะฐ ะตะผัƒ ะฝะฐะนะดะตะฝะฝั‹ะน ะผัั‡ะธะบ ะธ ะฟั€ะตะดะปะพะถะธะปะฐ ัั‹ะณั€ะฐั‚ัŒ ะฒ ั„ัƒั‚ะฑะพะป.
ะœะธัˆะบะฐ ะฑั‹ะป ัั‡ะฐัั‚ะปะธะฒ, ั‡ั‚ะพ ัƒ ะฝะธั… ะฟะพัะฒะธะปัั ะฝะพะฒั‹ะน ะผัั‡, ะธ ะพะฝะธ ัั€ะฐะทัƒ ะถะต ะฝะฐั‡ะฐะปะธ ะณะพั‚ะพะฒะธั‚ัŒัั ะบ ะผะฐั‚ั‡ัƒ. ะžะฝะธ ะฟะพัั‚ั€ะพะธะปะธ ะดะฒะต ะบะพะผะฐะฝะดั‹ ะธ ะฝะฐั‡ะฐะปะธ ะธะณั€ัƒ. ะ˜ะณั€ะฐะปะธ ะพะฝะธ ะดะพ ะฒะตั‡ะตั€ะฐ, ะฐ ะฟะพั‚ะพะผ ั€ะตัˆะธะปะธ ัะดะตะปะฐั‚ัŒ ะฟะตั€ะตั€ั‹ะฒ ะธ ะฟั€ะธะณะพั‚ะพะฒะธั‚ัŒ ัƒะถะธะฝ.
ะŸะพัะปะต ัƒะถะธะฝะฐ ะพะฝะธ ะฟั€ะพะดะพะปะถะธะปะธ ะธะณั€ัƒ, ั‚ะตะฟะตั€ัŒ ัƒะถะต ั ะฑะพะปัŒัˆะธะผ ัะฝั‚ัƒะทะธะฐะทะผะพะผ ะธ ัั‚ั€ะฐัั‚ัŒัŽ. ะ’ ะบะพะฝั†ะต ะบะพะฝั†ะพะฒ, ะฟะพะฑะตะดะธั‚ะตะปะตะผ ัั‚ะฐะปะฐ ะบะพะผะฐะฝะดะฐ ะขะฐะฝะธ, ะบะพั‚ะพั€ะฐั ะทะฐะฑะธะปะฐ ะฑะพะปัŒัˆะต ะณะพะปะพะฒ. ะ’ัะต ะทะฐะบะพะฝั‡ะธะปะพััŒ ะฒะตัะตะปั‹ะผ ะฟั€ะฐะทะดะฝะธะบะพะผ ะธ ั…ะพั€ะพัˆะธะผะธ ะฒะพัะฟะพะผะธะฝะฐะฝะธัะผะธ ะพ ะฟั€ะพะฒะตะดะตะฝะฝะพะผ ะฒั€ะตะผะตะฝะธ.
ะะฐ ัะปะตะดัƒัŽั‰ะธะน ะดะตะฝัŒ ะขะฐะฝั ะธ ะœะธัˆะฐ ั€ะตัˆะธะปะธ ะฟั€ะธะณะปะฐัะธั‚ัŒ ัะฒะพะธั… ะดั€ัƒะณะธั… ะดั€ัƒะทะตะน ะฝะฐ ะธะณั€ัƒ. ะžะฝะธ ัะพะฑั€ะฐะปะธ ะฒัะตั… ะฒ ะพะดะฝะพะผ ะผะตัั‚ะต ะธ ะฟั€ะพะฒะตะปะธ ะตั‰ั‘ ะพะดะธะฝ ะทะฐั…ะฒะฐั‚ั‹ะฒะฐัŽั‰ะธะน ะผะฐั‚ั‡. ะญั‚ะพั‚ ะดะตะฝัŒ ั‚ะฐะบะถะต ัั‚ะฐะป ะฝะตะทะฐะฑั‹ะฒะฐะตะผั‹ะผ ะฑะปะฐะณะพะดะฐั€ั ะฝะพะฒะพะผัƒ ะผัั‡ัƒ, ะบะพั‚ะพั€ั‹ะน ะฟั€ะธะฝะตั ั‚ะฐะบ ะผะฝะพะณะพ ั€ะฐะดะพัั‚ะธ ะธ ัƒะปั‹ะฑะพะบ.
ะ˜ั‚ะฐะบ, ัั‚ะพั‚ ะผะฐะปะตะฝัŒะบะธะน ะผัั‡, ะบะพั‚ะพั€ั‹ะน ะขะฐะฝั ะฝะฐัˆะปะฐ ะฝะฐ ะฟะพะปะต, ัั‚ะฐะป ะฝะต ะฟั€ะพัั‚ะพ ะฟั€ะตะดะผะตั‚ะพะผ ะดะปั ะธะณั€, ะฝะพ ะธ ัะธะผะฒะพะปะพะผ ะดั€ัƒะถะฑั‹ ะธ ะฒะตัะตะปัŒั ะผะตะถะดัƒ ะดะตั‚ัŒะผะธ. ะžะฝ ะฟะพะผะพะณ ะธะผ ัะพะทะดะฐั‚ัŒ ะฝะตะทะฐะฑั‹ะฒะฐะตะผั‹ะต ะผะพะผะตะฝั‚ั‹ ะธ ัƒะบั€ะตะฟะธะป ะธั… ะพั‚ะฝะพัˆะตะฝะธั.

Versions

v7:

v6:

v5:

v4:

v3:

v2:

Evaluation

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
Downloads last month
409,083
Safetensors
Model size
8B params
Tensor type
BF16
ยท
Inference Providers NEW
Input a message to start chatting with IlyaGusev/saiga_llama3_8b.

Model tree for IlyaGusev/saiga_llama3_8b

Adapters
11 models
Finetunes
9 models
Merges
10 models
Quantizations
26 models

Dataset used to train IlyaGusev/saiga_llama3_8b

Spaces using IlyaGusev/saiga_llama3_8b 16

Collection including IlyaGusev/saiga_llama3_8b