Инференс

Батчинг

Батчинг — объединение нескольких запросов в один пакет для одновременной параллельной обработки на GPU. Повышает утилизацию ускорителя и пропускную способность системы, так как GPU спроектированы для массивного параллелизма, а не последовательной обработки одиночных запросов.

Батчинг (от англ. batching — пакетная обработка) в инференсе языковых моделей — техника одновременного выполнения нескольких запросов в рамках одного прохода через нейронную сеть. GPU-ускорители содержат тысячи параллельных вычислительных ядер, и обработка единственного запроса задействует лишь малую их долю; батчинг позволяет загрузить аппаратуру близко к теоретическому пределу производительности.

Статический батчинг формирует фиксированный пакет запросов одинаковой длины и запускает единый прямой проход. Более эффективная техника — непрерывный батчинг (continuous / iteration-level batching), реализованная в библиотеках vLLM, TensorRT-LLM и SGLang: сервер добавляет новые запросы в батч после каждого шага авторегрессивной генерации, не дожидаясь завершения самых длинных последовательностей. PagedAttention (vLLM, 2023) дополняет подход, управляя KV-кешем через страничную адресацию памяти — по аналогии с виртуальной памятью в ОС — и позволяя эффективно размещать запросы разной длины в одном батче без потерь памяти на фрагментацию.

Грамотный батчинг способен повысить пропускную способность GPU в 10–50 раз по сравнению с поштучной обработкой запросов. Это напрямую снижает стоимость инференса: требуется меньше GPU-часов на единицу сгенерированного контента. Обратная сторона — рост латентности для отдельного запроса внутри большого батча, поэтому системы сервинга регулируют размер батча в зависимости от требований к SLA и текущей нагрузки.

Continuous batching стал стандартом де-факто для production-сервинга LLM к 2025 году. Фреймворки vLLM, SGLang, TensorRT-LLM поддерживают его из коробки. Активно развиваются техники disaggregated prefill — разделения фазы обработки промпта и фазы генерации по разным GPU-узлам — для снижения TTFT при высокой нагрузке без ущерба для пропускной способности.

Пример

Сервис автоматической генерации описаний товаров получает тысячи параллельных запросов в пиковые часы; continuous batching позволяет обслуживать их на кластере из 4 GPU вместо 20, которые потребовались бы при поштучной обработке.

Связанные термины

← Глоссарий