Gemini 2.5 Pro の拡張思考モード入門
取り組みの背景
Gemini 2.5 Pro に搭載された 拡張思考(Extended Thinking) は、AI の推論プロセスを深化させ、複雑な問題に対してより正確で根拠のある回答を生成する機能です。従来の即座回答モードではなく、時間をかけて問題を段階的に分析し、複数のアプローチを検討したうえで最終的な答えを導き出します。
拡張思考(Extended Thinking)とは
拡張思考モードは、Gemini 2.5 Pro が問題に対して「目に見えない思考プロセス」を実行する仕組みです。このプロセスでは、AI は以下のステップを踏みます:
- 問題分析: 与えられた問題の要素を分解
- 仮説生成: 複数のアプローチを検討
- 推論: 各アプローチのメリット・デメリットを検証
- 結論導出: 最適な解答を生成
この一連のプロセスは API ユーザーには「思考」として表示され、最終的な回答とともに参照できます。
従来モードとの違い
| 項目 | 通常モード | 拡張思考モード |
|---|---|---|
| 推論時間 | 短い(数秒) | 長い(10〜60秒) |
| 精度 | 高い(基本的には十分) | より高い(複雑問題向け) |
| コスト | 低い | やや高い |
| 用途 | テキスト生成、質問回答 | 数学、コード、論理問題 |
対応するユースケース
拡張思考モードは、以下のような複雑な問題解決に特に有効です:
✓ 向いている用途
- 数学・物理計算: 複数ステップの計算や証明
- コード生成・デバッグ: 複雑なアルゴリズムの実装
- 論理問題: パズルや制約充足問題
- 技術設計: アーキテクチャ決定やベストプラクティス選定
- データ分析: 統計分析や傾向予測
✗ 向かない用途
- テンプレートや定型文生成
- 簡単な情報検索
- リアルタイムレスポンスが必須のチャット
API の基本的な使い方
Step 1: 環境セットアップ
pip install google-genaiStep 2: 基本的な拡張思考リクエスト
from google import genai
# クライアント初期化
client = genai.Client(api_key="YOUR_API_KEY")
# 拡張思考モードで問題を解く
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="この方程式を解いてください: 2x² + 5x - 3 = 0",
config=genai.types.GenerateContentConfig(
thinking={
"type": "enabled",
"budget_tokens": 5000, # 思考に使える最大トークン数
}
),
)
# 思考プロセスと最終回答を表示
for part in response.content.parts:
if part.thinking:
print("【思考プロセス】")
print(part.thinking)
elif part.text:
print("【最終回答】")
print(part.text)Step 3: より複雑な問題の解決
# Fibonacci 数列の n 番目の項を効率的に求めるコードを生成
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="""
以下の要件を満たす Python コードを書いてください:
1. Fibonacci 数列の n 番目の項を計算する関数
2. O(log n) の時間計算量を実現する
3. 行列累乗法を使う
4. 結果をテストする
""",
config=genai.types.GenerateContentConfig(
thinking={
"type": "enabled",
"budget_tokens": 8000,
}
),
)
for part in response.content.parts:
if part.thinking:
print("🤔 思考プロセス:")
print(part.thinking[:500] + "..." if len(part.thinking) > 500 else part.thinking)
elif part.text:
print("\n💻 生成されたコード:")
print(part.text)実践例:複雑なアルゴリズム問題
「与えられた整数配列から、合計が特定の値になる 3 個の要素を見つけよ」という古典的な問題を拡張思考モードで解きます。
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="""
3Sum 問題を効率的に解く Python コードを書いてください:
- 入力: 整数配列と目標合計値
- 出力: 合計が目標値になる 3 個の異なる要素のすべての組み合わせ
- 時間計算量: O(n²) 以上
- テストケースを含める
例: arr = [-1, 0, 1, 2, -1, -4], target = 0
期待出力: [[-1, -1, 2], [-1, 0, 1]]
""",
config=genai.types.GenerateContentConfig(
thinking={
"type": "enabled",
"budget_tokens": 10000,
}
),
)
print("=== 複雑なアルゴリズム問題の解法 ===\n")
for part in response.content.parts:
if part.thinking:
print("思考プロセス(概要):")
lines = part.thinking.split('\n')
print('\n'.join(lines[:10]))
print(f"... (合計 {len(lines)} 行)")
elif part.text:
print("\n最終的なコード:\n")
print(part.text)パラメータ詳細
thinking オブジェクト
| パラメータ | 型 | 説明 |
|---|---|---|
type | string | "enabled" で拡張思考を有効化。デフォルトは "disabled" |
budget_tokens | int | 思考プロセスに割当てる最大トークン数(1000~100000) |
budget_tokens が大きいほど深い思考が可能ですが、レスポンス時間とコストが増加します。推奨値は 5,000〜15,000 です。
ベストプラクティス
- 問題が複雑な場合のみ有効化: 簡単な質問には通常モードを使う
budget_tokensを適切に設定: 問題の複雑さに応じて 5,000~15,000 の範囲で調整- 思考プロセスを活用: 回答の根拠を理解するために思考部分も確認
- エラーハンドリング: タイムアウトの可能性があるため、リトライロジックを実装
まとめ
Gemini 2.5 Pro の拡張思考モードは、複雑な問題解決における AI の精度と信頼性を大幅に向上させます。数学計算、コード生成、論理問題など、根拠のある高精度な回答が必要な場面で活躍します。API は シンプルで、thinking パラメータを設定するだけで利用できます。
ぜひ、あなたのプロジェクトで拡張思考モードを試してみてください。