LMCache は LLM 推論でよくある問題を扱います。多くのリクエストは prompt の前半が重複しているのに、サーバーは毎回 prefill を再計算し、GPU 時間を浪費します。
長いシステムプロンプト、RAG テンプレート、複数ターン会話、Agent のツール説明、固定知識コンテキストがあるなら、LMCache は検討する価値があります。主な狙いは repeated prefill を減らし、TTFT を下げることです。
|
|
|
|
必要かどうか
LMCache は、長い prompt、大きな共通 prefix、RAG の反復、長い会話履歴、長い Agent ツール説明、複数 vLLM インスタンスの共有キャッシュに向いています。短いリクエストや共通 prefix が少ない workload では効果が小さい場合があります。
vLLM MP モードから始める
- MP モード:LMCache を独立サービスとして動かし、vLLM が
LMCacheMPConnectorで接続する。 - In-process モード:LMCache を vLLM プロセス内で動かす。
実用上は MP モードがおすすめです。管理、観測、複数インスタンス共有がしやすくなります。
インストール
|
|
または:
|
|
本番では vLLM、LMCache、connector のバージョン互換性を確認します。
LMCache を起動する
|
|
--chunk-size 16 はデモ向けです。本番では通常 256 などのデフォルト値を使います。デフォルトポートは ZMQ 5555、HTTP 管理とメトリクス 8080 です。
vLLM を接続する
|
|
vLLM 0.20.0 以降では次のように LMCache 側 connector を明示できます。
|
|
ヒットを確認する
共通 prefix を持つ 2 つのリクエストを送ります。
|
|
|
|
1 回目は Stored ... tokens、2 回目は Retrieved ... tokens が見えるはずです。
見るべき指標
hit tokens、hit ratio、キャッシュ取得元、取得時間、TTFT 改善、chunk alignment の影響を確認します。Retrieved が出るだけでは十分ではありません。
効果が出やすい場面
長いシステムプロンプト、固定 RAG テンプレート、Agent ツール説明、複数インスタンス推論サービスです。最初は CPU RAM で試し、Redis、S3、NIXL などの複雑な backend は後で検討します。
In-process モード
|
|
簡単ですが、キャッシュは vLLM プロセスに依存します。長期運用では MP モードの方が扱いやすいです。
本番前チェック
- LMCache 有効/無効で TTFT を比較する。
- prefill latency を単独で記録する。
- prefix cache hit tokens と hit ratio を見る。
- メモリ安定性を確認する。
- vLLM 再起動後の挙動を見る。
- 並行時の ZMQ、HTTP メトリクス、ログを確認する。
- demo ではなく実業務 prompt で測る。
まとめ
LMCache は、長い prompt が繰り返し現れる推論サービスに向いています。生成そのものを万能に速くするのではなく、repeated prefill を再利用可能な KV Cache に変えます。vLLM を使っているなら、まず MP モードでローカル検証し、実トラフィックで TTFT を比較しましょう。