GEMINI LABEN
FLASH36 — 7月21日公開のGemini 3.6 Flashは出力トークンが約17%少なく、3.5 Flashより低価格です。コード編集の余計な書き換えや実行ループも減っていますCYBER — Gemini 3.5 Flash Cyberは脆弱性の発見・検証・修正パッチ作成に絞った軽量モデルですCOMPUTER — Computer UseがGemini APIとGemini Enterpriseの組み込みクライアントサイドツールとして利用できるようになりましたSPARK — Gemini Sparkの日本語提供が7月16日に始まりました。Google AI Ultraプランのユーザーから順次展開されていますPARALLEL — Sparkが複数の参照ソースを並行処理できるようになり、Docs・Sheets・Slidesでの画像追加や編集を代行できる範囲も広がりましたSTUDENT — 日本を含む4か国で18歳以上の学生向け無料アップグレードが提供され、Google AI ProとNotebookLM、2TBのストレージが使えますFLASH36 — 7月21日公開のGemini 3.6 Flashは出力トークンが約17%少なく、3.5 Flashより低価格です。コード編集の余計な書き換えや実行ループも減っていますCYBER — Gemini 3.5 Flash Cyberは脆弱性の発見・検証・修正パッチ作成に絞った軽量モデルですCOMPUTER — Computer UseがGemini APIとGemini Enterpriseの組み込みクライアントサイドツールとして利用できるようになりましたSPARK — Gemini Sparkの日本語提供が7月16日に始まりました。Google AI Ultraプランのユーザーから順次展開されていますPARALLEL — Sparkが複数の参照ソースを並行処理できるようになり、Docs・Sheets・Slidesでの画像追加や編集を代行できる範囲も広がりましたSTUDENT — 日本を含む4か国で18歳以上の学生向け無料アップグレードが提供され、Google AI ProとNotebookLM、2TBのストレージが使えます
記事一覧/Gemini 入門
Gemini 入門/2026-03-14初級

Gemini のモデル選びで迷わないために — コスト・速度・品質の判断軸と実装

Gemini 2.5 Pro / Flash / Flash Lite / Gemini 3 Pro / Flash を、コスト・速度・品質の3軸でどう使い分けるか。google-genai SDK の正しい実装コードと、自動化の現場で使っている判断軸をまとめました。

Gemini76model selection2.5 ProFlash2comparison4

Gemini のモデル選びで迷わないために — コスト・速度・品質の判断軸と実装

最初に正直なところをお伝えします。モデル選びでいちばん時間を溶かすのは、各モデルのスペック比較ではありません。「このタスクに Pro は過剰なのか、それとも Flash では足りないのか」という、その都度の小さな判断です。ベンチマークの数字を眺めても、ここはなかなか決まりません。

私自身、4つのAIブログを自動で更新するパイプラインを個人開発で回しているのですが、下書きまで Pro で書かせていた時期は、月のAPIコストがじわじわ膨らんでいきました。下書きは Flash、最終仕上げだけ Pro に切り替えたところ、品質はほとんど変わらないままコストが半分以下になりました。モデル選びは「一番賢いモデルを選ぶ」作業ではなく、「タスクに対して過不足のないモデルを当てる」作業なのだと、このとき腑に落ちました。

ここからは、その判断軸を4つに整理し、google-genai SDK の動くコードと一緒に共有します。

Gemini モデルラインアップ概要

現在利用可能な主要な Gemini モデルは以下の通りです。

モデル発表用途コンテキストウィンドウ
Gemini 2.5 Pro2024年12月複雑な推論・コーディング・マルチモーダル1,000,000 トークン
Gemini 2.5 Flash2024年12月バランス型・チャット・要約1,000,000 トークン
Gemini 2.5 Flash Lite2025年3月リアルタイム・高速応答100,000 トークン
Gemini 3 Pro2025年2月最新の推論能力・複雑なタスク2,000,000 トークン
Gemini 3 Flash2025年2月次世代バランス型500,000 トークン
ℹ️
モデル名の「Pro」と「Flash」は性格の違いです。Pro は精度方向に振った重いモデル、Flash は速度とコストのバランスに振った軽いモデル、と捉えると選びやすくなります。ラインアップは更新が速いので、名前そのものより「どの性格を当てるか」を先に決めるのが実用的です。

