← 概念辨析に戻る

Concept Contrast Fable

KV Cacheとプレフィックスキャッシュ:一方は推論エンジンが各ステップを記憶し、もう一方はサービス層が他者の記憶を再利用する

先に結論:どちらの語も「キャッシュ」と言っているが、キャッシュするものと場所はまったく異なる。KV Cache はモデルが token を逐次生成する際に注意計算の中間結果を保存し、履歴 token の再計算を避ける——これは推論エンジン層の話である。プレフィックスキャッシュはリクエスト間で共有される prompt プレフィックスの結果をサービス層でキャッシュし、複数リクエストが再利用する——これはシステムスケジューリング層の話である。層を間違えて最適化すると、GPU の外にお金を使っても加速は待てない。

どちらの語も「キャッシュ」と言っているが、キャッシュするものと場所はまったく異なる。KV Cache はモデルが token を逐次生成する際に注意計算の中間結果を保存し、履歴 token の再計算を避ける——これは推論エンジン層の話である。プレフィックスキャッシュはリクエスト間で共有される prompt プレフィックスの結果をサービス層でキャッシュし、複数リクエストが再利用する——これはシステムスケジューリング層の話である。層を間違えて最適化すると、GPU の外にお金を使っても加速は待てない。

寓話

造船所における二種類の端材再利用

海辺に造船所があり、一隻の船を造るたびに竜骨を敷く。竜骨は最も材料と時間を要する部品だ。老工匠は竜骨を一本敷くたびに、船型に応じて応力計算、線引き、切断、研磨をやり直す。十隻造れば、毎回ゼロからやり直さねばならない。

工房では二つの改善が順に行われた。第一の改善は、工匠にすでに計算済みの竜骨データをノートに記録させることだった——各船の竜骨が何番目の肋位にどの木材を使い、応力データがいくつか。同じ船型の次の船を造るとき、工匠はノートを開いてそのまま再利用し、竜骨全体を再計算する必要がなかった。このノートは工匠の道具箱に置かれ、一艘造るごとに一笔使われた。

第二の改善は工場長のアイデアだった。彼は多くの船の船首部分の設計が完全に同じことに気づいた。船体がどれだけ長く、積載量がどれだけでも、船首の弧度のテンプレートは統一されていた。彼は設計室に一面の壁を専用に設け、船首部分の標準加工図を貼り尽くし、どの職人でも入ってすぐ使えるようにした。異なる船型、異なる注文でも、船首のその部分が同じなら直接引用する。

これら2種類の再利用はよく同じものと見なされるが、ある納期に追われる案件で問題が起きるまではそうだった。工場長が職人に加速を促すと、職人は言った。「私の手帳にはこの船型の前半分のデータが見当たりません。最初から計算し直す必要があります」。工場長が壁の標準船首図を指して言った。「この部分は壁に貼ってあるではないか?」職人は説明した。「壁にあるのは船首の標準加工テンプレートです。私の手帳にあるのは竜骨を先頭から最後まで通した力学計算の過程です——船首の部分には確かにテンプレートがありますが、船首から後ろ三分の一の地点からは、一本一本の肋位のデータがすべて異なります」。

後に工場は明確な分業を行った。職人のノートは同じ船の計算再利用を担う——全長の、位置ごとの、分割不可能な連続計算過程。工場の壁の標準図は異なる船の間の共通区間の再利用を担う——接頭区間のみを見て、船をまたいで共用し、一度使ったら次に替える。二つは並行するが、どちらも相手を代替できるふりをしてはならない。

あるとき大口受注を受け、異なる仕様の船を同時に四隻造る必要があった。ノートの再利用により各船の竜骨計算量は六割減り、壁面の再利用により四隻の船首部分の人件費はほぼゼロになった。工場長はその後、拡張計画で壁とノートにそれぞれ一行の予算を特別に計上した。

年末総括の時、技術員は一枚の図を描いた。ノートは推論エンジン内部の KV Cache に対応する——生成系列の内部で重複計算を避ける。壁のテンプレートはサービス層のプレフィックスキャッシュに対応する——リクエストをまたいで共通のプレフィックスを再利用する。二本の線は同じ木材を使っているが、データを管理するのは二人の別の人であり、依存するのは二つの別の検索ロジックだ。

KV Cache

Transformer モデルは自己回帰生成の過程で、計算済みの注意のキーと値のペアを保存し、新しいトークンごとに履歴系列の注意を再計算するのを避ける。

プレフィックスキャッシュ

推論サービス層では、複数のリクエストが共有するpromptプレフィックスのKV Cacheをメモリまたはディスクにキャッシュし、異なるリクエストが同じプレフィックスの計算結果を再利用する。

物語の対応

  • 工匠のノートは竜骨の全計算データを記録する:KV Cache、シーケンス内部の位置ごとの計算再利用
  • 工房壁面の標準船頭テンプレート:プレフィックスキャッシュ、リクエストをまたいで共通プレフィックス部分の計算結果を共有
  • ノートは前の部分をめくれないが壁面にはある:二つのキャッシュは異なる範囲に作用する
  • 異なる仕様の船を4隻同時に建造:2種類のキャッシュが並行して働き、異なる層の計算量を削減する

Agent プロジェクトに落とし込む

推論高速化の方案を評価するときは、まずどの層を最適化するのかをはっきりさせる。KV Cache の最適化は推論エンジンのパラメータ調整と VRAM 管理による。プレフィックスキャッシュの最適化はサービス層のスケジューリング戦略——システムプロンプトや共有コンテキストの再利用ロジックによる。二つの方向はそれぞれ独立に予算を審査し、プレフィックスキャッシュの加速率を推論エンジン自体が速くなったと取り違えないこと。一方は VRAM 内の連続状態を管理し、もう一方はリクエスト間の共通の起点を管理する。

京ICP备2026014272号