ModelEngine-Group/unified-cache-management

Persist and reuse KV Cache to speedup your LLM.

Unified Cache Manager (UCM)

概要 – UCM は、LLM 推論エンジン(Transformers, vLLM など)と、それらが使用するキー・バリュー (KV) アテンションキャッシュのストレージとの間に位置するライブラリです。以下の機能を持つ単一の KV-cache 層を提供します。

  • 再利用:以前に計算されたアテンション状態を、異なる推論リクエスト間で再利用します(例:マルチターンチャット、マルチモーダルパイプライン)。
  • 移動:高速なアクセラレータメモリと低速な外部ストレージ間でキャッシュデータを移動し、限られた GPU/TPU メモリを拡張します。
  • プラグイン:アプリケーションコードを変更することなく、さまざまなストレージバックエンド(メモリプール、ファイルシステム Blob、ネットワークストア)やエンジンアダプターを組み込めます。

なぜ重要なのか

LLM 推論では、多くのリクエストで同じプロンプトプレフィックスが現れると、同じアテンションコンテキストを繰り返し再計算します。UCM は、単一のフォワードパスを超えて KV キャッシュを保持し、必要に応じて外部ストレージに退避させることで、計算時間を短縮し、アクセラレータのメモリ負荷を軽減します。これは、長時間実行されるエージェント、チャットボット、または以前のコンテキストを参照するマルチモーダルアプリにとって特に有用です。

コアコンセプト

コンポーネント 役割
アプリケーション / 推論エンジン プリフィル (pre-fill) ステップで KV キャッシュを生成し、デコード (decode) 中にそれを消費します。
Unified Cache どのキャッシュを保持し、どこに保持し、いつ移動するか(例:プリフィル-デコード転送、スパースアテンション読み込み)を決定します。
Global KV Store 抽象ストレージ層。実装は純粋な RAM、ディスクベース、または分散型が可能です。

主な機能(README に記載)

  • プラグイン可能なアダプター:複数の推論エンジンに対応。
  • プラグイン可能なストレージバックエンド:メモリプール、ファイルシステム、カスタムストアなど。
  • キャッシュライフサイクル管理:自動的な再利用、エビクション(追い出し)、移動。
  • 高度な再利用パターンのサポート:共有プレフィックス、マルチモーダルコンテキスト、KV-Bridge スタイルのチャンクキャッシュなど。
  • 可観測性ツール:キャッシュの再利用状況やランタイム動作を監視。
  • 拡張可能な開発者ガイド:新しいエンジン、ストア、キャッシュメカニズムの追加用。

代表的なユースケース

  1. チャットボットサーバー:会話履歴を KV キャッシュに保持し、新しいターンごとに新しいトークンのみを計算するようにします。
  2. マルチモーダルパイプライン:画像とテキストの埋め込みが大きな共通プレフィックスを共有する場合。
  3. バッチ推論:多くのリクエストが同じシステムプロンプトや few-shot 例を共有する場合。
  4. リソース制約のあるデプロイメント:限られた GPU メモリでより大きなコンテキストを扱うために、SSD やネットワークストレージへキャッシュを退避させる必要がある場合。

はじめに(README のクイックステップ)

  1. 互換性の確認:サポートマトリックスを参照し、エンジン、モデル、ハードウェアがサポートされていることを確認します。
  2. クイックスタートに従う:適切なアーティファクト(pip パッケージまたはコンテナイメージ)をインストールし、ストレージバックエンドを設定し、--ucm フラグ(または同等のもの)を付けてエンジンを起動します。
  3. 検証:可観測性ガイドを使用してキャッシュ再利用メトリクスを監視し、キャッシュの移動が期待通りに行われているかを確認します。

詳細なコマンド、Docker イメージタグ、設定例はオンラインドキュメントに記載されています。

コミュニティと貢献

  • 貢献:開発者ガイドを通じて、新しいエンジンアダプター、ストレージバックエンド、キャッシュポリシーを追加してください。
  • バグ報告 / 機能リクエスト:GitHub リポジトリで Issue を開いてください。
  • ドキュメント:詳細なユーザーガイド、開発者ガイド、トラブルシューティングセクションがあります。

ライセンス

UCM は MIT ライセンスの下でリリースされていますが、追加の条件があります(リポジトリ内の LICENSE ファイルを参照してください)。


上記の情報はすべてリポジトリの README およびリンクされたドキュメントから直接取得したものであり、外部からの仮定は追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト