vLLM, Ollama, llama.cpp или SGLang: чем запускать LLM на своём сервере

vLLM или Ollama
vLLM vs Ollama
llama.cpp сервер
SGLang
сервер инференса LLM
развернуть LLM на своём сервере
vLLM, Ollama, llama.cpp или SGLang: чем запускать LLM на своём сервере

Для сервиса, которым одновременно пользуются десятки сотрудников или клиентов, на видеокартах обычно выбирают vLLM или SGLang: они рассчитаны на параллельные запросы и распределение модели по нескольким GPU. Ollama подходит для быстрого старта, прототипа и небольшой команды, llama.cpp — для запуска на процессоре, Mac или слабом железе и для квантованных моделей в формате GGUF. Все четыре проекта открыты и бесплатны, все дают API, совместимый с OpenAI, поэтому смена движка обычно не требует переписывать приложение.

Материал подготовлен AIrassvet 22 октября 2026 года для ИТ-директоров и руководителей разработки, которые выбирают, на чём развернуть открытую языковую модель в своём контуре. Сравнение построено по официальной документации, README и научным статьям проектов, а версии и лицензии сверены с GitHub в день публикации. Собственных нагрузочных тестов для статьи мы не проводили: цифры производительности принадлежат авторам проектов.

Содержание

Кратко

  • vLLM — сервер для многопользовательской нагрузки на GPU: PagedAttention, непрерывный батчинг, кэш префиксов, параллелизм на несколько видеокарт, широкая поддержка железа. Лицензия Apache 2.0.
  • SGLang — сервер того же класса с упором на агентные сценарии, структурированный вывод и повторное использование общего контекста (RadixAttention). Лицензия Apache 2.0.
  • llama.cpp — движок на C/C++ без зависимостей: процессоры, Apple Silicon, множество GPU-бэкендов, квантизация от 1,5 до 8 бит, гибридный запуск CPU+GPU. Встроенный сервер с API, совместимым с OpenAI. Лицензия MIT.
  • Ollama — удобная обёртка для запуска моделей одной командой на macOS, Windows, Linux и в Docker. По умолчанию одна модель обрабатывает один запрос за раз. Лицензия MIT.
  • Text Generation Inference (TGI) от Hugging Face переведён в режим поддержки, а его репозиторий на GitHub в архиве; для новых проектов сами авторы рекомендуют vLLM, SGLang и llama.cpp.

Что входит и не входит в сравнение

В сравнении: назначение четырёх открытых серверов инференса, поддерживаемое железо, работа с параллельными запросами, API, квантизация, распределение на несколько GPU, мониторинг, лицензии и критерии выбора.

Вне сравнения: выбор самой модели и расчёт железа (смотрите обзор локальных LLM, железа и стоимости), сравнение облака и своих серверов по совокупной стоимости и платные корпоративные платформы. Мы не публикуем собственных цифр скорости: они сильно зависят от модели, видеокарты, длины запросов и настроек.

Что такое сервер инференса и зачем его выбирать

Сервер инференса (inference server) — программа, которая загружает языковую модель в память и отвечает на запросы приложений по API. Модель — это веса, а сервер решает, как быстро и для скольких пользователей одновременно эти веса будут работать.

Главная техническая разница между серверами — управление памятью под кэш контекста (KV-cache) и пакетная обработка запросов. Кэш хранит промежуточные результаты для каждого активного диалога и растёт с длиной текста. Сервер, который эффективно раскладывает этот кэш и объединяет запросы в пакеты на лету, обслуживает больше пользователей на той же видеокарте. Авторы vLLM в статье о PagedAttention сообщают о росте пропускной способности в 2–4 раза при той же задержке по сравнению с FasterTransformer и Orca.

Для бизнеса выбор сервера определяет три вещи: сколько видеокарт понадобится под нагрузку, насколько просто эксплуатировать сервис и на каком железе вообще можно работать. Как это выглядит на уровне всей платформы, мы разбирали в статье «Своя LLM в компании: очереди, GPU и контроль качества».

Сравнительная таблица

