File size: 14,646 Bytes
8451b99 a4ec6bc 8451b99 fe2154c 8451b99 1e4b6f8 5fc24e5 1e4b6f8 8451b99 211f088 c588ef6 8451b99 e0e1696 8451b99 2ae4ce5 59d975f 8451b99 2ae4ce5 781666a 8451b99 2ae4ce5 59d975f 2ae4ce5 5dc8fb8 2ae4ce5 8451b99 2ae4ce5 8451b99 47fd3a6 8451b99 59d975f eececbd 59d975f 2ae4ce5 5dc8fb8 69eaab9 5dc8fb8 2ae4ce5 47fd3a6 752255e 67ba691 752255e |
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 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
---
language:
- ru
datasets:
- IlyaGusev/saiga_scored
- IlyaGusev/saiga_preferences
license: apache-2.0
---
# Saiga/MistralNemo 12B, Russian fine-tune of Mistral Nemo
Based on [an abliterated version](https://huggingface.co/natong19/Mistral-Nemo-Instruct-2407-abliterated) of [Mistral Nemo](https://huggingface.co/mistralai/Mistral-Nemo-Instruct-2407).
Llama.cpp version: [link](https://huggingface.co/IlyaGusev/saiga_nemo_12b_gguf)
Colab: [link](https://colab.research.google.com/drive/1vNzMyPqx2GB7zk3ANDtZEfvhzgYOWu0B)
## Prompt format
v3: Original Misral Nemo prompt format, but the system prompt is in the beginning:
```
<s>Ты — Сайга, русскоязычный автоматический ассистент. Ты разговариваешь с людьми и помогаешь им.
[INST]Как дела?[/INST][INST]Шикарно. Как пройти в библиотеку?[/INST]
```
v1, v2: Original Misral Nemo prompt format, but the system prompt is in the beginning and there are additional spaces:
```
<s>Ты — Сайга, русскоязычный автоматический ассистент. Ты разговариваешь с людьми и помогаешь им.
[INST] Как дела? [/INST] Отлично, а у тебя? </s>[INST] Шикарно. Как пройти в библиотеку? [/INST]
```
## 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_nemo_12b"
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: Трава зеленая из-за содержания хлорофилла. Hлорофилл — это пигмент, основной компонент системы фотосинтеза в растениях (а также водорослях и некоторых бактериях). Функционирование хлорофилла обеспечивает следующие особенности:
1. **Абсорбция света**: Хлорофилл поглощает свет в определенном диапазоне спектра, в основном синий и красный цвета. Зеленый цвет отражается обратно к нашему глазу, поскольку именно этот цвет не поглощается хлорофиллом.
2. **Фотосинтез**: В процессе фотосинтеза хлорофилл преобразует энергию солнечного света в химическую энергию, необходимую для синтеза органических веществ (главным образом глюкозы) из углекислого газа и воды. Этот процесс поддерживает жизнь растений и является источником пищи для многих живых существ на Земле.
3. **Структурная роль**: Хлорофилл расположен в особой структуре клеток растений – хлоропластах, которые играют ключевую роль в организации клетки.
Таким образом, трава зеленая потому, что хлорофилл выполняет жизненно важную функцию в растении и отражает именно тот цвет света, который он не использует в своем процессе работы.
```
```
User: Сочини длинный рассказ, обязательно упоминая следующие объекты. Дано: Таня, мяч
Saiga: Таня и Мяч
В далеком приморском городке, где ласковое солнце играло на волнах и свежий морской ветер наполнял воздух солью и свободой, жила девушка по имени Таня. Ее жизнь была полна ярких красок и незабываемых историй — и все благодаря одному простому предмету: мячу.
Таня появилась в этом мире уже с мячом под мышкой. Ее отец, заядлый футбольный фанат, еще до рождения дочери решил, что она продолжит семейную спортивную традицию. И вот, когда маленькая Таня впервые сделала свои неуверенные шаги, в ее ручке оказался тот самый мяч — бледно-голубой, как небо над морем, с рисунком в виде волны, словно приглашая к приключениям.
С тех пор мяч стал для Тани настоящим другом и спутником жизни. Они начинали каждое утро вместе: на песке у пляжа, где отпечатки ног смешивались с влажными линиями прилива; иногда на стадионе, где запахи травы и свежей росы сопровождали первые удары об мяч; а зимними днями — в просторном школьном коридоре, куда Таня выносила мяч, чтобы тренироваться прямо там, среди шумных перерывов и звонков.
Мяч был свидетелем всех ключевых моментов ее жизни. Когда Таня в первый раз забила гол в школьной команде, он, казалось, излучал радость и гордость. Этот мяч побывал в каждом уголке города: они исследовали заброшенные склады, где Таня представляла себя героиней фильма о футболе; забрались на вершину старого маяка, откуда открывался вид на бескрайнее море; даже однажды ночью пытались пройти через весь город, запуская мяч от стены к стене, создавая свой собственный «марафон».
Самый значительный эпизод их совместного пути произошел летом, когда Таня решила принять участие в региональных соревнованиях по футболу. Мяч, который уже успел потерять немного своей первоначальной гладкости и белизны, приобрел особое значение. Это был не просто мяч — это символ мечты, которую она носила внутри себя. В день финального матча Таня почувствовала, как каждый удар об этот мяч наполняет ее уверенностью и теплом воспоминаний. На последних минутах встречи, когда счет был равным, Таня ловко обвела соперниц и, сделав красивый финт, послала мяч точно в ворота противника. Зрители взорвались аплодисментами, а Таня упала на колени, крепко обнимая своего верного друга.
После победы Таня поняла, что мяч стал частью её души. Его история переплеталась со всеми важными моментами её жизни. Она решила сохранить его таким, какой он есть — слегка потрепанным, но полным истории и воспоминаний. Таня повесила мяч на стену в своей комнате, рядом с фотографиями друзей, трофеев и других дорогих сердцу предметов. Теперь он смотрел на неё, напоминая о том, что путь к мечтам долгий, но каждая ступень этого пути полна смысла и радости.
И хотя со временем Таня увлеклась другими аспектами жизни — путешествиями, учебой, новыми увлечениями — мяч всегда оставался напоминанием о том, как важно сохранять искренность намерений и верность своим мечтам. А иногда, поздними вечерами, когда в городе наступала тишина, Таня доставала мяч из коробки, где он хранился, и несколько минут просто крутила его в руках, возвращаясь в те золотые дни детства и юности, наполненные беззаботностью и радостью первого большого приключения.
```
## Versions
v3:
- [d4f395741d0d363665e86533b53d5a2ec14477eb](https://huggingface.co/IlyaGusev/saiga_nemo_12b/commit/d4f395741d0d363665e86533b53d5a2ec14477eb)
- Other names: saiga_nemo_12b_sft_m10_d16_simpo_m23_d38
- SFT dataset config: [sft_d16.json](https://github.com/IlyaGusev/saiga/blob/main/configs/datasets/sft_d16.json)
- SFT model config: [saiga_nemo_12b_sft_m10.json](https://github.com/IlyaGusev/saiga/blob/main/configs/models/saiga_nemo_12b_sft_m10.json)
- SimPO dataset config: [pref_d38.json](https://github.com/IlyaGusev/saiga/blob/main/configs/datasets/pref_d38.json)
- SimPO model config: [saiga_nemo_12b_simpo_m23.json](https://github.com/IlyaGusev/saiga/blob/main/configs/models/saiga_nemo_12b_simpo_m23.json)
- SFT wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/hzs68let)
- SimPO wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/hyz52bom)
v2:
- [2ae4ce589c6c1c0ef3ba26521d78882ae1ae2930](https://huggingface.co/IlyaGusev/saiga_nemo_12b/commit/2ae4ce589c6c1c0ef3ba26521d78882ae1ae2930)
- Other names: saiga_nemo_12b_sft_m9_d16_slerp, saiga_nemo_12b_sft_m9_d16_simpo_m21_d36_doestoevsky_orpo_m1_slerp
- SFT dataset config: [sft_d16.json](https://github.com/IlyaGusev/saiga/blob/main/configs/datasets/sft_d16.json)
- SFT model config: [saiga_nemo_12b_sft_m9.json](https://github.com/IlyaGusev/saiga/blob/main/configs/models/saiga_nemo_12b_sft_m9.json)
- SimPO dataset config: [pref_d36.json](https://github.com/IlyaGusev/saiga/blob/main/configs/datasets/pref_d36.json)
- SimPO model config: [saiga_nemo_12b_simpo_m21.json](https://github.com/IlyaGusev/saiga/blob/main/configs/models/saiga_nemo_12b_simpo_m21.json)
- SFT wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/yod78hiq)
- SimPO wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/bv5w0lxl)
- Dostoevsky wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/senqj9t1)
- Merge config: [link](https://huggingface.co/IlyaGusev/saiga_nemo_12b_sft_m9_d16_slerp/blob/main/mergekit_config.yml)
v1:
- [1c13507be4b5b5edd5586e48c902ef61c0343299](https://huggingface.co/IlyaGusev/saiga_nemo_12b/commit/1c13507be4b5b5edd5586e48c902ef61c0343299)
- Other name: saiga_nemo_12b_sft_m9_d14_simpo_m19_d31
- SFT dataset config: [sft_d14.json](https://github.com/IlyaGusev/saiga/blob/main/configs/datasets/sft_d14.json)
- SFT model config: [saiga_nemo_12b_sft_m9.json](https://github.com/IlyaGusev/saiga/blob/main/configs/models/saiga_nemo_12b_sft_m9.json)
- SimPO dataset config: [pref_d31.json](https://github.com/IlyaGusev/saiga/blob/main/configs/datasets/pref_d31.json)
- SimPO model config: [saiga_nemo_12b_simpo_m19.json](https://github.com/IlyaGusev/saiga/blob/main/configs/models/saiga_nemo_12b_simpo_m19.json)
- SFT wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/e74ozfzh)
- SimPO wandb: [link](https://wandb.ai/ilyagusev/rulm_self_instruct/runs/b094iiej)
## Evaluation
### v3:
RuArenaHard:
![image/png](https://cdn-uploads.huggingface.co/production/uploads/5fc2346dea82dd667bb0ffbc/tTTHRqxwrLnhj7LEeFmsU.png)
PingPong:
![image/png](https://cdn-uploads.huggingface.co/production/uploads/5fc2346dea82dd667bb0ffbc/4VxQJjAxw2eQMYctUvBr5.png)
### v2
RuArenaHard:
![image/png](https://cdn-uploads.huggingface.co/production/uploads/5fc2346dea82dd667bb0ffbc/dn5BAxdsYsMfO0oGYH2Zb.png)
PingPong:
![image/png](https://cdn-uploads.huggingface.co/production/uploads/5fc2346dea82dd667bb0ffbc/tlxLQORAmGQpkJa6OeLBh.png)
### v1
RuArenaHard:
![image/png](https://cdn-uploads.huggingface.co/production/uploads/5fc2346dea82dd667bb0ffbc/-uG--3Wu9oUi9_bC_ZFP4.png)
PingPong:
![image/png](https://cdn-uploads.huggingface.co/production/uploads/5fc2346dea82dd667bb0ffbc/uNmD2YhealySO6UYUH8-g.png)
|