KV cache restoration становится узким местом в LLM serving. CacheFlow предлагает 3D параллелизм, чтобы снизить latency и TTFT.
Проблема проявляется в момент, когда система начинает работать с длинным контекстом. KV cache (промежуточные состояния attention) растёт линейно с длиной последовательности, но его восстановление становится нелинейно дорогим. При recomputation стоимость увеличивается квадратично из-за attention, а при I/O restoration система упирается в bandwidth. В реальных сценариях — multi-turn chat, RAG, агентные пайплайны — это приводит к задержкам в секунды при целевом уровне около 200 ms для Time-To-First-Token (TTFT).
Традиционные подходы сводят задачу к выбору: пересчитать (recompute) или загрузить (I/O). Это упрощение ломается под нагрузкой. Во-первых, стоимость восстановления неоднородна: поздние токены дороже из-за квадратичного attention. Во-вторых, продакшен-системы работают батчами и на нескольких GPU, где возникает конкуренция за ресурсы (compute и bandwidth). Пер-request оптимизация не учитывает эти эффекты и приводит к страгглерам и деградации хвостовой latency.
CacheFlow переопределяет KV cache restoration как задачу многомерного планирования. Архитектура строится вокруг 3D параллелизма: по токенам, слоям и GPU. На уровне токенов используется two-pointer стратегия: ранние токены пересчитываются, поздние подгружаются через I/O, и процессы сходятся в середине. Это снижает избыточный recomputation там, где он дороже всего. На уровне слоёв применяется аналогичная схема, но вдоль глубины модели: нижние слои пересчитываются, верхние подгружаются. Выбор между этими режимами зависит от длины последовательности и определяется через порог, полученный профилированием.
Третье измерение — multi-GPU параллелизм. Вместо последовательного восстановления по pipeline, CacheFlow использует граничные активации (boundary activations), чтобы разорвать зависимость между устройствами. Каждый GPU восстанавливает свой shard KV cache независимо. Теоретически это даёт линейное ускорение по числу GPU, так как compute и I/O делятся между устройствами. На практике ускорение ограничено балансировкой, но остаётся близким к линейному.
Ключевой элемент системы — batch-aware two-pointer scheduler. Он распределяет compute и I/O между запросами, учитывая их “ценность”. Запросы с длинным контекстом получают приоритет по I/O, так как это сильнее снижает будущую стоимость recomputation. Это важно в батчах, где конкуренция за bandwidth может резко увеличить latency отдельных запросов. Такой подход уменьшает straggler effect и стабилизирует tail latency.
Результаты показывают, что CacheFlow снижает TTFT на 10%–62% по сравнению с существующими подходами (vLLM, SGLang, LMCache, Cake). Эффект усиливается на длинных контекстах и в хвостах распределения (P90–P99). При этом система достигает высокой утилизации ресурсов: около 88% GPU compute и 78% I/O, что указывает на эффективное перекрытие операций. Отдельно видно, что при увеличении длины входа разрыв с recomputation-only подходами растёт из-за квадратичной стоимости attention.
Для индустрии это выглядит как прагматичный сдвиг от локальной оптимизации к системному планированию. KV cache restoration больше нельзя рассматривать как бинарный выбор между compute и I/O. Это задача координации ресурсов в многомерном пространстве: токены, слои, устройства и батчи. Подобные подходы уже обсуждаются в контексте highload inference, где критичны не только средние значения, но и tail latency. CacheFlow показывает, что даже без изменения модели можно существенно снизить latency за счёт более точного планирования и эксплуатации структурного параллелизма.
Новостной источник
arXiv — крупнейший открытый репозиторий препринтов (с 1991, под эгидой Cornell), где учёные оперативно выкладывают рабочие версии статей; материалы общедоступны, но не проходят полноценную рецензии, так что результаты следует считать предварительными и по возможности проверять в обновлённых версиях или в рецензируемых журналах. arxiv.org