Критерий vLLM SGLang llama.cpp Ollama
Основное назначение Многопользовательский сервис на GPU Многопользовательский сервис, агенты, структурированный вывод Локальный и встраиваемый запуск на любом железе Быстрый запуск моделей на рабочей станции или сервере
Лицензия Apache 2.0 Apache 2.0 MIT MIT
Последний релиз на 22.10.2026 v0.32.0, 18 октября 2026 v0.5.22, 19 октября 2026 v0.7.0, 15 октября 2026 v0.40.8, 21 октября 2026
Железо по документации GPU NVIDIA, AMD, Intel; CPU x86, ARM, PowerPC; плагины для TPU, Gaudi, Ascend, Apple Silicon и других GPU NVIDIA, AMD; TPU; Intel GPU и Xeon; Apple Silicon; Huawei Ascend; Moore Threads CPU x86, ARM, RISC-V; Apple Silicon; CUDA, HIP, MUSA, Vulkan, SYCL, CANN (Ascend) и другие бэкенды macOS, Windows, Linux, Docker
Параллельные запросы Непрерывный батчинг, PagedAttention Непрерывный батчинг, RadixAttention Слоты сервера (--parallel), непрерывный батчинг включён по умолчанию OLLAMA_NUM_PARALLEL, по умолчанию 1 запрос на модель
Несколько GPU Тензорный, конвейерный, data-, expert- и context-параллелизм Тензорный, конвейерный, expert- и context-параллелизм (параметры запуска) Разделение по слоям по умолчанию, по строкам, тензорный режим — экспериментальный Не описано в проверенной документации
API Совместимый с OpenAI, Anthropic Messages API, gRPC Совместимый с OpenAI Совместимый с OpenAI (llama serve) Собственный REST API и совместимый с OpenAI /v1
Квантизация FP8, INT8, INT4, GPTQ, AWQ, GGUF и другие Заранее квантованные веса (GPTQ, AWQ и др.) и онлайн-квантизация, в том числе FP8 Целочисленная от 1,5 до 8 бит, формат GGUF Готовые модели из библиотеки ollama.com/library
Мониторинг Эндпоинт /metrics для Prometheus Метрики Prometheus по флагу --enable-metrics --metrics, совместимые с Prometheus Встроенные метрики в проверенной документации не описаны
Порог входа Средний: Python или Docker, настройка под GPU Средний: Docker или Python Низкий для одного пользователя, выше для тонкой настройки Минимальный: установка и одна команда

Версии и лицензии получены через GitHub API 22 октября 2026 года; возможности — из README и документации проектов на ту же дату (метрики vLLM, метрики SGLang, квантизация SGLang, параметры запуска SGLang). Набор функций меняется от версии к версии, поэтому перед выбором проверьте ту версию, которую будете ставить.

vLLM: стандарт для продакшена на GPU

vLLM — открытый сервер для многопользовательской нагрузки, который начинался с научной работы о PagedAttention. В README перечислены ключевые механизмы: PagedAttention для управления памятью кэша, непрерывный батчинг входящих запросов, chunked prefill и кэширование префиксов, а также тензорный, конвейерный и другие виды параллелизма для распределения модели по нескольким видеокартам.

Что важно для компании:

  • Совместимость. Сервер отдаёт API, совместимый с OpenAI, а также Anthropic Messages API и gRPC. Приложение, написанное под облачный API, переключается сменой адреса.
  • Железо. Кроме видеокарт NVIDIA, заявлены AMD и Intel GPU, процессоры x86, ARM и PowerPC и плагины для Huawei Ascend, Google TPU, Intel Gaudi и Apple Silicon. Это важно, если закупки видеокарт ограничены.
  • Квантизация. Поддерживаются FP8, INT8, INT4, GPTQ, AWQ, GGUF и другие форматы; о компромиссах между памятью и качеством мы писали в статье «Квантизация LLM: что это».

Ограничение: vLLM рассчитан на серверные видеокарты и требует настройки под модель и нагрузку. Для ноутбука разработчика или одного пользователя это избыточно.

SGLang: агенты, структурированный вывод и общий префикс

SGLang — сервер того же класса, что и vLLM, который в README описан как оптимизированный для агентных нагрузок, крупномасштабного обслуживания и RL-обучения. В статье авторов описаны два ключевых механизма: RadixAttention, который переиспользует кэш общего начала запросов, и сжатые конечные автоматы для ускоренной генерации структурированного вывода, например JSON. Авторы сообщают о пропускной способности до 6,4 раза выше, чем у других систем, на задачах управления агентами, генерации JSON, RAG и многошаговых диалогов.

Когда это заметно на практике: у ИИ-агентов и чат-ботов поддержки длинный общий системный промпт и инструкции к инструментам повторяются в каждом запросе. Сервер, который не пересчитывает этот общий префикс заново, экономит вычисления.

По железу SGLang перечисляет видеокарты NVIDIA (от RTX 30-й серии до B300), AMD Instinct, Google TPU, Intel, Apple Silicon, а также Huawei Ascend и Moore Threads. В комплекте есть и движок генерации изображений и видео SGLang Diffusion.

