推論コストを節約する:プロンプトキャッシングでAI対話のオーバーヘッドを削減
本記事では、AI対話、特にMerrilinのような読書アシスタントにおける繰り返しコンテキストによる推論コストの問題を考察します。プロンプトキャッシングにより、計算オーバーヘッドを大幅に削減し、マルチターン対話のコストを約2.8~3.3倍削減できます。KVキャッシングの仕組みを詳しく説明し、実際の会話と価格モデルでコスト削減を示します。
現代のAIアプリケーション、特にMerrilinのような読書アシスタントでは、各対話でシステムプロンプト、書籍メタデータ、検索結果、読者の状態、過去の回答など、多くのコンテキストを維持する必要があります。これにより、新しい質問が短くても、モデルは対話履歴全体を再処理する必要があり、高い計算コストが発生するという問題があります。
プロンプトキャッシングは、この問題を解決する効果的な技術です。その核となる考え方は、すでに計算されたトークンについて再計算を行わず、その鍵(K)と値(V)の表現をキャッシュすることです。Transformerアーキテクチャでは、各アテンション層でクエリ(Q)、キー(K)、バリュー(V)の行列を計算する必要がありますが、KとVはキャッシュ可能であり、Qは新しいトークンごとに再計算しなければなりません。KVをキャッシュすることで、後続の対話では新たに追加されたトークンのみKVを計算すればよく、計算量が大幅に削減されます。例えば、Llama 70Bモデルで20,000トークンを処理する場合、キャッシュなしではKV投影だけで約54 TFLOPs、約27秒かかりますが、キャッシュを使用すると新しい500トークンのみの計算で済み、約1.35ミリ秒と約20,000倍の高速化を実現します。
この計算上の利点は直接的なコスト削減につながります。Anthropic Claude Opus 4.7の価格設定例では、キャッシュ読み取りは100万トークンあたり0.50ドル(基本入力の10%)、書き込みは6.25ドル(基本入力の1.25倍)です。5ターンの対話では、キャッシュなしの総コストが0.053ドルであるのに対し、キャッシュ使用時は0.01881ドルとなり、約2.8倍の節約になります。OpenAI GPT-5.5では、キャッシュ読み取りが0.50ドル、書き込みが基本入力の5ドルで、総コストは0.053ドルから0.01588ドルに低下し、約3.3倍の削減です。これらの節約は対話のターン数が増えるほど拡大します。
Merrilinの実際のユースケースでは、このコスト管理が重要です。プロジェクトは自己資金で運営されているため、不必要な推論コストを削減することで、検索品質の向上、回答精度の向上、ユーザー体験の改善により多くのリソースを割り当てることができます。重要な原則は、安定した部分を安定に保つこと——長い命令や検索コンテキストを不必要に並べ替えず、変化するユーザーメッセージを最後に配置することで、キャッシュメカニズムが最大限に機能します。
結論として、プロンプトキャッシングはすべてのシナリオに適しているわけではありませんが、長期的なメモリを持つエージェント型アプリケーション(読書アシスタント、プログラミングエージェント、研究ワークフローなど)において、大幅なコスト削減を提供します。単純なエンジニアリングの規律により、モデルの性能に影響を与えることなく、数倍のコスト削減を達成できます。