Инструменты ML• Технологии & Сети

vLLM vs Ollama vs llama.cpp: какой движок инференса выбрать в 2026 году

Три главных инструмента для запуска LLM на своём сервере: сравниваем архитектуру, производительность, простоту развёртывания и сценарии использования.

Обновлено: 2026-10-03T06:00:02.267Z
Время чтения: ~12 мин
Автор: Дмитрий Волков (ML-инженер, 8 лет в продакшен-инференсе)
Быстрый ответ & Краткая суть

Для продакшен-API с несколькими одновременными пользователями — vLLM (PagedAttention, batching, OpenAI API). Для быстрого старта и экспериментов — Ollama (одна команда, автоматическое квантование). Для CPU-инференса, Apple Silicon или нестандартных конфигураций — llama.cpp.

vLLMProduction API, batch ≥ 4, GPU only
OllamaБыстрый старт, 1 команда, GPU/CPU
llama.cppГибкость, CPU/GPU, кроссплатформа
SGLangАльтернатива vLLM, RadixAttention
Ключевые выводы и краткая суть
  • vLLM — для продакшен-API с высокой нагрузкой. PagedAttention + continuous batching, OpenAI-совместимый эндпоинт.
  • Ollama — для быстрого локального запуска и прототипирования. Одна команда — модель работает.
  • llama.cpp — для максимальной гибкости, CPU-инференса и кастомных сборок. Поддержка Apple Silicon, AMD ROCm.
  • На batch=1 (один пользователь) все три дают сопоставимую скорость. Разница проявляется при batch ≥ 4.

Сравнение движков инференса LLM (сентябрь 2026)

ПараметрvLLMOllamallama.cpp
Основной языкPython + CUDAGo + llama.cppC/C++ + CUDA
GPU поддержкаNVIDIA (CUDA)NVIDIA, AMD, AppleNVIDIA, AMD, Apple, Intel
CPU инференсНетЧерез llama.cppДа (основной режим)
Формат весовHF, AWQ, GPTQ, FP8GGUFGGUF
Continuous batchingДа (PagedAttention)НетНет (есть параллельные слоты)
OpenAI APIДа (нативно)Частичная совместимостьДа (llama-server)
Docker-образОфициальныйОфициальныйCommunity
Сложность настройкиСредняяМинимальнаяВысокая

vLLM: батчинг и скорость для продакшена

vLLM — Python-фреймворк от UC Berkeley, ставший стандартом для GPU-инференса в продакшене. Ключевая технология — PagedAttention: алгоритм управления KV-кэшем, который позволяет обслуживать множество запросов одновременно без пропорционального роста потребления памяти.

На практике это означает: vLLM на одном A100 80GB может обслуживать 20–30 одновременных пользователей, в то время как Ollama на том же железе — максимум 3–5. При batch=16 vLLM даёт суммарную пропускную способность 300–500 т/с (Llama 70B Q4), тогда как Ollama — те же 25–30 т/с для одного пользователя.

Развёртывание — Docker-контейнер с одной командой. API полностью совместим с OpenAI: замените base URL и ваш код на Python/JS/Go будет работать без изменений.

Ollama: «npm для нейросетей»

Ollama называют «Docker для LLM» — и это точное сравнение. Установка одной командой, запуск модели — ещё одной. Под капотом — llama.cpp с автоматическим подбором квантования и распределением слоёв между GPU и CPU.

Главное преимущество — zero-config. Ollama сама определяет доступную видеопамять, скачивает модель в нужном квантовании и распределяет вычисления. Для разработчика, который хочет «покрутить» модель — идеально.

Ограничения: нет continuous batching (каждый запрос — отдельный процесс), ограниченные возможности мониторинга, нет Fine-tuning из коробки. Для продакшена с SLA — недостаточно.

llama.cpp: максимальный контроль

llama.cpp — C/C++ рантайм от Georgi Gerganov, фундамент для Ollama и множества других инструментов. Даёт полный контроль: можно указать количество слоёв на GPU, размер KV-кэша, параметры семплирования и даже собрать под конкретную ISA (AVX-512, ARM NEON).

Ключевые сценарии: запуск на CPU (серверы без GPU), Apple Silicon (MacBook Pro M3/M4), AMD ROCm (Radeon Instinct), гибридный режим (часть слоёв на GPU, остальные в RAM).

llama-server предоставляет HTTP API, совместимый с OpenAI. Можно настроить параллельные слоты (--parallel N) для обработки нескольких запросов, но это не настоящий batching — каждый слот потребляет свою порцию KV-кэша.

llama-cpp-build.sh
# Сборка llama.cpp с CUDA
git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp
cmake -B build -DGGML_CUDA=ON && cmake --build build -j$(nproc)

# Запуск сервера (часть слоёв на GPU, часть в RAM)
./build/bin/llama-server \
  -m models/llama-3.3-70b-Q4_K_M.gguf \
  --n-gpu-layers 60 \
  --ctx-size 8192 \
  --parallel 4 \
  --host 0.0.0.0 --port 8080

Когда что выбирать: дерево решений

Задача: API для компании с 5+ одновременными пользователями → vLLM. Ничто другое не даст нужную пропускную способность с батчингом.

Задача: быстро проверить модель, написать промпт, интегрировать в pet-проект → Ollama. Минимум возни, максимум результата.

Задача: запуск на CPU, Mac или AMD GPU, специфические оптимизации → llama.cpp. Единственный вариант с полной кроссплатформенной поддержкой.

Задача: исследование, бенчмаркинг, максимальная производительность → SGLang. Альтернатива vLLM с RadixAttention и более быстрым планировщиком.

Рекомендованные конфигурации по теме статьи

Проверенные серверы от надежных провайдеров

Весь каталог
Хит цены
Aeza

Aeza

Москва★ 4.6

Shared Start

CPU

1 ядер • 3.3 ГГц

RAM

1 ГБ

Диск

10 ГБ NVMe

Канал

200 Мбит/с

149 ₽/мес

Хит цены
Timeweb Cloud

Timeweb Cloud

Москва★ 4.8

Cloud Start

CPU

1 ядер • 3.3 ГГц

RAM

1 ГБ

Диск

15 ГБ NVMe

Канал

200 Мбит/с

299 ₽/мес

Aeza

Aeza

Москва★ 4.6

Shared Medium

CPU

2 ядер • 3.3 ГГц

RAM

2 ГБ

Диск

30 ГБ NVMe

Канал

200 Мбит/с

299 ₽/мес

Часто задаваемые вопросы (FAQ)

Что быстрее — vLLM или Ollama?

При одном пользователе (batch=1) скорость сопоставима. При 4+ одновременных запросах vLLM выигрывает в 3–5 раз за счёт PagedAttention и continuous batching.

Можно ли использовать vLLM без GPU?

Нет, vLLM требует NVIDIA GPU с CUDA. Для CPU-инференса используйте llama.cpp напрямую или Ollama (которая внутри использует llama.cpp).

Ollama умеет работать с несколькими GPU?

Да, начиная с версии 0.3. Ollama автоматически распределяет слои модели по доступным GPU. Вручную указать распределение нельзя — для этого нужен llama.cpp.