次の方法で共有


プロンプト キャッシュ

プロンプト キャッシュを使用すると、プロンプトの先頭のコンテンツが同一のより長いプロンプトに対する要求の全体的な待機時間とコストを削減できます。 このコンテキストにおける "プロンプト" とは、チャット完了要求の一部として、モデルに送信する入力を指します。 同じ入力トークンを何度も再処理する代わりに、モデルは、処理される入力データの一時キャッシュを保持して全体的なパフォーマンスを向上させることができます。 プロンプト キャッシュは、モデルの応答で返される出力コンテンツに対して、待機時間とコストの削減以外に影響を与えません。 サポートされているモデルの場合、キャッシュされたトークンは、入力トークンの価格の 50% 割引で課金されます。

サポートされているモデル

現時点では、次のモデルのみが Azure OpenAI でのプロンプト キャッシュをサポートしています。

  • o1-preview-2024-09-12
  • o1-mini-2024-09-12
  • gpt-4o-2024-05-13
  • gpt-4o-2024-08-06
  • gpt-4o-mini-2024-07-18

API のサポート

プロンプト キャッシュの公式サポートは、最初に API バージョン 2024-10-01-preview で追加されました。 現時点では、cached_tokens API 応答パラメーターをサポートしているのは、o1-preview-2024-09-12o1-mini-2024-09-12 モデルのみです。

作業の開始

要求でプロンプト キャッシュを利用するには、次の両方が必要です。

  • 長さが 1,024 トークン以上。
  • プロンプトの先頭の 1,024 トークンが同一であること。

プロンプトと、プロンプト キャッシュの現在のコンテンツの間で一致が見つかった場合、キャッシュ ヒットと呼ばれます。 キャッシュ ヒットは、チャット完了応答の prompt_token_details の下に cached_tokens として表示されます。

{
  "created": 1729227448,
  "model": "o1-preview-2024-09-12",
  "object": "chat.completion",
  "service_tier": null,
  "system_fingerprint": "fp_50cdd5dc04",
  "usage": {
    "completion_tokens": 1518,
    "prompt_tokens": 1566,
    "total_tokens": 3084,
    "completion_tokens_details": {
      "audio_tokens": null,
      "reasoning_tokens": 576
    },
    "prompt_tokens_details": {
      "audio_tokens": null,
      "cached_tokens": 1408
    }
  }
}

先頭の 1,024 トークンの後は、同一の 128 トークンが追加されるごとにキャッシュ ヒットが発生します。

先頭の 1,024 トークン内で 1 文字でも違うとキャッシュ ミスになり、cached_tokens 値が 0 に設定されます。 プロンプト キャッシュは既定で有効になっており、サポートされているモデルでは追加の構成は必要ありません。

キャッシュされるもの

o1 シリーズ モデルはテキストのみであり、システム メッセージ、画像、ツールの使用/関数呼び出し、構造化出力はサポートされていません。 これにより、これらのモデルのプロンプト キャッシュの有効性は、同一の 1024 トークン プレフィックスを持つ可能性が低いメッセージ配列のユーザー/アシスタント部分に制限されます。

gpt-4ogpt-4o-mini モデルでは、プロンプト キャッシュは以下に対してサポートされます。

サポートされるキャッシュ 説明
Messages (メッセージ) 完全なメッセージ配列: システム、ユーザー、アシスタントのコンテンツ
Images ユーザー メッセージに含まれる画像 (リンクまたは base64 でエンコードされたデータの両方)。 詳細パラメーターは、要求間で同じに設定する必要があります。
ツールの使用 メッセージ配列とツール定義の両方
構造化出力 構造化出力スキーマは、プレフィックスとしてシステム メッセージに追加されます

キャッシュ ヒットが発生する可能性を高めるには、メッセージ配列の先頭で繰り返しコンテンツが発生するように要求を構造化する必要があります。

プロンプト キャッシュを無効にすることはできますか?

プロンプト キャッシュは既定で有効になっています。 オプトアウト オプションはありません。

プロビジョニング済みデプロイでのプロンプト キャッシュの動作

プロビジョニング済みデプロイでのサポートされているモデルの場合、キャッシュされた入力トークンの最大 100% が割り引かれます。 詳しくは、プロビジョニングされたスループットに関するドキュメントを参照してください。