詳細な比較表

パフォーマンス指標

指標2.5 Pro2.5 Flash2.5 FL3 Pro3 Flash
推論品質⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
応答速度高速非常に高速遅い高速
コスト効率最低
マルチモーダル対応優秀優秀基本優秀優秀
コンテキストウィンドウ1M1M100K2M500K

API 料金を見積もるコード

料金は改定されるため、暗記するより「自分のトラフィックでいくらになるか」を計算してしまうのが確実です。下記は単価を辞書に持たせ、入力・出力トークン数からコストを推定する関数です。実際の最新単価は公式の料金ページで確認して pricing を書き換えてください。

# 入力・出力トークン単価の計算例(単価は $/百万トークン・要確認)
pricing = {
    "gemini-2.5-pro": {"input": 0.30, "output": 1.20},
    "gemini-2.5-flash": {"input": 0.10, "output": 0.40},
    "gemini-2.5-flash-lite": {"input": 0.04, "output": 0.12},
    "gemini-3-pro": {"input": 0.50, "output": 2.00},
    "gemini-3-flash": {"input": 0.15, "output": 0.60},
}
 
def estimate_cost(model_name, input_tokens, output_tokens):
    """API 利用コストを推定"""
    rates = pricing.get(model_name)
    if rates is None:
        raise ValueError(f"未登録のモデルです: {model_name}")
    input_cost = (input_tokens / 1_000_000) * rates["input"]
    output_cost = (output_tokens / 1_000_000) * rates["output"]
    return input_cost + output_cost
 
# 例:100万入力トークン、20万出力トークン
for m in ("gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite"):
    print(f"{m}: ${estimate_cost(m, 1_000_000, 200_000):.2f}")

同じ100万入力・20万出力でも、Pro と Flash Lite ではおよそ一桁コストが変わります。この差が、毎日走るバッチ処理だと月末に効いてきます。

タスク別モデル選択ガイド

ここからは google-genai SDK の正しい呼び出し方と一緒に、用途別の当て方を見ていきます。まず共通の準備です。

from google import genai
from google.genai import types
 
# API キーは環境変数 GEMINI_API_KEY からでも読めます
client = genai.Client(api_key="YOUR_GEMINI_API_KEY")

1. コーディング・ソフトウェア開発

推奨モデル: Gemini 2.5 Pro → 3 Pro

コードは一文字の崩れが動作不良に直結します。要件理解とバグの少なさが効く領域なので、迷ったら Pro 側に倒します。

response = client.models.generate_content(
    model="gemini-2.5-pro",
    contents="""以下の要件を満たす Python クラスを実装してください:
 
    1. 非同期 HTTP クライアントのラッパー
    2. リトライロジック(指数バックオフ)
    3. リクエスト・レスポンスのロギング
    4. タイムアウト設定
    5. キャッシング機能
    """,
    config=types.GenerateContentConfig(max_output_tokens=2048),
)
print(response.text)

コスト削減策: 変数名の補完や定型的な雛形生成のような軽いコード作業は Flash で十分です。Pro を使うのは「設計判断が混ざるとき」に絞ると、品質を落とさずに費用を抑えられます。

2. テキスト要約・翻訳

推奨モデル: Gemini 2.5 Flash → 3 Flash

要約や翻訳はタスク複雑度が低く、Flash でも品質が崩れにくい領域です。個人開発で回しているブログ運用でも、記事の下書きや要約はこのクラスに任せています。

documents = [
    "長いニュース記事...",
    "技術ブログ...",
    "研究論文のアブストラクト...",
]
 
for doc in documents:
    response = client.models.generate_content(
        model="gemini-2.5-flash",
        contents=f"以下のテキストを3文で要約してください:\n{doc}",
        config=types.GenerateContentConfig(max_output_tokens=500),
    )
    print(response.text)

3. リアルタイムチャット・ストリーミング応答

推奨モデル: Gemini 2.5 Flash Lite

体感速度が勝負を分ける場面です。generate_content_stream を使い、最初のトークンが届いた瞬間から表示を始めると、ユーザーは「考えている」のではなく「答え始めている」と感じます。

