プロンプト・キャッシュとは

執筆者

Shalini Harkar

Lead AI Advocate

大規模言語モデル(LLM)は非常に強力ですが、コストとレイテンシーという2つの大きな課題があります。処理されるすべてのトークンには料金が発生し、ユーザーが大規模なドキュメントなどの同じコンテキストを繰り返しクエリすると、冗長な計算がトリガーされてコストが上昇します。

また、これらのリクエストの処理に伴うレイテンシーにより、アプリケーションの応答性が低下し、ユーザー・エクスペリエンスが標準以下になる可能性があります[1]。プロンプト・キャッシュは、これらの課題に対処するための重要なソリューションとして浮上しています。

この記事では、プロンプト・キャッシュとは具体的に何か、従来のキャッシュと何が違うのか、AIアプリケーションにどのように適用できるのか、そしてさまざまなユースケースについて説明します。また、プロンプト・キャッシュで考慮すべきメリットと注意事項についても説明します。 

プロンプト・キャッシュとは

プロンプト・キャッシュは、LLMの速度とコスト効率を向上させる簡単な方法です。こうした改善は、頻繁には変更されないプロンプトの部分(指示の内容や参考資料の考慮事項)を保管することで実現され、モデルはそれらのトークンを繰り返し再処理する必要がなくなります。 

たとえば、LLMにリクエスト(「人工知能とは何かをわかりやすく説明して」など)を送信すると、モデルはプロンプト全体を読んで理解し、応答します。同じプロンプトを再度送信すると、同じ処理が繰り返され、時間とコストが増加します。

プロンプト・キャッシュを使用すると、モデルは最初のリクエスト後にプロンプトの繰り返し部分を保存します。同じプロンプトを再送信すると、応答を再処理するのではなく、保管されている応答を取得します。このプロセスにより、同じプロンプトに対して同じ計算を繰り返す必要がなくなるため、応答がより速く効率的になり、コスト効率も向上します。[2]

プロンプト・キャッシュと従来のキャッシュとの違い

目標と範囲:

  • プロンプト・キャッシュは、繰り返し行われているLLMプロンプトを保存することで、再計算を回避し、レイテンシーを短縮します。
  • 従来のキャッシュでは、頻繁にアクセスされるデータや参考情報(HTMLページ、データベース・クエリー、API応答、画像など)を保管し、将来のアクセスを高速化します。

アウトプットの信頼性:

  • プロンプト・キャッシュは、プロンプトとすべてのパラメーター(温度、top-pなど)がすべてのリクエストに対してまったく同じである場合にのみ機能します。
  • 従来のキャッシュは決定論的であり、同じインプットが常に同じアウトプット(同一のクエリ結果や画像など)を生成します。

パフォーマンス:

  • プロンプト・キャッシュにより、繰り返しまたは類似のLLMリクエストに対するトークンの使用量、APIコスト、エンドツーエンドのレイテンシーが削減されます。
  • 従来のキャッシュでは、アプリケーションの性能が向上し、バックエンドまたはデータベースの負荷が軽減され、ネットワークのレイテンシーが短縮されます。

有効期限と無効化:

  • プロンプト・キャッシュは、多くの場合、モデルのバージョン更新または再トレーニング・サイクルにリンクされています。
  • 従来のキャッシュでは、基礎となるデータが変更された場合に、TTL(Time To Live)、バージョン管理、または手動による無効化を使用して管理します。[3]

プロンプト・キャッシュの仕組み

プロンプト・キャッシュでは、プロンプトの繰り返し部分が保存され、将来のリクエストで再利用できるため、再送信や再処理の必要がなくなります。

以下では、その仕組みにについて段階的に説明します。

  1. キーの生成:プロンプトが送信されると、システムがキャッシュ・キーを作成します。
    完全一致キャッシュでは、プロンプト・テキスト(またはハッシュまたは正規化された形式)を使用し、モデル名、温度、システム・プロンプトなどのパラメーターを含めることができます。これはプロンプトとすべての設定が同一の場合にのみ機能します。
    一方、セマンティック・キャッシュでは、プロンプトの埋め込みを生成し、意味的に類似したエントリーを検索します。このタイプのキャッシュでは、文言が変更されても再利用が可能です。これら2つのキャッシュ方法は、それぞれ異なる強みを持つ独立したアプローチです。
  2. キャッシュ・ルックアップ:キーまたは埋め込みは、キャッシュ・ストア(通常、従来のキャッシュの場合はキー値ストア、セマンティック一致の場合はベクトル・データベース)と照合されます。
  3. キャッシュ・ヒットとミス:キャッシュ・ヒットでは、保管された結果がすぐに返されるため、再処理を回避できます。キャッシュ・ミスでは、プロンプトがモデルに送信され、アウトプットが次回のために保存されます。
  4. 結果の保存:キャッシュ・ミスはありますが、LLMが応答を返すと、生成されたアウトプット(場合によっては埋め込みやその他のメタデータ)は、将来使用するためにそのキーの下に保存されます。
  5. 検証:キャッシュ・エントリーは、サーバー定義のTime-to-Live(TTL)、モデルの更新、またはコンテンツ・ドリフトに基づいて期限切れになる可能性があり、これによって正確かつタイムリーに回答を維持します。

