Kv-Cache
vLLM на 2×RTX 3090: от 18 до 100 tok/s — MTP, TP, KV-cache, OMP_NUM_THREADS
Часть 3 серии «Наш опыт»: 4 итерации тюнинга vLLM — MTP-декодирование, KV-cache на 256K, OMP_NUM_THREADS=1, mamba-cache-mode. Полный финальный конфиг и бенчмарк до/после.
Мы написали балансировщик для 4 реплик vLLM: почему NGINX не работает для LLM
Часть 4 серии «Наш опыт»: почему round-robin убивает throughput LLM-инференса и как собственный Python-балансировщик (soft sticky + least-loaded + health без user traffic) держит сессии на тёплой KV-cache. Четыре production-инцидента, которые сформировали алгоритм.
Особенности LLM-трафика: почему round-robin не работает
Четыре свойства LLM-трафика — неоднородность 100×, стоимость ∝ токенам, KV-кэш как состояние на ноде, bursty 3–10 запросов на человека — и почему они ломают round-robin. Сигналы балансировки: load, sticky, prefix, health.
Подбор модели под железо: VRAM-бюджет
Как посчитать, влезет ли модель: 6-шаговый алгоритм, формулы для весов и KV-cache, форматы под GPU-архитектуру (Ampere → AWQ, Hopper → FP8, CPU → GGUF) и лестница снижений при OOM.
Continuous Batching
Continuous batching в vLLM: как scheduler добавляет запросы на каждой итерации decode, параметры max_num_seqs и max_num_batched_tokens, prefill/decode-баланс и компромисс с 256K контекстом.
PagedAttention
PagedAttention — алгоритм управления KV-cache в vLLM: разбивка на блоки, устранение фрагментации памяти, prefix caching. Настройка и практические эффекты.