Скидка 10% при первом запуске GPU по промокоду Активировать скидку

Запуск GGUF-модели через llama.cpp на GPU

llama.cpp подходит, когда нужно управлять конкретным GGUF-файлом и распределением вычислений между CPU и GPU. В этой инструкции используется HTTP-сервер llama-server: сборка с CUDA, запуск одной модели и проверка ответа до подключения клиента.

Если важнее простой запуск и управление загрузками, начните с Ollama. Для этого варианта нужны Linux, Git, CMake, C++ toolchain и CUDA development toolkit. Работающий nvidia-smi ещё не означает, что установлен компилятор CUDA.

Соберите определённый релиз

Проверьте nvcc --version и cmake --version. Если CUDA toolkit отсутствует, выберите development-образ с ним; не заменяйте драйвер хоста только ради компилятора.

git clone --branch v0.5.0 --depth 1 https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build -DGGML_CUDA=ON -DLLAMA_OPENSSL=ON
cmake --build build --config Release -j 2 --target llama-server
./build/bin/llama-server --version

Для загрузки моделей по HTTPS нужна поддержка OpenSSL. В Ubuntu/Debian установите libssl-dev и pkg-config до настройки сборки, если окружение разрешает установку пакетов. Ошибка сборки не доказывает, что модели не хватает VRAM.

Запустите квантованную модель

./build/bin/llama-server \
  -hf Qwen/Qwen2.5-7B-Instruct-GGUF:Q4_K_M \
  --alias qwen-gguf \
  --host 127.0.0.1 --port 8081 \
  --ctx-size 4096 \
  --n-gpu-layers 99 \
  --parallel 1

Селектор репозитория загружает подходящий GGUF. Если модель разбита на части, сохраняйте все части. Для уже скачанного файла замените -hf на -m /absolute/path/model.gguf.

Большое значение числа слоёв запрашивает перенос всех доступных слоёв на GPU. Фактическую выгрузку проверьте в журнале запуска: это не гарантия вместимости. При OOM уменьшите контекст, выберите меньшую модель/квантование или снизьте число слоёв на GPU. Частичная работа на CPU требует оперативной памяти и может замедлить ответ.

Проверьте API

В другом терминале сервера:

curl --fail-with-body http://127.0.0.1:8081/health
curl --fail-with-body http://127.0.0.1:8081/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"qwen-gguf","messages":[{"role":"user","content":"Explain a database index in three sentences."}],"max_tokens":128,"temperature":0}'

Если health endpoint ещё не готов, дождитесь загрузки. Для чата нужен подходящий шаблон instruction-модели. Неверный шаблон способен испортить ответы даже при HTTP 200.

Подключитесь со своего компьютера

ssh -N -o ExitOnForwardFailure=yes -p SSH_PORT \
  -L 127.0.0.1:18081:127.0.0.1:8081 root@GPU_HOST

Подставьте реальные SSH-реквизиты. Base URL клиента — http://127.0.0.1:18081/v1, alias модели — qwen-gguf. Пример использует loopback и SSH-туннель. Если клиент требует заполнить API key, произвольное значение не защищает сервер.

Сохраните конфигурацию

Запишите релиз/commit, параметры сборки, имя и checksum GGUF, контекст, число слоёв и промпт. Сравнивайте полное размещение на GPU и частичную выгрузку на CPU с одним файлом модели. Отделяйте время скачивания и сборки от времени запроса.

Расчёт VRAM объясняет разницу между размером весов и памятью процесса. Инструкция по хранению поможет сохранить файлы перед удалением инстанса. Остановка llama-server не останавливает сам арендованный сервер.

Источники: сборка llama.cpp, параметры сервера, GGUF-модель Qwen.

Все инструкции по запуску своей LLM.

Готовы запустить?

Запустить GPU-сервер