LLMでのプロンプト・キャッシュの実装

LangChainは、LLMアプリケーションにプロンプト・キャッシュを追加するための柔軟なフレームワークを提供します。スタンドアロンのキャッシュ・システムとは対照的に、LangChainはLLMアプリケーションを構築するための統合フレームワークです。キャッシュが、チェーン、メモリー、検索拡張生成(RAG)、ツール統合などの他の必要なコンポーネントとともに1つのソリューションに統合されます。

LangChainを使用してプロンプト・キャッシュを実装する方法の詳細については、以下のリンクをクリックしてください。

ユースケース

  • インタラクティブ・ドキュメント・ポータル:プロンプト・キャッシュは、組織のポリシー、手順、または技術文書に関するよくある質問への回答を保存することで、内部のナレッジ管理システムで非常に役立ちます。従業員が同様の情報を繰り返し検索すると、LLMに繰り返しクエリーを実行することなく、キャッシュされた応答によって即座に回答が提供されます。 

  • マーケティング・キャンペーン:プロンプト・キャッシュは、よくある質問に対する回答を事前に計算して保存することで、チャットボットや自動化システムを効率化します。たとえば、割引、製品仕様、在庫の有無に関するクエリをストリーミングし、ユーザーからのよくある質問に迅速に回答できるようにします。ユーザーのトラフィックが多い時間帯に、キャッシュされた応答は、不要なAPIコストを削減し、レイテンシーを緩和することで、不必要なLLM呼び出しを回避するのに役立ちます。

  • カスタマー・サポート・システム:顧客が質問を送信できるサポート・チャネルでは、トラブルシューティングやアカウント管理、請求に関する一般的な問い合わせへの回答をプロンプトとしてキャッシュできます。これにより、同じ種類の問い合わせに対する応答の迅速化、提供される応答の一貫性、LLM処理への依存の軽減につながります。これらの改善は、効率性と顧客満足度の向上につながる可能性があります。[4]

メリット

  • コスト削減:LLMを複数回呼び出す代わりに、プロンプトと応答のペアを再利用することで、APIコストを削減できます。
  • 速度:キャッシュした応答を返すことで、即座に回答を得ることができます。これによりクエリーの合計処理時間が短縮され、応答時間が短縮されます。
  • インテリジェントなリソース活用:不必要にコンピューティングを無駄にせず、他の多様で複雑なクエリーの実行用にリソースを確保します。
  • 無限の容量:大量のトラフィックと繰り返しのクエリーを合理的に管理し、アプリケーションの拡張に合わせてスムーズに動作し続けます。
  • 一貫した応答:すべての同一または類似のクエリーに対しては、キューを通じて同じ応答を何度も生成するため、ユーザーにとって信頼性の高い確実なエクスペリエンスを構築します。
  • ユーザー・エクスペリエンス:より迅速で予測可能な応答を提供できるため、顧客向けアプリケーションでのユーザー満足度が向上し、より流動的なエンゲージメントが実現します。
  • サーバーのワークロードの削減:サーバーのワークロードを軽減し、キャッシュされた応答で回答できるクエリーをオフロードすることで、システムをより効率的に運用できるようにします。[5]

主要なプラットフォームでは、キャッシュの書き込みと保持期間の管理を通じてプロンプト・キャッシュを運用し、TTLとキャッシュ制御を使用してアウトプットと使用レートを管理しています。これにより、データ・プライバシーを確保しつつ、キャッシュに応じて料金体系やコストを最適化できます。埋め込みスキーマとシステム指示をキャッシュしてリアルタイムのやり取りに活用することで、複数のマルチターン対話でツールの使いやすさを向上できます。 

プロンプト・キャッシュで考慮すべきポイント

プロンプト・キャッシュにはメリットがありますが、最適化と性能に関連するため、制限に注意し続けることが重要です。主な考慮点は以下の通りです。

  • 動的なクエリーまたはコンテキストに依存するクエリーの管理:プロンプト・キャッシュは、時間や以前のユーザーインプットによって変化する動的なクエリーや、データのリアルタイム更新や継続的なマルチターン会話など、コンテキストに依存するクエリーに対しては、ユーティリティーが限定的になることがよくあります。こうしたクエリーでは、新しい情報を反映した応答を生成する必要があります。
  • 古くなった応答:キャッシュされた応答は、データやコンテキストが変更されるとすぐに古くなってしまう可能性があり、クエリーに対して誤った情報や無関係な情報が提供されかねません。
  • エッジ・ケースの複雑さ:部分的なプロンプトの再利用や特定の軽減策をサポートするためにキャッシュを変更すると、変更によってシステム設計と実装の作業が複雑になるため、より多くの問題が発生する可能性があります。
  • キャッシュのメンテナンスにおける課題:キャッシュの効果的な管理(たとえば、有効期限設定やストレージ制約)には運用上のオーバーヘッドが伴うことがあります。[6][7]

