К основному содержимому

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-тарифов с достаточным объёмом оперативной памяти.

← Назад в базу знаний Задать вопрос поддержке