Gemini API を使いはじめてしばらく経つと、必ずぶつかるのが「月末の請求額が想定よりずいぶん高い」という問題です。Flash を使っていても、リクエスト数が増えると無視できない金額になってきます。
2026 年 2 月に正式 GA となった Gemini 2.5 Flash-Lite は、そういった悩みへの Google からの回答です。Flash より最大 6 倍安く、それでいてレイテンシは Flash より低い。翻訳・分類・テキスト抽出のような「高精度な推論は不要だけど大量にこなしたい」タスクのために作られたモデルです。
Flash-Lite が Flash や Pro と何が違うのか
まず数字で整理します(2026 年 5 月時点)。
- Gemini 2.5 Flash-Lite: 入力 $0.10 / 100 万トークン、出力 $0.40 / 100 万トークン
- Gemini 2.5 Flash: 入力 $0.30 / 100 万トークン、出力 $2.50 / 100 万トークン
- Gemini 2.5 Pro: 入力 $1.25 / 100 万トークン、出力 $10.00 / 100 万トークン
出力トークンで比較すると、Flash-Lite は Flash の約 6 分の 1、Pro の 25 分の 1 です。月 10 万リクエスト(入出力それぞれ平均 500 トークン)を送る場合、Flash-Lite なら約 $17.5 で収まる計算ですが、Flash だと約 $85、Pro だと約 $562 になります。
コンテキストウィンドウは 3 モデルとも 100 万トークンで同じです。Flash-Lite だからといって長文処理ができなくなるわけではありません。
大きな違いは「推論の深さ」です。Flash-Lite は複雑なマルチステップ推論や高難度のコード生成では Flash・Pro に劣ります。ただし Thinking モードをオンにすることで、一定の推論能力を追加できる設計になっています(後述)。
API セットアップと基本的な呼び出し
google-genai ライブラリを使います。
pip install google-genai --upgrade最もシンプルなテキスト生成のコード例です。
import os
from google import genai
# 環境変数から API キーを取得(ハードコードしないこと)
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
response = client.models.generate_content(
model="gemini-2.5-flash-lite",
contents="次の文をポジティブ・ネガティブ・中立に分類してください:「配送が少し遅かったけど商品は良かった」"
)
print(response.text)
# 出力例: ポジティブ(商品への評価がメインで、配送の遅延は補足的な言及)Flash や Pro から乗り換える場合は、model の文字列を "gemini-2.5-flash-lite" に変えるだけです。API の呼び出し方法は完全に互換しています。
バッチ分類タスクでの実践コード
Flash-Lite が最も輝く使い方の一つが、大量レビューやログのセンチメント分類です。以下は複数テキストをまとめて分類する例です。
import os
from google import genai
from google.genai import types
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
SYSTEM_PROMPT = """
あなたはテキスト分類の専門家です。
入力されたテキストを以下のカテゴリのいずれかに分類し、カテゴリ名だけを返してください。
カテゴリ: POSITIVE / NEGATIVE / NEUTRAL
"""
reviews = [
"操作が簡単で気に入っています",
"サポートの対応が最悪でした",
"普通の商品です",
"期待以上でした!また購入します",
"届いたときに箱が傷ついていました",
]
results = []
for text in reviews:
response = client.models.generate_content(
model="gemini-2.5-flash-lite",
config=types.GenerateContentConfig(
system_instruction=SYSTEM_PROMPT,
max_output_tokens=10, # 分類タスクなので出力を短く制限
temperature=0.1, # 分類は低温度で安定させる
),
contents=text,
)
results.append({
"text": text,
"label": response.text.strip()
})
print(f"[{response.text.strip()}] {text}")
# 出力例:
# [POSITIVE] 操作が簡単で気に入っています
# [NEGATIVE] サポートの対応が最悪でした
# [NEUTRAL] 普通の商品です
# [POSITIVE] 期待以上でした!また購入します
# [NEGATIVE] 届いたときに箱が傷ついていましたmax_output_tokens=10 で出力を短く制限しているのがポイントです。分類ラベルだけを返せばよいタスクでは、出力トークン数を削減するだけで大幅なコスト削減になります。
Thinking モードとの組み合わせ
Flash-Lite には、Flash や Pro と同様に「Thinking(推論)モード」が搭載されています。デフォルトはオフで、複雑な問題に当たったときだけ有効にできます。
from google.genai import types
# Thinking モードを有効にする(thinking_budget で推論量を制御)
response = client.models.generate_content(
model="gemini-2.5-flash-lite",
config=types.GenerateContentConfig(
thinking_config=types.ThinkingConfig(
thinking_budget=512 # 推論に使うトークン数の上限(省略すると自動)
),
),
contents="次の文章のロジックに矛盾がないか確認してください:もし A なら B、もし B なら C、しかし A でないとき C は成立するか?"
)
print(response.text)通常の分類・翻訳タスクでは Thinking モードはオフのままでよいと思います。コストが余計にかかるので、論理推論や多段階の問題解決が必要なときだけ有効にするのが私のやり方です。
どんな用途に向いていて、どこで踏み止まるべきか
Flash-Lite が得意なのは次のタスクです。
- テキスト分類・ラベリング: センチメント分析、カテゴリ振り分け、スパム判定
- 翻訳: 日英・多言語変換(Google 公式も翻訳タスクを適正用途として明記)
- 情報抽出: 構造化データの取り出し、固有表現抽出
- 軽量な要約: 長文を 2〜3 行に圧縮する単純な要約
- フォーマット変換: JSON → Markdown、CSV 生成など
一方、以下のタスクでは Flash や Pro を使う方が結果のばらつきが小さくなります。
- 複数ステップの推論が必要な問題(数学、論理パズル)
- 高品質なコード生成(特にデバッグや設計レベルの提案)
- 長文の詳細分析・要点抽出(論文・法律文書など)
- ニュアンスが繊細な創作・ライティング
実際のプロダクトでは「デフォルトを Flash-Lite にして、エラーになったり信頼度が低かったりした場合だけ Flash か Pro に切り替える」という モデルルーティングパターンが費用対効果の面で優れています。
実際のプロジェクトに組み込む際の注意点
モデル ID は "gemini-2.5-flash-lite" が安定版です。以前プレビュー期間に使っていた "gemini-2.5-flash-lite-preview-09-2025" は 2026 年 3 月末でシャットダウン済みなので、古いコードが残っている場合は必ず確認してください。
レート制限は Flash-Lite の方が Flash より寛大なケースが多く、高頻度リクエストを処理するバッチジョブにも向いています。ただしバースト時のエラー処理は実装しておきましょう。
import time
from google.api_core.exceptions import ResourceExhausted
def classify_with_retry(client, text, max_retries=3):
for attempt in range(max_retries):
try:
response = client.models.generate_content(
model="gemini-2.5-flash-lite",
contents=text,
)
return response.text.strip()
except ResourceExhausted:
wait = 2 ** attempt # 指数バックオフ: 1s, 2s, 4s
print(f"レート制限に到達。{wait}秒待機して再試行 ({attempt+1}/{max_retries})")
time.sleep(wait)
return None # 最大リトライ後も失敗した場合翻訳タスク:Flash-Lite が最も力を発揮する場面
Google は公式ドキュメントで、翻訳を Flash-Lite の主要ユースケースとして明示しています。実際に試してみると、この評価は正確です。以下は本番で使える翻訳関数の例です。
import os
from google import genai
from google.genai import types
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
def translate_text(source_text: str, target_language: str = "日本語") -> str:
"""
Gemini 2.5 Flash-Lite を使ってテキストを翻訳する。
Args:
source_text: 翻訳元のテキスト
target_language: 翻訳先の言語名(例: "日本語", "英語", "フランス語")
Returns:
翻訳されたテキスト文字列
"""
response = client.models.generate_content(
model="gemini-2.5-flash-lite",
config=types.GenerateContentConfig(
system_instruction=(
f"あなたはプロの翻訳者です。"
f"次のテキストを{target_language}に翻訳してください。"
f"翻訳文のみを返し、説明や引用符は不要です。"
),
temperature=0.2, # 分類より少し高め——自然な文体のため
max_output_tokens=1024,
),
contents=source_text,
)
return response.text.strip()
# 使用例
original = "The new model delivers lower latency while maintaining high accuracy on standard benchmarks."
translated = translate_text(original, "日本語")
print(translated)
# 出力例: 新しいモデルは、標準ベンチマークで高い精度を維持しながら、低レイテンシを実現しています。翻訳タスクの temperature は分類より少し高めの 0.2 を好んで使っています。0.1 にすると直訳調になりやすく、0.3 以上では用語が揺れることがあります。専門用語が多い技術文書の場合は 0.1 に下げると一貫性が保たれます。
大量文書の翻訳バッチには asyncio と google.genai.AsyncClient を組み合わせることで、レート制限を守りながらスループットを大幅に上げられます。
「すべてのリクエストに Pro を使う」というのは、テスト段階なら許容できますが、本番で量が増えてくると財布に優しくありません。Flash-Lite はコストを意識した設計の第一歩として、分類・翻訳・抽出のようなシンプルなタスクに今すぐ試してみる価値があります。
まずは Google AI Studio の Playground で gemini-2.5-flash-lite を選び、自分のユースケースで実際の出力品質を確認してみてください。数分もあれば Flash との違いを体感できます。