長文脈LLM推論向けのKV cache圧縮、検索、マージ、量子化手法を比較する統合研究環境。
NVIDIA/kvpress
NVIDIAによるPythonライブラリ。Hugging Face transformersを基盤に、多彩な圧縮方式を使って推論時のLLM KVキャッシュを圧縮します。
- スター
- 1,245
- フォーク
- 194
- 未解決の Issue
- 12
- 最終コミット
- 24 時間前
これは何?
長いコンテキストを扱うLLMの運用にはコストがかかります。キー・バリュー(KV)キャッシュがトークン数に比例して増加するためです。kvpressは、pressと呼ばれるさまざまなKVキャッシュ圧縮方式を実装し、Hugging Face transformers上でベンチマークを行うことでこの課題に対応します。各pressはprefillingフェーズでキャッシュ済みのエントリを削除または変換し、キャッシュをどれだけ保持するかを指定するcompression_ratioを備えています。
このライブラリは、チャットテンプレートとトークナイズを処理する、kv-press-text-generationという名前のカスタムテキスト生成パイプラインを登録します。圧縮の対象をコンテキストだけにできるため、同じ圧縮済みコンテキストに異なる質問を投げかけられます。実験的機能として、DecodingPressラッパーは圧縮率ではなく目標サイズを指定し、トークン生成中にキャッシュを定期的に圧縮します。transformersのQuantizedCacheを使った量子化キャッシュにも対応しています。
リポジトリには、randomやkey-norm scoringといったシンプルなベースラインから、SnapKV、StreamingLLM、KVzip、CriticalKVなどの手法まで、豊富なpressが含まれています。また、head単位の圧縮を行うAdaKVPressなど、ラッパーpressも用意されています。さらに、長文脈ベンチマーク用の評価CLIと、メモリ使用量や速度の改善を測定するノートブックも含まれています。
主な機能
- 01共通のcompression_ratioインターフェースを備えた、多様なKVキャッシュ圧縮方式(press)
- 02コンテキストのみを圧縮し、チャットテンプレートも処理するカスタムtransformersパイプライン
- 03目標キャッシュサイズを指定できる、実験的なデコード時圧縮
- 04head単位のAdaKVなど、他のスコアラーを組み合わせたり改良したりするラッパーpress
- 05長文脈ベンチマーク用のコマンドライン評価機能と、メモリ使用量・速度を測定するノートブック
ユースケース
- 長い文書のコンテキストを毎回再エンコードせずに、同じ文書について複数の質問に回答する
- 共通のベースラインと比較しながら、新しいKVキャッシュ圧縮アルゴリズムを研究・試作する
- 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キャッシュを圧縮します。 長いコンテキストを扱うLLMの運用にはコストがかかります。キー・バリュー(KV)キャッシュがトークン数に比例して増加するためです。kvpressは、pressと呼ばれるさまざまなKVキャッシュ圧縮方式を実装し、Hugging Face transformers上でベンチマークを行うことでこの課題に対応します。各pressはprefillingフェーズでキャッシュ済みのエントリを削除または変換し、キャッシュをどれだけ保持するかを指定するcompression_ratioを備えています。
- kvpress は無料で使えますか?ライセンスは?
- kvpress は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- kvpress は今もメンテナンスされていますか?
- 活発にメンテナンス中。kvpress の最終コミットは 2026年11月6日 です。
- kvpress は何に使えますか?
- 長い文書のコンテキストを毎回再エンコードせずに、同じ文書について複数の質問に回答する 共通のベースラインと比較しながら、新しいKVキャッシュ圧縮アルゴリズムを研究・試作する 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 tokenと直近トークンのウィンドウを保持することで、実質的に無制限のテキストストリームを処理できる手法StreamingLLMの研究コード。
PagedAttentionを使わず、CUDA仮想メモリAPIでGPUメモリをオンデマンドに割り当てる、LLM serving向けKV-cacheメモリマネージャー。
LLM推論エンジン間でattentionのKVキャッシュを保存・共有・再利用し、time-to-first-tokenを短縮する管理レイヤー。
Amazonの事前学習済みTransformerモデルによるゼロショット時系列予測。Chronos-2ファミリーも含まれます。