инфра/гид

vLLM, Ollama, llama.cpp или SGLang: что ставить на сервер

Обновлено09.11.2026 Цены проверены08.11.2026Источникdocs.ollama.com, docs.selectel.ru, docs.sglang.io, docs.vllm.ai, github.com, selectel.ruЧтение10 мин .md
Коротко

Для себя и одного-двух пользователей ставьте Ollama или llama.cpp: они запускаются за минуты и работают даже без видеокарты. Для команды и продукта, где запросы идут параллельно, — vLLM, а SGLang — когда у запросов длинное общее начало (агенты, RAG, один системный промпт). Все четыре движка запускают модель на 8 млрд параметров на одной карте L4 24 ГБ, которая в облаке стоит 69,52 ₽/час.

В этой статье
Наш выбор

Для внутреннего чат-бота или сервиса на 5–30 человек — vLLM на облачном сервере с L4 24 ГБ: OpenAI-совместимый API из коробки, параллельные запросы обрабатываются вместе, а не по очереди, оплата только за часы работы.

Движок
vLLM в Docker, модель до 8 млрд параметров в 16 битах или до 14 млрд в 4-битном сжатии
Сервер
1 × L4 24 ГБ · 8 vCPU · 32 ГБ RAM
Цена от
69,52 ₽/час
Выделенный на месяц
RTX 4090 24 ГБ, диски и безлимитный канал входят — 56 900 ₽/мес
Когда не подходит
один пользователь и модель в GGUF — проще Ollama; модели от 30 млрд — нужна карта на 48–96 ГБ
GPU-серверы в Selectel

Реклама. АО «Селектел», ИНН 7810962785, selectel.ru. erid: 2VtzqwajdVY

Что нужно понять за минуту

Все четыре программы делают одно и то же: загружают открытую языковую модель и отвечают на запросы по HTTP. У всех есть API в формате OpenAI, так что чат-интерфейс, n8n или ваш код подключаются к любой из них одинаково. Разница в том, сколько людей движок обслуживает одновременно и на каком железе он работает.

  • Ollama — самый простой путь. Одна команда на установку, модели скачиваются по имени (ollama pull qwen3:8b). Под капотом — тот же движок ggml, что и у llama.cpp, плюс удобная обёртка.
  • llama.cpp — лёгкий движок на C++ для моделей в формате GGUF. Работает на процессоре, на видеокарте или на обоих сразу: если модель не влезла в видеопамять, часть слоёв остаётся на CPU. Сервер llama-server отдаёт OpenAI-совместимый API.
  • vLLM — сервер для продакшена на видеокартах. Видеопамять под контекст он раздаёт страницами (PagedAttention) и склеивает запросы разных пользователей в общие пакеты на лету (continuous batching). Поэтому при 10–30 одновременных запросах он не выстраивает их в очередь. Коротко о движке — в глоссарии.
  • SGLang — такой же серверный движок, как vLLM, с упором на повторное использование общего начала запросов (RadixAttention). Выигрывает, когда у запросов длинный общий префикс: агенты, RAG, один большой системный промпт.

Одно правило помогает больше любых таблиц: для одного пользователя разница между движками обычно небольшая — скорость ответа больше зависит от карты и степени сжатия модели, чем от программы. Большая разница появляется, когда пишут сразу несколько человек. Ollama и llama.cpp обрабатывают ограниченное число запросов параллельно, остальные ждут. vLLM и SGLang для этого и созданы.

Цифр токенов в секунду в этой статье нет сознательно. Они сильно зависят от модели, длины запросов, версии движка и карты, а чужие бенчмарки на другом железе ничего не скажут о вашем. Ниже — команда, которой за час на арендованной карте можно получить свои цифры.

Что ставить: короткая таблица

