File size: 2,900 Bytes
ec8932d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fccaa37
ec8932d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fccaa37
ec8932d
 
 
 
 
 
 
fccaa37
ec8932d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
license: apache-2.0
language:
  - ru
tags:
  - llama
  - gguf
  - russian
  - tiny
  - char-level
  - byte-level
pipeline_tag: text-generation
library_name: gguf
---

# 🍅 EBLAN GPT 2

Крошечная LLaMA-архитектура **на 115K параметров**, обученная на русском словаре словоформ.
Совместима с **llama.cpp** из коробки — архитектура `llama`, всё по спеке.

Это скорее демка того что можно обучить настоящий трансформер с нуля и экспортнуть в GGUF,
чем полезная модель. Генерит морфологически правдоподобные псевдорусские слова.

## Архитектура

| Параметр | Значение |
|---|---|
| Тип | LLaMA (RMSNorm + RoPE + SwiGLU + causal self-attention) |
| vocab | 256 (byte-level) |
| n_embd | 64 |
| n_layers | 2 |
| n_heads | 4 |
| head_dim | 16 |
| n_ff | 128 |
| context | 64 |
| параметров | 115,008 |
| размер | 468 KB (F32) |

## Использование

### llama.cpp

```bash
llama-completion -m eblangpt2.gguf -p "программ" -n 200 --temp 0.7
```

### Python (llama-cpp-python)

```python
from llama_cpp import Llama

llm = Llama(model_path="eblangpt2.gguf", n_ctx=64)
out = llm("программ", max_tokens=100, temperature=0.7)
print(out["choices"][0]["text"])
```

## Пример вывода

Промпт `программ` при temp=0.7:

```
программою плапланную окоплежившему отмехальногичество
выконымпарваюшеннпруеках арлватлеганиа тууу стшнноурра маш
```

Модель поймала окончания русских слов (склонения, спряжения, причастия),
но синтаксису и семантике не обучена — в датасете был только словарь,
без связных предложений.

## Обучение

Обучено на сабсете русского словаря словоформ (30 KB),
1000 шагов AdamW, batch=16, lr=3e-3. Лосс 5.7 → 0.89.

Код обучения: см. `tiny_llama.py`.

Переобучить на своих данных:
```bash
python tiny_llama.py train свой_текст.txt model.gguf 2000
```

## Как улучшить

- Увеличить `N_EMBD=128`, `N_LAYERS=4`, `N_FF=256` — будет ~1M параметров
- Обучать на связной прозе (не только словарь) — появится хоть какая-то семантика
- Больше шагов (10K+) на большем датасете (несколько МБ)

## Лицензия

Apache 2.0 — делай что хочешь.