Единая исследовательская среда для сравнения сжатия, извлечения, объединения и квантования KV-кэша при инференсе LLM с длинным контекстом.
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
Установить из PyPI
pip install kvpress - 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 обновляется ежедневно.
Похожие проекты
Устанавливаемая через pip библиотека ускоряет prefill длинноконтекстных LLM с помощью динамического разреженного attention и почти без потери точности.
Исследовательский код StreamingLLM — метода, который позволяет предобученным LLM обрабатывать практически неограниченные текстовые потоки, сохраняя в кэше attention sink-токены и окно недавних токенов.
Менеджер памяти KV-кэша для обслуживания LLM: выделяет память GPU по мере необходимости через API виртуальной памяти CUDA, без PagedAttention.
Слой управления KV-кэшем, который хранит, передаёт и повторно использует кэши внимания LLM между serving-движками, сокращая время до первого токена.
Предобученные модели на основе Transformer от Amazon для прогнозирования временных рядов в zero-shot-режиме, включая семейство Chronos-2.