
Коротко
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). Если чисел не хватает под вашу нагрузку, есть три рычага:
- Уменьшить
--max-model-len. Если задачам хватает 16–32 тысяч токенов, не держите максимум модели. - Квантовать кэш:
--kv-cache-dtype fp8примерно вдвое уменьшает его и даёт место под больше токенов. - Квантовать веса или добавить видеокарту.
Сколько памяти займут веса и кэш у конкретной модели, можно прикинуть в калькуляторе видеопамяти. Формулы разобраны в статье «Сколько видеопамяти нужно для 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.
Источники
- Репозиторий vLLM: https://github.com/vllm-project/vllm
- Быстрый старт: https://docs.vllm.ai/en/latest/getting_started/quickstart.html
- Установка на NVIDIA и требования: https://docs.vllm.ai/en/latest/getting_started/installation/gpu.html
- Параллелизм и масштабирование: https://docs.vllm.ai/en/latest/serving/parallelism_scaling.html
- Поддержка квантования: https://docs.vllm.ai/en/latest/features/quantization/
- Квантованный KV-кэш: https://docs.vllm.ai/en/latest/features/quantization/quantized_kvcache.html
- Карточка Qwen3.6-27B-FP8: https://huggingface.co/Qwen/Qwen3.6-27B-FP8
Внедряет ИИ и LLM в процессы компаний, разрабатывает платформы и чат-ботов. LinkedIn
Сколько видеопамяти нужно вашей модели
Объём служебных буферов зависит от движка и настроек, поэтому не планируйте загрузку видеокарты под 100%. Не помещается — квантуйте веса и кэш, сократите контекст или выгрузите часть слоёв в оперативную память ценой скорости. Формулы и примеры — в статье «Сколько видеопамяти нужно для LLM», отдельная страница калькулятора — здесь.
Внедрение ИИ и разработка чат-ботов для бизнеса
Внедряем LLM в процессы компании: AI-агенты, Telegram-боты, автоматизация на n8n, облачные и локальные модели на своей инфраструктуре.
от 60 000 ₽ · от 2 недель
Подробнее об услуге и стоимостиПохожая задача в вашем бизнесе?
Расскажите коротко — предложим путь от аудита до запуска. Можно без формальностей.


