Safetensors
Russian
llama
File size: 12,456 Bytes
440bc91
4bfc7cb
 
 
 
 
c6649cd
fd40e51
 
440bc91
 
 
d1a0e38
440bc91
4bfc7cb
440bc91
d43fc69
 
 
440bc91
c8eb669
440bc91
4bfc7cb
440bc91
de2903f
4bfc7cb
de2903f
440bc91
4bfc7cb
440bc91
d24cd91
440bc91
4bfc7cb
440bc91
4bfc7cb
440bc91
4bfc7cb
440bc91
4bfc7cb
 
 
 
 
440bc91
4bfc7cb
 
440bc91
4bfc7cb
440bc91
4bfc7cb
 
 
 
 
 
 
440bc91
4bfc7cb
 
 
440bc91
4bfc7cb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440bc91
4bfc7cb
 
 
c8eb669
 
 
4bfc7cb
440bc91
4bfc7cb
 
c8eb669
 
 
 
 
 
 
 
 
 
 
 
4bfc7cb
440bc91
 
4bfc7cb
440bc91
4bfc7cb
 
 
 
 
 
 
 
 
440bc91
 
 
 
4bfc7cb
440bc91
4bfc7cb
440bc91
4bfc7cb
440bc91
4bfc7cb
440bc91
4bfc7cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
---
language:
- ru
datasets:
- IlyaGusev/saiga_scored
- IlyaGusev/saiga_preferences
license: other
license_name: yandexgpt-5-lite-8b-pretrain
license_link: LICENSE
---


# Saiga/YandexGPT 8B, fine-tune of YandexGPT 8b Pretrain

