До основного вмісту

llama.cpp і GGUF: запуск мовних моделей на CPU

AI-агенти на VDS · 29.09.2026

Що таке llama.cpp і формат GGUF

llama.cpp — реалізація інференсу мовних моделей на C++, яка працює без відеокарти, використовуючи лише процесор і оперативну пам'ять. Моделі зберігаються у форматі GGUF: це один файл з усіма вагами, метаданими і токенізатором, який легко завантажити і запустити однією командою. Формат замінив застарілий GGML і став стандартом для CPU-інференсу.

Такий запуск підходить для VDS без GPU, для тестів на слабкому залізі та для випадків, коли модель потрібна рідко і тримати дорогу відеокарту невигідно. Якщо сервер уже оснащений GPU, швидше працює vLLM, а llama.cpp залишається резервним варіантом або основним на бюджетному тарифі.

Чим відрізняються рівні квантування GGUF

Квантування зменшує точність ваг моделі, щоб стиснути файл і пришвидшити обчислення на CPU. Що нижче число бітів, то менший розмір і вимоги до пам'яті, але вища втрата якості відповідей.

КвантуванняБіт на вагуРозмір 7B-моделіЯкість
Q8_08~7.2 ГБмайже як fp16
Q6_K6~5.5 ГБдуже близько до оригіналу
Q5_K_M5~4.8 ГБгарний баланс
Q4_K_M4~4.1 ГБпомітна, але невелика втрата
Q2_K2~2.8 ГБсильна деградація

Для більшості задач оптимальний Q4_K_M або Q5_K_M — вони заощаджують пам'ять і майже не псують відповіді моделі.

Встановлення llama.cpp на сервері

Зберіть проєкт з вихідного коду: це дає актуальну версію і оптимізацію під процесор конкретного сервера.

sudo apt update
sudo apt install -y build-essential cmake git
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j

Після збірки бінарники з'являться в каталозі build/bin. Перевірте кількість ядер процесора командою nproc — цей параметр вказується під час запуску для повного навантаження CPU.

Як завантажити модель і запустити інференс

Готові файли GGUF публікують на Hugging Face — досить завантажити один файл із потрібним рівнем квантування і передати шлях до нього в бінарник.

wget https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/main/llama-2-7b-chat.Q4_K_M.gguf
./build/bin/llama-cli -m llama-2-7b-chat.Q4_K_M.gguf -p "Опиши коротко хмарний сервер" -n 200 -t 8

Параметр -t задає кількість потоків CPU, -n — максимальну довжину відповіді. Для постійної роботи зручніше підняти сервер з HTTP API — див. також готовий інтерфейс Text Generation WebUI, який уміє працювати поверх llama.cpp.

Як вибрати квантування під обсяг пам'яті сервера

Спирайтеся на обсяг вільної оперативної пам'яті, а не лише на розмір файлу моделі — під час роботи потрібен запас під контекст і систему.

  • 8 ГБ RAM — моделі 7B у Q4_K_M, без паралельних задач на сервері.
  • 16 ГБ RAM — моделі 7B у Q6_K або Q8_0, або моделі 13B у Q4_K_M.
  • 32 ГБ RAM — моделі 13B у Q6_K або моделі 30B у Q4_K_M.
  • Вільної пам'яті завжди має залишатися на 20–30 % більше за розмір файлу моделі під контекст і кеш KV.

Точний розрахунок відеопам'яті для GPU-сценарію дивіться у статті скільки VRAM потрібно моделі — принцип розрахунку схожий, тільки замість VRAM рахується RAM.

Типові помилки під час першого запуску

Більшість проблем на старті вирішуються без перевстановлення:

  • Процес завершується одразу — бракує оперативної пам'яті під обраний рівень квантування, візьміть файл меншого розміру.
  • Відповідь генерується дуже повільно — перевірте параметр -t і переконайтеся, що він дорівнює кількості фізичних ядер сервера.
  • Модель відповідає незв'язно — ймовірно, обрано занадто агресивний рівень квантування на кшталт Q2_K, підніміть його до Q4_K_M.
  • Збірка падає на етапі cmake — оновіть компілятор і переконайтеся, що встановлено пакет build-essential.

Після успішного тесту через CLI llama.cpp готовий до вбудовування у скрипти або до роботи через веб-інтерфейс. Такий запуск не потребує GPU і підходить для більшості VDS-тарифів з достатнім обсягом оперативної пам'яті.

← Назад до бази знань Поставити питання підтримці