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
34,908
Safetensors
Model size
8.03B params
Tensor type
BF16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for IlyaGusev/saiga_llama3_8b

Adapters
10 models
Finetunes
12 models
Merges
9 models
Quantizations
24 models

Dataset used to train IlyaGusev/saiga_llama3_8b

Spaces using IlyaGusev/saiga_llama3_8b 11

Collection including IlyaGusev/saiga_llama3_8b