Ограничение: проект развивается очень быстро, а набор функций зависит от платформы. Фиксируйте версию и прогоняйте регрессионный тест перед обновлением.

llama.cpp: CPU, Mac и гибридный запуск

llama.cpp — движок на чистом C/C++ без зависимостей, цель которого — запуск моделей с минимальной настройкой на широком спектре железа. В README заявлены: оптимизация под Apple Silicon, инструкции AVX, AVX2, AVX512 и AMX для x86, целочисленная квантизация от 1,5 до 8 бит, собственные ядра CUDA, поддержка AMD через HIP, Moore Threads через MUSA, Vulkan, SYCL и Huawei Ascend через CANN.

Самая полезная для бизнеса особенность — гибридный запуск CPU+GPU: часть слоёв модели работает на видеокарте, остальные на процессоре. Так можно запустить модель, которая не помещается в видеопамять целиком, ценой скорости.

Встроенный сервер (llama serve) отдаёт API, совместимый с OpenAI. В его документации есть параметры для нескольких одновременных слотов, непрерывный батчинг (включён по умолчанию), кэширование промпта, метрики в формате Prometheus и режимы разделения модели между несколькими GPU, из которых тензорный пока помечен как экспериментальный.

Ограничение: llama.cpp работает в основном с собственным форматом весов GGUF, а для высокой многопользовательской нагрузки на серверных GPU обычно выбирают vLLM или SGLang. Хорошая ниша — офлайн-контуры, рабочие станции, Mac и серверы без видеокарт.

Ollama: самый быстрый старт

Ollama превращает запуск модели в одну команду: установщики для macOS, Windows и Linux, официальный образ Docker, библиотека готовых моделей, собственный REST API на порту 11434 и совместимые с OpenAI эндпоинты /v1.

Параллельную работу настраивают переменными окружения, описанными в FAQ Ollama:

  • OLLAMA_NUM_PARALLEL — сколько запросов одна модель обрабатывает одновременно, по умолчанию 1; потребность в памяти растёт пропорционально этому числу, умноженному на длину контекста;
  • OLLAMA_MAX_LOADED_MODELS — сколько моделей может быть загружено сразу, по умолчанию 3 на каждую видеокарту или 3 при работе на процессоре;
  • OLLAMA_MAX_QUEUE — сколько запросов встанет в очередь; при переполнении сервер отвечает ошибкой 503.

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

Отдельный момент для контура безопасности: Ollama умеет работать и с облачными моделями после входа в учётную запись. Если данные не должны покидать периметр, используйте только локальные модели и закройте серверу выход в интернет.

А как же TGI и TensorRT-LLM

Text Generation Inference от Hugging Face долго был одним из основных вариантов. Сейчас в его README указано, что проект переведён в режим поддержки и принимает только мелкие исправления, а сами авторы рекомендуют vLLM, SGLang и локальные движки вроде llama.cpp и MLX. По данным GitHub API на 22 октября 2026 года, репозиторий находится в архиве. Для нового проекта TGI выбирать не стоит, а существующие установки разумно планировать к миграции; об этом процессе — в статье о миграции при отключении моделей.

TensorRT-LLM — библиотека NVIDIA для оптимизированного инференса на видеокартах NVIDIA. Она имеет смысл, когда инфраструктура полностью построена на оборудовании NVIDIA и нужна максимальная производительность ценой более сложной сборки. В этом сравнении мы её не разбираем подробно.

Когда что выбирать

Ситуация Рекомендуемый выбор Почему
Пилот или прототип, 1–5 пользователей Ollama Минимальный порог входа, совместимый API
Сервер без видеокарты, офлайн-контур, Mac llama.cpp Работа на CPU и Apple Silicon, квантизация GGUF, гибридный режим
Модель не помещается в видеопамять, а GPU одна llama.cpp Часть слоёв на процессоре
Корпоративный ассистент или API для десятков и сотен пользователей на GPU vLLM Непрерывный батчинг, PagedAttention, параллелизм на несколько GPU
ИИ-агенты, длинные общие промпты, генерация JSON SGLang или vLLM RadixAttention и ускорение структурированного вывода в SGLang, кэш префиксов в vLLM; выбирать тестом
Видеокарты не NVIDIA (AMD, Ascend, Moore Threads) Проверить vLLM, SGLang и llama.cpp на конкретной модели Поддержка заявлена у всех трёх, но набор функций зависит от платформы
Уже работает TGI План миграции на vLLM или SGLang TGI в режиме поддержки, репозиторий в архиве

