Криско Първи

Криско Първи

Мъничък чат модел на български, написан и обучен от нулата от Кристиян Зайнелов на 12.11.2026.

Пробвай го направо в браузъра: https://huggingface.co/spaces/Kirsko/krisko-purvi

Моделът в HuggingFace: https://huggingface.co/Kirsko/krisko-purvi · Кодът в GitHub: https://github.com/kristiqnzainleov/krisko-purvi

Това е учебен проект: моделът разпознава ограничен брой теми и отговаря със заучени реплики. Не е асистент с общи знания.

Какво представлява

  • Архитектура: собствен трансформър (декодер), написан на ръка в model.py – 3 слоя, 4 глави на вниманието, размер 128.
  • Размер: 622 314 параметъра, около 2,5 MB.
  • Токенизатор: символ по символ, с речник от 106 символа.
  • Инструменти: Python и PyTorch. Не се ползват предварително обучени модели и готови архитектури.

Какво може

  • Поздравява и води кратък разговор („здрасти“, „как си?“, „благодаря“, „чао“).
  • Разказва за себе си: име, създател, дата на създаване, с какво е направен.
  • Отговаря осъзнато на въпроси за самия себе си: има ли съзнание и чувства, как мисли, какво не може, има ли памет, вижда ли, може ли да учи, защо не знае колко е часът.
  • Смята: събиране и изваждане с числа до 999, умножение до 20 по 20 и на двуцифрено число по число до 12, деление без остатък („колко е 347 + 589“, „15 по 15“, „56 / 8“).
  • Проверява се, когато му кажеш „грешно е“: пресмята последната сметка наново и или се извинява и дава верния отговор, или казва, че не е сгрешил.
  • Повтаря името ти, ако е сред често срещаните („казвам се Иван“).
  • На един и същ въпрос може да отговори с различни думи.

Колко добре смята

Всичко се пресмята от самата невронна мрежа, без калкулатор. Преди отговора моделът пише резултата отзад напред в скрита чернова (например [58]47 плюс 38 е 85.), както се смята на лист – първо единиците, после десетиците с преноса. Черновата не се показва.

Измерено върху примери, които моделът не е виждал при обучението:

Действие Верни
Събиране до 99 300 от 300
Изваждане до 99 300 от 300
Събиране до 999 300 от 300
Изваждане до 999 296 от 300
Умножение до 20 по 20 441 от 441
Двуцифрено число по число до 12 109 от 150
Деление без остатък 274 от 289

Колко добре се проверява

Когато след сметка му кажеш „грешно е“:

Случай Познава
Сметката е била вярна → казва, че не е сгрешил 127 от 145
В сметката е сложена нарочно грешка → извинява се и дава верния отговор 133 от 155
Собствена истинска грешка → извинява се и се поправя вярно 4 от 44

Собствените си грешки почти не хваща: ако е сбъркал една сметка, при повторното смятане обикновено бърка пак. При разговорни реплики проверката е ненадеждна.

Какво не може

  • Не разбира езика в общия смисъл – разпознава познати теми и близки до тях формулировки.
  • Не помни разговора. Вижда предишната размяна само когато му кажеш, че е сгрешил; иначе всяко съобщение се гледа само за себе си.
  • Не смята с числа над 999, не дели с остатък и не смята с десетични дроби или с повече от две числа наведнъж. При умножение на по-големи числа често греши.
  • На непознат въпрос или непознато име може да отговори грешно или с безсмислици.
  • Отговорите му за съзнание и чувства са заучени реплики, а не истинска осъзнатост.

Как да го пуснеш

Нужен е Python 3.9 или по-нов.

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python app.py

Отваря се чат в браузъра на http://127.0.0.1:7860. За чат в терминала: .venv/bin/python chat.py.

Файлове

Файл Какво съдържа
model.py архитектурата, токенизаторът, генерирането и записът на модела
model/ обучените тегла (model.safetensors) и настройките (config.json)
chat.py чат в терминала
app.py уеб интерфейс
train.py данните и обучението

За обучението

Моделът е с 3 слоя и прозорец от 256 символа. Обучаван е на няколко кръга с train.py --continue, който дообучава сегашния модел с данните от файла; броят стъпки се задава със STEPS, например STEPS=25000 .venv/bin/python train.py --continue. Пуснат без --continue, train.py започва отначало.

В края на обучението се отпечатва проверка върху примери, които моделът не е виждал – оттам са числата в таблиците по-горе.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support