
# Saiga/Yarn-Mistral 7B 128k, Russian Mistral-based chatbot

Welcome to the adapter-only version of Saiga 7B LoRA. This model is built upon the foundation
of [Nous-Yarn-Mistral-7b-128k](https://huggingface.co/NousResearch/Yarn-Mistral-7b-128k).

🔗 Training code is [here](https://github.com/EvilFreelancer/saiga-custom/blob/main/yarn_mistral_7b_128k.ipynb).

📊 Wandb report is [here](https://api.wandb.ai/links/evilfreelancer/bozxcjrf).

## Examples

```text
User: Привет! Кто ты?
Bot: Здравствуйте! Я - Saiga 2, этот бот создан для того, чтобы помочь вам в решении различных задач и вопросов. Я использую современные технологии и алгоритмы машинного обучения, чтобы предоставлять наиболее точные ответы на ваши вопросы. Как я могу помочь вам сегодня?
```

```text
User: Почему трава зелёная?
Bot: Это связано с тем, что растения содержат хлорофилл, который поглощает свет и используется для фотосинтеза. Хлорофилл имеет зеленый цвет из-за своей структуры, которая позволяет ему поглощать красное и синее световые лучи, но не зеленый. Таким образом, зеленой траве мы видим только те части спектра, которые не поглощены хлорофиллом.
```

```text
User: Сколько будет 128*64?
Bot: 8192.
```

```text
User: У Серёжи есть мама Татьяна и папа Денис. И ещё у Серёжи есть брат Иван. Кем Ивану приходится Татьяна?
Bot: Ивану приходит наследник Татьяны.
```

```text
User: Я пошёл в магазин и купил 10 яблок. Два яблока я отдал соседу и два ремонтнику. Потом я купил ещё 5 яблок и одно из них съел. Также я отдал три банана моему брату. Сколько яблок у меня осталось?
Bot: Осталось 4 яблока.
```

```text
User: Сочини длинный рассказ, обязательно упоминая следующие объекты. Дано: Таня, мяч
Bot: Рассказ о том, как Таня потеряла свой любимый мяч и нашла его в неожиданном месте.

Таня была маленькой девочкой, которая любила играть в футбол со своими друзьями. Она всегда носила с собой свой любимый мяч, который был ее самым ценным веществом. Однажды, когда она играла со своими друзьями, мяч случайно улетел от нее и пропал без вести.

Таня начала беспокоиться и искать свой мяч, но нигде его не находила. Она провела несколько часов, ищущая его, но все было безуспешно. В конце концов, она решила, что мяч уже потерян навсегда.

Но однажды, когда Таня была дома, она услышала странный звук. Он был слишком громким, чтобы быть произведенным каким-то предметом внутри дома. Таня вышла из комнаты и увидела, что этот звук исходил из её балкона.

Она подбежала к балкону и увидела, что там лежит ее любимый мяч! Он был застрян между двух блоков кирпича, которые были расположены на краю балкона. Таня была очень рада, что нашла свой мяч, но теперь она должна была найти способ достать его.

Таня начала думать, как можно достать мяч, и решила, что ее лучший вариант - это использовать свой опыт игры в футбол. Она начала бросать мяч в стороны, пытаясь ударить его так, чтобы он упал на землю. Но это не работало, и мяч оставался застрянным между блоками кирпича.

Таня начала думать, что может использовать свой друг, чтобы помочь ей достать мяч. Она позвонила ему и рассказала ему о ситуации. Ее друг пришел к ней и вместе они начали думать над способами, как можно достать мяч.

Наконец, они решили, что могут использовать лоток для доставки мяча. Они нашли лоток, который был больше мяча, и начали использовать его для перемещения мяча. Они старались, чтобы мяч не падал на землю, и после нескольких попыток они смогли доставить мяч на землю.

Таня была очень рада, что нашла свой мьяч, и она начала играть в футбол с новым энтузиазмом. Она знала, что ничего не стоит того, чтобы потерять свой любимый мяч, и будет всегда беречь его.
```

## 📚 Training Datasets

The datasets utilized for training this model are consistent with those used for [Saiga-2](https://github.com/IlyaGusev/rulm).

Here's the comprehensive list:

- [ru_turbo_alpaca](https://huggingface.co/datasets/IlyaGusev/ru_turbo_alpaca)
- [ru_turbo_alpaca_evol_instruct](https://huggingface.co/datasets/IlyaGusev/ru_turbo_alpaca_evol_instruct)
- [ru_turbo_saiga](https://huggingface.co/datasets/IlyaGusev/ru_turbo_saiga)
- [ru_sharegpt_cleaned](https://huggingface.co/datasets/IlyaGusev/ru_sharegpt_cleaned)
- [oasst1_ru_main_branch](https://huggingface.co/datasets/IlyaGusev/oasst1_ru_main_branch)
- [gpt_roleplay_realm](https://huggingface.co/datasets/IlyaGusev/gpt_roleplay_realm)
- [ru_instruct_gpt4](https://huggingface.co/datasets/lksy/ru_instruct_gpt4)

## Training procedure

The following `bitsandbytes` quantization config was used during training:

- quant_method: QuantizationMethod.BITS_AND_BYTES
- load_in_8bit: False
- load_in_4bit: True
- llm_int8_threshold: 6.0
- llm_int8_skip_modules: None
- llm_int8_enable_fp32_cpu_offload: False
- llm_int8_has_fp16_weight: False
- bnb_4bit_quant_type: nf4
- bnb_4bit_use_double_quant: True
- bnb_4bit_compute_dtype: bfloat16

## ⚙️ Framework Versions

Ensure you have the following framework versions for compatibility:

- PyTorch 2.1.1
- PEFT 0.6.2
- bitsandbytes 0.41.2.post2
- transformers 4.35.2
- flash-attn 2.3.3

### Other

Dataset code revision: [c6ffa82fa39bfedf2b33931095a3a8960a89ac37](https://github.com/IlyaGusev/rulm/commit/c6ffa82fa39bfedf2b33931095a3a8960a89ac37)

Datasets merging script: [create_chat_set.py](https://github.com/IlyaGusev/rulm/blob/master/self_instruct/src/data_processing/create_chat_set.py)
{"language": ["ru", "en"], "license": "mit", "library_name": "peft", "tags": ["saiga", "mistral"], "datasets": ["IlyaGusev/ru_turbo_alpaca", "IlyaGusev/ru_turbo_alpaca_evol_instruct", "IlyaGusev/ru_turbo_saiga", "IlyaGusev/ru_sharegpt_cleaned", "IlyaGusev/oasst1_ru_main_branch", "IlyaGusev/gpt_roleplay_realm", "lksy/ru_instruct_gpt4"], "pipeline_tag": "conversational"}
peft saiga mistral conversational ru en dataset:IlyaGusev/ru_turbo_alpaca dataset:IlyaGusev/ru_turbo_alpaca_evol_instruct dataset:IlyaGusev/ru_turbo_saiga dataset:IlyaGusev/ru_sharegpt_cleaned dataset:IlyaGusev/oasst1_ru_main_branch dataset:IlyaGusev/gpt_roleplay_realm dataset:lksy/ru_instruct_gpt4 license:mit region:us