DeepSeek-V4.1 Flash: как сжать KV-кэш вчетверо ради длинного контекста
Автор блога zartbot разбирает технический отчёт DeepSeek-V4.1-Flash и сразу признаётся в лёгком замешательстве: поначалу он принял релиз за рядовую доработку, но скорость под 420 токенов в секунду и слухи о снятии с эксплуатации всей линейки V4 Pro заставили присмотреться внимательнее. После прочтения полного отчёта он полушутя заключает, что по глубине переработки архитектуры модель заслуживала бы имени DeepSeek-V5 Flash.
Зачем всё это
Главная мотивация названа прямо в заголовке отчёта — довести сжатие KV-кэша до предела. Причина в том, что «долгоживущие» агентные сценарии раздувают контекст до огромных размеров, а частые вызовы инструментов создают тяжёлую нагрузку на стадию prefill. Кэш ключей и значений при этом заполняет и HBM, и внешние SSD, а его перекачка упирается в пропускную способность интерконнектов. Именно хранение и перемещение данных, а не сами вычисления, автор считает узким местом при обслуживании длинных последовательностей.
Что за модель
DeepSeek-V4.1-Flash — мультимодальная модель типа mixture-of-experts на 552 миллиарда параметров, с нативной поддержкой изображений и контекстом до миллиона токенов. При этом на каждый токен активируется лишь около 8 млрд параметров на стадии prefill и 16 млрд при декодировании — экономия особенно ощутима в агентных задачах, где вход преобладает над выходом.
В основе лежит архитектура Causal Encoder-Decoder: сеть из 40 слоёв делится на «энкодер» и «декодер» по 20 слоёв, а глобальный кэш декодера получается проекцией финальных состояний энкодера. Благодаря этому большинство позиций длинного запроса проходят только через первые 20 слоёв, что примерно вдвое сокращает вычисления prefill. Идея восходит к архитектуре YoCo («кэшируй лишь однажды»).
Три измерения сжатия
Собственно экономию кэша даёт механизм CSA2, ужимающий данные сразу по трём осям. По каналам общий латентный вектор на 512 измерений заменяет отдельные ключи и значения каждой головы внимания. По длине последовательности энкодер склеивает две соседние позиции в одну запись. По слоям несколько слоёв делят единый глобальный KV — на всю сеть остаётся лишь три копии кэша энкодера и одна декодера. Добавив квантование в формате FP4, разработчики довели прирост хранилища примерно до 890 байт на токен.
В сумме, по данным отчёта, при равной длине последовательности рабочий KV-кэш занимает около четверти, а постоянно хранимый — около восьмой части от прежнего DeepSeek-V4-Flash, причём общее качество модели, как утверждается, даже выше. Значительная часть разбора посвящена математическому обоснованию того, почему можно «заморозить» ключи и значения и переиспользовать их между слоями, переписывая лишь запрос Q, — автор трактует такую конструкцию как рекурсивный трансформер и проводит развёрнутую аналогию с иерархией кэшей процессора.
Источник: Hacker News
Комментарии
Войдите, чтобы комментировать.