Инференс и оптимизация 17 просмотров

Continuous Batching

Continuous Batching / In-flight Batching

Continuous Batching — техника динамического формирования батчей при инференсе LLM, при которой новые запросы добавляются в обработку сразу после завершения любого текущего запроса, повышая throughput в 2-5×.

Что такое Continuous Batching

В отличие от статического батчинга (все запросы начинают и заканчивают вместе), continuous batching позволяет:

  • Добавлять новые запросы в текущий батч немедленно
  • Удалять завершённые запросы, не ожидая остальных
  • Максимально утилизировать GPU

Проблема статического батчинга

Запрос 1: [■■■■■■■■■■] 10 токенов
Запрос 2: [■■■■■■■■■■■■■■■■■■■■] 20 токенов
Запрос 3: [■■■] 3 токена

Статический: GPU занят 20 шагов, запросы 1 и 3 "ждут" →
утилизация GPU ≈ 55%

Continuous: запрос 3 освобождает слот после 3 шагов →
новый запрос 4 начинается немедленно → утилизация ≈ 95%

Реализации

  • vLLM — continuous batching + PagedAttention
  • TGI (Text Generation Inference) — continuous batching
  • TensorRT-LLM — in-flight batching
  • Triton Inference Server — dynamic batching

Ключевые параметры

  • max_batch_size — максимальное количество запросов одновременно
  • max_waiting_tokens — сколько токенов ждать перед добавлением новых запросов
  • GPU memory utilization — % VRAM для KV-cache (больше = больше параллельных запросов)

Continuous batching — одна из причин, почему production-serving (vLLM) в разы быстрее наивного model.generate().

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

Используется в
Необходим для

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу