KVBoost ускоряет вывод LLM в 4,5 раза: новый метод кэширования ключей и значений
Трансформерные языковые модели сталкиваются с высокой задержкой prefill-этапа: для каждого запроса приходится заново вычислять тензоры ключей и значений (KV). Это замедляет работу чат-ботов и других сервисов. Существующие системы префиксного кэширования ускоряют процесс, но требуют, чтобы запросы начинались с одинаковой непрерывной последовательности токенов.
Новая разработка под названием KVBoost, представленная в статье на arXiv, снимает это ограничение. Система позволяет переиспользовать кэш на уровне отдельных блоков контента, независимо от того, где встречается общая информация. Такой подход работает с моделями декодерного типа, совместимыми с HuggingFace, и не требует изменения архитектуры.
Ключевая особенность KVBoost — двойное хеширование. Оно разделяет позиционную идентичность (префиксный хеш) и содержательную идентичность (контентный хеш), благодаря чему поддерживаются как точные, так и приближенные совпадения кэша. Это даёт гибкость при поиске повторно используемых фрагментов.
Из-за независимого кэширования блоков могут возникать ошибки на границах внимания. Для их устранения авторы предлагают две стратегии: SelectiveRecompute перекодирует небольшие граничные области, а CacheBlendRecompute сначала выполняет пробный проход, выявляет токены с высоким отклонением и пересчитывает их.
Дополнительно KVBoost использует асимметричное квантование KV (int8/int4), адаптивное разбиение границ блоков и вытеснение записей с учётом важности при фиксированном бюджете памяти. Это делает систему практичной для развертывания на существующем оборудовании.
Эксперименты проводились на модели Qwen2.5-3B с 1000 примерами поиска ошибок (bug-localization). Результаты показывают сокращение времени до первого токена в 4,49 раза: 142,4 мс против 639,1 мс у исходной модели. По сравнению с традиционным префиксным кэшированием KVBoost быстрее на 16%, при этом точность остаётся практически неизменной: 99,2% против 99,1%.
Авторы отмечают, что KVBoost совместим с моделями на основе RoPE-позиционных кодировок и не требует дообучения. Это универсальный слой ускорения, который можно добавить к уже существующим инференс-системам.