Типичный путь компании — начать с Ollama или llama.cpp на этапе пилота, а при выходе в работу перейти на vLLM или SGLang. Если вы сравниваете не движки, а сам вариант размещения, смотрите разбор облачной и локальной LLM по совокупной стоимости.

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

Цифры из статей и чужих бенчмарков получены на других моделях, видеокартах и запросах. Решение лучше подтвердить коротким тестом:

  1. Зафиксируйте модель и формат весов. Один и тот же вариант модели и квантизации для всех кандидатов, иначе сравниваются разные вещи.
  2. Соберите профиль нагрузки. Типичная длина запроса и ответа, число одновременных пользователей в пике, доля запросов с общим длинным промптом.
  3. Запустите 2 кандидата на одном сервере. Например, Ollama и vLLM или vLLM и SGLang.
  4. Измерьте три показателя. Время до первого токена, скорость генерации на одного пользователя и общую пропускную способность при пиковой параллельности.
  5. Проверьте эксплуатацию. Метрики, логи, перезапуск, обновление версии, работу с очередью при перегрузке.
  6. Проверьте качество ответов. На наборе своих запросов убедитесь, что ответы двух серверов совпадают по качеству: разные настройки и квантизация могут влиять на результат.

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

Чем vLLM отличается от Ollama?

vLLM — сервер для многопользовательской нагрузки на видеокартах: непрерывный батчинг, PagedAttention и параллелизм на несколько GPU. Ollama — инструмент для быстрого запуска моделей одной командой, где по умолчанию одна модель обрабатывает один запрос за раз. Ollama удобнее для пилота, vLLM — для рабочего сервиса.

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

Да, для этого лучше всего подходит llama.cpp: он оптимизирован под процессоры x86 и ARM и Apple Silicon и поддерживает квантизацию до 1,5–8 бит. Скорость на процессоре заметно ниже, поэтому такой вариант подходит для небольших моделей, малого числа пользователей или офлайн-контуров, где важнее изоляция, чем скорость.

Придётся ли переписывать приложение при смене сервера?

Обычно нет. vLLM, SGLang, llama.cpp и Ollama предоставляют API, совместимый с OpenAI, поэтому приложение переключается сменой адреса сервера и названия модели. Проверить стоит отличия в поддержке отдельных параметров, вызова инструментов и структурированного вывода, которые различаются между серверами и версиями.

Какой сервер выбрать для ИИ-агентов?

Для агентов важны повторное использование длинного общего промпта и быстрая генерация JSON для вызова инструментов. Эти сценарии прямо оптимизирует SGLang (RadixAttention и ускорение структурированного вывода), а vLLM поддерживает кэширование префиксов. Выбор между ними лучше делать нагрузочным тестом на своих агентных сценариях.

Первоисточники и метод

Метод: мы сравнили проекты по одинаковому набору критериев только по первоисточникам и не проводили собственных нагрузочных тестов. Цифры производительности принадлежат авторам статей и получены в их условиях.

Как AIrassvet помогает развернуть LLM на сервере компании

Выбор сервера инференса — одно из решений при запуске своей модели, наряду с выбором модели, железа и контроля качества. На сайте AIrassvet указаны направления, которые закрывают эту задачу:

  • внедрение и развёртывание LLM, в том числе на серверах заказчика: подбор модели и сервера инференса под нагрузку и имеющееся железо;
  • интеграция модели с корпоративными системами и ИИ-агентами через совместимый API;
  • тестирование и запуск: нагрузочный тест кандидатов, проверка качества ответов и сопровождение после запуска.

Первый шаг — выбрать один процесс, для которого нужна своя модель, и зафиксировать текущий результат, источники данных, ограничения и критерий приёмки.

Обсудить задачу

Итог: выбор сервера определяет число пользователей и железо

Если коротко: Ollama — для старта и небольшой команды, llama.cpp — для процессоров, Mac и офлайн-контуров, vLLM — для многопользовательского сервиса на GPU, SGLang — для агентных сценариев и структурированного вывода с той же серверной нагрузкой. TGI для новых проектов уже не подходит.

Все четыре проекта бесплатны и совместимы с API OpenAI, поэтому начать можно с простого варианта и перейти на серверный, когда нагрузка вырастет. Финальное решение принимайте по короткому тесту на своей модели, железе и профиле запросов.

← Все статьи

Комментарии (0)

Пока нет комментариев. Будьте первым!

Оставить комментарий
Регистрация не требуется