ВСЕ СТАТЬИ

← Вернуться к статьям

NVIDIA KVzap: жмем KV-кэш в 4 раза.

18 января в 08:29•favicon@ai_machinelearning_big_data•технологии

NVIDIA KVzap: жмем KV-кэш в 4 раза. Все любят длинный контекст, но для GPU это больно - KV-кэш растет линейно и быстро сжирает VRAM. Например, для Llama-65B на 128k токенов кэш весит 335 ГБ. Существующие методы прунинга либо медленные, либо тупые и режут важное, либо требуют переобучения модели. NVIDIA предложили метод KVzap, который решает, какие токены можно забыть, глядя только на текущие хидден-стэйты. Логика метода разбита на 2 этапа: Поиск идеала (KVzip+). Берется медленный, но точный метод KVzip: модели скармливают текст, заставляют его повторить, и смотрят, на какие прошлые токены она реально обращает внимание. Это золотой стандарт важности токена. Но в проде так делать нельзя, это двойная работа. Аппроксимация (KVzap). Тут и происходит вся суть: крошечная модель-суррогат смотрит на входящий хидден-стэйт токена и предсказывает, насколько этот токен будет важен в будущем, то есть пытается угадать скор KVzip. Модели 2-х видов: KVzap-Linear: простейшая линейная проекция (одна матрица). Она берет хиден-стэйт и тупо проецирует его в скалярный скор важности. Сложность: экстремально низкая (~0.02%). KVzap-MLP: двухслойный перцептрон. Внутри есть скрытый слой размером 1/8 от размерности модели и нелинейная активация. Сложность: низкая, но выше линейной (~1.1%). Все вместе это работает так Токен залетает в слой трансформера, модель-суррогат быстро считает его скор важности. Если он ниже порога - токен в кэш не пишется или удаляется. Но при этом всегда оставляется скользящее окно из последних 128 токенов, чтобы не терять локальный контекст, иначе модель сыпется. Результаты тестов. Проверяли на Qwen3-8B, Llama-3.1-8B и Qwen3-32B. Спойлер: работает везде. Удалось выкинуть до 75% KV-кэша, а это сжатие в 4 раза. На бенчмарках RULER (длинный контекст), LongBench и AIME25 падение метрик или нулевое, или меньше 1%. Оверхед от суррогатной модели мизерный - менее 1% FLOPs. Звучит, конечно, как гем, но давайте про минусы: Нужно дообучить этот маленький MLP для каждого слоя целевой модели. Датасет нужен, но процесс быстрый. Удаление токенов создает рваный кэш. У разных голов будет разное количество сохраненных токенов. Это плохо, потому что стандартные ядра Paged Attention любят структуру. Чтобы реально получить ускорение, а не только экономию памяти, нужно писать кастомные CUDA-ядра, которые смогут эффективно жевать блоки переменной длины. Порог отсечения фиксированный. Если промахнуться с ним, то модель начнет галлюцинировать или забудет начало. По итогу, KVzap - крутой шаг к тому, чтобы гонять длинные контексты на GPU попроще. Метод умнее, чем Streaming LLM, и быстрее, чем полные методы разреженного внимания. Ждем интеграции в vLLM или TRT-LLM, а пока, чтобы скрасить ожидание, NVIDIA собрала на HF интерактивный лидерборд популярных методик компрессии KV-кэша. Код и веса моделей-суррогатов из тестов пейпера в открытом доступе, так что нет никаких ограничений, чтобы не покрутить KVzap на каком-нибудь тестовом сетапе. @ai_machinelearning_big_data #AI #ML #LLM #KVZAP #NVIDIA

Теги:
NVIDIA
KVzap
KVzip

Еще статьи из категории

Еще статьи