AWS Certified Generative AI Developer - Professional 資格対策コース
プロンプトキャッシュ・セマンティックキャッシュ(Bedrock Prompt Caching / ElastiCache)
このレッスンで学ぶこと 対応試験ドメイン D4 タスク 4.1.3-4.1.4(キャッシュによる最適化)。Amazon Bedrock Prompt Caching によるプロンプトの再利用と、Amazon ElastiCache を用いたセマンティックキャッシュの設計を理解し、どちらをどの場面で使うかを判断できるようになります。
解説
同じ内容を繰り返しモデルに送ると、その分だけトークンコストとレイテンシが無駄になります。これを削減する手段がキャッシュです。生成 AI のキャッシュには大きく 2 種類あり、両者は仕組みも目的も異なります。
1. Amazon Bedrock Prompt Caching(プロンプトキャッシュ)
Prompt Caching は、プロンプトの共通部分(プレフィックス)をモデル側にキャッシュし、再利用する Bedrock のマネージド機能です。長いシステムプロンプトや、毎回同じ大きなドキュメント・指示文を前置きする場合に効きます。
- キャッシュした部分の入力トークンは割引価格で再処理され、コストとレイテンシの両方が下がる
- 共通部分にキャッシュポイント(cache checkpoint)を指定し、変化する後半部分だけを毎回処理する
- 効くのは「長く・繰り返し・変わらない」プレフィックス。毎回内容が変わるプロンプトには効果が薄い
Python
import boto3
client = boto3.client("bedrock-runtime", region_name="us-east-1")
resp = client.converse(
modelId="anthropic.claude-3-5-sonnet-20241022-v2:0",
system=[
{"text": "(毎回同じ長い社内規定の説明……)"},
{"cachePoint": {"type": "default"}}, # ここまでをキャッシュ
],
messages=[{"role": "user", "content": [{"text": "有給の繰越上限は?"}]}],
)2. セマンティックキャッシュ(Amazon ElastiCache)
セマンティックキャッシュは、過去の質問と回答を保存し、新しい質問が意味的に類似していれば保存済み回答を返す仕組みです。Bedrock のマネージド機能ではなく、自前で組む設計パターンで、保存層に Amazon ElastiCache(Redis 互換)などを使います。
- 質問を埋め込みベクトル化し、ベクトル類似度が閾値以上なら過去回答を再利用してモデル呼び出し自体を省く
- 完全一致でなく「意味が近い」質問にもヒットする点が、単純なキー一致キャッシュとの違い
- ElastiCache はインメモリで低レイテンシ。ベクトル検索を組み合わせて類似判定する
| 観点 | Bedrock Prompt Caching | セマンティックキャッシュ(ElastiCache) |
|---|---|---|
| 何をキャッシュ | プロンプトの共通プレフィックス | 質問と回答のペア |
| 仕組み | モデル側のマネージドキャッシュ | 埋め込み類似度で過去回答を再利用 |
| モデル呼び出し | 後半部分は呼ぶ | ヒットすれば呼ばない |
| 主な効果 | 長い固定文脈のコスト・レイテンシ削減 | 類似 FAQ の応答高速化・コスト削減 |
| 提供形態 | Bedrock マネージド | 自前実装+ElastiCache 等 |
使い分けの考え方
- 「長く変わらないシステムプロンプトや大きな指示文を毎回前置きしている」なら Bedrock Prompt Caching
- 「似た質問が大量に来る FAQ・サポート系で、同じ回答を返せる」なら セマンティックキャッシュ(ElastiCache)
- 両者は排他ではなく、併用してさらに削減することもできる
試験で問われるポイント
- Prompt Caching とセマンティックキャッシュの違いが頻出。前者は「プロンプトの共通プレフィックスをモデル側でキャッシュ」、後者は「意味的に類似した質問に過去回答を再利用しモデル呼び出しを省く」
- Prompt Caching が効くのは長く・繰り返し・変化しない前置き。毎回変わる短いプロンプトでは効果が薄い、というのがひっかけ
- セマンティックキャッシュの保存層に ElastiCache(低レイテンシのインメモリ)が選ばれる。これは Bedrock のマネージド機能ではなく設計パターンである点を区別する
- 「完全一致のキー一致キャッシュ」と「意味的類似で再利用するセマンティックキャッシュ」を混同しない
サービスの使い分け早見表
| やりたいこと | 使うもの | 混同しやすいもの |
|---|---|---|
| 長い固定プレフィックスのコスト・レイテンシ削減 | Amazon Bedrock Prompt Caching | セマンティックキャッシュ(質問単位の再利用) |
| 類似質問へ過去回答を再利用しモデル呼び出しを省く | セマンティックキャッシュ + Amazon ElastiCache | Bedrock Prompt Caching(プロンプト前半のキャッシュ) |
| 低レイテンシなインメモリ保存層 | Amazon ElastiCache | Amazon DynamoDB(永続 KV、ミリ秒だがメモリ常駐ではない) |
まとめ
キャッシュは生成 AI のコストとレイテンシを下げる強力な手段です。Amazon Bedrock Prompt Caching は長く変わらないプロンプト前半をモデル側でキャッシュし、セマンティックキャッシュ(Amazon ElastiCache)は意味的に類似した質問へ過去回答を再利用してモデル呼び出し自体を省きます。試験ではこの 2 つの仕組み・目的・提供形態の違いを問う問題が頻出です。
次のステップ
次のクイズレッスンで、2 種類のキャッシュの使い分けと適用条件を問うシナリオ問題に挑戦しましょう。
関連レッスン
- トークン効率とコスト削減・コスト可視化(pro-cost-token)
- レイテンシ・スループット最適化(pro-perf-latency)
- チャンキング・ハイブリッド検索・リランキング(pro-retrieval-hybrid)