batching
Одновременная обработка нескольких запросов одним прогоном модели.
Что такое batching в инференсе
Батчинг — фундаментальная техника ускорения нейросетевых вычислений: вместо обработки каждого запроса по отдельности несколько запросов объединяются в один прогон через модель. Матричные умножения на GPU выполняются эффективнее при большем размере входа за счёт параллелизма CUDA-ядер.
На практике: модель 7B при batch_size=1 даёт 80 токенов/с, при batch_size=8 — суммарно 400–500 токенов/с, при batch_size=32 — 1000+ токенов/с при почти той же латентности на запрос.
Статический vs continuous батчинг
Статический батчинг (классический): сервер ждёт накопления N запросов или таймаута, затем обрабатывает их как единый батч. Проблема — запросы с разными длинами ответов: короткие ждут, пока длинные завершатся.
Continuous batching — современный стандарт: новые запросы добавляются в батч на каждом шаге декодирования. Все production-фреймворки (vLLM, TGI, SGLang) используют именно его.
Влияние размера батча
- Слишком маленький батч — GPU недозагружен, VRAM используется неэффективно
- Слишком большой батч — растёт латентность первого токена (TTFT)
- Оптимум зависит от модели, GPU и требований к SLA
Связанные термины
- continuous batching — динамический батчинг без ожидания завершения
- TTFT — латентность, на которую влияет размер батча
- tokens per second — метрика, оптимизируемая батчингом
- serving — общий контекст эксплуатации модели
Готовы запустить GPU-задачу?
Запустить GPU-сервер