Based on [yandex/YandexGPT-5-Lite-8B-pretrain](https://huggingface.co/yandex/YandexGPT-5-Lite-8B-pretrain).

GGUF: [link](https://huggingface.co/IlyaGusev/saiga_yandexgpt_8b_gguf)

GPTQ 8-bit: [link](https://huggingface.co/IlyaGusev/saiga_yandexgpt_8b_gptq_8bit)

Colab: [link](https://colab.research.google.com/drive/10f2sPdQNgV_1znEXko9MLO69Mjudtpfl)

## Prompt format

v1: Llama-3 format, `<s>` should be automatically prepended:
```
<|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|>

```

## Code example
```python
# Исключительно ознакомительный пример.
# НЕ НАДО ТАК ИНФЕРИТЬ МОДЕЛЬ В ПРОДЕ.
# См. 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_yandexgpt_8b"

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": "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()}
    data.pop("token_type_ids", None)
    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: Трава зелёная благодаря процессу, известному как фотосинтез. Фотосинтез — это биохимический процесс, при котором зелёные растения преобразуют световую энергию солнца в химическую энергию, необходимую для их роста и жизнедеятельности. Этот процесс осуществляется с помощью хлорофилла, который содержится внутри клеток листьев растений (в специальных органеллах, называемых хлоропластами).
Хлорофилл является основным пигментом, ответственным за зелёный цвет растений. Он поглощает свет преимущественно в красной и синей частях спектра, отражая при этом зелёный свет. Это отражение зелёного света и делает траву, листья деревьев и другие зелёные части растений именно такого цвета для нашего глаза.
Зелёный цвет также играет важную роль в защите от ультрафиолетового излучения. Хлорофилл помогает защищать клетки растений от повреждений, вызванных слишком интенсивным солнечным светом. Таким образом, зелёный цвет не только указывает на способность растения к фотосинтезу, но и служит защитой для его организма.
```

```
User: Сочини длинный рассказ, обязательно упоминая следующие объекты. Дано: Таня, мяч
Saiga: В небольшом городке на берегу реки жила девочка по имени Таня. Её жизнь была наполнена яркими красками и бесконечными приключениями, ведь рядом всегда находился её верный спутник — обычный резиновый мяч. Этот мячик был не просто игрушкой; он словно хранил в себе частичку души Тани, связывая воедино все события её детства.
Утро начиналось с того, что Таня просыпалась под весёлый стук мяча о подоконник. Мяч скакал по комнате, словно приглашая свою хозяйку начать новый день. Девочка любила играть с ним, придумывала разнообразные игры, от простых пряток до сложных лабиринтов из мебели. Иногда она даже учила его выполнять команды – "вперёд", "назад" или "прыгай через препятствие".
Летом Таня проводила дни напролёт на пляже у реки. Река текла медленно, отражаясь в прозрачной воде солнце и облака. Рядом с собой Таня видела только песок, ракушки и своего верного спутника – мяч. Он казался ей живым существом, которое разделяло радость купания и плавания наперегонки с друзьями. Вечером же они вместе строили песчаные замки и устраивали фейерверки из цветных камней и песка.
Однажды, когда Таня играла со своим мячом около старого заброшенного дома, который местные жители называли "Домом призраков", ветер вдруг принёс странные звуки. Из-за угла выглянул старый мужчина в шляпе, украшенной перьями. Его звали Виктор, и он был бывшим учителем физкультуры в школе, где училась Таня. 
— Здравствуй, маленькая искательница приключений! — улыбнулся старик, подходя ближе. — Я заметил тебя здесь уже несколько дней. Ты как будто нашла друга в этом старом доме.
Таня смущённо кивнула, а мяч мягко подкатился к ногам Виктора. Тот поднял его, осмотрел внимательно и спросил:
— Расскажи мне о своём друге. Почему ты так любишь эту простую игрушку?
Девочка начала рассказывать истории своих игр, смешных случаев и радостных моментов, которые происходили благодаря мячу. Старик слушал внимательно, иногда кивая головой. Когда Таня закончила свой рассказ, Виктор сказал:
— Знаешь, этот мяч тоже многое пережил. В детстве я играл им во дворе, потом подарил своему сыну, а теперь он стал частью твоей жизни. Видишь ли, игрушки могут быть больше, чем кажется на первый взгляд. Они хранят воспоминания, передают энергию и дружбу между поколениями. Давай сегодня устроим особый праздник для твоего мяча.
Виктор достал коробку конфет, букет полевых цветов и старые фотографии своей семьи. Вместе они устроили настоящую церемонию признания заслуг мяча перед Таней. Поставив свечи вокруг импровизированного алтаря, они зажгли их, произнося слова благодарности за поддержку и радость, которую игрушка принесла девочке.
После этого вечера всё изменилось. Таня стала относиться к игре ещё более ответственно. Теперь каждое утро начиналось с ритуала приветствия мяча, после которого она шла заниматься спортом или рисованием – тем самым, что могло бы развивать её талант и здоровье. А вечером, сидя на скамейке у речного берега, Таня смотрела, как закатное солнце играет на поверхности воды, держа в руках свой любимый мяч и зная, что эта связь останется навсегда.
Годы шли, но каждый раз, встречаясь взглядом с резиновым другом, Таня вспоминала тот особенный вечер у старого дома. Мяч стал символом постоянства среди перемен, напоминанием о том, что дружба может быть такой же простой, искренней и вечной, как детская игра. И хотя мир менялся вокруг неё, одно оставалось неизменным – любовь к этому маленькому предмету, который открыл ей двери в мир безграничных возможностей и настоящей дружбы.
```


## Versions

v1:
 - [440bc91e1f765596efaef8099ffc7ec8d2dbb9c6](https://huggingface.co/IlyaGusev/saiga_nemo_12b/commit/440bc91e1f765596efaef8099ffc7ec8d2dbb9c6)
 - Other names: saiga_yandexgpt_8b_sft_m4_d19_smpo_m3_d38
 - SFT dataset config: [sft_d19.json](https://github.com/IlyaGusev/saiga/blob/main/configs/datasets/sft_d19.json)
 - SFT model config: [saiga_yandexgpt_8b_sft_m4.json](https://github.com/IlyaGusev/saiga/blob/main/configs/models/saiga_yandexgpt_8b_sft_m4.json)
 - SMPO dataset config: [pref_d38.json](https://github.com/IlyaGusev/saiga/blob/main/configs/datasets/pref_d38.json)
 - SMPO model config: [saiga_yandexgpt_8b_smpo_m3.json](https://github.com/IlyaGusev/saiga/blob/main/configs/models/saiga_yandexgpt_8b_smpo_m3.json)
 - SFT wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/xq842j0d)
 - SimPO wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/y8kujd6y)


## Evaluation

### v1:

PingPong:

![image/png](https://cdn-uploads.huggingface.co/production/uploads/5fc2346dea82dd667bb0ffbc/XOXfgQrc_2fmAXS7D8vUq.png)

RuArenaHard vs gpt-4o:

![image/jpeg](https://cdn-uploads.huggingface.co/production/uploads/5fc2346dea82dd667bb0ffbc/TlJHaJp-j28PZCL2kM3qU.jpeg)