vLLM フレームワークに基づく動的 KV Cache 圧縮

動機

過去 1 年間の KV スパース性 (H2O、SnapKV、PyramidKV) に関する最近の学術論文をレビューし、KV スパース性をモデルの異なる層に適用します。プルーニング戦略を採用することで、スコアの低い KV ペアを排除し、スコアが高く、より近い位置にある KV ペアを保持します。このアプローチにより、メモリ使用量、計算および I/O オーバーヘッドが削減され、最終的に推論の高速化が実現します。

実験

ベースラインと設定: すべての KV-Compress 実験は、v0.6.2 からフォークした vLLM 統合を使用して実行し、cuda grapth モード、ブロックサイズ 16 で実行しました。すべての RTX 4090/Llama-3.1-8B-Instruct 実験では、デフォルトの GPU メモリ使用率 0.9 を使用し、maxmodel-length を 32k に設定しました。圧縮性能を Llama-3.1-8B-Instruct で評価し、先行研究で導入された以下のベースライン手法と比較しました:

  • vLLM-0.6.2
  • Novita AI、vLLM フレームワークに基づく Pyramid KV Cache 圧縮

MMLU Pro と LongBench: 異なる層に異なるスライディングウィンドウ長を設定することで、さまざまな KV Cache 圧縮率を制御しました。実験では主に 1024、1280、1536 の 3 つの異なるスライディングウィンドウ長を設定し、異なる層数でクロステストを実施しました。MMLU Pro テストでは、異なる KV スパース層と異なるスライディングウィンドウ長が異なるパフォーマンスを示しました。高速化率を考慮すると、全体の精度は 98% 以上を保証できます。

vllm-0.6.2 Novita AI
KV sparsity layers full sliding window=1536
22 0.4517 0.4496
26 0.4517 0.4476
31 0.4517 0.4476

LongBench テストでは、スライディングウィンドウ 1024 を選択してパフォーマンステストを実施し、精度の低下は約 1.03% であることがわかりました。

vllm base VS Novita AI

スループットベンチマーク: 実際の LLM アプリケーションでは、入力/出力長 5000/500 が最も一般的な構成であり、TTFT 指標は 2 秒未満である必要があります。これらの条件に基づいてバッチパフォーマンス比較テストを実施し、vLLM で 1.5 倍の推論高速化を達成しました。

Throughput vllm-0.6.2 Novita AI
KV sparsity layers full sliding window=1536
22 1 1.26
26 1 1.34
31 1 1.44

主な変更点

主に変更したファイルは次のとおりです:

  • Flash attention - Flash attention に基づくスパーススコアリング。カーネルパフォーマンスの低下を 1% 未満に抑えます。
  • Paged attention と reshape_and_cache - Paged attention に基づくスパーススコアリング、および prefill ステージと decode ステージでのスパーススコアリングの同期。
  • Block_manager およびメモリ管理と tensor prepare に関連するその他の関数。

結論

Novita AI はテンソル並列化もサポートしており、Llama3-70B などのモデルを複数の GPU で実行できます。現在、いくつかの理由によりコードの公開はサポートしていませんが、コミュニティに技術やアイデアを提供し、皆様との技術的な交流を歓迎します。注意点: 以下の機能は vLLM-0.6.2 ではまだサポートされていません:

  • Chunked-prefill
  • Prefix caching
  • FlashInfer およびその他の FlashAttention 以外のバックエンド
  • Speculative Decoding

Novita AI は、AI クラウドプラットフォームであり、開発者がシンプルな API を使用して AI モデルを簡単にデプロイできるとともに、手頃で信頼性の高い GPU クラウドを提供して構築とスケーリングを実現します。

推奨記事

  1. How KV Sparsity Achieves 1.5x Acceleration for vLLM
  2. Unlock Llama 3–8b Zero-Shot Chat: Expert Tips and Techniques
  3. Utilize Clipboard Conqueror with Novita AI API Key for Developer Productivity