長いコンテキストのLLM推論、KVキャッシュをディスクに逃がすべきかGPUで再計算すべきか、実は「常に正解」は存在しません。それを定量的に判断する仕組みを作った論文です。
タイトル: Building py-kvcache: A Performance Characterization of External KV Caching for vLLM with NVMe SSDs
URL:
📝 概要
vLLM向けの外部KVキャッシュシステム「py-kvcache」を提案。io_uringによる非同期I/OでPython実装ながらSSDの読取帯域13.5GB/sをほぼフルに引き出します。
❗ 解決する課題
既存の外部KVキャッシュ(LMCacheなど)は「いつ使うべきか」の判断基準を持たず、短いプリフィクスや高速GPUでは再計算の方が速いのに無条件にディスクから読み込んでしまう問題がありました。
⚙️ 方法論
リクエストの待機時間中にディスク読込を先行させる「スケジューラ認識プリロード」と、TTFT改善が見込めない場合はロードを拒否する「ブレークイーブンゲート」を導入しています。
📊 実験結果
LongBenchのマルチ文書QAでGPU再計算比6.02〜7.43倍、LMCache比2.77〜3.64倍高速化。マルチターンのSCBenchでは、ネイティブvLLMのディスク読取3.4TBに対しpy-kvcacheは85GBに抑え、完了時間も1200秒超から480秒へ短縮しました。
🖥️ ユースケース
H100のような高性能GPUでは外部キャッシュなしでも十分高速なのに対し、RTX 4000 Adaのような手元のGPUでは外部キャッシングが明確に有効という、ハードウェア次第の判断指針も提供しています。
#
LLM推論# #
vLLM#