diff --git a/post/pershyy-dosvid-z-ollama-llm.md b/post/pershyy-dosvid-z-ollama-llm.md new file mode 100644 index 0000000..4a4bde6 --- /dev/null +++ b/post/pershyy-dosvid-z-ollama-llm.md @@ -0,0 +1,64 @@ +# Перший досвід з Ollama / LLM + +Схоже, я значно відстаю від загальних трендів і хайпу довкола ШІ, хоча й давно вже користуюсь цим інструментом, зокрема - засобами Duck.ai + +Тільки зараз знайшов час поставити собі локально відкритий сервер [Ollama](https://ollama.com), здебільшого - з метою приватного користування, без відправлення хоч й анонімних, але цілком очевидних запитів на сторонні сервери. Нижче коротенький "дамп" з цього досвіду, може комусь також згодиться. + +## Встановлення + +Ollama - сервер з відкритим кодом, який надає API для роботи з мовними моделями від різних постачальників. Завантажити його можна з [офіційного сайту](https://ollama.com/download). Є також останні релізи в репозиторії на [GitHub](https://github.com/ollama/ollama/releases). + +Зібрати з сорсу в мене не вийшло через помилку Vulkan. Наскільки я зрозумів (з попереднього досвіду встановлення графічного редактора Zed) його API не підтримується моїм старим залізом (iMac 2011) + +Вперше, я спробував поставити сервер Ollama з репозиторію Fedora: + +``` bash +dnf install ollama +``` + +Він працює, але модель gpt-oss не запустилась через [баг з датою](https://github.com/ollama/ollama/issues/11680): дуже дивно, що в репозиторії (Fedora 43) й досі якась допотопна версія цього серверу. + +Отже, збирайтесь одразу або з сорсу (якщо зможете) або з бінарників останніх релізів на GitHub - там по суті треба розпакувати теку та виконати: + +``` bash +bin/ollama --help +``` +* або поставити його в систему командою `install` + +## Моделі LLM + +Після встановлення сервера, потрібно завантажити мовну модель. Вони бувають різні, для кожної задачі - своя спеціалізація, така спеціалізація може бути "універсальною". Для коду (в рамках тестування на Duck.ai) мені сподобались Claude Haiku та загальний GPT-4o mini. Обрати популярні моделі можна зі [списку](https://ollama.com/search), інші можна скачати на офіційних сайтах окремих моделей. + +Для тестів я обрав: + +* Mistral (~4Gb) +* GPT-OSS (~14Gb або 65Gb) - в залежності від кількості "нейронів" та конкретної версії + +Встановлюються і запускаються моделі після запуску сервера Ollama: + +``` bash +ollama serve +``` + +Потрібна модель вказується аргументом run, я це роблю в окремому табі (сесії) терміналу: + +``` bash +ollama run mistral +``` +* якщо модель відсутня, її буде автоматично завантажено з репозиторію +* тут варто зауважити, що у вас повинно бути достатньо оперативної пам'яті, інакше ймовірне її переповнення з подальшим завісанням системи. Скільки для якої моделі потрібно пам'яті - дивіться в специфікації. Скажу тільки що моїх 12 Gb + 8 Gb swap достатньо лише для Mistral. Наскільки розумію, розмір пам'яті приблизно дорівнюватиме розміру моделі + витрати на систему і сам сервер Ollama. Так собі думаю, що теоретично можна організувати swap-файл на SSD, звісно буде не дуже швидко і не дуже "гуманно" для цього типу носія, але якось буде. + +Щоб видалити модель і звільнити простір, виконуємо послідовність команд: + +``` bash +ollama list +ollama rm ID +``` +* ID - назва зі списку +* файли завантажених моделей можна знайти в теці `~/.ollama` поточного користувача + +## Клієнти + +Не довго обираючи, поставив з магазину додатків Alpaca, ця "альпака" також є на [GitHub](https://github.com/Jeffser/Alpaca). + +В іншому, тут що кому треба: можна прикрутити плагіни для VSCode та інших програм, або ж просто користуватись штатним CLI сервера Ollama без додаткового софту. \ No newline at end of file