Un entorno de investigación unificado para comparar métodos de compresión, recuperación, combinación y cuantización de KV cache en inferencia de LLM con contextos largos.
NVIDIA/kvpress
Biblioteca de Python de NVIDIA para comprimir las cachés KV de los LLM durante la inferencia, con métodos de compresión modulares basados en Hugging Face transformers.
- Estrellas
- 1,245
- Forks
- 196
- Issues abiertos
- 12
- Último commit
- anteayer
¿Qué es?
Las implementaciones de LLM con contextos largos son costosas porque la caché de clave-valor (KV) crece de forma lineal con el número de tokens. kvpress aborda este problema con diversos métodos de compresión de caché KV, llamados presses, y los evalúa sobre Hugging Face transformers. Cada press elimina o transforma entradas en caché durante la fase de prefill y expone un compression_ratio que determina qué proporción de la caché se conserva.
La biblioteca registra un pipeline personalizado de generación de texto llamado kv-press-text-generation, que gestiona las plantillas de chat y la tokenización. La compresión se puede aplicar solo al contexto, de modo que el mismo contexto comprimido se pueda consultar con distintas preguntas. Un wrapper experimental, DecodingPress, comprime periódicamente la caché durante la generación de tokens y utiliza un tamaño objetivo en lugar de una proporción. También admite cachés cuantizadas mediante QuantizedCache de transformers.
El repositorio incluye una amplia variedad de presses, desde métodos de referencia sencillos, como random y key-norm scoring, hasta métodos como SnapKV, StreamingLLM, KVzip y CriticalKV, además de presses wrapper como AdaKVPress, que permite comprimir por cabeza. También incluye una CLI de evaluación para benchmarks de contexto largo y notebooks para medir las mejoras de memoria y velocidad.
Funciones clave
- 01Varios métodos de compresión de caché KV (presses) con una interfaz compression_ratio común
- 02Pipeline personalizado de transformers que comprime solo el contexto y gestiona las plantillas de chat
- 03Compresión experimental durante la decodificación con un tamaño objetivo para la caché
- 04Presses wrapper que combinan o refinan otros métodos de puntuación, como AdaKV, que comprime por cabeza
- 05Evaluación desde la línea de comandos con benchmarks de contexto largo y notebooks para medir la memoria y la velocidad
Casos de uso
- Responder varias preguntas sobre un mismo documento extenso sin volver a codificar el contexto cada vez
- Investigar o crear prototipos de nuevos algoritmos de compresión de caché KV y compararlos con métodos de referencia habituales
- Reducir el uso de memoria de la GPU al ejecutar inferencias con contextos largos en Llama, Qwen, Mistral y modelos similares
Inicio rápido
- 1
Instalar desde PyPI
pip install kvpress - 2
Cargar el pipeline y comprimir un contexto con un press
Antes de usarlo
- Requiere Hugging Face transformers y un modelo que se pueda cargar mediante esta biblioteca; los modelos grandes suelen necesitar una GPU.
- La mayoría de los press son métodos de investigación y algunos, como BlockPress, no son implementaciones reales de chunked-prefill.
Temas
Preguntas frecuentes
- ¿Qué es kvpress?
- Biblioteca de Python de NVIDIA para comprimir las cachés KV de los LLM durante la inferencia, con métodos de compresión modulares basados en Hugging Face transformers. Las implementaciones de LLM con contextos largos son costosas porque la caché de clave-valor (KV) crece de forma lineal con el número de tokens. kvpress aborda este problema con diversos métodos de compresión de caché KV, llamados presses, y los evalúa sobre Hugging Face transformers. Cada press elimina o transforma entradas en caché durante la fase de prefill y expone un compression_ratio que determina qué proporción de la caché se conserva.
- ¿kvpress es gratuito? ¿Qué licencia tiene?
- kvpress es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿kvpress sigue mantenido?
- Mantenimiento activo. El último commit de kvpress fue el 6 nov 2026.
- ¿Para qué puedo usar kvpress?
- Responder varias preguntas sobre un mismo documento extenso sin volver a codificar el contexto cada vez Investigar o crear prototipos de nuevos algoritmos de compresión de caché KV y compararlos con métodos de referencia habituales Reducir el uso de memoria de la GPU al ejecutar inferencias con contextos largos en Llama, Qwen, Mistral y modelos similares
- ¿Cómo se instala kvpress?
- Instalar desde PyPI: pip install kvpress Cargar el pipeline y comprimir un contexto con un press
- ¿Dónde consigo kvpress?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/NVIDIA/kvpress
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Biblioteca instalable con pip que acelera el prellenado de LLM con contextos largos mediante atención dispersa dinámica, con una pérdida mínima de precisión.
Código de investigación de StreamingLLM, un método que permite a los LLM preentrenados procesar flujos de texto prácticamente ilimitados conservando tokens sumidero de atención y una ventana de tokens recientes.
Un gestor de memoria para la KV-cache en sistemas de serving de LLM que asigna memoria GPU bajo demanda mediante las API de memoria virtual de CUDA, sin PagedAttention.
Una capa de gestión de KV cache que almacena, comparte y reutiliza cachés de atención de LLM entre motores de serving para reducir el tiempo hasta el primer token.
Modelos basados en Transformer preentrenados por Amazon para pronosticar series temporales sin entrenamiento previo, incluida la familia Chronos-2.