def stream_chat(user_message):
    """リアルタイムチャット機能"""
    for chunk in client.models.generate_content_stream(
        model="gemini-2.5-flash-lite",
        contents=user_message,
        config=types.GenerateContentConfig(max_output_tokens=1024),
    ):
        if chunk.text:
            print(chunk.text, end="", flush=True)
    print()
 
stream_chat("Python の async/await について簡潔に説明してください")
⚠️
Flash Lite のコンテキストウィンドウは 100K トークンです。長い会話履歴や大きな文書を毎回渡す設計には向きません。入力が膨らむチャットでは Flash 以上を選んでください。

4. 複雑な推論・分析・意思決定支援

推奨モデル: Gemini 3 Pro

response = client.models.generate_content(
    model="gemini-3-pro",
    contents="""市場データを分析して、以下について詳細に説明してください:
 
    1. 現在のマーケットトレンド
    2. 3つの主要なリスク要因
    3. 推奨される戦略
    4. 実装のロードマップ
    """,
    config=types.GenerateContentConfig(max_output_tokens=2048),
)
print(response.text)

戦略レベルの分析は、出力の一段深い妥当性が成果を左右します。大きなコンテキストウィンドウと最高クラスの推論が活きるので、ここはコストより精度を優先する判断が合います。

5. マルチモーダル処理(画像・音声・動画)

推奨モデル: Gemini 2.5 Pro / 3 Pro

画像や音声を扱うときは types.Part.from_bytes でバイト列を直接渡せます。Anthropic SDK の base64 ペイロード形式とは異なるので、移行時はここでつまずきやすい箇所です。

def analyze_image(image_path):
    """画像を分析する"""
    with open(image_path, "rb") as f:
        image_bytes = f.read()
 
    response = client.models.generate_content(
        model="gemini-2.5-pro",
        contents=[
            types.Part.from_bytes(data=image_bytes, mime_type="image/jpeg"),
            "この画像に含まれるオブジェクト、テキスト、コンテキストを詳細に説明してください",
        ],
        config=types.GenerateContentConfig(max_output_tokens=1024),
    )
    return response.text
 
print(analyze_image("chart.jpg"))

6. 大規模ドキュメント処理(RAG)

推奨モデル: Gemini 3 Pro / 2.5 Pro

数十万トークン規模の文書をまとめて渡せるのが、Gemini の大きなコンテキストウィンドウの強みです。チャンク分割の手間を省き、文書全体を一度に読ませて答えさせます。

def process_large_document(document_path, query):
    """大規模ドキュメントから情報を抽出"""
    with open(document_path, "r", encoding="utf-8") as f:
        document_content = f.read()
 
    response = client.models.generate_content(
        model="gemini-3-pro",
        contents=f"""以下のドキュメントに基づいて質問に答えてください:
 
<document>
{document_content}
</document>
 
質問: {query}""",
        config=types.GenerateContentConfig(max_output_tokens=1024),
    )
    return response.text
 
print(process_large_document("annual_report.txt", "2024年の主要な成長ドライバーは何ですか?"))

モデル選択の意思決定フロー

迷ったときは、入力サイズ → タスク複雑度 → 速度 → 予算の順で削っていくと一意に決まります。

入力トークン数は?
├─ < 100K → Flash Lite を検討
├─ 100K-500K → Flash または Pro
└─ > 500K → Pro / Gemini 3 Pro

タスク複雑度は?
├─ 低(要約・翻訳・分類)   → Flash / Flash Lite
├─ 中(一般的なQA・チャット)→ Flash / 2.5 Pro
└─ 高(推論・分析・コーディング)→ Pro / Gemini 3 Pro

実行速度は重要?
├─ はい   → Flash Lite / Flash
└─ いいえ → Pro / 3 Pro

予算は限定的?
├─ はい   → Flash Lite / Flash
└─ いいえ → Pro / 3 Pro

ベストプラクティス

1. モデルカスケーディング

まず軽いモデルで処理し、出力の信頼度が低いときだけ上位モデルに渡す「カスケード」は、コストと品質の折り合いをつける定番です。下記は最初の振り分けを担う関数です。

