vLLM: как развернуть LLM-сервер для компании — руководство 2026
Все статьи
AI / LLM 7 мин чтения

vLLM: как развернуть LLM-сервер для компании — руководство 2026

Установка vLLM, запуск модели с API как у OpenAI, несколько видеокарт, память и квантование, Docker, сравнение с Ollama и llama.cpp.

Установка vLLM, запуск модели с API как у OpenAI, несколько видеокарт, память и квантование, Docker, сравнение с Ollama и llama.cpp.

Коротко

vLLM — открытый сервер для запуска языковых моделей под нагрузкой: когда к модели одновременно обращаются много пользователей или сервисов. Лицензия Apache 2.0. Он отдаёт API, совместимый с OpenAI, поэтому приложения подключаются к нему заменой адреса. Главные отличия от Ollama и llama.cpp — эффективное управление памятью под контекст (PagedAttention) и непрерывная обработка потока запросов, за счёт чего при параллельной нагрузке он выдаёт больше ответов на той же видеокарте.

Запуск в двух командах на Linux с видеокартой NVIDIA:

uv pip install vllm --torch-backend=auto
vllm serve Qwen/Qwen3.6-27B-FP8 --tensor-parallel-size 2 --max-model-len 32768

API появится на http://localhost:8000/v1. Ниже — требования, установка, настройки памяти, несколько видеокарт, Docker и когда vLLM вам не нужен.

Когда нужен vLLM, а когда хватит Ollama

vLLM Ollama llama.cpp
Для чего Сервер для команды и сервисов, много параллельных запросов Один-два пользователя, быстрый старт Полный контроль, слабое или смешанное железо
Модели Форматы Hugging Face (safetensors), квантования AWQ, GPTQ, FP8 и др. Библиотека Ollama и GGUF GGUF
Система Linux (Windows — через WSL) Windows, macOS, Linux Windows, macOS, Linux
Без видеокарты Есть сборки для CPU, но это не основной сценарий Да Да
Порт по умолчанию 8000 11434 9931

Если моделью пользуетесь вы сами — берите Ollama, LM Studio или llama.cpp. vLLM нужен, когда модель становится общим сервисом: чат-бот для сотрудников, разбор документов в потоке, API для нескольких внутренних систем.

Требования

  • Система: Linux. Windows официально не поддерживается — используйте WSL или сторонние сборки сообщества.
  • Python: 3.11–3.14.
  • Видеокарта NVIDIA: архитектура Turing и новее (compute capability 7.5+): RTX 20xx, 30xx, 40xx, 50xx, T4, A100, L4, H100 и т. д.
  • Другое железо: AMD (ROCm), Intel GPU, Google TPU, Ascend NPU; на Mac с Apple Silicon — отдельный проект vLLM-Metal, который работает на MLX и использует модели в формате MLX.

Установка

Разработчики рекомендуют менеджер окружений uv:

uv venv --python 3.12 --seed
source .venv/bin/activate
uv pip install vllm --torch-backend=auto
vllm download-kernels
  • --torch-backend=auto сам подбирает сборку PyTorch под версию драйвера CUDA.
  • vllm download-kernels заранее скачивает готовые ядра. Без этого vLLM компилирует их при первом запуске, и на новых видеокартах это может занять несколько минут.

Для видеокарт AMD установка идёт из отдельного индекса: uv pip install vllm --extra-index-url https://wheels.vllm.ai/rocm/.

Первый запуск

vllm serve Qwen/Qwen3.6-27B-FP8 --max-model-len 32768

vLLM скачает модель с Hugging Face и поднимет сервер на http://localhost:8000. Проверка:

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"Qwen/Qwen3.6-27B-FP8","messages":[{"role":"user","content":"Привет! Ответь одним предложением."}]}'

Один сервер обслуживает одну модель. Для закрытых моделей на Hugging Face (например, оригинальные веса Llama) нужно принять лицензию на странице модели и передать токен через переменную HF_TOKEN.

По умолчанию vLLM применяет параметры генерации, рекомендованные авторами модели (файл generation_config.json). Отключить это можно флагом --generation-config vllm.

Основные параметры

