vLLM & TGI

Тема дорожной карты · Большие языковые модели (LLM)

vLLM и Hugging Face TGI — open-source инференс-серверы для хостинга LLM с продакшен-пропускной способностью. PagedAttention в vLLM управляет KV-кэшем как виртуальной памятью, что позволяет continuous batching: новые запросы встраиваются в декодинг на лету — обычно 2–4× к throughput против наивного батчинга. Оба отдают OpenAI-совместимый HTTP API, поддерживают tensor parallelism между GPU, квантизацию AWQ/GPTQ/FP8, спекулятивное декодирование и prefix caching. vLLM — за throughput и темп фич; TGI — за тесную интеграцию с Hugging Face Hub и более консервативные релизы.

Как это работает

vLLM & TGI: quantization (FP16 → INT8/INT4 через AWQ/GPTQ — 4× экономия памяти, минимальная потеря качества), KV-cache management (PagedAttention в vLLM), speculative decoding (маленькая модель предлагает, большая верифицирует — 2-3x throughput), continuous batching, FlashAttention, distillation модели (маленькая модель обучена из выводов большой). Кешируйте промпты. Стримите output. Для self-hosted vLLM + AWQ Q4 умещает Llama 70B на 2x A100 80GB при production-качестве.

Когда применять

Quantize везде, где можно — 4-bit AWQ/GPTQ обычно теряет < 2% качества, но в 4 раза сокращает VRAM. Speculative decoding — когда нагрузка compute-bound (больше токенов/сек на ту же GPU). Кешируйте промпты на application + provider слоях. Профайл (встроенные метрики vLLM, nvidia-smi, nvprof) до оптимизации — bottleneck не там, где думаете.

Типичные ошибки

Ловушки vLLM & TGI: агрессивный quantization (Q2/Q3) убивает качество на subtle задачах; speculative decoding с mismatched draft/target моделями (медленнее, чем без speculation); KV-cache OOM на длинных контекстах (PagedAttention помогает, но не магия); over-тюнинг малого процента запросов ценой общего случая.

Связанные понятия

Полезные ресурсы