vLLM: быстрый инференс LLM на VPS
vLLM выжимает из GPU максимум за счёт PagedAttention и непрерывного батчинга — и сразу отдаёт OpenAI-совместимый API. Показываем, как поднять его на сервере и не упереться в память.
Содержание
Что такое vLLM и когда он нужен
['vLLM — движок инференса, который в разы обгоняет наивныйtransformers.generate на нагрузке с многими параллельными запросами. Секрет — PagedAttention (память под KV-кэш выделяется страницами, как в ОС) и continuous batching (запросы доклеиваются в батч на лету).', '- Высокий throughput — десятки одновременных чатов на одной карте.
- OpenAI API из коробки —
/v1/chat/completionsбез обвязки. - Квантование — AWQ, GPTQ, FP8 для экономии VRAM.
generate обрабатывает запросы почти по одному и простаивает, пока модель ждёт следующий токен. vLLM же держит GPU занятым постоянно: как только в каком-то запросе освободился слот, движок подклеивает новый, а PagedAttention не даёт памяти под кэш фрагментироваться. На практике это разница между 3–5 и несколькими десятками одновременных диалогов на той же карте.']
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для vLLMПодготовка окружения
['Нужны свежие драйверы NVIDIA и Python 3.10+. Сначала убедимся, что карта видна системе и хватает версии CUDA-драйвера — vLLM собран под современный тулкит, и слишком старый драйвер даст ошибку инициализации.', 'nvidia-smi', 'Ставим vLLM в изолированное окружение, чтобы не конфликтовать с системным Python и другими проектами.', 'python3 -m venv ~/vllm && source ~/vllm/bin/activate\npip install --upgrade pip\npip install vllm', 'Если планируешь тянуть гейтед-модели (например, официальную Llama), заранее пропиши токен HuggingFace — иначе загрузка весов упрётся в 403.', 'export HF_TOKEN=hf_...\nhuggingface-cli whoami']
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Запуск OpenAI-совместимого сервера
['Одна команда поднимает HTTP-сервер с моделью. Возьмём небольшую инструктивную модель.', 'python -m vllm.entrypoints.openai.api_server \\\n --model meta-llama/Meta-Llama-3-8B-Instruct \\\n --host 0.0.0.0 --port 8000 \\\n --max-model-len 8192', 'Проверяем, что API отвечает.', 'curl http://localhost:8000/v1/chat/completions \\\n -H "Content-Type: application/json" \\\n -d \'{"model":"meta-llama/Meta-Llama-3-8B-Instruct","messages":[{"role":"user","content":"Привет"}]}\'', 'Первый запрос будет заметно медленнее остальных: движок прогревает CUDA-графы и раскладывает веса по памяти. Дальше ответы идут быстро. Список поднятых моделей всегда можно проверить обращением к /v1/models — тот же контракт, что и у OpenAI, поэтому фронтенды и SDK подхватывают сервер без доработок.']
Тюним под память GPU
['Главные рычаги — доля памяти под кэш и длина контекста. Если ловишь OOM, снижай их.', 'python -m vllm.entrypoints.openai.api_server \\\n --model Qwen/Qwen2.5-7B-Instruct-AWQ \\\n --quantization awq \\\n --gpu-memory-utilization 0.90 \\\n --max-model-len 4096', '- --gpu-memory-utilization — сколько VRAM отдать под модель и кэш (0.85–0.95).
- --max-model-len — режь контекст, если модель не влезает.
- --quantization awq/gptq — почти вдвое меньше памяти при малой потере качества.
- --tensor-parallel-size N — размазать модель на N карт.
Запускаем как сервис
['Чтобы vLLM пережил перезагрузку, оформим его в systemd.', '[Unit]\nDescription=vLLM API\nAfter=network.target\n\n[Service]\nUser=ubuntu\nExecStart=/home/ubuntu/vllm/bin/python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2.5-7B-Instruct --host 0.0.0.0 --port 8000\nRestart=always\n\n[Install]\nWantedBy=multi-user.target', 'sudo systemctl daemon-reload\nsudo systemctl enable --now vllm']
Частые ошибки
['- CUDA out of memory — снизь max-model-len и gpu-memory-utilization, включи квантование.
- Gated repo на HuggingFace — прими лицензию и задай
HF_TOKEN. - Медленный первый запрос — это прогрев и загрузка весов, дальше быстро.
- Порт наружу без защиты — прикрой Nginx + ключ, иначе твой GPU будут греть чужие.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для vLLMНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Нужен ли обязательно GPU?
Для продакшн-скорости — да. CPU-режим есть, но подходит скорее для тестов и маленьких квантованных моделей.
Чем vLLM лучше обычного transformers?
Continuous batching и PagedAttention дают кратно больший throughput при многих параллельных запросах и экономят память под KV-кэш.
Как подключить vLLM к своему приложению?
Он отдаёт OpenAI-совместимый API, так что достаточно указать в SDK base_url своего сервера и любой api_key.