Abstract
vLLM — движок для инференса LLM на GPU. Быстрее Ollama в 3–5 раз за счёт PagedAttention и continuous batching. Даёт OpenAI-совместимый API — работает с любым клиентом, который умеет
openai-compatible.
Почему не Ollama
Ollama удобна для начала, но:
- Медленнее — нет continuous batching
- Жрёт больше VRAM на те же модели
- Нет prefix caching — каждый запрос прогоняет system prompt заново
vLLM решает все три проблемы. Ollama оставляем только для эмбеддингов (nomic-embed-text).
Запуск в Docker
Модель лежит в /models/<model> внутри контейнера (bind-mount с хоста). Важно: model ID = путь к модели, а не HuggingFace репо.
services:
vllm:
image: vllm/vllm-openai:<version>
ports:
- "localhost:<port>"
volumes:
- /path/to/model:/models/<model>
command:
- --model=/models/<model>
- --quantization=fp8
- --gpu-memory-utilization=0.96
- --max-model-len=8128
- --enforce-eager
- --enable-auto-tool-choice
- --tool-call-parser=gemma4
- --reasoning-parser=gemma4
--enforce-eagerобязателен на малом VRAMБез него CUDA graphs съедят лишнюю память.
--gpu-memory-utilization=0.96отдаёт почти всё VRAM под KV cache.
Сеть в Docker
Если vLLM и клиент в разных Docker сетях — контейнер не достучится. Решение:
docker network connect app_default vllm-serverПосле этого в клиенте используем http://vllm-server:<port>/v1 вместо http://host.docker.internal:<port>/v1.
Команду надо повторять после пересоздания контейнера
Docker не сохраняет ad-hoc подключения к сетям. При
docker-compose up --force-recreatevLLM снова потеряет доступ.
Tool calling
vLLM 0.24+ поддерживает нативные парсеры для разных моделей. Для Gemma 4:
--enable-auto-tool-choice --tool-call-parser=gemma4
Не используйте
hermesпарсер для не-Hermes моделейОн ломает tool calls. Без
--tool-call-parservLLM отдаёт 400 на любой запрос сtool_choice.
Проверка
curl -s http://localhost:<port>/v1/models
curl -s http://localhost:<port>/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"/models/<model>","messages":[{"role":"user","content":"Привет"}],"max_tokens":50}'Связанные статьи
- — мультиагентный фреймворк, работает поверх vLLM
- — ИИ-диджей на vLLM + Piper TTS
- — мультиагентный бот на vLLM + CrewAI
- — контейнеры, сети, bind-mounts
Связанные