К тренажеру
ВопросMediumllm-servingРеальный собес

Continuous batching в LLM inference

Что такое continuous batching и зачем он нужен в inference больших языковых моделей?

Короткий ответ

Continuous batching динамически добавляет и удаляет requests из batch на decode steps, повышая GPU utilization без ожидания завершения всего batch.

Полный разбор

В обычном batching сервер может ждать, пока наберется batch, и затем обрабатывать все запросы вместе. В autoregressive LLM decode запросы имеют разную длину, поэтому часть batch быстро заканчивается, а GPU начинает простаивать.

Continuous batching работает на уровне итераций decode: завершенные sequence удаляются, новые sequence добавляются, scheduler поддерживает плотный batch активных токенов. Это повышает throughput и utilization, но требует аккуратного KV cache management, fairness, admission control и trade-off с latency.

В ответе хорошо упомянуть, что prefill и decode имеют разные профили нагрузки, а batching policy может отличаться для них.

Теория

LLM inference ограничен не только FLOPs, но и memory/KV cache/scheduler. Continuous batching - ключевая техника production serving.

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

  • Описывать только static batching.
  • Не упоминать разные длины запросов.
  • Забыть про KV cache management.

Как отвечать на собеседовании

  • Скажи "decode step scheduler".
  • Отдельно назови throughput/latency trade-off.