Repolode
NVIDIA

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. 1

    PyPIからインストールする

    pip install kvpress
  2. 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 の数値は毎日更新されます。

関連プロジェクト