概要

プロンプト・キャッシュは、チャットボット、コーディング・アシスタント、RAGパイプラインなどのAI駆動型システムの性能を向上させ、性能と効率の両方を向上させるインテリジェントなキャッシュ戦略です。完全なプロンプトまたはシステム・プロンプトに対する同じリクエストでAPIに複数のリクエストを行う代わりに、システムはキャッシュされたコンテンツ(プロンプト・プレフィックス、キャッシュ・プレフィックス、静的コンテンツなど)を活用して、インプット・トークンとアウトプット・トークンの両方でデータを節約します。

その結果、API呼び出しの回数が減り、キャッシュ・ミスが減り、レスポンス・レイテンシーとユーザー・エクスペリエンスが全体的に大幅に向上します。

プロンプト・キャッシュは、チャットボットのようなAI搭載システムに組み込まれているため、ユーザー・メッセージを活用することでパフォーマンスを向上させ、APIリクエストを減らし、簡潔なキャッシュ読み取りによってキャッシュ・ヒット率を大幅に向上させます。

アプリケーションで関数を実行したり、後続のリクエストやクエリーに応答したりする場合、プロンプト・キャッシュ機能により、プロンプト・トークン、総トークン、トークン数が保存され、メトリクスの追跡が容易になります。プロンプト・キャッシュを使用することで、チームはプロンプト・トークンと総トークンをリアルタイムで追跡し、生成AIのユースケースに合わせて世界規模で、かつ適切なタイミングのコスト、速度、信頼性で大規模言語モデルを拡張し続けることができます。

参照

[1] Kaplan, J.、McCandlish, S.、Henighan, T.、Brown, T. B.、Chess, B.、Child, R.、Gray, S.、Radford, A.、Wu, J.、Amodei, D.(2020年)。「Scaling Laws for Neural Language Models」、arXiv

[2] Gim, I.、Chen, G.、Lee, S.、Sarda, N.、Khandelwal, A.、Zhong, L.(2024年)。「Prompt Cache: Modular Attention Reuse for Low-Latency Inference」、第7回機械学習とシステム年次会議の議事録(MLSys 2024年)。カリフォルニア州サンタクララ。

[3] OpenAI。「Prompt Caching」。OpenAIプラットフォーム・ドキュメンテーション、OpenAI、https://platform.openai.com/docs/guides/prompt-cachingでアクセス可能

[4] Gu, C.、Li, X. L.、Kuditipudi, R.、Liang, P.、Honey, T著(2025年)。「言語モデルAPIの監査プロンプト・キャッシュ」arXiv。https://arxiv.org/abs/2502.07776

[5] Kelly, Conor。「Prompt Caching: Reducing latency and cost over long prompts」。Humanloopブログ、2024年10月2日、https://humanloop.com/blog/prompt-caching

[6] Chakraborty, S.、Zhang, X.、Bansal, C.、Gupta, I.、Nath, S(2025年)。「Generative Caching for Structurally Similar Prompts and Responses」。

[7] Wu, G.、Zhang, Z.、Zhang, Y.、Wang, W.、Niu, J.、Wu, Y.、Zhang, Y.(2025年)。「I Know What You Asked: Prompt Leakage via KV-Cache Sharing in Multi-Tenant LLM Serving」。ネットワークおよび分散型システム・セキュリティ・シンポジグラム(NDSS)の議事録

関連ソリューション
IBM® watsonx Orchestrate®

IBM watsonx Orchestrateを使用すると、スケーラブルなAIアシスタントとエージェントを簡単に設計し、反復的なタスクを自動化し、複雑なプロセスを簡素化できます。

watsonx Orchestrateの詳細はこちら
人工知能ソリューション

IBMの業界をリードするAIの専門知識とソリューションのポートフォリオを活用して、AIを業務に利用しましょう。

AIソリューションはこちら
人工知能コンサルティングおよびサービス

IBM®ConsultingAIサービスは、企業がAIをトランスフォーメーションに活用する方法を再考するのに役立ちます。

AIサービスはこちら
次のステップ

事前構築済みのアプリケーションとスキルをカスタマイズする場合でも、AIスタジオを使用してカスタム・エージェント・サービスを構築し、導入する場合でも、IBM watsonx®プラットフォームが対応します。

  1. watsonx Orchestrateの詳細はこちら
  2. AIソリューションはこちら