5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Geminiにおけるコンテキストキャッシュを検討すべきタイミング

Last updated at Posted at 2025-05-05

課題感

生成AIを使用する際に同じ入力トークン(ファイルなど)をモデルに何度も渡すことがあります。この際にインプットのトークン数が多いと、プロンプトを実行するたびに入力のトークン数の処理が必要になり利用料金が増加してしまいます。
ここでコンテキストキャッシュを利用することで入力トークンをキャッシュに保存してから、キャッシュに保存されたトークンを後続のリクエストで参照することができます。
結果的にキャッシュに保存されたトークンを使用する方が、同じトークンを繰り返し渡すよりも費用が少なくなります。

一方で入力トークンの数やプロンプトの実行する回数によって毎回入力トークンを処理すべきか、コンテキストキャッシュを検討すべきかが変わってくるのではないかと考えました。

そこでどのような場合にコンテキストキャッシュを使用すべきかを検討しまとめたいと思います。

コンテキストキャッシュの概要

ドキュメントによるとコンテキストキャッシュを使用する状況は以下とのことです。
ユースケースとしては入力に使用するトークン数が多く、それに対して何度もクエリを行う場合が考えられます。

  • 広範なシステム指示を伴う chatbot
  • 長時間の動画ファイルの繰り返し分析
  • 大規模なドキュメント セットに対する繰り返しのクエリ
  • 頻繁なコード リポジトリの分析やバグ修正

コンテキストキャッシュは無料のサービスではなく運用コストを削減するための有料のサービスで以下の特徴があります。

  • キャッシュトークン数:通常の入力トークン数と比較して割引料金で請求
  • 保存期間:キャッシュに保存されたトークンの保存時間(TTL)。キャッシュに保存されたトークン数のTTL時間に基づいて課金。TTL の最小値や最大値に制限はなし
  • その他の項目:入力トークンや出力トークンがキャッシュされていない場合などは別の料金が適用

また注意点としては以下もあります。

  • コンテキスト キャッシュの最小入力トークン数は4,096で、最大数は指定されたモデルの最大数と同じです。
  • モデルは、キャッシュに保存されたトークンと通常の入力トークンを区別しません。キャッシュに保存されたコンテンツは、プロンプトの接頭辞です。
  • コンテキストキャッシュには特別なレートや使用量の上限はありません。GenerateContent の標準レートの上限が適用され、トークンの上限にはキャッシュに保存されたトークンが含まれます。
  • キャッシュに保存されているトークン数は、キャッシュ サービスの create、get、list オペレーションから usage_metadata で返されます。また、キャッシュを使用している場合は GenerateContent でも返されます。

コンテキストキャッシュの料金体系

コンテキストキャッシュの料金はGeminiのモデルによって異なります。
なおGemini 2.5 Flashのモデルではキャッシュの機能は未実装となります。

Gemini 2.5 Pro プレビュー

  • インプット価格:1.25USD(プロンプトトークン数20万超:2.50USD)
  • コンテキスト キャッシュ保存の料金:0.31USD(プロンプトトークン数20万超:0.625USD)
  • コンテキスト キャッシュ保存(ストレージ):4.50USD / 100万トークン / 時間

Gemini 2.0 Flash

  • インプット価格:0.10USD(音声:0.70USD)
  • コンテキスト キャッシュ保存の料金:0.025USD(音声:0.175USD)
  • コンテキスト キャッシュ保存(ストレージ):1.00USD / 100万トークン / 時間

Gemini 1.5 Pro

  • インプット価格:1.25USD(プロンプトトークン数12.8万超:2.5USD)
  • コンテキスト キャッシュ保存の料金:0.3125USD(プロンプトトークン数12.8万超:0.625USD)
  • コンテキスト キャッシュ保存(ストレージ):4.50USD / 100万トークン / 時間

Gemini 1.5 Flash

  • インプット価格:0.075USD(プロンプトトークン数12.8万超:0.15USD)
  • コンテキスト キャッシュ保存の料金:0.01875USD(プロンプトトークン数12.8万超:0.0375USD)
  • コンテキスト キャッシュ保存(ストレージ):1.00USD / 100万トークン / 時間

わかりやすいようにスプレッドシートにもまとめてみました。
スクリーンショット 2025-05-05 10.32.22.png

冒頭で記載の通りコンテンツキャッシュを利用するとインプットの料金が安くなるだけではなく、キャッシュのストレージ保存料金もかかるため細かい資産の上での検討が必要になります。

コンテキストキャッシュの検討

コンテキストキャッシュ(以下、キャッシュ)を検討のための試算を実施するにあたって以下によって料金が変わるための考慮が必要です。

  • Geminiのモデル
  • 入力トークン数
  • リクエスト数
  • キャッシュのストレージの保存時間

上記を考慮の上で試算結果をスプレッドシートベースでまとめてみました。

スプレッドシートを参照するにあたって以下が前提条件となります。

  • リクエスト数は50回、100回、200回で試算
  • ストレージの保存時間は12時間、24時間、48時間で試算
  • 上記の合計9パターン(3×3)で試算
  • 緑塗りがキャッシュありの方が料金が安く、赤塗りがキャッシュありの方が料金が高い

リクエスト数:50回、ストレージの保存時間:12時間

スクリーンショット 2025-05-05 11.04.45.png

スクリーンショット 2025-05-05 11.04.52.png

リクエスト数:50回、ストレージの保存時間:24時間

スクリーンショット 2025-05-05 11.05.47.png

スクリーンショット 2025-05-05 11.05.52.png

リクエスト数:50回、ストレージの保存時間:36時間

スクリーンショット 2025-05-05 11.06.15.png

スクリーンショット 2025-05-05 11.06.21.png

リクエスト数:100回、ストレージの保存時間:12時間

スクリーンショット 2025-05-05 11.06.57.png

スクリーンショット 2025-05-05 11.07.01.png

リクエスト数:100回、ストレージの保存時間:24時間

スクリーンショット 2025-05-05 11.06.57.png

スクリーンショット 2025-05-05 11.07.39.png

リクエスト数:100回、ストレージの保存時間:36時間

スクリーンショット 2025-05-05 11.06.57.png

スクリーンショット 2025-05-05 11.07.50.png

リクエスト数:200回、ストレージの保存時間:12時間

スクリーンショット 2025-05-05 11.08.23.png

スクリーンショット 2025-05-05 11.08.29.png

リクエスト数:200回、ストレージの保存時間:24時間

スクリーンショット 2025-05-05 11.08.23.png

スクリーンショット 2025-05-05 11.09.20.png

リクエスト数:200回、ストレージの保存時間:36時間

スクリーンショット 2025-05-05 11.08.23.png

スクリーンショット 2025-05-05 11.09.37.png

試算結果の考察

  • ストレージの保存時間が同じ場合、リクエスト数が増えれば増えるほどキャッシュありの方が安くなる傾向
  • リクエスト数が同じ場合、キャッシュの保存時間が長くなるほどキャッシュなしの方が安くなる傾向
  • 入力トークン数によってキャッシュあり/なしで料金に大きな差はない
  • 高性能なGeminiのモデルの場合キャッシュありの方が安くなる傾向
  • キャッシュの保存時間が24時間でリクエスト数が50回では他の条件を考慮してもキャッシュなしの方が安い

よって同じ入力トークンに対して高性能なモデル(Geminiの場合Pro)で24時間で50回以上のリクエストがある場合にはキャッシュの検討をし始めても良いのではないでしょうか。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?