プロンプト キャッシュ: 繰り返し通話コストを削減する方法
アプリケーションがすべてのリクエストの開始時に同じ大きなテキストの塊、長いシステム プロンプト、ドキュメント、サンプルのセットを送信する場合、毎回再処理するために全額を支払うことになります。プロンプト キャッシュを使用すると、プロバイダーはその繰り返し部分を保存し、それを再利用する場合の料金を大幅に下げることができます。うまく使用すると、反復的なワークロードの入力コストを大幅に削減できます。
プロンプト キャッシュが実際に行うこと
モデルが入力を処理するとき、ほとんどの作業は 1 単語の出力を生成する前に入力トークンに対して行われます。プロンプト キャッシュでは、プロンプトのプレフィックスの処理状態が保存されるため、次回の呼び出しで同じプレフィックスを再度処理する必要がなくなります。
キーワードは 接頭語。キャッシュはプロンプトの先頭から、内容が変わり始める時点まで機能します。すべてのリクエストの最初の 5,000 トークンが同一である場合 (たとえば、固定命令ブロックと参照ドキュメント)、それらのトークンはキャッシュできますが、最後の固有のユーザーの質問は通常どおり処理されます。
なぜお金が節約できるのか
プロバイダーは、新しく処理されたトークンよりも、キャッシュから読み取られたトークンの料金をはるかに安くします。一般的な構造は、キャッシュされた入力トークンのコストが通常の入力レートのほんの一部、多くの場合約 10 分の 1 ですが、正確な割引額はプロバイダーによって異なります。
以下に説明的な例を示します (わかりやすくするためにレートを作成しました)。通常、入力には 100 万トークンあたり 3 ドルのコストがかかり、キャッシュされた読み取りには 100 万トークンあたり 0.30 ドルのコストがかかるとします。 10,000 トークンの固定プロンプトを 1,000 回の呼び出しで送信する場合、毎回新たに処理するには、10,000 x 1,000 = 1,000 万トークン x 3 ドル = 30 ドルのコストがかかります。キャッシュを使用すると、最初の呼び出しで全額が支払われ、残りはキャッシュから読み取られます。およそ 10,000 x 3 ドル/100 万 + 999 万 x 0.30 ドル/100 万で、3 ドル近くになります。これは、繰り返しのプレフィックスを節約できる規模です。
通常、書き込みコストと時間制限があります
キャッシングは完全に無料ではありません。ほとんどのプロバイダーは、少額のプレミアムを請求します。 書く コンテンツを初めてキャッシュに入れるとき、それらのトークンの通常の入力速度よりも約 25% 高い場合があります。それは後続の読み取りで回復されるため、同じプレフィックスが十分な回数再利用された場合にのみキャッシュが効果を発揮します。
キャッシュの有効期限も切れます。一般的な有効期間は、非アクティブな状態が数分間続くことですが、一部のプロバイダーは追加料金を支払うことでより長い保存期間を提供しています。通話が時間的に離れて分散されている場合、その間にキャッシュが期限切れになり、メリットが失われる可能性があります。キャッシュすると、同じコンテンツを大量に高頻度で再利用できるようになります。
キャッシュによりコストが節約されるが、コンテキスト領域は節約されない
よくある誤解は、キャッシュされたプレフィックスが何らかの理由でモデルのコンテキスト ウィンドウから除外され、他のコンテンツのための余地が残っているというものです。そうではありません。キャッシュされたトークンは引き続きリクエストの一部であり、モデルの合計コンテキスト制限にカウントされます。プロバイダーはトークンを再処理するのではなく、保存された状態から読み取りますが、新しく処理されたかのように同じコンテキスト バジェットを占有します。
キャッシュすると、支払う金額と、トークンが処理されるまでの待ち時間が削減されます。モデルが一度に表示できるテキストの量は増加しません。コンテキスト ウィンドウの制限に達している場合は、キャッシュでは修正されません。履歴をトリミングしたり、要約したり、より大きなウィンドウを持つモデルに移動したりする必要があります。キャッシュは、プロンプトがすでに適合している場合にのみ役立ちます。
ほとんどのプロバイダーの分あたりのトークン レート制限にも同じことが当てはまります。通常、キャッシュされたトークンは、割引価格であっても、分あたりのトークン クォータに対してカウントされます。大容量のキャッシュされたワークロードは、請求額が少額であってもレート制限を受ける可能性があります。これは、リミッターがドルではなくトークンの数を監視しているためです。
キャッシングに価値がある場合
即時キャッシュは特定のパターンで効果を発揮します。
- 長い固定システム プロンプト 多くのユーザーまたはリクエストにわたって再利用されます。
- 文書Q&A 1 つの大きなドキュメントがセッション中に何度もクエリされる場合。
- 数発のプロンプト 決して変更されない大きな例のブロックが含まれています。
- チャットボット ここでは、初期の会話ターンは一定のままであり、新しいターンが追加されます。
すべてのリクエストが一意である場合、固定プレフィックスが小さい場合 (トークンが数百個)、または呼び出しがまれで遠く離れているためキャッシュの有効期限が切れ続ける場合には、これを行う価値はありません。
キャッシュ用のプロンプトを構成する方法
黄金律は次のとおりです。 安定したコンテンツを最初に置き、可変的なコンテンツを最後に置きます。変更のないシステム手順、参考資料、および例が上部に配置され、ユーザーの特定の質問が下部に配置されるようにプロンプトを順序付けします。キャッシュは共有プレフィックスに対して機能するため、先頭付近にバリエーションがあると、それ以降のすべてのキャッシュが破壊されます。
プロンプトの前半に動的な値 (タイムスタンプ、ユーザー名、ランダム ID) を散りばめることは避けてください。初期に 1 文字でも変更されると、キャッシュが無効になる可能性があります。これらの動的ビットは、それらが属するリクエストの末尾に保持してください。
見返りの見積もり
キャッシュが役立つかどうかを判断するには、トークン内の固定プレフィックス サイズと、キャッシュ ウィンドウ内でそれを再利用する回数の 2 つの数値を比較します。プレフィックス内のトークンが多くなり、それを再利用する回数が増えるほど、勝利は大きくなります。小さなプレフィックスを 2 回再利用しても、ほとんど何も節約されません。 20,000 トークンのプレフィックスが 1 時間あたり何百回も再利用されるため、キャッシュによって料金が変わります。
LLM コスト計算ツールで両方のシナリオをモデル化するには、完全に標準入力レートで価格設定された実行と、ほとんどの入力トークンがキャッシュされたレートで価格設定された実行を比較します。 2 つの合計を並べて確認すると、決定が明確になり、モデルの比較ページには、どのプロバイダーがキャッシュされたトークンの価格を公開しているかが表示されます。
学び続ける
関連ツール
よくある質問
プロンプト キャッシュによってモデルの出力は変わりますか?
いいえ。キャッシュでは、コストと待ち時間を節約するために、処理された入力状態のみが再利用されます。基礎となるトークンが同一であるため、モデルはキャッシュを行わない場合と同じ出力を生成します。
キャッシュされたプロンプトはどれくらいの期間有効ですか?
プロバイダーによって異なりますが、一般的なデフォルトでは、キャッシュの有効期限が切れるまでに数分間非アクティブな状態が続きます。一部のプロバイダーは、追加料金で延長保存を提供しています。頻繁に再利用すると、キャッシュが温かく保たれます。
機密データをキャッシュすることにリスクはありますか?
キャッシュされたコンテンツはアカウントに関連付けられており、ユーザー自身の繰り返しのリクエストに対応するためにのみ使用されますが、それでもプロバイダーのデータ ポリシーに従い、保存が許可されていないものはキャッシュしないようにする必要があります。
プロンプト キャッシュを使用すると、コンテキスト ウィンドウにより多くのコンテンツを表示できますか?
いいえ。キャッシュされたトークンは引き続きモデルの合計コンテキスト制限にカウントされ、通常は 1 分あたりのトークンのレート制限にもカウントされます。キャッシュによって、すでにコンテキストの予算内にあるトークンのコストとレイテンシーが削減されますが、その予算が拡大されるわけではありません。
教育のみであり、経済的なアドバイスではありません。