# CacheBlend
[[University of Chicago]] の [[Junchen Jiang]] 研究グループが開発した LLM サービングシステム。EuroSys 2025 Best Paper Award 受賞論文で提案され、コードは [[LMCache]] リポジトリ(https://github.com/LMCache/LMCache)として公開されている。論文内での別称に「CacheFuse」がある。
## 解決した問題
RAG では複数のテキストチャンクが LLM 入力に前置されるが、先頭チャンク以外はプリフィックスでないため既存のプリフィックスキャッシングでは再利用できない。フル KV 再利用(PromptCache 方式)はチャンク間クロスアテンションを無視するため品質が劣化する。CacheBlend はこの両問題を同時に解決した。
## 主要技術
### 選択的再計算 (Selective KV Recompute)
各レイヤーで **KV 偏差**(Δkv)が大きいトークン——いわゆる **HKVD (High-KV-Deviation) トークン**——の KV のみ再計算し、残りは事前計算済みキャッシュを再利用する。KV 偏差が高いトークンは全体の約 10〜15% に集中するというアテンション行列のスパース性を利用。
### 漸次フィルタリング
連続レイヤー間で HKVD トークンの順位が高い相関を持つこと(インサイト 2)を利用した。第 1 レイヤーでは全トークンのアテンション偏差を計算してランク付けし、以降は前レイヤーの選択済みトークン内でさらに絞り込む。計算コストを抑えながら各レイヤーの HKVD トークンを精度よく特定できる。
### パイプライン化
レイヤー i の選択的再計算とレイヤー i+1 の KV ロードを並列化する。SSD からのロード遅延が再計算遅延を上回る限り追加レイテンシが生じない。**ローディングコントローラ**が最適な再計算比率と使用ストレージデバイスを自動決定する(最低品質保証比率 r* = 15% を下限として設定)。
## 性能(実測値)
- TTFT:フル KV 再計算・プリフィックスキャッシング比で **2.2〜3.3× 削減**
- スループット:同 TTFT 条件でフル KV 再計算比 **2.8〜5× 向上**
- 品質損失:F1・Rouge-L で最大 0.01〜0.03 以内(フル再計算比)
- フル KV 再利用比:F1 を 0.1〜0.2 絶対値改善、Rouge-L を 0.03〜0.25 改善
## 実装
vLLM 上に Python (PyTorch v2.0) 約 3,000 行で実装。3 つのインターフェース(`fetch_kv`, `prefill_layer`, `synchronize`)を vLLM のレイヤー処理に組み込む。チャンクハッシュテーブルを CPU 上で管理(100 万チャンクで 16 MB)。LRU で KV キャッシュを退避管理。
## 関連
- ソース: [[@2025__EuroSys__CacheBlend - Fast Large Language Model Serving for RAG with Cached Knowledge Fusion]]
- 実装リポジトリ: [[LMCache]]
- 開発者: [[Jiayi Yao]], [[Junchen Jiang]], [[Yuhan Liu]]
- 前提システム: vLLM
- 競合・比較: プリフィックスキャッシング(vLLM/SGLang), PromptCache, RAGCache