--- 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 — делай что хочешь.