キャッシュトークン

Max PrilutskiyCEO 兼 共同創業者更新日:2 か月前 · 読了目安 1分

ローカライゼーションエンジンがテキストを翻訳する際、LLM に送るプロンプトには、毎回同じ部分と、リクエストごとに変わる部分があります。プロンプトキャッシュを使うと、エンジンはその固定部分を毎回あらためて処理するのではなく再利用できます。再利用されたトークンは使用量に cache tokens として表示され、通常の入力トークンよりはるかに低いコストで扱われます。

翻訳プロンプトの仕組み#

エンジンがモデルに送る各リクエストは、複数のレイヤーを重ねて組み立てられます。同じエンジンとロケールのすべてのリクエストで共通する固定レイヤーもあれば、リクエストごとに変わる動的なレイヤーもあります。

レイヤー固定 / 動的キャッシュ
システムプロンプト — エンジンの識別情報、ローカライゼーションルール、文法すべてのエンジンで共通して固定はい
ロケールごとのルールとブランドボイス編集するまで変わりませんはい
このリクエスト向けに取得された用語集の用語動的 — リクエストごとに変化いいえ
翻訳対象のテキスト動的いいえ

固定レイヤーは、プロンプト先頭の連続したプレフィックスを構成します。エンジンはそのプレフィックスの終端を cache breakpoint としてマークします。ここまでの部分はキャッシュして再利用でき、それ以降の部分 — リクエストごとの用語集、例、入力テキスト — は毎回新しく送信されます。

用語集がキャッシュされない理由

用語集は、いま翻訳している正確なテキストに基づいてリクエストごとに取得されるため、毎回内容が変わります。これを cache breakpoint の後ろに置くことで、どの用語集の用語が取り込まれる場合でも、それ以前のプロンプト部分は再利用可能なまま保てます。

キャッシュ済み入力のほうが安い理由#

特定のエンジンとロケールに対する最初のリクエストでは、固定プレフィックスがプロバイダのキャッシュに 書き込まれます。その後、このプレフィックスを再利用する各リクエストでは、最初から再処理する代わりにキャッシュから 読み出されます。プロバイダはこのキャッシュ読み出しを通常の入力トークン単価の一部で課金するため、変わらないプロンプトの大半を、毎回フル価格で再課金されずに済ませられます。

キャッシュは短時間だけ保持され、エンジンではなくモデルプロバイダによって管理されます。つまり恩恵が最も大きいのは、同じエンジンとロケールで短時間に多くの翻訳を行うケースです。プレフィックスがまだ温まっている間にリクエストが到着すれば、キャッシュからそのまま読み出されます。

rulesetbrand voice を編集するとプレフィックスが変わるため、次のリクエストでは新しいプレフィックスが作成されます。どちらも組織で管理・共有されているため、1回の編集で、それらを適用しているすべてのエンジンのプレフィックスが無効になります。

キャッシュは自動で有効です

特別な設定は必要ありません。リクエストでキャッシュが使われるかどうかは、それを処理するモデルによって決まります。Anthropic と Google のモデルは明示的な cache breakpoints を使い、OpenAI のモデルは長いプレフィックスを自動でキャッシュし、プロバイダによってはキャッシュしない場合もあります。エンジンはモデルごとに適切な動作を適用します。

得られるメリット#

  • コスト削減 — 固定プレフィックスは最初に一度だけフル価格で支払われ、その後の繰り返しリクエストでは、毎回割安なキャッシュ読み出し料金が適用されます。
  • 応答時間の短縮 — キャッシュされたトークンは再処理が不要なため、ウォーム状態のリクエストはより速く返ってきます。
  • 設定不要 — キャッシュはデフォルトで有効になっており、エンジン設定で何かをオンにする必要はありません。

この効果は、同じエンジンとロケールに対して継続的にトラフィックが流れるほど大きくなります。まさに本番のローカライゼーションパイプラインのように、同じ設定で次々とリクエストを処理するケースにぴったりです。

使用量で cache tokens を確認する#

各翻訳レスポンスには、cache tokens と新規入力を分けた使用量の内訳が含まれます。

json
{
  "usage": {
    "inputTokens": 1200,
    "outputTokens": 800,
    "cacheReadTokens": 950,
    "cacheWriteTokens": 0
  }
}
項目意味
inputTokensこのリクエストで新たに処理されたプロンプトトークン
outputTokensモデルが生成したトークン
cacheReadTokensプロバイダのキャッシュから提供されたプロンプトトークン。キャッシュされたものがない場合は 0
cacheWriteTokensこのリクエストでキャッシュに書き込まれたプロンプトトークン — キャッシュミス / 初回呼び出し。

エンジンとロケールに対する最初のリクエストでは、通常、正の cacheWriteTokens(プレフィックスが書き込まれている状態)と、cacheReadTokens0 で表示されます。キャッシュがまだ温まっている間の後続リクエストでは、これが反転し、cacheReadTokens が増え、cacheWriteTokens0 まで下がります。エンジン全体のトークン使用量は、Reports でまとめて確認できます。

次のステップ#