eblangpt-2 / README.md
twgood's picture
Update README.md
fccaa37 verified
|
Raw
History Blame Contribute Delete
2.9 kB
metadata
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

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

Python (llama-cpp-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.

Переобучить на своих данных:

python tiny_llama.py train свой_текст.txt model.gguf 2000

Как улучшить

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

Лицензия

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