← 概念辨析に戻る

Concept Contrast Fable

プロンプトキャッシュとプレフィックスキャッシュ:一方は伝票全体を保存し、一方は共通のヘッダーを再利用する

先に結論:大規模モデルを呼び出すとき、プロンプトキャッシュとプレフィックスキャッシュはどちらもコスト削減に役立つ。しかしプロンプトキャッシュはプロンプト全体の結果を保存し、次回そのまま一致したときに直接再利用する。プレフィックスキャッシュはすべてのリクエストに共通する先頭部分を別途抽出してキャッシュし、先頭が同じなら一致する。二つの仕組みが覆う場面は重なるが一致はせず、キャッシュ戦略を選び間違えると、節約できる幅が何倍も変わる。

大規模モデルを呼び出すとき、プロンプトキャッシュとプレフィックスキャッシュはどちらもコスト削減に役立つ。しかしプロンプトキャッシュはプロンプト全体の結果を保存し、次回そのまま一致したときに直接再利用する。プレフィックスキャッシュはすべてのリクエストに共通する先頭部分を別途抽出してキャッシュし、先頭が同じなら一致する。二つの仕組みが覆う場面は重なるが一致はせず、キャッシュ戦略を選び間違えると、節約できる幅が何倍も変わる。

寓話

麺屋の二つの仕込み

老街の入口に二軒の麺屋があり、どちらも素早く出餐できると宣伝していた。左の麺屋のやり方は、一人前の完全な麺を卓に上げた後、残りのスープと具を取っておき、次の客が全く同じ麺を注文したらそのまま出すというもの。右の麺屋のやり方は違った。毎日開店前にまず大きな鍋で出汁を熬り、客が注文するのが牛肉麺、三鮮麺、素麺のいずれでも出汁は同じで、麺を茹でて出汁をかけ、注文の味に応じて具を載せる。

昼食のピーク時に、チームビルディングで来た会社員の一団が訪れました。十二人のうち十人が看板の牛肉麺セットを注文しました——麺とトッピングは完全に同じです。左の麺屋は大喜びで、蓄えておいた十人前の出来合いの麺をそのまま出し、提供速度は記録を破りました。右の麺屋は一杯ずつ茹でなければなりませんが、スープは出来合いで、トッピングや付け合わせは並行して準備でき、速度もそれほど遅くはありませんでした。

午後のお茶の時間帯で様子が変わった。入ってきた客はそれぞれ違う麺を注文した——牛肉、三鮮、排骨、酸菜、海鮮、同じものは二つとなかった。左の麺屋の在庫は一つも使えず、ゼロから作るしかなく、提供時間は三倍になった。右の麺屋は影響を受けなかった:ベーススープはそのまま使い、異なるトッピングはもともと別々に準備していたため、提供速度は昼のピーク時とほとんど変わらなかった。

二つの麺屋が月次評価で奇妙な順位を見つけた。セット比率が高い月には左の麺屋が総合点で右を圧倒し、散客が多い月には右の麺屋が逆に大きく先行した。どちらも勝っておらず、どちらも負けていない——ただ異なる注文構成に直面した時、二つの仕込み戦略の効率分布がまったく異なるだけだった。

後に誰かが老街の飲食協会に提案を出した。ピーク時はまず右側のやり方でベーススープシステムを組み、全注文の共通部分をカバーする。同時に左側のやり方で高頻度セットにクイックメニューを設け、適用条件を「麺とトッピングが完全に一致」に厳しく限定する。二つのシステムを並行させ、互いに干渉させない。

並列化後、配膳データに興味深い現象が現れた。ベーススープは当日の注文の100%をカバーしたが、完全なセットメニューのキャッシュにヒットしたのは注文量の15%に過ぎなかった。これは右側の戦略が基礎的な効率に貢献し、左側の戦略は特定の場面でのみ追加の加速を提供したことを意味する。分けて集計して初めて、二つの戦略それぞれの真の価値が見えてくる。

年末総括に一文が書かれた。セットキャッシュで出汁ができることを覆ってはならず、出汁でセットキャッシュの速度を競ってもならない。二つの会計は別々に記録し、二つの規則は別々に命中条件を設ける。

プロンプトキャッシュ

プロンプト全体の計算結果をキャッシュする。次回のリクエストのプロンプトがキャッシュ内容と完全に一致する場合のみヒットして再利用できる。高頻度で繰り返される固定プロンプトテンプレートに適している。

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

プロンプトの共通プレフィックス部分を独立してキャッシュする。複数のリクエストの冒頭が同じであれば、後続の内容がどれほど異なっていても、プレフィックス部分を再利用できる。共有システムプロンプトや長いコンテキストの場面に適している。

物語の対応

  • 完全なセットを保存してそのまま出す:プロンプトキャッシュ、プロンプト全体がそのままヒットしたときのみ再利用
  • 毎日一鍋の出汁を煮てすべての注文をカバーする:プレフィックスキャッシュ、共通プレフィックスがすべてのリクエストに有効
  • チームビルディングプランの時間帯で左側が圧倒:高頻度の反復シーンではプロンプトキャッシュのヒット率が極めて高い
  • 散客の時間帯は右側が影響を受けない:プレフィックスキャッシュは内容が完全に同じであることに依存せず、適用範囲がより広い

APIコスト最適化に落とし込む

API 呼び出しコストを最適化する際、システムプロンプトと共有コンテキストをプレフィックスキャッシュに設定する——この部分はすべてのリクエストで同じであり、ヒット率はほぼ百パーセントになる。業務テンプレートの中で本当に高頻度で内容が完全に不変の固定プロンプトだけを、別途プロンプトキャッシュに設定する。二つのキャッシュにはそれぞれヒット率の監視曲線が必要であり、同じ「キャッシュヒット率」指標で二つの仕組みを評価してはならない。そうしないと、プレフィックスの安定した貢献がプロンプトキャッシュのシナリオ依存性を覆い隠してしまう。

京ICP备2026014272号