File size: 4,002 Bytes
72b202d
60fda60
 
 
 
72b202d
60fda60
 
 
 
 
 
72b202d
 
60fda60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
language:
- ru
datasets:
- IgorVolochay/russian_jokes
tags:
- causal-lm
- text-generation
- transformer
- byte-level-bpe
- pytorch
pipeline_tag: text-generation
---

# Russian Jokes Causal LM

Небольшая causal language model для генерации коротких русских анекдотов.  
Модель обучалась в рамках домашнего задания по LLM на датасете `IgorVolochay/russian_jokes`.

## Model description

Финальная версия модели — `small`-конфиг decoder-only Transformer.

Основные параметры:

| Параметр | Значение |
|---|---:|
| n_layer | 12 |
| n_head | 12 |
| n_kv_head | 6 |
| hidden_dim | 768 |
| intermediate_dim | 2048 |
| vocab_size | 1024 |
| max_seq_len | 128 |
| parameters | 79.45M |

В модели используются RMSNorm, Grouped-Query Attention, ALiBi positional bias и SwiGLU feed-forward block.

## Training data

Модель обучалась на датасете русских анекдотов `IgorVolochay/russian_jokes`.

Для токенизации использовался byte-level BPE токенизатор со словарем на 1024 токена.  
Данные были разделены на train/test в пропорции 90/10.

## Result

Validation loss финальной `small`-модели: **2.462**.

По генерациям модель уже улавливает форму анекдота: короткие заходы, диалоги, типичных персонажей и общий стиль датасета. При этом она не всегда сохраняет смысл до конца, поэтому качество скорее на уровне “похоже на анекдот”, чем “стабильно смешной анекдот”.

## Examples

### Prompt

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

### Generated text

```text
Заходит в бар мужик в бар и видит, что на барабане лежит пиво.  - Слышь, баран, а как же я тебе это сделаю?  - А что же ты говоришь, дорогая?  - Да, этот месяц назад я вчера встретила его с друзьями в баре.  - А ты что, дура?  - Нет, дорогой, это я не пьяная.  - А я, наверное, не пьяная, этот барабанщик!
```

### Prompt

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

### Generated text

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

### Prompt

```text
Однажды Вовочка
```

### Generated text

```text
Однажды Вовочка с сыном в школе в детском саду садилась на кровати. Сын спрашивает:- Папа, а почему у тебя такие большие глаза?- Потому что у меня есть мама.- И что ты делаешь?- А у меня мать сына на ушах!
```

## Limitations

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