DTGaraGe | Автомобили, Офроуд, Заваряване, Linux, AI

Регистрирайте безплатен акаунт днес, за да станете член! След като влезете, ще можете да участвате в този сайт, като добавяте свои собствени теми и публикации, както и да се свързвате с други членове чрез вашата лична пощенска кутия!

AI AiVeteran: как си вдигнах собствен AI на срв2 - и как за малко не го загубих

AiVeteran: как си вдигнах собствен AI на срв2 - и как за малко не го загубих


Работилница за локален изкуствен интелект.png


Четири локални модела, един счупен sqlite файл и един урок за това какво всъщност значи "халюцинация"


Срв2, известен вкъщи като Ветеранът, стоеше и въртеше инференс, когато го помоля. Работеше. Само че беше инструмент, който стои буден и чака заповед, не нещо, с което живееш.

Днес реших да го променя. Сложих му уеб интерфейс, собствено лого и собствено име: AiVeteran. Всеки модел вътре получи име според това какво прави, а не според това какъв тензор е.

Отдолу следва какво излезе. Включително частите, в които стана ясно, че локалният модел не е това, което очаквах.




Глутницата вътре


Един универсален модел на 8B параметъра върши всичко посредствено. Затова разделих задачите: код, разговор, снимки, и едно малко за дребните заявки, при които зареждането на 8B е чист разход на RAM и ток.

Имената са по роля, а не по хиперпараметри, защото след седмица никой не помни коя квантизация на кой файл беше. "Пусни Ковача" се помни. "Пусни qwen2.5-coder-7b-instruct-q4_K_M" не се помни.

Четири локални модела:

  • Ковача (Qwen2.5-Coder 7B, 7.6B параметъра) - за код
  • Хрътката (Llama3.1 8B) - бърза, разговорна, най-често използваната
  • Окото (Qwen2.5-VL 7B, 8.3B) - гледа снимки
  • qwen2.5:3b - малкото, за задачи, при които 8B е излишен разход
3.png


Плюс GPT-5.5 през API ключ, за когато локалните не стигат. А те не стигат по-често, отколкото ми се иска.


Първият истински тест: мостът на Витиня


Реших да питам нещо, което знам. Живея на четвърт час от него.

Първият отговор беше уверен и напълно измислен: мостът бил построен с дарения на чешко списание. Нито дума истина. Класическа халюцинация - моделът не знае, но не знае и че не знае, затова сглобява нещо правдоподобно от нищо.

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


4.png


"На Тони Ангелчовски съответните данни са достъпни, но заради липса на информация в моята база данни не мога да подадем точния отговор."

Погледнете внимателно. Моделът не измисля мост, но пък измисля мен - излиза, че аз съм източникът, който трябва да питаш. И граматиката вече се разпада. Хубавото е, че поне признава, че не знае. Лошото е, че признанието е увито в глупост.



Оправянето: SearXNG плюс едно правило


Две неща свършиха работа.

Първо, собствен SearXNG - безплатен, self-hosted, без телеметрия към никого. Ветеранът вече търси в мрежата сам, без да минава през чужд API.

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

Резултатът с включен Web Search изглежда така:


5.png


Два реални източника от Wikipedia и честен отговор: "не може да се потвърди точната година".

Изглежда като победа. Не е.




Къде всъщност е проблемът


Погледнете кои са двата източника. bg.wikipedia.org/wiki/Витиня и bg.wikipedia.org/wiki/Бебреш_(виадукт). Тоест точните две страници. Отговорът е бил буквално в контекста на модела.

Виадуктът "Бебреш" на магистрала "Хемус" е завършен през 1985 година. Строен е в интервала 1977-1986 г. Проектиран от екип на "Мостстрой". 720 метра дължина, 12 отвора по 60 метра, най-високата опора около 120 метра. Дълго време най-високият мост на Балканите. Всичко това го пише на страницата, която моделът сам издърпа.

И въпреки това: "не може да се потвърди точната година".


RAG оправя достъпа до фактите. Не оправя четенето им.

Това е разликата между 8B и нещо сериозно. Малкият модел се научава да търси сравнително лесно - това е инфраструктура. Да прочете три абзаца и да извади от тях едно число е разсъждение, а разсъждението не се добавя с конфигурационен файл.