Параметр Что делает По умолчанию
--host, --port Адрес и порт порт 8000
--api-key Ключ для доступа к API (можно несколько — удобно для смены ключей) нет
--max-model-len Максимальная длина контекста из конфигурации модели
--gpu-memory-utilization Какую долю памяти видеокарты занять 0,92
--tensor-parallel-size На сколько видеокарт делить модель 1
--kv-cache-dtype Формат KV-кэша, например fp8 как у модели
--max-num-seqs Сколько запросов обрабатывать одновременно подбирается автоматически

Для доступа из сети обязательно задайте --api-key и закройте порт от интернета прокси с авторизацией.

Как vLLM распоряжается памятью

vLLM сразу занимает долю видеопамяти, заданную --gpu-memory-utilization (по умолчанию 92%). Из неё вычитаются веса модели, а всё остальное отдаётся под KV-кэш — память под контекст всех одновременных запросов. При запуске в логе видны две строки:

GPU KV cache size: 643,232 tokens
Maximum concurrency for 40,960 tokens per request: 15.70x

Первая — сколько токенов контекста помещается в кэш на всех запросов вместе. Вторая — сколько запросов максимальной длины сервер сможет обрабатывать одновременно (пример из документации vLLM). Если чисел не хватает под вашу нагрузку, есть три рычага:

  1. Уменьшить --max-model-len. Если задачам хватает 16–32 тысяч токенов, не держите максимум модели.
  2. Квантовать кэш: --kv-cache-dtype fp8 примерно вдвое уменьшает его и даёт место под больше токенов.
  3. Квантовать веса или добавить видеокарту.

Сколько памяти займут веса и кэш у конкретной модели, можно прикинуть в калькуляторе видеопамяти. Формулы разобраны в статье «Сколько видеопамяти нужно для LLM».

Квантование

vLLM запускает уже квантованные модели с Hugging Face. Поддержка зависит от поколения видеокарты:

Формат Turing (RTX 20xx) Ampere (RTX 30xx, A100) Ada (RTX 40xx, L4) Hopper (H100)
AWQ да да да да
GPTQ да да да да
FP8 (W8A8) нет нет да да
GGUF да да да да

Многие авторы выкладывают официальные квантованные версии. Например, у Qwen3.6-27B есть Qwen/Qwen3.6-27B-FP8 — около 31 ГБ весов вместо примерно 54 ГБ в BF16. На одну карту с 24 ГБ она не помещается, на две — с запасом под контекст.

Несколько видеокарт

Если модель не помещается на одну карту, её делят между несколькими в пределах сервера — тензорный параллелизм:

vllm serve Qwen/Qwen3.6-27B-FP8 --tensor-parallel-size 2 --max-model-len 32768

Рекомендации из документации vLLM:

  • Помещается на одну карту — распределённый запуск не нужен.
  • Не помещается на одну, но помещается на сервер — --tensor-parallel-size по числу карт.
  • Не помещается на один сервер — тензорный параллелизм внутри сервера плюс --pipeline-parallel-size по числу серверов.
  • Нет NVLink между картами или число карт не делит модель ровно — лучше конвейерный параллелизм: --tensor-parallel-size 1 --pipeline-parallel-size <число карт>.

У потребительских карт вроде RTX 4090 NVLink нет, поэтому сравните оба режима на своей нагрузке. Пример сервера на двух RTX 4090 — в статье «Llama 3.3 70B на двух RTX 4090».

Запуск в Docker

Официальный образ — vllm/vllm-openai на Docker Hub:

docker run --runtime nvidia --gpus all \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --env "HF_TOKEN=$HF_TOKEN" \
  -p 8000:8000 \
  --ipc=host \
  vllm/vllm-openai:latest \
  --model Qwen/Qwen3.6-27B-FP8 --tensor-parallel-size 2 --max-model-len 32768
  • Папка ~/.cache/huggingface монтируется, чтобы модель не скачивалась заново при каждом запуске контейнера.
  • --ipc=host (или --shm-size) нужен, чтобы процессам хватило общей памяти при работе на нескольких картах.
  • На хосте должны стоять драйвер NVIDIA и NVIDIA Container Toolkit.
  • Для AMD есть образ vllm/vllm-openai-rocm, для Intel — vllm/vllm-openai-xpu.

