モデル推論を高速化するためのプロンプトキャッシュ
注記
Amazon Bedrock プロンプトキャッシュは、Claude 3.7 Sonnet、Claude 3.5 Haiku、Amazon Nova Micro、Amazon Nova Lite、Amazon Nova Pro、Amazon Nova Premier で一般提供されています。プロンプトキャッシュプレビュー中に Claude 3.5 Sonnet v2 へのアクセスを許可されたお客様はそのアクセスを保持しますが、追加のお客様には Claude 3.5 Sonnet v2 モデルのプロンプトキャッシュへのアクセスは許可されません。
プロンプトキャッシュは、Amazon Bedrock でサポートされているモデルで使用できるオプション機能であり、推論レスポンスのレイテンシーと入力トークンのコストを削減できます。コンテキストの一部をキャッシュに追加することで、モデルはキャッシュを活用して入力の再計算をスキップできるため、Bedrock はコンピューティングの節約を共有し、レスポンスのレイテンシーを短縮できます。
プロンプトキャッシュは、長さと繰り返しがあり複数のクエリで頻繁に再利用されるコンテキストのワークロードがある場合に役立ちます。例えば、ユーザーがドキュメントをアップロードして質問できるチャットボットがある場合、ユーザーが入力するたびにモデルがドキュメントを処理すると時間がかかる可能性があります。プロンプトキャッシュを使用すると、ドキュメントをキャッシュでき、そのドキュメントを含む将来のクエリを再処理する必要がなくなります。
プロンプトキャッシュを使用する場合、キャッシュから読み取られたトークンに対して割引料金で課金されます。モデルによっては、キャッシュに書き込まれたトークンは、キャッシュされていない入力トークンよりも高い料金で課金される場合があります。キャッシュとの間で読み書きされないトークンは、そのモデルの標準入力トークン料金で課金されます。詳細については、「Amazon Bedrock の料金ページ
仕組み
プロンプトキャッシュを使用する場合、Amazon Bedrock はキャッシュチェックポイントで構成されるキャッシュを作成します。これらは、キャッシュするプロンプトの連続するサブセクションを定義するマーカーです (多くの場合、プロンプトプレフィックスと呼ばれます)。これらのプロンプトプレフィックスはリクエスト間で静的である必要があり、後続のリクエストでプロンプトプレフィックスを変更すると、キャッシュミスが発生します。
キャッシュチェックポイントには、使用している特定のモデルに応じて、トークンの最小数と最大数があります。キャッシュチェックポイントは、合計プロンプトプレフィックスがトークンの最小数を満たしている場合にのみ作成できます。例えば、Anthropic Claude 3.7 Sonnet モデルでは、キャッシュチェックポイントあたり少なくとも 1,024 トークンが必要です。つまり、最初のキャッシュチェックポイントは 1,024 トークンの後に定義でき、2 番目のキャッシュチェックポイントは 2,048 トークンの後に定義できます。トークンの最小数を満たす前にキャッシュチェックポイントを追加しようとすると、推論は成功しますが、プレフィックスはキャッシュされません。キャッシュには 5 分の有効期限 (TTL) があり、キャッシュヒットが成功するたびにリセットされます。この期間中、キャッシュ内のコンテキストは保持されます。TTL ウィンドウ内でキャッシュヒットが発生しない場合、キャッシュは期限切れになります。
プロンプトキャッシュは、サポートされているモデルの Amazon Bedrock でモデル推論を取得するたびに使用できます。プロンプトキャッシュは、次の Amazon Bedrock 機能でサポートされています。
- Converse API と ConverseStream API
-
プロンプトでキャッシュチェックポイントを指定して、モデルと会話を続けることができます。
- InvokeModel API と InvokeModelWithResponseStream API
-
プロンプトキャッシュを有効にしてキャッシュチェックポイントを指定する、単一のプロンプトリクエストを送信できます。
- クロスリージョン推論を使用したプロンプトキャッシュ
-
プロンプトキャッシュは、クロスリージョン推論と組み合わせて使用できます。クロスリージョン推論は、推論リクエストを処理するために地域内の最適な AWS リージョンを自動的に選択し、利用可能なリソースとモデルの可用性を最大化します。需要が高い場合、この最適化によりキャッシュ書き込みが増加する可能性があります。
- Amazon Bedrock Prompt Management
-
プロンプトを作成または変更するときに、プロンプトキャッシュを有効にするように選択できます。モデルに応じて、システムプロンプト、システム手順、メッセージ (ユーザーとアシスタント) をキャッシュできます。プロンプトキャッシュは無効にすることもできます。
API を使用すると、プロンプトキャッシュを最も柔軟かつきめ細かく制御できます。プロンプト内で個々のキャッシュチェックポイントを設定できます。特定のモデルで許可されているキャッシュチェックポイントの最大数までキャッシュチェックポイントをさらに作成することで、キャッシュを追加できます。詳細については、「サポートされているモデル、リージョン、制限」を参照してください。
サポートされているモデル、リージョン、制限
次の表は、サポートされているモデルとそのトークンの最小値、キャッシュチェックポイントの最大数、キャッシュチェックポイントを許可するフィールドの一覧です。
| モデル名 | モデル ID | リリースタイプ | キャッシュチェックポイントあたりのトークンの最小数 | リクエストあたりのキャッシュチェックポイントの最大数 | プロンプトキャッシュチェックポイントを受け入れるフィールド |
|---|---|---|---|---|---|
Claude 3 Opus 4.1 |
anthropic.claude-opus-4-1-20250805-v1:0 |
一般提供 |
1,024 |
4 |
「system」、「messages」、「tools」 |
Claude Opus 4 |
anthropic.claude-opus-4-20250514-v1:0 |
一般提供 |
1,024 |
4 |
「system」、「messages」、「tools」 |
Claude Sonnet 4.5 |
anthropic.claude-sonnet-4-5-20250929-v1:0 |
一般提供 |
1,024 |
4 |
「system」、「messages」、「tools」 |
Claude Haiku 4.5 |
anthropic.claude-haiku-4-5-20251001-v1:0 |
一般提供 |
4,096 |
4 |
「system」、「messages」、「tools」 |
Claude Sonnet 4 |
anthropic.claude-sonnet-4-20250514-v1:0 |
一般提供 |
1,024 |
4 |
「system」、「messages」、「tools」 |
Claude 3.7 Sonnet |
anthropic.claude-3-7-sonnet-20250219-v1:0 |
一般提供 |
1,024 |
4 |
「system」、「messages」、「tools」 |
Claude 3.5 Haiku |
anthropic.claude-3-5-haiku-20241022-v1:0 |
一般提供 |
2,048 |
4 |
「system」、「messages」、「tools」 |
Claude 3.5 Sonnet v2 |
anthropic.claude-3-5-sonnet-20241022-v2:0 |
プレビュー |
1,024 |
4 |
「system」、「messages」、「tools」 |
Amazon Nova Micro |
amazon.nova-micro-v1:0 |
一般提供 |
1K1 |
4 |
「system」と「messages」 |
Amazon Nova Lite |
amazon.nova-lite-v1:0 |
一般提供 |
1K1 |
4 |
「system」と「messages」2 |
Amazon Nova Pro |
amazon.nova-pro-v1:0 |
一般提供 |
1K1 |
4 |
「system」と「messages」2 |
Amazon Nova Premier |
amazon.nova-premier-v1:0 |
一般提供 |
1K1 |
4 |
「system」と「messages」2 |
1: Amazon Nova モデルは、プロンプトキャッシュ用に最大 20,000 トークンをサポートします。
2: プロンプトキャッシュは主にテキストプロンプト用です。
Amazon Nova は、User および System メッセージを含むすべてのテキストプロンプトの自動プロンプトキャッシュを提供します。このメカニズムにより、明示的な設定がない場合でも、プロンプトが反復的な部分で始まる場合にレイテンシーのメリットを得られます。ただし、コスト削減を実現し、より一貫したパフォーマンス上のメリットを確保するには、明示的なプロンプトキャッシュにオプトインすることをお勧めします。
Claude モデルのキャッシュ管理の簡素化
Claude モデルの場合、Amazon Bedrock はキャッシュ管理のアプローチを簡素化し、キャッシュチェックポイントを手動で配置する複雑さを軽減します。正確なキャッシュチェックポイントの場所を指定する代わりに、静的コンテンツの最後にある 1 つのブレークポイントで自動キャッシュ管理を使用できます。
キャッシュ管理の簡素化を有効にすると、指定されたブレークポイントから最大約 20 個のコンテンツブロックまで遡って、以前のコンテンツブロック境界でのキャッシュヒットが自動的にチェックされます。これにより、モデルは最適なチェックポイントの場所を予測することなく、最も長く一致するプレフィックスをキャッシュから見つけることができます。これを使用するには、動的または可変コンテンツの前の、静的コンテンツの最後に 1 つのキャッシュチェックポイントを配置します。システムは最適なキャッシュ一致を自動的に見つけます。
よりきめ細かな制御を行うには、複数のキャッシュチェックポイント (Claude モデルの場合は最大 4 つ) を使用して正確なキャッシュ境界を指定することもできます。異なる頻度で変化するセクションをキャッシュする場合や、キャッシュされる内容を正確に制御したい場合は、複数のキャッシュチェックポイントを使用する必要があります。
重要
自動プレフィックスチェックは、キャッシュチェックポイントから約 20 個のコンテンツブロックのみを遡って調べます。静的コンテンツがこの範囲を超える場合は、複数のキャッシュチェックポイントを使用するか、プロンプトを再構築して、最も頻繁に再利用されるコンテンツをこの範囲内に配置することを検討してください。
はじめに
以下のセクションでは、Amazon Bedrock を介してモデルを操作する各方法でプロンプトキャッシュ機能を使用する方法の概要を示します。
Converse API には、複数ターンの会話でプロンプトキャッシュを実装するための高度で柔軟なオプションが用意されています。各モデルのプロンプト要件の詳細については、前のセクションの「サポートされているモデル、リージョン、制限」を参照してください。
リクエスト例
次の例は、Converse API へのリクエストの messages、system、または tools フィールドに設定されたキャッシュチェックポイントを示しています。特定のリクエストで、これらの場所のいずれかにチェックポイントを配置できます。例えば、Claude 3.5 Sonnet v2 モデルにリクエストを送信する場合、2 つのキャッシュチェックポイントを messages に、1 つのキャッシュチェックポイントを system に、もう 1 つのキャッシュチェックポイントを tools に配置することができます。Converse API リクエストの構造化と送信の詳細な例については、「Converse API オペレーションを使用して会話を実行する」を参照してください。
Converse API からのモデルレスポンスには、プロンプトキャッシュに固有の 2 つの新しいフィールドが含まれています。CacheReadInputTokens と CacheWriteInputTokens の値は、キャッシュから読み取られたトークンの数と、以前のリクエストのためにキャッシュに書き込まれたトークンの数を示します。これらは、Amazon Bedrock によって課金される値で、完全なモデル推論のコストよりも低い料金です。
InvokeModel API を呼び出すと、プロンプトキャッシュはデフォルトで有効になります。前の Converse API の例と同様に、キャッシュチェックポイントはリクエスト本文の任意の時点で設定できます。
InvokeModel リクエストの送信の詳細については、「InvokeModel で 1 つのプロンプトを送信する」を参照してください。
Amazon Bedrock コンソールのチャットプレイグラウンドで、プロンプトキャッシュオプションを有効にすると、Amazon Bedrock が自動的にキャッシュチェックポイントを作成します。
Amazon Bedrock プレイグラウンドでプロンプトを開始するには、「Generate responses in the console using playgrounds」の手順に従います。サポートされているモデルでは、プレイグラウンドでプロンプトキャッシュが自動的に有効になります。そうでない場合は、次の手順を実行してプロンプトキャッシュを有効にします。
-
左側のパネルで、[設定] メニューを開きます。
-
[プロンプトキャッシュ] の切り替えをオンにします。
-
プロンプトを実行します。
入力レスポンスとモデルレスポンスの組み合わせがチェックポイントに必要なトークンの最小数 (モデルによって異なります) に達すると、Amazon Bedrock は最初のキャッシュチェックポイントを自動的に作成します。チャットを続けると、トークンの最小数に達するたびに、モデルで許可されるチェックポイントの最大数まで新しいチェックポイントが作成されます。次のスクリーンショットに示すように、[プロンプトキャッシュ] の切り替えの横にある [キャッシュチェックポイントを表示する] を選択すると、キャッシュチェックポイントをいつでも表示できます。
プレイグラウンドレスポンスで [キャッシュメトリクス] ポップアップ (
) を表示して、モデルとのやり取りによってキャッシュとの間で読み書きされているトークンの数を表示できます。
会話の途中でプロンプトキャッシュの切り替えをオフにすると、モデルとのチャットを続行できます。