Skip to main content
Prompt Caching (プロンプトキャッシング) は、繰り返し使用されるプロンプトのプレフィックス (接頭部分) に対する計算結果をキャッシュすることで、処理時間を節約する機能です。キャッシュされるのはプロンプトのテキストそのものではなく、それを処理するために行われた計算です。複数のリクエストが同じ冒頭テキスト (システムプロンプトやドキュメントなど) を共有する場合、SambaNova はそれらのトークンを最初から再処理する代わりに、キャッシュされた結果を利用します。最初の数リクエストでサービングノード上にキャッシュが作成され、同じプレフィックスが繰り返し観測されるにつれて節約効果が積み上がります。継続的なトラフィックでは、プレフィックスが数回観測された後、ヒット率は通常 90% 以上に達します。 Prompt Caching は、SambaStack の v2.0.2 リリース以降、MiniMax-M2.7 向けの安定版 (一般提供) 機能です。 v2.2.3 では、minimax-m3-acb-prefix-caching バンドルを対象として、MiniMax-M3 でも Preview (プレビュー) 機能として Prompt Caching を利用できます。このバンドルはテキスト入力のみを受け付けます。
本ページでは、Prompt Caching の使い方と usage フィールドの読み方を説明します。モデルの提供状況については、対応モデルとバンドル をご覧ください。

Prompt Caching を使用すべきケース

Prompt Caching は、入力の大部分がリクエスト間で繰り返される場合に、最も大きな節約効果を発揮します。 cached_tokens がリクエストをまたいで 0 のままの場合、入力がキャッシュ可能なプレフィックスを共有していません。システムプロンプトやコンテキストブロックが呼び出し間で安定しているかどうかを見直してください。

Prompt Caching の仕組み

Automatic Prefix Caching (APC: 自動プレフィックスキャッシング) は MiniMax-M2.7 で利用できますが、SambaStack 管理者が次の手順で有効化する必要があります。
  1. プロンプトキャッシング用バンドル——dyt-minimax-m2p7-32-64-160-192k-pc (32K–192K) または dyt-minimax-m2p7-32k-pc (最大 32K)——をデプロイするか、minimax-m2p5-dyt-pc-cd モデルプロファイルを使用して ModelDeployment リソースで MiniMax-M2.7 を直接デプロイします。
  2. ModelDeployment リソースに次の環境変数を設定します。
プロファイル名 minimax-m2p5-dyt-pc-cd は、MiniMax-M2.5 と MiniMax-M2.7 が共有する PEF を指しています。そのため、MiniMax-M2.7 をサービングする場合でも m2p5 というセグメントが含まれるのは想定どおりです。
有効化されると、APC はリクエスト間で共有されるプレフィックスを検出し、キャッシュされた計算結果を透過的に再利用します。API リクエストの変更は必要ありません。 Prompt Caching は OpenAI 標準に準拠しています。キャッシュヒットは自動的に検出され、レスポンスの usage フィールドで報告されます。cache_control マーカーやその他のリクエストボディの変更は不要です。 APC は各サービングインスタンスに対してローカルに動作します。キャッシュされた KV ステートはローカルの DDR に保存され、インスタンス間で転送されません。マルチインスタンスのデプロイメントでは、プレフィックスは各インスタンスで処理された後に、それぞれのインスタンス上で独立してキャッシュされます。MiniMax-M2.7 のシーケンスステートプールのサイズは 192K です。

MiniMax-M3 での Prompt Caching の有効化

  1. 連続バッチングを aggregate に設定して、minimax-m3-acb-prefix-caching バンドルをデプロイします。構成のデプロイ をご参照ください。
  2. ModelDeployment リソースに次の環境変数を設定します。

レスポンスでのキャッシュ利用状況の確認

キャッシュが有効なモデルからのすべての /v1/chat/completions レスポンスには、usage フィールドにキャッシュトークン数が含まれます。以下は、前のリクエストと同じ長いシステムプロンプトを共有する 2 回目のリクエストの例です。プレフィックスは再処理されず、キャッシュから提供されます。 リクエスト (2 回目の呼び出し: キャッシュ作成済み)
レスポンス
残りの入力 = prompt_tokens − cached_tokens。この部分は標準の入力レートで課金されます。 cached_tokens の値が 0 の場合、そのリクエストでキャッシュヒットが発生しなかったことを意味しますが、エラーではありません。これは、特定のプレフィックスに対する最初のリクエスト (キャッシュ作成中) や、入力がキャッシュ済みのどのエントリともプレフィックスを共有していない場合に発生します。 Prompt Caching に対応していないモデルでは、cached_tokens は常に 0 であり、課金は変わりません。

コード例

請求への影響

キャッシュされたトークンは、標準の入力トークンよりも低いレートで課金されます。キャッシュが有効なリクエストの課金計算は以下のとおりです。 たとえば、入力トークン合計 5,797 のうち 4,096 がキャッシュから提供されたリクエストの場合、1,701 トークンに標準入力レート、4,096 トークンにキャッシュ済み入力レートが適用されます。出力の課金は変わりません。 cache_creation_tokens はレスポンスに表示されますが、情報提供のみを目的としています。このリクエストでキャッシュの作成に使用されたトークンを表し、現時点では追加料金は発生しません。 Prompt Caching のないモデルでは cached_tokens は常に 0 であるため、計算式は標準の計算と同じになり、課金に変更はありません。
MiniMax-M2.7 のキャッシュ済み入力レートを含む最新の料金については、SambaNova の担当者にお問い合わせください。

制限事項

  • Prompt Caching は MiniMax-M2.7 で利用できるほか、MiniMax-M3 でも Preview として利用できます (テキスト入力のみ)。
  • Minimax-M2.7 向けに Prompt Caching を有効化したカスタムバンドルには、他のモデルを含めることはできません。
  • キャッシュの状態は各サービングインスタンスに対してローカルです。マルチインスタンスのデプロイメントでは、プレフィックスは各インスタンスで処理された後に、それぞれのインスタンス上で独立してキャッシュされます。
  • APC は共有プレフィックスに対して動作します。キャッシュ境界より前で分岐するリクエストは、キャッシュヒットになりません。
  • MiniMax-M2.7 では、キャッシュ可能なプレフィックス (シーケンスステート) の最大長は 192K トークンです。
  • キャッシュの追い出しには LRU (least recently used) 方式が使用されます。キャッシュの保持期間はシステム負荷によって変動し、保証されません。
  • キャッシュの対象となるには、プレフィックスに 4,096 トークン以上が含まれている必要があります。
  • MiniMax-M3 では、1.0 以外の repetition_penalty はサポートされていません。