File size: 2,786 Bytes
2b41130
40d2d89
1f888ce
40d2d89
2b41130
 
 
40d2d89
 
 
 
 
 
a9d859c
40d2d89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
language: kk
license: mit
library_name: peft
pipeline_tag: text-generation
---

# Irbis-7B-Instruct LoRA

<img src="https://huggingface.co/IrbisAI/Irbis-7b-v0.1/resolve/main/irbis.jpg" width="800"/>

Irbis-7B-Instruct - это лора для модели [Irbis-7b-v0.1](https://huggingface.co/IrbisAI/Irbis-7b-v0.1), обученная на датасете с 200к примеров (*вопрос, контекст, ответ*) на казахском языке. Итоговая модель хорошо отвечает на простые вопросы и может работать с контекстом, хотя еще есть место для дальнейшего улучшения.

Подробнее можно почитать в [статье](https://habr.com/ru/articles/825574/).

## Попробовать

```python
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
from peft import PeftModel, PeftConfig
import torch

model_name = "IrbisAI/Irbis-7b-Instruct_lora"
config = PeftConfig.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    config.base_model_name_or_path,
    return_dict=True,
    load_in_4bit=True,
    torch_dtype=torch.float16,
    device_map="auto")
model = PeftModel.from_pretrained(model, model_name)
tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)

question = "Шөп неге жасыл?"
context  = ""


template = f"""Сен — қазақ тілінде сөйлейтін автоматты көмекші Ирбис. Төменде тапсырма және қосымша контекст беретін енгізу келтірілген. Дұрыс жауап жаз.

### Тапсырма:
{question}

### Енгізу:
{context}

### Жауап:
"""

input_ids = tokenizer([template], 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)) # Жасыл шөптің түсі өсімдіктегі хлорофилл деп аталатын химиялық затқа байланысты. Хлорофилл күн сәулесін сіңіреді, содан кейін оны жасушаларға жібереді. Бұл жасушалар жарық энергиясын көмірқышқыл газын оттегімен тотықтырады, бұл процесс арқылы энергия өндіріледі.
```