Запуск великих мовних моделей на серверах з обмеженою RAM або без потужної відеокарти — біль кожного розробника, який хоче використовувати AI без хмарних витрат. Квантизація (quantization) дозволяє зменшити розмір моделі у 2–8 разів без критичної втрати якості відповідей. Цей туторіал покаже, як за 1–2 години розгорнути квантизовану LLM на сервері з 8–16 ГБ RAM та зробити її доступною через API. Для старту потрібен Linux-сервер (або WSL2 на Windows), Python 3.10+ та базові навички командного рядка.
🛠️ Що знадобиться
- llama.cpp — головний інструмент для запуску GGUF-моделей; підтримує CPU-інференс, безкоштовний і open-source
- Ollama 0.4+ — зручна оболонка над llama.cpp з REST API та менеджером моделей; безкоштовний
- Hugging Face CLI — для завантаження квантизованих моделей у форматі GGUF; безкоштовний (потрібен акаунт HF)
- Python 3.10+ та бібліотека requests — для тестування API та інтеграції у власні скрипти; безкоштовно
- Сервер або VPS — мінімум 8 ГБ RAM, 20 ГБ вільного місця на диску; підійде навіть найдешевший VPS за $5–10/місяць
📋 Покрокова інструкція
Крок 1: Встановлення Ollama та перевірка середовища
Підключіться до сервера через SSH і виконайте одну команду для встановлення Ollama: curl -fsSL https://ollama.com/install.sh | sh. Після завершення перевірте встановлення командою ollama --version — має відобразитися версія 0.4 або вища. Далі запустіть сервіс: sudo systemctl enable ollama && sudo systemctl start ollama. Перевірте, що сервіс працює: sudo systemctl status ollama — у виводі має бути зелений рядок “active (running)”. Якщо у вас Ubuntu 22.04/24.04 — все пройде без додаткових залежностей.

Крок 2: Вибір правильного рівня квантизації під ваш сервер
Квантизація буває різних рівнів — від Q2_K (найменший розмір, нижча якість) до Q8_0 (майже оригінальна якість, більший розмір). Для сервера з 8 ГБ RAM обирайте моделі з позначкою Q4_K_M — це золота середина між якістю та розміром. Наприклад, Llama 3.2 3B у форматі Q4_K_M займає лише ~2 ГБ RAM, а Mistral 7B Q4_K_M — близько 4.5 ГБ. Перед завантаженням виконайте free -h щоб побачити доступну пам’ять, і df -h / щоб перевірити місце на диску. Ніколи не беріть модель, розмір якої перевищує 70% від вашої вільної RAM — інакше сервер піде в swap і відповіді будуть тривати хвилини.
Крок 3: Завантаження квантизованої моделі через Ollama
Ollama має вбудований реєстр моделей. Для сервера з 8 ГБ RAM введіть команду: ollama pull llama3.2:3b-instruct-q4_K_M — це завантажить Llama 3.2 3B у квантизованому форматі Q4_K_M (~2 ГБ). Якщо хочете кращу якість і маєте 16 ГБ RAM, використайте: ollama pull mistral:7b-instruct-q4_K_M. Завантаження займе 3–10 хвилин залежно від швидкості інтернету. Після завершення введіть ollama list — у таблиці має з’явитися ваша модель зі стовпцями NAME, ID, SIZE та MODIFIED. Якщо потрібна конкретна модель з Hugging Face (наприклад, від TheBloke або bartowski), використайте команду: ollama run hf.co/bartowski/Qwen2.5-7B-Instruct-GGUF:Q4_K_M.
Крок 4: Тестування моделі та налаштування параметрів інференсу
Спочатку протестуйте модель напряму в терміналі: ollama run llama3.2:3b-instruct-q4_K_M "Поясни квантизацію простими словами". Якщо відповідь прийшла за 5–15 секунд — все працює. Тепер налаштуємо параметри для оптимальної роботи: створіть файл nano ~/Modelfile і вставте такий вміст: FROM llama3.2:3b-instruct-q4_K_M, новий рядок PARAMETER num_ctx 2048, новий рядок PARAMETER num_thread 4, новий рядок PARAMETER temperature 0.7. Параметр num_ctx 2048 обмежує контекстне вікно — це критично важливо для економії RAM. Збережіть файл (Ctrl+O, Enter, Ctrl+X) і виконайте: ollama create mymodel -f ~/Modelfile. Тепер ollama run mymodel запустить оптимізовану версію.
Крок 5: Підключення REST API та інтеграція у Python-скрипт
Ollama автоматично запускає REST API на порті 11434. Перевірте його доступність: curl http://localhost:11434/api/tags — у відповідь прийде JSON зі списком моделей. Тепер створіть тестовий Python-скрипт: виконайте nano ~/test_llm.py і вставте наступний код. Імпортуйте requests, потім визначте функцію ask_llm з параметром prompt, всередині якої зробіть POST-запит на http://localhost:11434/api/generate з JSON-тілом де вкажіть model як “mymodel”, prompt як змінну prompt та stream як False. Витягніть response.json()[“response”] і поверніть результат. У головному блоці викличте функцію з тестовим запитом і роздрукуйте результат. Запустіть: python3 ~/test_llm.py. Якщо отримали текстову відповідь від моделі — вітаємо, ваш локальний AI API повністю працює і готовий до інтеграції у будь-який застосунок.
⚠️ Типові помилки та як їх уникнути
- Вибір моделі, яка не влазить у RAM — завжди перевіряйте вільну пам’ять командою
free -hперед завантаженням; беріть модель розміром не більше 60–70% від доступної RAM, щоб залишити місце для операційної системи та самого Ollama - Занадто великий контекст (num_ctx) — значення 4096 або 8192 для слабкого сервера вб’є продуктивність; починайте з 2048, і тільки якщо модель стабільно працює — збільшуйте до 4096
- Запуск кількох моделей одночасно — Ollama тримає завантажену модель у пам’яті 5 хвилин після останнього запиту; якщо ви викликаєте різні моделі поперемінно, RAM переповниться; використовуйте одну модель або встановіть
OLLAMA_KEEP_ALIVE=0в /etc/systemd/system/ollama.service щоб вивантажувати модель одразу - Відкритий порт 11434 назовні — за замовчуванням API доступний тільки на localhost, але якщо ви змінювали налаштування файрволу, переконайтесь що порт закритий для зовнішніх з’єднань або захищений nginx з авторизацією
💡 Поради для кращого результату
Використовуйте Q4_K_M замість Q4_0. Суфікс “_K_M” означає “K-quants medium” — більш розумний алгоритм квантизації, який зберігає важливі ваги з вищою точністю. На практиці Q4_K_M дає якість майже як Q5, але розмір як у Q4. Різниця в якості відповідей помітна, особливо на складних завданнях.
Для CPU-серверів увімкніть AVX2. Перевірте підтримку командою grep avx2 /proc/cpuinfo | head -1. Якщо є вивід — llama.cpp автоматично використає AVX2-оптимізації, що прискорить генерацію на 30–50% порівняно зі звичайним режимом.
Обмежте кількість потоків через num_thread. Встановіть значення рівне кількості фізичних ядер мінус одне (наприклад, для 4-ядерного сервера — 3). Це залишить одне ядро для операційної системи і прибере мікро-затримки від context switching.
Використовуйте mmap для великих моделей. Додайте у Modelfile рядок PARAMETER use_mmap true — це дозволить Ollama не завантажувати всю модель у RAM одразу, а читати потрібні частини з диску. На SSD-дисках це практично непомітно, зате заощаджує 20–30% RAM.

