File size: 5,106 Bytes
8557934
a9fa7a1
8557934
a9fa7a1
 
 
 
 
 
 
8557934
 
7362bec
 
a9fa7a1
 
7362bec
a9fa7a1
7362bec
a9fa7a1
7362bec
a9fa7a1
7362bec
a9fa7a1
7362bec
a9fa7a1
7362bec
 
 
a9fa7a1
 
 
7362bec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a9fa7a1
 
 
 
7362bec
a9fa7a1
7362bec
a9fa7a1
 
 
7362bec
a9fa7a1
7362bec
a9fa7a1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7362bec
a9fa7a1
 
 
 
 
7362bec
a9fa7a1
 
 
 
 
 
 
7362bec
a9fa7a1
 
 
 
 
7362bec
a9fa7a1
 
 
 
 
 
 
 
 
 
 
7362bec
a9fa7a1
7362bec
a9fa7a1
7362bec
 
 
a9fa7a1
7362bec
a9fa7a1
7362bec
 
 
a9fa7a1
7362bec
a9fa7a1
7362bec
a9fa7a1
7362bec
 
 
a9fa7a1
7362bec
 
 
 
 
 
 
 
 
a9fa7a1
 
7362bec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a9fa7a1
 
 
 
7362bec
a9fa7a1
 
 
7362bec
 
 
 
 
 
 
 
 
 
 
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
169
170
171
172
173
174
175
176
177
178
---
library_name: pytorch
tags:
- causal-lm
- transformer
- gqa
- rope
- byte-level-bpe
- russian
- dl-course
---

<div align="center">

# DL Course HW13

**Финальная модель**

`PyTorch` · `Transformer` · `GQA` · `RoPE` · `Byte-level BPE` · `Russian LM`

</div>

---

## Кратко

В этом репозитории сохранена итоговая модель

Финальной выбрана конфигурация **small + GQA + RoPE**, потому что она показала лучшее качество среди всех проведённых экспериментов по двум основным метрикам:

| Метрика | Значение |
|---|---:|
| Validation loss | **2.4695** |
| Perplexity | **11.82** |

---

## Финальная модель

Основные компоненты:

| Компонент | Использованный вариант |
|---|---|
| Архитектура | Decoder-only Transformer |
| Attention | Grouped-Query Attention |
| Позиционные эмбеддинги | Rotary Positional Embeddings |
| Нормализация | RMSNorm |
| Feed-forward блок | SwiGLU |
| Токенизатор | Byte-level BPE |

---

## Сравнение экспериментов

| № | Эксперимент | Validation loss | Perplexity |
|---:|---|---:|---:|
| 1 | small + GQA baseline | 2.5650 | 13.00 |
| 2 | **small + GQA + RoPE** | **2.4695** | **11.82** |
| 3 | mini + MLA + RoPE | 2.7306 | 15.34 |
| 4 | small + MLA + RoPE | 2.4905 | 12.07 |

Лучший результат получила модель **small + GQA + RoPE**.

---

## Примеры генерации

Параметры генерации:

| Параметр | Значение |
|---|---:|
| max_new_tokens | 200 |
| temperature | 0.8 |
| top_k | 30 |
| do_sample | true |
| seed | 42 |

### Пример 1

**Prompt**

```text
Штирлиц пришел домой
```

**Generated text**

```text
Штирлиц пришел домой - весь вечер подумал, что у неё украли.
```

### Пример 2

**Prompt**

```text
Вовочка на уроке
```

**Generated text**

```text
Вовочка на уроке русского языка учится на букву ``К`` и
 белый, и с чистой.
 Девочка:
 - Папа, пап, сегодня вечером папа пришел в школу,
 да! И так! Уже в школе!
 Мать:
 - А я, мама, не понял...
```

### Пример 3

**Prompt**

```text
Заходит в бар
```

**Generated text**

```text
Заходит в бар в ларьку и видит, что держится на площади стекла. А доктор ему и сказал:- Доктор, у меня болит голова и рот пить не налил.Врач подумал и говорит:- Или у меня хлещет?И, встала с кровати:- Нет, просто у меня на характере нет...
```

### Пример 4

**Prompt**

```text
Однажды студент
```

**Generated text**

```text
Однажды студент пришел к врачу и рассказывает ему: 
— Доктор, помогите, я выйду на него замуж! 
— А что вы делаете?! 
— Ну вот, папа, папаша, иду по парку и говорю: «Знаю
— А вы сегодня опять плохо приготовили» — подумал Штирлиц. И вот, значит, в темном классе
— Ну, это не хуйня, и он меня тоже.
```

## Файлы репозитория

| Файл | Назначение |
|---|---|
| `model.safetensors` | веса финальной модели |
| `config.json` | конфигурация модели |
| `vocabulary.json` | словарь токенизатора |
| `merges.json` | merge-файл токенизатора |
| `metrics.json` | метрики всех экспериментов |
| `eval_results.json` | финальные eval-метрики |
| `generation_samples.json` | примеры генерации в JSON |
| `generation_samples.md` | примеры генерации в Markdown |

---

## Итог

Финальная модель - **small + GQA + RoPE**.

Она стала лучшей и показала следующие финальные значения:

| Финальная метрика | Значение |
|---|---:|
| Validation loss | **2.4695** |
| Perplexity | **11.82** |

<details>
<summary>Краткий вывод по экспериментам</summary>

RoPE оказался полезным улучшением для small + GQA модели: validation loss снизился с `2.5650` до `2.4695`, а perplexity - с `13.00` до `11.82`.

MLA + RoPE тоже был протестирован, но в данной постановке small + GQA + RoPE оказался лучше по итоговым метрикам.

</details>