Системният промпт не направи модела по-умен. Направи го по-скромен. Това е печалба, но да не се лъжем каква точно.




Втората халюцинация, която търсенето не хвана


Питах Окото за Kali Linux. Ето какво излезе, с включено търсене и с "Retrieved 1 source" отгоре:

2.png


"Кали Линукс е операционна система, която се използва за нелегални цели като хакерство и анализ на мрежи."

Kali е дистрибуция за одит на сигурност, пентест и форензика. Използва се от хора, на които това им е професията, обикновено с подписан договор в чекмеджето. Wireshark е анализатор на пакети, не "инструмент за хакерство" - всеки мрежов администратор го пуска. Nmap също. А WPS изобщо не е инструмент, а протокол, при това известен най-вече с това колко е счупен.

Тук е важното: това не е сгрешен факт, а сгрешена рамка. И се случи при включено търсене. Тоест web search не е предпазител. Той дава на модела повече текст, не повече преценка. Ако моделът е решил, че темата мирише на нещо нелегално, ще я оцвети така независимо какво е прочел.




А кой си ти изобщо


Любимият ми момент от целия ден. Отварям нов чат, пиша "здравей":
1.png


"Здрасти! Аз съм Тони Анджелковски - АИ асистентът му."

Едновременно съм аз и не съм аз, и фамилията е сбъркана. След това се поправя само наполовина, а българският му тръгва на юг: "Що искате да знаете", "Ето некои интересни факти за тоновете". Кои тонове, за какви тонове става дума - така и не разбрах.

Llama 3.1 8B на български е приблизително това. Разбира те, отговаря бързо, и на всеки няколко изречения ти напомня, че българският за нея е трети език, научен от сравнително малко текст. За чат става. За текст, който ще излезе с моето име отдолу, не.




Кризата


По средата на настройката реших да преместя sqlite файла по SSH. Докато интерфейсът работеше.

Database disk image is malformed.

Собствена грешка, изцяло. Възстанових я така:


Code:
sqlite3 broken.db ".recover" | sqlite3 recovered.db

Всички настройки оцеляха. Изгубих няколко чата, между които и оригиналната халюцинация за чешкото списание. Общо взето евтино минах.

Урокът не е "правете backup". Всички го знаят. Урокът е, че го правиш не защото си параноик, а защото веднъж вече не си бил.




Какво остана накрая

  • Собствен интерфейс на срв2, четири локални модела и GPT-5.5 за тежкото
  • SearXNG, self-hosted, без чужд API за търсенето
  • Системен промпт с правило "не знаеш - кажи го", включително на GPT-5.5, с директен тон и без корпоративни клишета
  • Трезво очакване докъде стига 8B модел на български
  • Backup преди всяко местене на база, без изключения

Глутницата е седем машини общо, и сега AiVeteran отгоре на всичко това.

Не защото е перфектен. Видяхте, че не е. А защото е мой, стои у дома, не праща нищо навън и знам всяко негово кътче - включително местата, на които лъже.



Ключови думи: AiVeteran, self-hosted AI, локални модели, Ollama, Llama 3.1, Qwen2.5, Qwen2.5-Coder, Qwen2.5-VL, SearXNG, RAG, халюцинации, системен промпт, sqlite recover, Debian 12, домашен сървър, виадукт Бебреш
Източници: bg.wikipedia.org - Бебреш (виадукт); bg.wikipedia.org - Витиня; socbg.com - строителство на виадукта 1977-1986; собствени тестове на срв2, 18.08.2026


toni@dtgarage:~$ whoami
Тони Ангелчовски | Ексклузивно за DTGaraGe
toni@dtgarage:~$ cat LICENSE
🔒 Копирането и препубликуването без разрешение не е позволено.
toni@dtgarage:~$ ./support.sh
☕ Подкрепи DTGaraGe и независимото техническо съдържание
toni@dtgarage:~$ █
 
Last edited:
Top Bottom
🛡️ Този сайт използва аналитични инструменти за подобряване на потребителското изживяване. Никакви лични данни не се събират. С продължаването си в Потока приемаш тази философия на прозрачност и уважение.