Sobes.tech
Middle — Senior
25

Что такое continuous batching и как его реализуют в vLLM/TGI?

Компании, где спрашивали
VK CloudVK Cloud

Ответ от нейросети

sobes.tech AI

Continuous batching — это техника обработки запросов к модели машинного обучения, при которой входящие запросы на инференс собираются в батчи непрерывно и динамически, чтобы максимально эффективно использовать вычислительные ресурсы и снизить задержки. Вместо того чтобы ждать фиксированное время или фиксированное количество запросов, система постоянно формирует батчи из поступающих запросов и запускает их на обработку.

В vLLM и TGI (Text Generation Inference) continuous batching реализован через асинхронное ожидание и динамическое формирование батчей. Например, когда приходит запрос, он помещается в очередь, и движок пытается сформировать батч из нескольких запросов, не задерживая слишком долго первый запрос. Если новых запросов нет, батч запускается с тем, что есть. Это позволяет одновременно обрабатывать несколько запросов, эффективно используя GPU, при этом минимизируя задержки для каждого запроса.

Примерно это выглядит так:

  • Запросы поступают в очередь.
  • Система ждет либо достижения максимального размера батча, либо истечения таймаута.
  • Формируется батч и запускается на модель.
  • Результаты распределяются обратно по запросам.

Такой подход особенно полезен для трансформеров, где обработка батча значительно эффективнее по сравнению с одиночными запросами.