Repolode
NVIDIA

NVIDIA/kvpress

Библиотека Python от NVIDIA для сжатия KV-кэша LLM во время инференса с множеством подключаемых методов на базе Hugging Face transformers.

Звёзды
1,245
Форки
194
Открытые issues
12
Последний коммит
вчера

Что это?

Развёртывание LLM с длинным контекстом обходится дорого, поскольку key-value (KV) cache линейно растёт с числом токенов. kvpress решает эту проблему: в библиотеке реализован ряд методов сжатия KV-кэша, называемых presses, и предусмотрено их тестирование на базе Hugging Face transformers. Каждый press удаляет или преобразует записи кэша на этапе prefilling и предоставляет параметр compression_ratio, задающий, какая часть кэша сохраняется.

Библиотека регистрирует собственный pipeline генерации текста под названием kv-press-text-generation, который обрабатывает шаблоны чатов и токенизацию. Сжатие можно применять только к контексту, чтобы затем задавать разные вопросы по одному и тому же сжатому контексту. Обёртка DecodingPress, помеченная как экспериментальная, периодически сжимает кэш во время генерации токенов, используя целевой размер вместо коэффициента сжатия. Также поддерживаются квантизованные кэши через QuantizedCache из transformers.

В репозитории представлен большой набор presses: от простых базовых методов, например случайного выбора и оценки по норме ключа, до SnapKV, StreamingLLM, KVzip и CriticalKV, а также обёртки вроде AdaKVPress для сжатия с учётом отдельных голов. Кроме того, в проект входят CLI для оценки на бенчмарках длинного контекста и ноутбуки для измерения экономии памяти и ускорения.

Ключевые возможности

  • 01Различные методы сжатия KV-кэша (presses) с единым интерфейсом compression_ratio
  • 02Собственный pipeline transformers, который сжимает только контекст и обрабатывает шаблоны чатов
  • 03Экспериментальное сжатие во время декодирования с заданием целевого размера кэша
  • 04Обёртки presses, которые объединяют или уточняют другие методы оценки, например AdaKV со сжатием по головам
  • 05CLI для оценки на бенчмарках длинного контекста и ноутбуки для измерения экономии памяти и ускорения

Сценарии использования

  • Ответы на множество вопросов по одному длинному документу без повторного кодирования контекста
  • Исследование и прототипирование новых алгоритмов сжатия KV-кэша с использованием распространённых базовых методов
  • Снижение потребления памяти GPU при инференсе с длинным контекстом на моделях Llama, Qwen, Mistral и подобных

Быстрый старт

  1. 1

    Установить из PyPI

    pip install kvpress
  2. 2

    Загрузить pipeline и сжать контекст с помощью press

Что важно знать

  • Требуются Hugging Face transformers и модель, которую можно загрузить через эту библиотеку; для больших моделей обычно нужен GPU.
  • Большинство press — исследовательские методы, и некоторые из них, например BlockPress, не являются полноценными реализациями chunked-prefill.

Темы

Частые вопросы

Что такое kvpress?
Библиотека Python от NVIDIA для сжатия KV-кэша LLM во время инференса с множеством подключаемых методов на базе Hugging Face transformers. Развёртывание LLM с длинным контекстом обходится дорого, поскольку key-value (KV) cache линейно растёт с числом токенов. kvpress решает эту проблему: в библиотеке реализован ряд методов сжатия KV-кэша, называемых presses, и предусмотрено их тестирование на базе Hugging Face transformers. Каждый press удаляет или преобразует записи кэша на этапе prefilling и предоставляет параметр compression_ratio, задающий, какая часть кэша сохраняется.
kvpress можно использовать бесплатно? Какая у него лицензия?
kvpress распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
kvpress всё ещё поддерживается?
Активно поддерживается. Последний коммит в kvpress — 6 нояб. 2026 г..
Для чего можно использовать kvpress?
Ответы на множество вопросов по одному длинному документу без повторного кодирования контекста Исследование и прототипирование новых алгоритмов сжатия KV-кэша с использованием распространённых базовых методов Снижение потребления памяти GPU при инференсе с длинным контекстом на моделях Llama, Qwen, Mistral и подобных
Как установить kvpress?
Установить из PyPI: pip install kvpress Загрузить pipeline и сжать контекст с помощью press
Где скачать kvpress?
Исходный код и инструкции по установке — на GitHub: https://github.com/NVIDIA/kvpress

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Исследовательский код StreamingLLM — метода, который позволяет предобученным LLM обрабатывать практически неограниченные текстовые потоки, сохраняя в кэше attention sink-токены и окно недавних токенов.

7,3 тыс.402PythonMITОбновлён 2 года назад