❓ Часті запитання (FAQ)
1. Яка різниця між Q4 та Q8 квантизацією на практиці?
Q4 зберігає кожен вагового параметр у 4 бітах замість 16 або 32, що зменшує розмір у 4–8 разів. Q8 використовує 8 біт — менше стиснення, але якість відповідей на 5–15% краща залежно від задачі. Для загальних чат-завдань різниця між Q4_K_M та Q8 практично непомітна, але на математиці або кодуванні Q8 виграє.
2. Чи можна запустити квантизовану модель на сервері без GPU?
Так, саме для цього й існує llama.cpp та Ollama — вони оптимізовані для CPU-інференсу. На сучасному 4-ядерному CPU модель 7B Q4_K_M генерує 3–8 токенів на секунду, що цілком прийнятно для API-застосунків де не потрібна миттєва відповідь.
3. Які моделі найкраще працюють на слабких серверах у 2026 році?
Для 8 ГБ RAM найкращий вибір — Llama 3.2 3B, Qwen2.5 3B та Phi-3.5 Mini у форматі Q4_K_M. Для 16 ГБ RAM відмінно працюють Mistral 7B, Llama 3.1 8B та Qwen2.5 7B — ці моделі мають найкраще співвідношення якості до розміру за результатами бенчмарків 2025–2026 років.
4. Як збільшити швидкість відповідей без апгрейду заліза?
Зменшіть параметр num_ctx до 1024–2048, увімкніть mmap, обмежте num_thread до кількості фізичних ядер. Також спробуйте нижчий рівень квантизації — Q3_K_M буде на 20–30% швидше за Q4_K_M при незначній втраті якості.
5. Як захистити API від несанкціонованого доступу?
Встановіть nginx як reverse proxy перед портом 11434 та додайте HTTP Basic Auth або Bearer Token авторизацію. Альтернативно використайте змінну середовища OLLAMA_HOST=127.0.0.1 щоб API взагалі не виходив за межі localhost, і звертайтеся до нього тільки через SSH-тунель.
🏁 Підсумок
Ти навчився встановлювати Ollama, вибирати правильний рівень квантизації під конкретний сервер, завантажувати та налаштовувати GGUF-моделі, і підключати їх через REST API до власних Python-застосунків. Результат — повноцінний локальний AI-бекенд, який працює на VPS за $5–10 на місяць без жодних витрат на зовнішні API.
Почни прямо зараз: відкрий термінал і виконай curl -fsSL https://ollama.com/install.sh | sh && ollama pull llama3.2:3b-instruct-q4_K_M — за 10 хвилин матимеш робочу AI-модель на власному сервері.
РОЗСИЛКА
📬 Щотижневий AI-дайджест
Найкращі статті про ШІ та автоматизацію — без спаму, лише суть
Без спаму · Відписатись будь-коли

