File size: 3,121 Bytes
7283eb3 39b338d |
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 |
---
language:
- kk
- ru
- en
license: apache-2.0
library_name: transformers
pipeline_tag: text-generation
---
# Irbis-7B
<img src="./irbis.jpg" width="800"/>
Irbis-7B - это языковая модель на основе архитектуры трансформеров, адаптированная для казахского языка. Основные усовершенствования, относительно базового [Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1):
- Улучшенный токенизатор - словарь токенизатора был расширен с 32к до 60к токенов, включая больше казахских слов, что улучшило эффективность токенизации для казахского языка.
- Предварительное обучение - модель была предобучена на 20 ГБ преимущственно казахских и немного русских текстов для настройки с новым токенизатором.
- Инструктивное обучение - проведено дообучение на 200к примеров вопросов и ответов на казахском для улучшения понимания контекста и генерации осмысленных ответов.
В результате модель показывает значительно лучшее качество работы с казахским языком по сравнению с прочими моделями из открытых источников. За счет нового токенизатора увеличилась скорость генерации текста в 3-4 раза, также оптимизировалось заполнение контекстного окна. Модель хорошо отвечает на простые вопросы и может работать с контекстом, хотя еще есть место для дальнейшего улучшения.
Подробнее можно почитать в [статье](soon).
## Попробовать
```python
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
import torch
model_name = "IrbisAI/Irbis-7b-v0.1"
model = AutoModelForCausalLM.from_pretrained(
model_name,
return_dict=True,
torch_dtype=torch.float16,
device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "Сұрақ: Шөп неге жасыл?\nЖауап: "
input_ids = tokenizer([prompt], return_tensors = "pt")["input_ids"].to("cuda")
generation_config = GenerationConfig(
temperature=0.6,
repetition_penalty=1.15
)
print("Generating...")
generation_output = model.generate(
input_ids=input_ids,
generation_config=generation_config,
return_dict_in_generate=True,
output_scores=True,
max_new_tokens=2048,
pad_token_id=tokenizer.eos_token_id,
)
for s in generation_output.sequences:
print(tokenizer.decode(s))
``` |