긴 컨텍스트 LLM 추론을 위한 KV cache 압축, 검색, 병합 및 양자화 기법을 비교하는 통합 연구 환경입니다.
NVIDIA/kvpress
NVIDIA가 개발한 Python 라이브러리로, Hugging Face transformers 기반의 다양한 플러그형 압축 방식으로 추론 중 LLM KV cache를 압축합니다.
- 스타
- 1,245
- 포크
- 194
- 열린 이슈
- 12
- 마지막 커밋
- 13시간 전
어떤 프로젝트인가요?
토큰 수에 따라 key-value(KV) cache가 선형적으로 커지기 때문에 긴 컨텍스트를 사용하는 LLM을 배포하면 비용이 많이 듭니다. kvpress는 Hugging Face transformers 위에서 다양한 KV cache 압축 방식을 구현하고 벤치마킹해 이 문제를 해결합니다. 각 압축 방식은 press라고 부르며, 프리필링 단계에서 캐시된 항목을 제거하거나 변환하고, 캐시를 얼마나 유지할지 설정하는 compression_ratio를 제공합니다.
이 라이브러리는 채팅 템플릿과 토큰화를 처리하는 kv-press-text-generation이라는 사용자 정의 텍스트 생성 파이프라인을 등록합니다. 컨텍스트에만 압축을 적용할 수 있어, 같은 압축 컨텍스트에 서로 다른 질문을 할 수 있습니다. 실험 기능으로 표시된 DecodingPress 래퍼는 비율 대신 목표 크기를 사용해 토큰 생성 중 주기적으로 캐시를 압축합니다. transformers의 QuantizedCache를 통한 양자화 캐시도 지원합니다.
저장소에는 random 및 key-norm scoring 같은 단순한 기준 방식부터 SnapKV, StreamingLLM, KVzip, CriticalKV 같은 방식까지 다양한 press가 포함되어 있으며, 헤드별 압축을 위한 AdaKVPress 같은 래퍼 press도 있습니다. 또한 긴 컨텍스트 벤치마크용 평가 CLI와 메모리 및 속도 향상을 측정하는 노트북도 제공합니다.
핵심 기능
- 01공통 compression_ratio 인터페이스를 사용하는 다양한 KV cache 압축 방식(press)
- 02컨텍스트만 압축하고 채팅 템플릿을 처리하는 사용자 정의 transformers 파이프라인
- 03목표 캐시 크기를 지정하는 실험적 디코딩 시점 압축
- 04헤드별 AdaKV처럼 다른 점수 산정 방식을 결합하거나 개선하는 래퍼 press
- 05긴 컨텍스트 벤치마크를 위한 CLI 평가와 메모리 및 속도 측정 노트북
활용 사례
- 긴 문서의 컨텍스트를 매번 다시 인코딩하지 않고 여러 질문에 답하기
- 일반적인 기준 방식과 비교해 새로운 KV cache 압축 알고리즘을 연구하거나 프로토타이핑하기
- Llama, Qwen, Mistral 등의 모델에서 긴 컨텍스트 추론에 필요한 GPU 메모리 줄이기
빠른 시작
- 1
PyPI에서 설치
pip install kvpress - 2
파이프라인을 불러오고 press로 컨텍스트 압축
사용 전 알아둘 점
- Hugging Face transformers와 이를 통해 로드할 수 있는 모델이 필요하며, 대규모 모델에는 보통 GPU가 필요합니다.
- 대부분의 press는 연구용 기법이며, BlockPress처럼 진정한 chunked-prefill 구현이 아닌 것도 있습니다.
토픽
자주 묻는 질문
- kvpress은(는) 무엇인가요?
- NVIDIA가 개발한 Python 라이브러리로, Hugging Face transformers 기반의 다양한 플러그형 압축 방식으로 추론 중 LLM KV cache를 압축합니다. 토큰 수에 따라 key-value(KV) cache가 선형적으로 커지기 때문에 긴 컨텍스트를 사용하는 LLM을 배포하면 비용이 많이 듭니다. kvpress는 Hugging Face transformers 위에서 다양한 KV cache 압축 방식을 구현하고 벤치마킹해 이 문제를 해결합니다. 각 압축 방식은 press라고 부르며, 프리필링 단계에서 캐시된 항목을 제거하거나 변환하고, 캐시를 얼마나 유지할지 설정하는 compression_ratio를 제공합니다.
- kvpress은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- kvpress은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- kvpress은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. kvpress의 마지막 커밋은 2026년 11월 6일입니다.
- kvpress은(는) 어디에 사용할 수 있나요?
- 긴 문서의 컨텍스트를 매번 다시 인코딩하지 않고 여러 질문에 답하기 일반적인 기준 방식과 비교해 새로운 KV cache 압축 알고리즘을 연구하거나 프로토타이핑하기 Llama, Qwen, Mistral 등의 모델에서 긴 컨텍스트 추론에 필요한 GPU 메모리 줄이기
- kvpress는 어떻게 설치하나요?
- PyPI에서 설치: pip install kvpress 파이프라인을 불러오고 press로 컨텍스트 압축
- kvpress은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/NVIDIA/kvpress
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
동적 희소 어텐션으로 정확도 저하를 최소화하면서 장문 컨텍스트 LLM의 프리필링을 빠르게 하는 pip 설치형 라이브러리입니다.
사전 학습된 LLM이 attention sink 토큰과 최근 토큰 윈도우를 유지해 사실상 무한한 텍스트 스트림을 처리하도록 하는 방법인 StreamingLLM의 연구 코드입니다.
PagedAttention 없이 CUDA 가상 메모리 API로 GPU 메모리를 필요할 때 할당하는 LLM 서빙용 KV-cache 메모리 관리자입니다.
서빙 엔진 간에 LLM 어텐션 캐시를 저장하고 공유·재사용해 첫 토큰 생성 시간(TTFT)을 줄이는 KV 캐시 관리 계층입니다.
Chronos-2 제품군을 포함해 Amazon이 제공하는 zero-shot 시계열 예측용 사전 학습 Transformer 모델입니다.