TinyTalk UA — GGUF
GGUF-збірка TheREZOR/TinyTalk-UA для llama.cpp та Ollama. Найменший український чат-бот у світі — 9,96 млн параметрів.
👉 Спробувати наживо: tinytalk-ua.rezor.me
ollama run hf.co/TheREZOR/TinyTalk-UA-GGUF
llama-cli -m TinyTalk-UA-f16.gguf -p $'User: привіт\nBot:' --temp 0.8 --top-p 0.9
| файл | розмір | тип |
|---|---|---|
TinyTalk-UA-f16.gguf | 21 МБ | F16 |
Квантизацію не додано навмисно: у F16 модель важить 21 МБ, тож Q8 зекономив би десять мегабайтів ціною якості.
Як це зроблено
llama.cpp не підтримує чистий GPT-Neo, тому модель спершу конвертовано в
математично еквівалентний GPT-2 (tools/export_gpt2.py у
cardputer-ai). Еквівалентність не
на віру — скрипт перевіряє її перед збереженням:
[+] parity: max |dlogit| = 2.62e-05 over 10 prompts, greedy decodes identical
GPT-Neo не ділить увагу на 1/sqrt(head_dim), тому ваги q_proj множаться на
sqrt(head_dim) — і (q·s)·k / sqrt(d) дорівнює q·k. Шари «локальної» уваги
мають вікно 256 при 256 позиціях, тобто збігаються з глобальними.
Формат промпту
User: <повідомлення>
Bot: <відповідь><|endoftext|>
chat_template вбудований у GGUF, тож Ollama збирає формат сам.
Відмінність від fp32
F16 округлення інколи перевертає близькі варіанти вибору: на 5 контрольних
запитах 4 відповіді збіглися з fp32-чекпоінтом дослівно, а п'ята вийшла
коротшою (Я не знаю. замість Я не знаю. Я ще дуже маленький бот.) — модель
видала EOS на крок раніше. Обидві відповіді доречні; просто не чекайте побайтної
збіжності з transformers.
Обмеження й ліцензія
Це навчальна іграшка: знань про світ нема, контекст 256 токенів, корпус — кінотитри. Подробиці, метрики та повний перелік джерел — у картці TheREZOR/TinyTalk-UA. MIT.
TinyTalk UA — GGUF (English)
GGUF build of TheREZOR/TinyTalk-UA for llama.cpp and Ollama. The smallest Ukrainian chatbot in the world — 9.96M parameters.
👉 Try it live: tinytalk-ua.rezor.me
ollama run hf.co/TheREZOR/TinyTalk-UA-GGUF
llama-cli -m TinyTalk-UA-f16.gguf -p $'User: привіт\nBot:' --temp 0.8 --top-p 0.9
| file | size | type |
|---|---|---|
TinyTalk-UA-f16.gguf | 21 MB | F16 |
No quantized build on purpose: at F16 the model is 21 MB, so Q8 would save ten megabytes at the cost of quality.
How it was made
llama.cpp doesn't support plain GPT-Neo, so the model is first converted to a
mathematically equivalent GPT-2 (tools/export_gpt2.py in
cardputer-ai). The equivalence is
asserted, not assumed:
[+] parity: max |dlogit| = 2.62e-05 over 10 prompts, greedy decodes identical
GPT-Neo omits the 1/sqrt(head_dim) attention scaling, so q_proj weights are
multiplied by sqrt(head_dim) — making (q·s)·k / sqrt(d) equal q·k. The
"local" attention layers have a 256-token window at 256 positions, so they are
identical to global ones.
Prompt format
User: <message>
Bot: <reply><|endoftext|>
The chat_template is embedded in the GGUF, so Ollama builds the format itself.
Difference from fp32
F16 rounding occasionally flips a near-tie: across 5 check prompts, 4 replies
matched the fp32 checkpoint verbatim and the fifth came out shorter
(Я не знаю. instead of Я не знаю. Я ще дуже маленький бот.) — the model
emitted EOS one step earlier. Both replies are in character; just don't expect
byte-identical agreement with transformers.
Limitations & license
An educational toy: no world knowledge, 256-token context, a film-subtitle corpus. Metrics and the full source list live in the TheREZOR/TinyTalk-UA card. MIT.