Delta-KV: сжатие KV-кеша до 4 бит в llama.cpp | Обзор 2026 | AiManual
AiManual Logo Ai / Manual.
24 Мар 2026 Инструмент

Delta-KV для llama.cpp: как сжать KV-кеш до 4 бит почти без потерь на Llama 70B

Техника дельта-квантования сжимает KV-кеш в 8 раз, позволяя запускать Llama 70B на слабом железе без потери качества. Интеграция в llama.cpp.

Кэш, который съедает всю память

Запускаешь Llama 70B, смотришь на потребление памяти, и кажется, что модель тайно майнит крипту. Основной пожиратель – не веса модели (их уже давно квантуют до 4 бит), а KV-кеш. Для каждого токена в контексте нужно хранить ключи и значения. На длинных диалогах это выливается в гигабайты. Прямо как в статье Конец эпохи квадратичной сложности, только здесь проблема не в вычислениях, а в чистой памяти.

Delta-KV – это не новый формат квантования весов. Это метод сжатия самого KV-кеша во время инференса, основанный на старой доброй идее из видеокодеков: хранить не полные значения, а разницы (дельты) между последовательными токенами.

Как работает магия дельт? Секрет прост

Вместо того чтобы хранить ключи и значения для всех 32 тысяч токенов в fp16 (занимая 2 байта на параметр), Delta-KV кодирует их в 4 бита. Как? Алгоритм считает, что векторы ключей и значений между соседними токенами меняются не сильно. Поэтому можно сохранить одно полное значение (например, для каждого 16-го токена), а для остальных – только небольшую дельту, упакованную в 4 бита.

На практике это выглядит так: для Llama 3 70B (самой актуальной 70-миллиардной модели на март 2026) KV-кеш для контекста в 32K токенов сокращается с ~40 ГБ до ~5 ГБ. Почти в 8 раз. И самое главное – падение точности на стандартных бенчмарках (MMLU, Hellaswag) составляет менее 1%. Для большинства задач это неотличимо.

Что под капотом у реализации в llama.cpp?

Интеграция в основную ветку llama.cpp появилась в конце 2025 года. Сейчас (март 2026) это стабильная фича в последней версии. Работает с большинством архитектур: Llama 2, Llama 3, Qwen 3.5, и даже с экспериментальными 1-битными моделями, про которые мы писали в обзоре 1-битного квантования.

ПараметрБез Delta-KV (fp16)С Delta-KV (4-bit)Экономия
Память KV-кеша (32K контекст)~40 ГБ~5 ГБ87.5%
Скорость инференса (токен/с)Базовая-5-10%Незначительное падение
Точность (MMLU)75.2%74.8%-0.4%

Запускаем за минуту: флаг --kv-quant-delta

Всё сводится к одному дополнительному флагу в командной строке. Никаких пересборок, если у вас свежая версия llama.cpp (от января 2026 или новее).

./main -m models/llama-3-70b-instruct-q4_k_m.gguf \
  --prompt "Расскажи квантовую теорию поля для чайников" \
  --ctx-size 32768 \
  --kv-quant-delta 4

Флаг --kv-quant-delta 4 включает сжатие до 4 бит. Есть также режимы 6 и 8 бит для параноиков, которые боятся любых потерь. Но разница в качестве между 4 и 8 битами – доли процента.

💡
В отличие от квантования весов модели, где нужно выбирать между IQ, Q и прочими методами (как в статье IQ vs Q квантования), Delta-KV – единственный эффективный способ сжать именно кэш. Другие подходы, вроде частчного сброса кэша, просто убивают качество на длинных контекстах.

С чем сравнить? Альтернативы либо медленные, либо грубые

  • nano-KvLLM: Метод из статьи nano-KvLLM тоже сжимает кэш, но использует другую технику – кластеризацию. Даёт похожую экономию памяти, но на 10-15% медленнее из-за overhead на кластеризацию во время генерации.
  • Полное квантование KV-кеша в bf16/fp16: Это стандартная опция в llama.cpp (--kv-type bf16). Экономии памяти почти нет, но это критично для точности некоторых моделей, как писали про Qwen 3.5. Delta-KV не заменяет этот режим, а дополняет: можно использовать bf16 кэш, но сжать его дельта-квантованием.
  • Аппаратный апгрейд: Купить ещё оперативки или видеопамяти. Самый простой способ, но не для всех бюджетный. Delta-KV позволяет вписаться в те самые 64 ГБ ОЗУ и 16 ГБ видеопамяти для Llama 70B с длинным контекстом.

Кому обязательно попробовать? Трем типам пользователей

  1. Владельцы слабого железа, которые мучаются с сборкой llama.cpp не для всех. Если у вас 32-64 ГБ ОЗУ и вы хотите длинные контексты на 70B моделях – это ваш выбор.
  2. Разработчики coding agents, которые сталкиваются с проблемой, описанной в статье про 'глупеющих' агентов. Деградация качества на длинных контекстах минимальна, поэтому код останется вменяемым.
  3. Энтузиасты CPU-only инференса, которые следуют руководству по CPU-only оптимизации. Сжатие кэша радикально снижает давление на оперативную память и своп.

Предупреждение: Delta-KV добавляет небольшую вычислительную нагрузку на кодирование/декодирование дельт. На очень старых CPU (до 2020 года) падение скорости может быть заметным – до 15%. На современных процессорах (Intel 13-го поколения, AMD Ryzen 7000 и новее) overhead менее 5%.

Что в итоге? Прорыв, который уже здесь

Delta-KV – не теоретическая статья, а готовая фича в llama.cpp. Она решает конкретную боль: позволяет засунуть Llama 70B с контекстом в 32K токена в 64 ГБ ОЗУ, оставив место для системы и других программ. Качество почти не страдает. Скорость почти не падает.

Это шаг к тому, чтобы большие модели стали по-настоящему доступными на потребительском железе. Следующий рубеж – 200B модели на домашних ПК. Но это уже история на 2027 год.

P.S. Если после включения Delta-KV модель начала выдавать странные ответы на очень длинных контекстах (более 100K токенов), проверьте, не упираетесь ли вы в лимиты оптимальной сборки для слабого железа. Иногда проблема не в кэше, а в том, что процессор просто не успевает.

Подписаться на канал