def smart_model_selection(task_type, input_tokens):
    """タスク複雑度とトークン数に基づいて最適モデルを選択"""
    if input_tokens > 1_500_000:
        return "gemini-3-pro"  # 最大コンテキスト対応
 
    complexity_to_model = {
        "simple_qa": "gemini-2.5-flash-lite",
        "chat": "gemini-2.5-flash",
        "analysis": "gemini-2.5-pro",
        "coding": "gemini-2.5-pro",
        "reasoning": "gemini-3-pro",
    }
    return complexity_to_model.get(task_type, "gemini-2.5-flash")
 
print(smart_model_selection("coding", 50_000))

2. コスト監視

コストは「気づいたら増えていた」が一番こわい費目です。レスポンスの usage_metadata から実トークン数を取り、リクエストごとに記録しておくと、後から原因を追えます。

from datetime import datetime
 
class APIUsageTracker:
    """API 利用コストを追跡"""
 
    def __init__(self):
        self.usage_log = []
        self.pricing = {
            "gemini-2.5-pro": {"input": 0.30, "output": 1.20},
            "gemini-2.5-flash": {"input": 0.10, "output": 0.40},
        }
 
    def log_response(self, model, response):
        """レスポンスの実トークン数からコストを記録"""
        usage = response.usage_metadata
        input_tokens = usage.prompt_token_count
        output_tokens = usage.candidates_token_count
        rates = self.pricing.get(model, {"input": 0, "output": 0})
        cost = (input_tokens / 1_000_000) * rates["input"] + \
               (output_tokens / 1_000_000) * rates["output"]
        self.usage_log.append({
            "timestamp": datetime.now().isoformat(),
            "model": model,
            "input_tokens": input_tokens,
            "output_tokens": output_tokens,
            "cost": cost,
        })
        return cost
 
    def get_daily_cost(self):
        """本日のコストを計算"""
        today = datetime.now().date()
        return sum(
            u["cost"] for u in self.usage_log
            if datetime.fromisoformat(u["timestamp"]).date() == today
        )
ℹ️
実トークン数は事前の見積もりとずれます。本番では推定値ではなく `usage_metadata` の実測値で集計してください。日次の合計を毎朝確認するだけでも、無駄な呼び出しに早く気づけます。

全体を振り返って

タスク推奨モデル理由
簡単なQA・翻訳Flash Lite / Flash低コスト・高速
通常のチャットFlashバランス型
コーディング2.5 Pro / 3 Pro高精度
複雑な推論3 Pro最高性能
マルチモーダル2.5 Pro / 3 Pro処理能力
大規模ドキュメント3 Proコンテキストウィンドウ

モデル選択は「入力サイズ」「タスク複雑度」「レスポンス速度」「予算」の4軸で決まります。最初から一番賢いモデルに固定するより、軽いモデルで回して足りないところだけ上位に渡す。この小さな手間が、毎日動かす自動化では一番効いてきます。まずは手元のいちばん回数の多い処理を、ひとつ下のモデルに落とせないか試してみてください。

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Gemini 入門2026-07-18
「検出されませんでした」は、AI 生成でない証明にはなりません — SynthID の非対称性
Gemini で生成した画像には SynthID の電子透かしが入ります。ただし検出結果は「出た」と「出なかった」で意味の重さが違います。個人開発でこの非対称性をどう扱うかをまとめました。
Gemini 入門2026-06-22
Gemini の画像生成をワークフローに組み込む — プロンプト設計から動画→サムネイル自動生成まで
Gemini の画像生成を「運」ではなく再現可能なワークフローとして回すための実践メモです。プロンプト設計の要点から、Nano Banana 2 のGAで可能になった動画→1枚絵の自動生成、出荷前の品質ゲート、preview停止に備える設計までを動くコード付きでまとめます。
Gemini 入門2026-06-13
Deep Think・Deep Research・Live・Omni をどう使い分けるか — 増えた Gemini のモードに1週間の作業を割り当て直した記録
Deep Think・Deep Research・Live・Omni と増えた Gemini のモードを、個人開発の1週間の作業にどう割り当てるか。3つの判断軸と、運用して見直した箇所をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →