Continuous batching fairness
Без честного распределения одни клиенты получали бы ответ за секунды, другие — через минуту, независимо от их запроса. Представьте очередь в кафе: бариста не готовит один огромный торт, игнорируя заказавших чашку чая. Он продвигает всё понемногу. Так же и батчинг: модель обрабатывает не целые запросы, а маленькие кусочки — токены.
Механизм прост. Каждому запросу назначается приоритет, зависящий от уже выполненной работы и «бюджета». Длинный запрос требует тысячи токенов, короткий — десять. Планировщик чередует: несколько операций для длинного, мгновенный ответ для короткого, и так по кругу. В итоге короткий завершается почти сразу, а длинный продвигается стабильно небольшими порциями.
Пример: корпоративный чат-бот. Утром сто запросов: девяносто девять про курс валют и один про анализ годового отчёта на сто страниц. Справедливость не даст гиганту съесть всю память GPU. Он получит ресурс пропорционально, а остальные пользователи — быстрые ответы за пару секунд.
Вывод: continuous batching fairness — это уважение к числу пользователей. Без него один тяжёлый запрос парализует сервис. С ним задержки предсказуемы, система не простаивает и не перегружается. Это незаметная, но критичная деталь архитектуры любого современного LLM-сервиса.
Поделиться