LMCache/LMCache
LMCache: Supercharge Your LLM with the Fastest KV Cache Layer
解決する課題
LMCacheは、通常一時的な状態として扱われるLLM推論におけるKey-Value (KV) キャッシュの非効率性を解決します。KVキャッシュを再利用可能な永続的知識へと変換することで、LMCacheは、特に繰り返しのprefill計算が大きなボトルネックとなる長文コンテキストのエージェントワークロード、マルチターン会話、およびRAGアプリケーションにおいて、Time-to-First-Token (TTFT) を短縮し、スループットを向上させます。
仕組み
LMCacheは、推論エンジンとストレージの間に位置する、ベンダーに依存しない管理レイヤーとして機能します。KVキャッシュを独立したスタンドアロンのデーモンプロセスとして管理するため、エンジンがクラッシュしてもキャッシュが失われることはありません。また、階層型ストレージ(CPUメモリ、ローカルSSD、およびRedisやS3などのリモートバックエンド)を採用し、異なるリクエスト、セッション、およびエンジンインスタンス間でキャッシュをオフロードおよび再利用します。
単純なプレフィックスキャッシュにとどまらず、CacheBlendを介して非プレフィックスのKV再利用をサポートし、トークンを選択的に再計算します。また、NVLink、RDMA、またはTCPを介してprefillワーカーからdecodeワーカーへKVキャッシュを転送する、Prefill-Decode (PD) 分離(disaggregation)も可能にします。
対象ユーザー
特定の推論エンジンやハードウェアベンダーにロックインされることなく、長文コンテキストやマルチターン対話のパフォーマンスを最適化する必要がある、スケーラブルなLLMサービングシステムを構築する開発者およびインフラプロバイダー。
ハイライト
- エンジンに依存しないデプロイ: KVキャッシュは個別のデーモンによって管理されるため、推論エンジンがクラッシュしても永続性が確保されます。
- 永続的な階層型ストレージ: KVキャッシュをCPU RAM、ローカルディスク、およびリモートバックエンド(例:Redis、S3)にオフロードし、セッションを越えて再利用します。
- プラグイン可能なバックエンド: NVLink、RDMA、Redis、S3互換ストレージを含む幅広い転送・ストレージプロバイダーをサポートします。
- 非プレフィックス再利用: プロンプトの冒頭だけでなく、任意の位置にあるキャッシュされたKVブロックを再利用します。
- 本番環境のオブザーバビリティ: キャッシュヒット率、ライフサイクル、およびパフォーマンス診断に関する詳細なメトリクスを提供します。
- KV変換: 研究者がカスタムの圧縮やシリアル化を実装できる柔軟なインターフェースを提供します。