Задача Что ставить Почему
Попробовать модель, личный ассистент Ollama установка за минуты, модели по имени
Сервер без видеокарты, маленькая модель llama.cpp работает на CPU, модели в GGUF
Модель больше видеопамяти llama.cpp или Ollama часть слоёв уходит на процессор
Чат-бот или API для команды 5–30 человек vLLM параллельные запросы, ключ доступа, метрики
Агенты, RAG с общим системным промптом SGLang или vLLM переиспользование общего начала запросов
Несколько карт в одном сервере vLLM или SGLang модель делится между картами (tensor parallel)

Если сомневаетесь между vLLM и SGLang — начните с vLLM: у него больше поддерживаемых моделей и готовых инструкций. Пошаговая установка с Docker и ключом API — в гайде vLLM на своём GPU-сервере.

Сколько стоит железо под каждый движок

Сам софт бесплатный, платите только за сервер. Что выбрать, решает размер модели: на 24 ГБ видеопамяти помещаются модели до 14 млрд параметров в 4-битном сжатии с запасом на контекст, для 30 млрд в 8 битах нужна карта на 48 ГБ, для 70 млрд — на 96 ГБ. Под свою модель и число пользователей посчитайте в калькуляторе видеопамяти.

Где запускать Память Цена Месяц круглосуточно, ≈ Каким движкам
Облачный сервер без GPU, 8 vCPU 32 ГБ RAM — 14 436,42 ₽/мес llama.cpp, Ollama
Облачный сервер с L4 24 ГБ 69,52 ₽/час 50 750 ₽ все четыре
Облачный сервер с RTX 4090 48 ГБ 48 ГБ 146,42 ₽/час 106 900 ₽ все четыре
Облачный сервер с RTX PRO 6000 96 ГБ 289,79 ₽/час 211 550 ₽ все четыре
Выделенный сервер с RTX 4090 24 ГБ 24 ГБ 1 890 ₽/день 56 900 ₽/мес все четыре
Dedicated Inference, qwen3-8b — от 63,30 ₽/час 46 200 ₽ уже vLLM внутри

Облачные GPU — калькулятор пула ru-7a (Москва), минимальная конфигурация с картой, диск и IP отдельно. Сервер без GPU — линейка Standard, пул ru-9a (Санкт-Петербург), без диска и IP. Месяц для почасовых позиций — наш расчёт: цена часа × 730 часов. Цены с НДС, проверено 08.11.2026 · источник

Выделенный сервер с RTX 4090 24 ГБ дороже облачного L4 при круглосуточной работе, но в него входят 128 ГБ оперативной памяти, два NVMe по 2 ТБ и безлимитный канал — в облаке диск под веса модели оплачивается отдельно. Посуточный тариф удобен для разового замера движков: сутки на одной карте, все четыре варианта на одной модели.

Последняя строка — вариант «ничего не ставить». Dedicated Inference запускает модель из каталога провайдера с OpenAI-совместимым API, и для языковых моделей внутри работает тот же vLLM. Платите за часы работы, токены не тарифицируются. Что выгоднее при вашем объёме запросов — готовая модель, оплата за токены или свой сервер, — считает калькулятор LLM по API или свой GPU.

Как запустить и сравнить на своей карте

Все команды ниже публикуют порт только на 127.0.0.1: наружу API открывают через reverse proxy с ключом. Модель для примера — Qwen3-8B: в 16 битах её веса занимают около 16 ГБ и помещаются на L4 24 ГБ (наш расчёт: 8 млрд параметров × 2 байта).

vLLM — порт 8000:

docker run -d --gpus all --ipc=host -p 127.0.0.1:8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:latest \
  --model Qwen/Qwen3-8B --max-model-len 16384 --api-key "$LLM_API_KEY"

SGLang — порт 30000:

docker run -d --gpus all --ipc=host --shm-size 16g -p 127.0.0.1:30000:30000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  lmsysorg/sglang:latest \
  python3 -m sglang.launch_server --model-path Qwen/Qwen3-8B \
  --host 0.0.0.0 --port 30000 --api-key "$LLM_API_KEY"

llama.cpp — порт 8080, модель в GGUF скачайте заранее в ~/models:

docker run -d --gpus all -p 127.0.0.1:8080:8080 -v ~/models:/models \
  ghcr.io/ggml-org/llama.cpp:server-cuda \
  -m /models/Qwen3-8B-Q4_K_M.gguf --host 0.0.0.0 --port 8080 \
  -ngl 99 -c 32768 --parallel 4 --api-key "$LLM_API_KEY"

Здесь -ngl 99 переносит на видеокарту все слои, а -c 32768 — общий контекст, который делится между четырьмя параллельными слотами (по 8 192 токена на каждого).

Ollama — порт 11434, число параллельных запросов задаётся переменной OLLAMA_NUM_PARALLEL:

curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3:8b

Первая строка запускает официальный установщик Ollama: он ставит программу и службу systemd. Если не хотите выполнять скрипт из интернета вслепую, сначала скачайте его и прочитайте. По умолчанию Ollama слушает только 127.0.0.1:11434, так что наружу он не открыт.

Для сравнения подойдёт команда vllm bench serve из пакета vLLM. Она шлёт запросы в любой OpenAI-совместимый API и считает пропускную способность и время до первого токена. Пример для llama.cpp; для других движков меняйте --base-url, а для Ollama добавьте --served-model-name qwen3:8b. Ключ API команда берёт из переменной OPENAI_API_KEY:

vllm bench serve --backend openai \
  --base-url http://127.0.0.1:8080 --endpoint /v1/completions \
  --model Qwen/Qwen3-8B \
  --dataset-name random --random-input-len 1000 --random-output-len 300 \
  --num-prompts 200 --max-concurrency 8

Прогоните одну и ту же модель с --max-concurrency 1, 8 и 32. Смотрите на две цифры: суммарные токены в секунду (сколько людей выдержит сервер) и время до первого токена (насколько долго человек ждёт начала ответа). Учтите, что у llama.cpp и Ollama модель сжата до 4 бит, а у vLLM и SGLang в примере — в 16 битах. Для честного сравнения берите одинаковую точность или хотя бы помните о разнице в качестве ответов.

Что не подойдёт и ограничения

  • Ollama без защиты. В Ollama нет проверки ключа доступа: открытый наружу порт 11434 — это бесплатная нейросеть для всех, кто его найдёт. Публикуйте только на 127.0.0.1 и ставьте перед ним reverse proxy с авторизацией.
  • vLLM занимает почти всю видеопамять. По умолчанию он резервирует больше 90 % памяти карты под веса и кэш контекста (параметр --gpu-memory-utilization, в версиях 2026 года — 0,92). Второй движок или вторая модель на той же карте без настройки не запустятся.
  • Форматы моделей разные. vLLM и SGLang работают с моделями в формате Hugging Face (в том числе AWQ, GPTQ, FP8), llama.cpp и Ollama — с GGUF. Поддержка GGUF в vLLM есть, но экспериментальная: под vLLM берите обычные веса.
  • Мало памяти — не только про веса. Каждый параллельный пользователь занимает видеопамять под свой контекст. Модель, которая влезла для одного человека, может не выдержать десятерых. Это одинаково для всех четырёх движков.
  • SGLang меняется быстро. Флаги запуска между версиями иногда меняются, а образы 2026 года собраны под CUDA 13 и требуют свежий драйвер NVIDIA — проверьте версию в nvidia-smi до запуска. Закрепляйте версию образа вместо latest, когда сервис работает в продакшене, — это касается и vLLM.
  • Облачный GPU нельзя зарезервировать. Если в выбранном пуле нет свободной карты, сервер не создастся с ошибкой «No valid host was found». Для долгого проекта с гарантией карты берите выделенный сервер.
  • Ноль на балансе. Облачный сервер с GPU блокируется, и если долг не погасить за 12 часов, сервер удаляется вместе с данными. Веса моделей и конфиги держите так, чтобы их можно было быстро развернуть заново.
  • Dedicated Inference — не для своей модели. Сервис работает в режиме предварительного доступа, только в Москве, и загрузить туда свою или дообученную модель нельзя. Для своей модели нужен свой сервер с vLLM или SGLang. Как собрать такой сервис целиком — в решении своя LLM на сервере.

Как мы сделали

Как мы сделали

Выбор движка у нас начинается с вопроса «нужна ли тут вообще видеокарта». Для поиска по своим документам мы держим модель эмбеддингов bge-m3 на процессоре домашнего сервера: ей выделено 4 vCPU и 4 ГБ памяти, ответ приходит примерно за 0,17 с, тексты не покидают наш периметр. Распознавание речи (Whisper) работает на парке дешёвых телефонов. А крупные языковые модели мы запускаем только в облаке. По нашей нагрузке почасовое облако выгодно, пока карта занята меньше 16–18 часов в сутки, дальше дешевле выделенный сервер. Точный порог зависит от карты: для своей посчитайте в калькуляторе облако или выделенный GPU.

Частые вопросы

Что выбрать: vLLM или SGLang?

Оба движка рассчитаны на много параллельных запросов и отдают OpenAI-совместимый API. vLLM поддерживает больше моделей и железа, у него крупнее сообщество и больше готовых инструкций — это выбор по умолчанию. SGLang стоит попробовать, если у ваших запросов длинное общее начало: один большой системный промпт, агенты с многошаговыми цепочками, RAG с одинаковыми инструкциями. Решать лучше замером на своей модели и своём профиле запросов.

Чем vLLM отличается от llama.cpp?

llama.cpp — лёгкий движок на C++ для моделей в формате GGUF: работает на процессоре, на видеокарте или на обоих сразу, если модель не влезла в видеопамять целиком. vLLM работает с моделями в формате Hugging Face на видеокарте и выигрывает, когда одновременно пишут много пользователей. Для одного пользователя или слабого железа берите llama.cpp, для сервиса на команду — vLLM.

vLLM или Ollama — что лучше для сервера?

Ollama удобнее: одна команда на установку, модели скачиваются по имени, есть OpenAI-совместимый API. Но в Ollama нет проверки ключа доступа, и под параллельной нагрузкой он заметно уступает vLLM. Для себя и тестов — Ollama, для продукта и команды — vLLM за reverse proxy с ключом.

Как сделать бенчмарк vLLM и других движков?

В пакете vLLM есть команда vllm bench serve. Она шлёт запросы в любой OpenAI-совместимый API и считает токены в секунду и задержку первого токена. Запустите её против каждого движка с одной моделью, одинаковой длиной запросов и ответов и разным числом одновременных запросов: 1, 8 и 32.

Можно ли запустить LLM на сервере без видеокарты?

Да, через llama.cpp или Ollama. Небольшая модель в 4-битном сжатии работает на облачном сервере с 8 vCPU и 32 ГБ памяти, но отвечает в разы медленнее, чем на GPU, и годится для одного пользователя или фоновой обработки. vLLM и SGLang рассчитаны на видеокарту.

Источники

  1. Облачные серверы с GPU — калькуляторпроверено 08.11.2026
  2. Выделенные серверы с GPU — готовые конфигурациипроверено 08.11.2026
  3. Калькулятор цен — облачные серверы Standardпроверено 08.11.2026
  4. Dedicated Inference — каталог моделейпроверено 08.11.2026
  5. Dedicated Inference — описание сервисапроверено 08.11.2026
  6. Оплата облачных серверов — документацияпроверено 08.11.2026
  7. Резервирование ресурсов и GPU — FAQ миграциипроверено 08.11.2026
  8. vLLM — запуск в Dockerпроверено 09.11.2026
  9. vLLM — параметры движка (gpu-memory-utilization)проверено 09.11.2026
  10. vLLM — команда vllm bench serveпроверено 09.11.2026
  11. SGLang — установка и Docker-образпроверено 09.11.2026
  12. llama.cpp — llama-server, параметрыпроверено 09.11.2026
  13. Ollama — FAQ (OLLAMA_HOST, OLLAMA_NUM_PARALLEL)проверено 09.11.2026

Связанные гайды