Gemini Context Caching入門:マルチモーダルキャッシュでコスト削減

AIを知りたい

Gemini APIにもキャッシュ機能があるって聞いたんですが、Claudeのとは違うんですか?

AIエンジニア

GeminiにはContext Cachingという機能があります。Claudeのプロンプトキャッシュと似たコンセプトですが、実装方法が異なります。

AIを知りたい

どう違うんですか?

AIエンジニア

Geminiの場合は明示的にキャッシュを作成して名前を付けて管理できます。有効期限も柔軟に設定可能です。

Context Cachingとは

Context Cachingは、Google Gemini APIの機能で、大量のコンテキスト(テキスト、画像、動画など)をキャッシュとして保存し、複数のリクエストで再利用できる仕組みです。特にマルチモーダルなコンテンツを繰り返し参照する場合に大幅なコスト削減と高速化を実現します。

Context Cachingの基本的な使い方

AIを知りたい

実際にどうやって使うんですか?

AIエンジニア

Pythonでの実装例を見てみましょう。

import google.generativeai as genai
import datetime

genai.configure(api_key="YOUR_API_KEY")

# キャッシュの作成
cache = genai.caching.CachedContent.create(
    model="gemini-1.5-pro",
    display_name="技術ドキュメント",
    system_instruction="以下のドキュメントを参照して回答してください。",
    contents=[
        "大量の技術ドキュメントの内容をここに..."
    ],
    ttl=datetime.timedelta(hours=1)
)

# キャッシュを使ってモデルを作成
model = genai.GenerativeModel.from_cached_content(cache)

# 複数のクエリでキャッシュを再利用
response1 = model.generate_content("APIの使い方を教えて")
response2 = model.generate_content("エラーハンドリングについて教えて")

Claude Prompt CachingとGemini Context Cachingの比較

AIを知りたい

ClaudeとGeminiのキャッシュ機能の違いを教えてください!

AIエンジニア

特徴をまとめて比較しましょう。

項目 Claude Prompt Caching Gemini Context Caching
作成方法 リクエスト内でcache_controlを指定 明示的にキャッシュオブジェクトを作成
有効期限 最終使用から5分 カスタム設定可能(分〜時間)
対応コンテンツ テキスト テキスト・画像・動画・音声
コスト削減率 最大90% 最大75%
最小トークン数 1024トークン 32,768トークン
管理方法 自動(暗黙的) 明示的(一覧・削除可能)

マルチモーダルキャッシュの活用

AIを知りたい

動画もキャッシュできるんですか?

AIエンジニア

はい!Geminiの大きな強みはマルチモーダルコンテンツのキャッシュです。長時間の動画を一度キャッシュすれば、その内容について何度でも質問できます。

# 動画コンテンツのキャッシュ
video_file = genai.upload_file("training_video.mp4")

cache = genai.caching.CachedContent.create(
    model="gemini-1.5-pro",
    display_name="トレーニング動画",
    contents=[video_file],
    ttl=datetime.timedelta(hours=2)
)

model = genai.GenerativeModel.from_cached_content(cache)
response = model.generate_content("この動画の要約を作成して")

コスト最適化のポイント

AIを知りたい

どういうときにキャッシュを使うべきですか?

AIエンジニア

コスト対効果を考えて判断しましょう。

ユースケース 推奨度 理由
大量ドキュメントへの複数質問 ★★★ キャッシュのコスト回収が容易
動画・音声分析の繰り返し ★★★ アップロード時間も節約
チャットボットの固定知識 ★★☆ TTL管理が必要
一回限りの質問 ★☆☆ キャッシュ作成コストが無駄

AIを知りたい

使い分けが大事なんですね!

AIエンジニア

その通りです。繰り返し同じコンテキストを使う場合にキャッシュは絶大な効果を発揮します。プロジェクトの特性に合わせて選択してください!

関連記事