vLLM
vLLM
vLLM — высокопроизводительный serving-движок для LLM с PagedAttention, continuous batching и оптимизацией KV-cache. Обеспечивает throughput в 2-24× выше наивного инференса.
Что такое vLLM
vLLM — open-source движок для инференса и serving LLM, разработанный в UC Berkeley. Ключевая инновация — PagedAttention, управляющий KV-cache по аналогии с виртуальной памятью ОС.
Ключевые технологии
PagedAttention
Традиционно KV-cache выделяется непрерывным блоком максимальной длины для каждого запроса. При 2K контексте, но реальном использовании 500 токенов — 75% VRAM тратится впустую.
PagedAttention разбивает KV-cache на страницы (blocks), выделяя их по мере необходимости. Утилизация VRAM → 98%+.
Continuous Batching
Вместо ожидания завершения всех запросов в батче, новые запросы добавляются как только завершается любой текущий.
Prefix Caching
Общие системные промпты кэшируются и переиспользуются между запросами.
Запуск
# Запуск сервера (OpenAI-compatible API)
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-3-8B-Instruct \
--dtype bfloat16 \
--max-model-len 8192 \
--gpu-memory-utilization 0.9 \
--port 8000
# Multi-GPU (tensor parallelism)
python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-3-70B-Instruct \
--tensor-parallel-size 4 \
--dtype bfloat16
Сравнение с альтернативами
| Движок | Throughput | Совместимость | Quantization |
|---|---|---|---|
| vLLM | Высокий | OpenAI API | GPTQ, AWQ, FP8 |
| TGI | Средний | REST API | GPTQ, AWQ |
| TensorRT-LLM | Очень высокий | Custom | FP8, INT4 |
| llama.cpp | Низкий | CLI/API | GGUF |
vLLM — лучший выбор для production serving на GPU: высокий throughput, простой деплой, OpenAI-совместимый API.