コストとパフォーマンス更新日 2026-06-24 · バージョン 1.1
セマンティックキャッシュ
セマンティックキャッシュは、過去のモデルの応答を保存し、新しいリクエストが以前のリクエストと意味的に類似している場合にそれを再利用します。これは、正確なテキストではなく、埋め込み(embeddings)を介して意味でマッチングを行います。本番環境でよく見られる、繰り返されるクエリやほぼ重複するクエリのコストとレイテンシーを削減します。
エビデンス: 本番環境確信度: 低ソース: 本番システムソース: 個人の経験ソース: 業界での観察
課題
本番環境のクエリの多くは、すでに回答されたクエリの言い換えであるため、毎回フルモデルを再実行するとコストとレイテンシーが無駄になります。
適用対象
トラフィックに類似した質問や繰り返される質問が多く含まれ、回答が再利用できるほど安定している場合(FAQ、サポート、ドキュメントアシスタントなど)に、セマンティックキャッシュを使用します。
解決策
受信した各リクエストを埋め込み(Embedding)に変換し、過去のリクエストの埋め込みキャッシュを検索します。十分に類似したエントリが存在する場合(類似度しきい値以上)、保存されているレスポンスを返します。そうでない場合はモデルを呼び出し、新しいペアを保存します。
類似度しきい値は慎重に調整してください。緩すぎると、微妙に異なる質問に対して誤った回答を返してしまい、厳しすぎると、有効なヒットを逃してしまいます。キャッシュされた回答が古くならないよう、TTLと無効化(invalidation)を追加します。
コンポーネント
リクエストの埋め込み(Embedding)ベクトルキャッシュ類似度しきい値TTL / 無効化モデルへのフォールバック
メリット
- モデルの繰り返し呼び出しを避けることによるコスト削減。
- キャッシュヒット時のレイテンシ低下。
- 類似した質問に対する回答の一貫性の向上。
リスク
- しきい値が緩いと、誤ったキャッシュ回答を返してしまう。
- TTLや無効化がないと、キャッシュが古くなる。
- パーソナライズされた回答や時間経過に敏感な回答は、キャッシュに適さない。
非推奨のケース
- ほとんどのクエリが一意である場合。
- 回答が、最新のデータ、ユーザー固有のデータ、または時間固有のデータに依存する場合。
- わずかな不一致も許容されない場合。
テクノロジー
Embedding modelsVector databasesGPTCacheRedis / KV stores
事例
- 「パスワードの再設定方法」という質問に対する回答を、多様な言い回しにわたって再利用する。
- サポートアシスタントにおいて、ドキュメントに関する一般的な質問をキャッシュする。
- 繰り返される同一の分析質問をショートサーキット(早期リターン)する。
本番環境での実績
- コンテキスト
- 57日間にわたり観測された、シングルオペレーターかつローカルファーストのOpenClawデプロイメント(161セッション / 2,776ターン)。エージェント自身のトラジェクトリトレースから集計。
- シナリオ
- プロンプトとコンテキストのキャッシュは、`cache_control`マーカーに加えて、ワークスペースファイルキャッシュおよびルートキャッシュを使用して設計されており、繰り返される構造はキャッシュから提供されます。
- テクノロジー
- systemおよびmessagesへのAnthropic `cache_control`インジェクション、OpenRouterパススルー、ワークスペースファイルキャッシュ、ルートキャッシュ、および`cache_read`/`write`コスト会計。
- 負荷
- 57日間で合計2,810万トークン。そのうち約1,960万トークンが`cache-read`として提供されました。
- 結果
- トークンの約70%がキャッシュから提供され、ブレンドコストを100万トークンあたり15.21ドルに抑えました(`cache-read`が41ドルに対し、新規入力が374ドル)。シングルオペレーターかつローカルファーストのデプロイメントにおける結果であり、この比率は当該ワークロードの反復性を反映しています。ご自身の環境で測定してください。
KPI
- キャッシュヒット率
- キャッシュから提供されたリクエストの割合。コスト削減とレイテンシ短縮の両方を左右するレバーとなります。
- 誤ヒット率
- 意味的に「類似している」ヒットが、誤った回答や古い回答を返す頻度。意味によるキャッシュにおける中心的なリスクです。
- ヒットあたりの削減コストとレイテンシ
- キャッシュヒットによって回避されたトークンと時間。誤ヒットのリスクと引き換えに得られるメリットです。
- 類似度しきい値のキャリブレーション
- 一致しきい値がヒット率と誤ヒットのバランスを保てているかどうか。緩すぎると品質が低下し、厳しすぎるとコスト削減効果が失われます。
観察された失敗パターン
- 誤ヒット:2つのクエリが埋め込み空間で類似しているものの、異なる回答を必要とするため、キャッシュが誤った回答を返してしまう。
- 陳腐化:基礎となる事実が変化しているにもかかわらず、キャッシュされた回答が古いままである。
- しきい値の調整ミス:緩すぎると誤った回答を返し、厳しすぎるとほとんどヒットしなくなる。
- キャッシュ汚染:不適切な回答がキャッシュされ、その後繰り返し提供されてしまう。
得られた教訓
- 実際のトラフィックに合わせて類似度しきい値を調整してください。これは成否を分ける極めて重要なパラメータです。
- 最新性や正確性が極めて重要な場合、無効化戦略なしにキャッシュを行ってはなりません。
- キャッシュヒットを検証またはサンプリングし、ユーザーが気づく前に誤った一致を検出します。
- ユーザー間で誤った回答が漏洩するのを防ぐため、キャッシュのスコープを狭く(テナントごと、コンテキストごとなど)制限します。
FAQ
- 通常のキャッシュと何が違うのですか?
- 通常のキャッシュは正確なキーを一致させますが、セマンティックキャッシュは埋め込みを使用して意味で一致させるため、言い換えられた質問でもヒットします。
- 主なリスクは何ですか?
- 類似度しきい値が緩すぎると、実際には異なる質問に対してキャッシュされた回答を返してしまいます。しきい値を調整し、実際のトラフィックで検証してください。
- 古い回答を避けるにはどうすればよいですか?
- TTLを設定し、基礎となるデータが変更されたときにエントリを無効化します。パーソナライズされた回答や時間経過に敏感なレスポンスのキャッシュは避けてください。