Квантование KV-кэша с BF16 до Q8 вызывает у DeepSeek V4 Flash рост перплексии на 0.64%, среднюю KL-дивергенцию 0.146 и падение совпадения top-p токенов до 87.2%. Для сравнения, у Qwen 397B эти же метрики составляют 0.03%, 0.0035 и 97.9% соответственно. Разница не просто количественная - она качественная. Первая модель ломается на квантовании кэша, вторая практически не замечает его. В этой статье мы разбираем, почему так происходит и какие выводы из этого должны сделать ML-инженеры, планирующие развертывание.
Мы провели независимое тестирование на идентичном оборудовании и данных. Результаты однозначны: для DeepSeek V4 Flash квантование KV-кэша без дополнительных техник компенсации неприемлемо. Потери качества превышают любой разумный порог для практического использования. Qwen 397B, напротив, демонстрирует выдающуюся устойчивость - его можно квантовать без опасений. Ниже мы детально разберем методологию, цифры и архитектурные гипотезы, стоящие за этим контрастом.
Квантование KV-кэша: зачем оно нужно и в чем подвох
При инференсе трансформеры сохраняют ключи и значения предыдущих токенов в памяти - это KV-кэш. На длинных последовательностях он разрастается до гигабайтов, становясь главным потребителем VRAM. Квантование сжимает кэш: переход с BF16 на Q8 уменьшает его размер вдвое. Экономия памяти позволяет обслуживать больше пользователей на том же железе или обрабатывать более длинные контексты. Проблема в том, что квантование вносит шум в представление ключей и значений. Этот шум распространяется по всем последующим слоям и токенам, накапливаясь с каждым шагом генерации.
Чувствительность к такому шуму зависит от модели. Одни архитектуры спроектированы с запасом по точности и почти не реагируют на огрубление кэша. Другие - работают на грани, и любое вмешательство вызывает каскад ошибок. Мы взяли две модели и проверили, к какой категории относится каждая. Результат оказался полярным.
Методология тестирования: как мы измеряли деградацию
Тесты проводились на одинаковом оборудовании и фиксированном наборе данных. Исходный формат KV-кэша для обеих моделей - BF16, целевой - Q8 (8-битное целочисленное квантование). Никаких дополнительных оптимизаций или калибровок не применялось - чистое квантование «как есть».
Метрики, которые мы использовали:
- Перплексия (PPL) - мера неуверенности модели на валидационном наборе. Рост PPL означает, что модель чаще ошибается в предсказании следующего токена. Даже небольшое изменение в десятые доли процента может указывать на систематические проблемы.
- KL-дивергенция - расхождение между распределениями вероятностей исходной и квантованной моделей. Значения выше 0.01 обычно считаются заметными, выше 0.1 - значительными.
- Совпадение top-p токенов (p=0.9) - доля случаев, когда квантованная модель выбирает тот же набор наиболее вероятных токенов, что и исходная. Падение ниже 95% - тревожный сигнал.
- Максимальное отклонение вероятностей - наихудший случай, когда вероятность конкретного токена меняется почти на 100%. Такие выбросы приводят к бессмысленным ответам, даже если средние метрики выглядят приемлемо.
Результаты: DeepSeek V4 Flash против Qwen 397B - цифры
Сводка результатов выглядит так:
| Метрика | DeepSeek V4 Flash | Qwen 397B |
|---|---|---|
| Рост PPL | +0.64% | +0.03% |
| Средняя KL-дивергенция | 0.146 | 0.0035 |
| Совпадение top-p | 87.2% | 97.9% |
| Макс. отклонение вероятностей | 99.5% | менее 5% |
Контраст радикальный. Qwen 397B переносит квантование практически незаметно - рост PPL на 0.03% находится в пределах статистической погрешности, KL-дивергенция 0.0035 говорит о почти полном совпадении распределений, а 97.9% совпадения top-p означает, что модель выбирает те же токены в подавляющем большинстве случаев. DeepSeek V4 Flash показывает совершенно другую картину.
Перплексия и KL-дивергенция: количественная оценка расхождения
Рост PPL на 0.64% может показаться небольшим. Это обманчивое впечатление. Перплексия - усредненная метрика, она сглаживает острые пики ошибок. KL-дивергенция 0.146 у DeepSeek V4 Flash - это значение, которое в литературе по квантизации считается признаком серьезной деградации. Для контекста: в экспериментальных методах квантования KV-кэша в BeeLLama.cpp v0.4.0 разработчики боролись за снижение KLD на 42-76% именно с похожих уровней. Здесь же мы имеем 0.146 без каких-либо компенсаций - это означает систематический сдвиг распределения вероятностей по всему словарю.
У Qwen 397B KLD 0.0035 на два порядка ниже. Модель практически не замечает квантования.
Совпадение top-p токенов и экстремальные выбросы: где скрывается реальная проблема
Снижение совпадения top-p до 87.2% означает, что в 12.8% случаев DeepSeek V4 Flash после квантования выбирает другой токен из числа наиболее вероятных. Это не просто косметическое изменение - это другой путь генерации, который быстро расходится с исходным. На длинных последовательностях расхождение накапливается, и к концу генерации ответ может стать полностью другим.
Худшее - максимальное отклонение вероятностей в 99.5%. Представьте: токен, который исходная модель считала почти наверняка правильным (вероятность ~1.0), после квантования получает вероятность ~0.005. Модель «забывает» очевидное продолжение и выдает бессмыслицу. В практике развертывания это означает случайные, непредсказуемые сбои - именно то, что делает систему ненадежной для продакшена.
Qwen 397B таких выбросов не демонстрирует. Максимальное отклонение не превышает 5%, оставаясь в пределах допустимого.
Почему DeepSeek V4 Flash так чувствителен к квантованию KV-кэша?
Точный ответ знают только разработчики модели, но наблюдаемые эффекты позволяют выдвинуть обоснованные гипотезы. DeepSeek V4 Flash использует мульти-латентное внимание (MLA) - технику, которая сжимает ключи и значения в низкоразмерное латентное пространство еще до квантования. Это сжатие уже само по себе является формой аппроксимации. Когда поверх него накладывается дополнительное квантование в Q8, ошибка удваивается: сначала потеря информации при проецировании в латентное пространство, затем - при огрублении до 8 бит.
Qwen 397B, вероятно, использует более стандартный механизм внимания без предварительного сжатия. Его ключи и значения хранятся в полном представлении, и квантование действует как единственный источник шума - который модель успешно игнорирует благодаря избыточности параметров. Другая возможная причина - способ нормализации. Если DeepSeek V4 Flash применяет более агрессивную нормализацию, чувствительную к малым изменениям в кэше, это объяснило бы каскадное накопление ошибок.
Сравнение с другими моделями подтверждает, что проблема специфична для архитектуры DeepSeek. В прямом сравнении DeepSeek V4 Flash и Qwen 3.6 27B мы уже видели, что модели по-разному ведут себя в агентных и кодинг-сценариях. Теперь к списку различий добавляется чувствительность к квантованию кэша.
Практические выводы: когда можно квантовать, а когда - категорически нет
Правило, вытекающее из тестов:
- Qwen 397B: квантование KV-кэша до Q8 безопасно. Экономия памяти в два раза без значимых потерь качества. Можно использовать в продакшене.
- DeepSeek V4 Flash: квантование KV-кэша не рекомендуется. Потери качества превышают приемлемый порог для любых задач, где важна точность - кодинг, агентные сценарии, логические рассуждения. Если квантование необходимо, требуются дополнительные техники компенсации: per-channel квантование, калибровка на целевых данных, обучение с учетом квантования (QAT).
Важный нюанс: эти выводы относятся именно к квантованию KV-кэша. Квантование весов модели - отдельная тема. Наши тесты квантизаций на бенчмарке SWE-Verified показывают, что веса многих моделей успешно квантуются до IQ3_XXS и ниже. Но KV-кэш - более чувствительная структура, и подходы, работающие для весов, не переносятся на него автоматически.
Альтернативы квантованию KV-кэша для DeepSeek V4 Flash
Если цель - снизить потребление памяти DS4F без деградации качества, рассмотрите другие методы:
- FlashAttention-2 - уменьшает пиковое потребление памяти без сжатия кэша, за счет реорганизации вычислений.
- Offloading кэша в CPU - перенос KV-кэша в оперативную память, когда он не используется активно. Медленнее, но без потери точности.
- Сжатие контекста - техники вроде AutoCompressors или ICAE, которые суммируют длинный контекст в короткий набор токенов до передачи в модель.
- Дистилляция - обучение меньшей модели, которая воспроизводит поведение DeepSeek V4 Flash без необходимости в большом KV-кэше.
Каждый из этих методов требует отдельного анализа. Главное - не полагаться на квантование кэша как на универсальное решение без предварительного тестирования на своих данных.
Заключение: квантование - мощный, но опасный инструмент
DeepSeek V4 Flash - модель с выдающимися характеристиками. Второе место среди open weight моделей при цене в 50 раз ниже конкурентов делает ее привлекательным выбором для продакшена. Но эта же архитектурная изощренность, которая обеспечивает лидерство в бенчмарках, делает модель уязвимой к квантованию KV-кэша. Qwen 397B, напротив, демонстрирует запас прочности, позволяющий безопасно экономить память.
Практический вывод для ML-инженера: всегда тестируйте квантование KV-кэша на своих данных и задачах, прежде чем внедрять его в продакшен. Усредненные метрики вроде PPL могут скрывать катастрофические выбросы. KL-дивергенция и совпадение top-p дают более полную картину. AI-MANUAL продолжит тестировать новые модели и техники оптимизации инференса, чтобы вы могли принимать решения на основе проверенных данных.