Предиктивная репликация KV-кэша для оптимизации всплесков LLM-запросов

Hacker News · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Исследователи из jwlaboratory представили алгоритм Biting the Bullet (BTB), который предсказывает массовые запросы с одинаковым префиксом и заранее копирует кэш на GPU через RDMA. Это снижает среднее время первого токена на 10–60% и уменьшает p95 задержку до 82% по сравнению со стандартными роутерами.

Ценность: Решение критической проблемы в инференсе LLM: при массовых запросах с общим системным промптом стандартные алгоритмы балансировки либо перегружают один узел, либо заставляют другие узлы заново вычислять кэш. BTB устраняет эту неэффективность, используя предиктивную репликацию данных между GPU.

В промышленном инференсе больших языковых моделей часто возникают ситуации, когда система получает резкий всплеск запросов с идентичным длинным префиксом. Такие паттерны характерны для задач разметки данных, массового извлечения информации или работы субагентов. Авторы исследования отмечают, что публичные трассы трафика, такие как Mooncake или ART-Chat, плохо отражают эту реальность, так как они чаще всего формируются на основе демо-трафика или внутренних чатов сотрудников. В результате существующие алгоритмы маршрутизации, такие как Least Load или Cache-Aware, работают неоптимально: первый вариант рассеивает запросы по «холодным» узлам, заставляя их заново вычислять кэш, а второй перегружает единственный узел с теплым кэшем, создавая огромные очереди.

Для решения этой проблемы команда разработала Biting the Bullet (BTB). Алгоритм работает на принципе предиктивной репликации: он отслеживает входящий поток запросов и, обнаружив повторяющийся префикс, инициирует копирование KV-кэша с одного GPU на другие через протокол RDMA. Это позволяет подготовить несколько «теплых» реплик до того, как основной объем запросов достигнет системы. В отличие от реактивных подходов, которые перемещают данные после возникновения дисбаланса нагрузки, BTB действует проактивно, используя свободное время между обнаружением паттерна и пиком нагрузки.

Эффективность метода зависит от соотношения стоимости вычисления префикса (prefill) и стоимости его передачи. Для модели Llama-3.3-70B кэш на один токен занимает около 320 КиБ, что делает вычисление длинных префиксов крайне ресурсоемким. BTB использует RDMA для прямого доступа к HBM других узлов, минуя CPU и операционную систему, что обеспечивает высокую скорость передачи данных. Если предсказание верно, система получает несколько узлов с готовым кэшем, что позволяет распределять нагрузку и избежать очередей.

Тестирование проводилось в симуляторе Infer-Sim на специально созданном датасете Bursted-ART. Этот набор данных был сгенерирован путем добавления синтетических всплесков трафика к оригинальным данным ART-Chat, имитирующих реальные enterprise-нагрузки. Результаты показали, что BTB сокращает среднее время до первого токена (TTFT) на 10–60% по сравнению с дефолтным роутером SGLang. В лучших случаях p95 задержка снижается на 80–82%. Важно отметить, что эти данные получены в симуляции, а не в живом продакшене, однако они демонстрируют значительный потенциал метода.

Авторы подчеркивают, что BTB является специализацией идеи дублирования работы для снижения хвостовых задержек, известной еще со времен работ Джеффа Дина и Луиша Баррозо. В отличие от других подходов, таких как PreServe или Cachewise, которые прогнозируют нагрузку на уровне кластера или предсказывают время повторного использования блоков, BTB фокусируется на мгновенной репликации при обнаружении конкретного всплеска. Алгоритм содержит четыре константы для настройки детекции: длину блока префикса, количество повторений, временное окно и количество реплик для прогрева.

В качестве будущих направлений развития исследователи рассматривают спекулятивный prefill, когда система начинает вычислять кэш до прихода запросов, используя свободные вычислительные ресурсы. Также планируется адаптация порогов детекции под текущую нагрузку и использование содержимого запроса (например, системных промптов) как подсказки для предсказания всплесков. Несмотря на то что метод пока не протестирован в реальных условиях с реальными очередями и планировщиками, он предлагает элегантное решение проблемы неэффективного использования кэша при массовых однотипных запросах.