Что ещё умеет vLLM

  • Вызов инструментов (tool calling) — для ИИ-агентов. Включается флагами --enable-auto-tool-choice и --tool-call-parser под конкретную модель; для Qwen3.6 авторы указывают --tool-call-parser qwen3_coder.
  • Рассуждающие модели — флаг --reasoning-parser отделяет размышления модели от ответа (для Qwen3.6 — qwen3).
  • Спекулятивное декодирование — ускоряет генерацию за счёт черновой модели или встроенных механизмов модели.
  • Кэширование общего начала запросов (prefix caching) — ускоряет ответы, когда у запросов одинаковый системный промпт или документ.

Готовые проверенные команды для популярных моделей vLLM собирает на сайте recipes.vllm.ai.

vLLM в компании

Типичная схема: vLLM на сервере с видеокартами, перед ним — прокси с авторизацией и ограничением частоты запросов, метрики в Prometheus и Grafana. Внутренние сервисы ходят в него как в OpenAI API, а данные не покидают периметр. По такой схеме мы развернули приватную LLM для финтех-компании. Если нужно так же у вас — посмотрите, как мы разворачиваем локальные LLM; все материалы по теме — на странице «Локальные LLM».

Вопросы и ответы

Что такое vLLM простыми словами? Открытый сервер для запуска языковых моделей под нагрузкой. Он эффективно распределяет видеопамять между запросами и отдаёт API, совместимый с OpenAI, поэтому подходит для чат-ботов и сервисов, которыми пользуются много людей одновременно.

Чем vLLM отличается от Ollama? Ollama рассчитана на одного-двух пользователей и простой старт на любом компьютере. vLLM рассчитан на сервер с видеокартами и много параллельных запросов, работает на Linux и использует модели в формате Hugging Face, а не библиотеку Ollama.

Работает ли vLLM на Windows? Официально нет. На Windows его запускают через WSL с дистрибутивом Linux или используют сборки сообщества.

Какие видеокарты подходят для vLLM? NVIDIA с compute capability 7.5 и выше — от RTX 20xx и T4 до H100 и B200. Также поддерживаются AMD через ROCm, Intel GPU, Google TPU, а на Mac с Apple Silicon — отдельный проект vLLM-Metal.

Как запустить vLLM на нескольких видеокартах? Флагом --tensor-parallel-size с числом карт, например vllm serve <модель> --tensor-parallel-size 2. Если между картами нет NVLink или модель не делится ровно, попробуйте конвейерный параллелизм через --pipeline-parallel-size.

Источники

АП
Автор
Антон Правкин, основатель ITOQ

Внедряет ИИ и LLM в процессы компаний, разрабатывает платформы и чат-ботов. LinkedIn

Калькулятор

Сколько видеопамяти нужно вашей модели

Веса
≈ 33–42 ГБ
KV-кэш (320 КБ на токен)
≈ 2,5 ГБ
Итого без буферов движка
≈ 35–45 ГБ
Сколько останется на буферы движка:
8 ГБ12 ГБ16 ГБ24 ГБ32 ГБ48 ГБ · +3,180 ГБ · +3596 ГБ · +51

Объём служебных буферов зависит от движка и настроек, поэтому не планируйте загрузку видеокарты под 100%. Не помещается — квантуйте веса и кэш, сократите контекст или выгрузите часть слоёв в оперативную память ценой скорости. Формулы и примеры — в статье «Сколько видеопамяти нужно для LLM», отдельная страница калькулятора — здесь.

ТемаВсе материалы про локальные LLM
Делаем это для бизнеса

Внедрение ИИ и разработка чат-ботов для бизнеса

Внедряем LLM в процессы компании: AI-агенты, Telegram-боты, автоматизация на n8n, облачные и локальные модели на своей инфраструктуре.

от 60 000 ₽ · от 2 недель

Подробнее об услуге и стоимости
CTA

Похожая задача в вашем бизнесе?

Расскажите коротко — предложим путь от аудита до запуска. Можно без формальностей.

Читать дальше