vLLM — это фреймворк для высокоэффективного запуска больших языковых моделей (LLM), разработанный с нуля для максимальной скорости, параллельности и поддержки большого количества запросов одновременно.
Если вы используете LLaMA, Mistral, Falcon или другие большие модели в проде или прототипе — vLLM это то, что стоит попробовать.
Что делает vLLM особенным
vLLM оптимизирован для инференса LLM. В отличие от стандартного подхода через Hugging Face pipeline()
, он:
- поддерживает OpenAI-совместимый API
- эффективно управляет памятью (через PagedAttention)
- обрабатывает десятки и сотни запросов одновременно
- совместим с популярными моделями
Как установить и запустить vLLM
Установка через pip:
pip install vllm
Запуск API-сервера (с OpenAI-совместимым интерфейсом):
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mistral-7B-Instruct-v0.1
После запуска сервер принимает запросы как обычный OpenAI API:
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer any" \
-d '{"prompt": "Привет, мир!", "max_tokens": 50}'
Поддерживаемые модели
vLLM работает с:
- LLaMA, Mistral, Falcon, Baichuan, OpenLLaMA и др.
- HuggingFace модели (
AutoModelForCausalLM
) - 16-битные модели (
fp16
,bf16
), включая LoRA-адаптированные
Не поддерживаются модели в формате GGUF или GPTQ.
Что такое PagedAttention
Обычный способ запуска LLM требует многократного копирования и пересчёта памяти при генерации. Это замедляет работу при множественных запросах.
vLLM реализует PagedAttention — алгоритм, который хранит ключи и значения от всех пользователей в единой структуре и обновляет их по страницам.
Это даёт:
- Высокую параллельность (много пользователей одновременно)
- Низкое потребление памяти
- Высокую скорость генерации
Запуск с авторизацией и на сервере
Можно указать API-ключ:
--api-key "your-secret-key"
Можно развернуть на GPU-сервере или облаке (например, RunPod, Lambda, или bare-metal).
Пример запуска с Docker:
FROM nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu20.04
RUN apt update && apt install -y python3-pip git
RUN pip install vllm torch --extra-index-url https://download.pytorch.org/whl/cu121
CMD ["python3", "-m", "vllm.entrypoints.openai.api_server", \
"--model", "mistralai/Mistral-7B-Instruct-v0.1", \
"--host", "0.0.0.0", \
"--port", "8000"]
Когда использовать vLLM
vLLM идеально подойдёт, если:
- Нужно много одновременных запросов к LLM
- Используется OpenAI API-совместимость
- Требуется низкая задержка и высокая пропускная способность
Если вы используете LLM как внутренний ассистент, чат-бот, генератор в проде — vLLM даст максимум производительности без лишних усилий.
Следующий шаг: интеграция с API и стриминг ответов. Также можно подключать LoRA-адаптеры и кастомные модели.