GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/高度な活用
高度な活用/2026-04-22上級

Gemini × DSPy で「プロンプト職人」から卒業する — プロンプト自動最適化パイプライン実装ガイド

Stanford 発の DSPy フレームワークと Gemini を組み合わせ、プロンプトを手書きする時代を終わらせる実装ガイド。Signature・Module・Optimizer の設計から、自作評価関数・本番パイプラインまでをコード付きで解説します。

gemini102dspyprompt-engineering13optimization4llmpython103

プレミアム記事

DSPy を初めて触ったとき、正直「またフレームワークか」と身構えました。ところが、自分が 3 日かけて詰めたプロンプトと、DSPy の MIPROv2 が 20 分で自動生成したプロンプトを比べると、後者の方が明確に精度が高かったのです。手書きプロンプトでは拾えていなかった「例示の組み合わせ」が、勾配なしの探索で自動的に発見されていました。

このあたりで「プロンプト職人」としての手癖が通用しない世界が来たな、と認めざるを得ませんでした。本記事はその体験を下敷きに、Gemini API と DSPy を組み合わせたプロンプト自動最適化パイプラインを、ゼロから本番投入まで通して解説します。Python の基礎と Gemini API を軽く触った経験がある方であれば、コードをコピーしてそのまま動かせるように構成しています。

本記事で扱うのは、次のような場面に心当たりのある方向けの内容です。プロンプトを毎週手で微調整しているが、品質が頭打ちになってきた。OpenAI や Anthropic から Gemini に乗り換えたが、同じプロンプトを使っても精度が再現されありません。Few-shot 例を手動で選んでいるが、どの組み合わせが最適かは結局勘で決めています。こうした悩みを持っている方にとって、DSPy は「プロンプト工学」から「プロンプト計算」への移行を助けてくれる強力なツールです。

もう一点前置きしておくと、DSPy は魔法ではありません。ラベル付きデータを用意する工程と、評価関数を設計する工程は、これまで通り人間の仕事として残ります。むしろ、ここが丁寧かどうかで結果の質が決まります。ここではこの 2 つの工程にも、実務で詰まりがちなポイントを含めて触れていきます。

プロンプト職人の限界はどこで来るか

私は Gemini Lab の記事制作で、タイトル生成や要約、タグ付けなど、20 個ほどのプロンプトを継続的にメンテナンスしています。最初は gemini-2.5-flash に投げるプロンプトを一行ずつ手で調整していました。A/B テストして良かった方を残す、という典型的な流れです。

このやり方が破綻するのは、だいたい次の 3 つが重なったときです。

  1. 入力データの性質が変わったとき(例: 記事のジャンルが増えた)
  2. モデルを切り替えたとき(例: Flash から Pro、または Gemini 2.5 から 3.1)
  3. 評価軸を増やしたとき(例: 「正確さ」だけでなく「文字数」「口調」も同時に最適化したい)

手書きで最適化していると、上記のどれかが起こった瞬間、過去の微調整が一気に陳腐化します。しかも変更のたびに再度 A/B を回すコストが発生します。DSPy は、このコストを「評価関数とデータを用意しておけばあとは自動」という形に置き換えてくれます。

DSPy(Declarative Self-improving Language Programs)は Stanford NLP が開発した、LLM を関数のように扱うためのフレームワークです。プロンプトは「書くもの」ではなく「データから最適化されるもの」というのが核となる思想で、PyTorch における nn.Module に近い抽象でプロンプトを定義します。

個人的に腹落ちしたのは、DSPy が「プロンプトエンジニアリング」と「コンパイラ」という 2 つの世界を橋渡ししている点です。プロンプトを人間が書く高級言語と見立て、Optimizer がそれを機械が扱いやすい中間表現に「コンパイル」する、という理解が一番しっくり来ました。この比喩で考えると、「自分でプロンプトを最後まで書こうとする」行為は、C コンパイラが生成するアセンブリを人間が手書きするのに似ています。可能ではありますが、効率が悪いですし、そもそも最適解にたどり着けません。

最初のパイプラインを組んでみる

まずは動く最小構成を作ります。インストールと Gemini への接続までを示します。

# 依存関係。dspy-ai 2.6 以降は Gemini の LiteLLM 経由接続に対応
pip install -U "dspy-ai>=2.6.0" google-generativeai litellm python-dotenv

.env に Gemini の API キーを入れておきます。

# .env
GEMINI_API_KEY=YOUR_GEMINI_API_KEY

DSPy からは、LiteLLM を介して Gemini を呼び出すのが最もシンプルです。モデル名に gemini/ プレフィックスを付けるだけで LiteLLM が Google AI Studio の API を叩いてくれます。

# setup_dspy.py — DSPy と Gemini の接続を確認する最小例
import os
import dspy
from dotenv import load_dotenv
 
load_dotenv()
 
# LiteLLM 形式でモデルを指定。temperature は再現性のため 0 にしておく
lm = dspy.LM(
    model="gemini/gemini-2.5-flash",
    api_key=os.environ["GEMINI_API_KEY"],
    temperature=0.0,
    max_tokens=1024,
)
dspy.configure(lm=lm)
 
# 一番単純な Signature(入出力の宣言)
class Translate(dspy.Signature):
    """日本語テキストを自然な英語に翻訳する。"""
    japanese = dspy.InputField(desc="翻訳対象の日本語")
    english = dspy.OutputField(desc="英訳結果")
 
predictor = dspy.Predict(Translate)
result = predictor(japanese="プロンプトを手書きする時代は終わった。")
 
print(result.english)
# 期待出力例: "The era of writing prompts by hand is over."

このコードが動けば、DSPy × Gemini の接続は成功です。注目してほしいのは、ここまでの実装に「プロンプト文字列」が一切出てこないことです。DSPy は Signature の docstring とフィールド定義からプロンプトを自動生成しており、モデルへの実際の送信内容はフレームワーク内部で管理されています。

実行中のプロンプトが気になる場合は dspy.inspect_history(n=1) で確認できます。デバッグ時はこれを多用することになるので、早めに馴染んでおくとよいです。

なお、私の環境では temperature=0.0 にしていても、Gemini 2.5 Flash は完全に同じ出力を返さないことがあります。これは Google 側の実装上、確率が最大のトークンが複数並んだ場合に決定的な並び順が保証されないためのようです。再現性を厳密に取りたい場合は、同じ入力で 3〜5 回呼び出して多数決を取る、あるいは seed パラメータを設定する(Gemini 3.1 以降で対応)という方針を考えてください。DSPy の内部でリトライが走るとさらにゆらぎが生じるので、CI で「プロンプトのスナップショットテスト」を書くときはこの挙動を前提に設計してください。

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

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
プロンプトの微調整を繰り返しても品質が安定しない人が、DSPy の Optimizer で「実測データに基づく自動最適化」に切り替えられるようになる
Signature・Module・Optimizer の三層設計を理解し、Gemini 2.5 Pro / Flash を部品として組み合わせる本番パイプラインを自分で書けるようになる
BootstrapFewShot と MIPROv2 の使い分け、LLM-as-a-Judge 評価関数の書き方、コスト管理まで含めて、検証済みの実装パターンを今日の業務に持ち込める
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

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

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

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

関連記事

高度な活用2026-06-21
Gemini の Maps Grounding が本番で静かに外れるとき — アトリビューション義務・課金の境界・不発時のフォールバックの運用メモ
Gemini の Grounding with Google Maps を本番に載せた後で効いてくる落とし穴を運用視点でまとめます。グラウンディングの不発検知、アトリビューション表示の義務、課金が発生する境界、鮮度のずれに備えるフォールバックの実装です。
高度な活用2026-04-27
Gemini Computer Use の自己修復アーキテクチャ — 失敗するブラウザ自動化を本番で安定稼働させる設計パターン
Gemini Computer Use のブラウザ自動化を本番で運用すると、要素消失・モーダル割り込み・ネットワーク遅延で頻繁に失敗します。失敗を「自己修復」させる回復戦略を、検出・分類・リトライ・人間介入のレイヤーに分けて、Pythonの動くコードで設計します。
API / SDK2026-04-01
Gemini 2.5 Pro システムインストラクション — プロダクション品質のAIアシスタント設計パターン集
Gemini 2.5 Pro のシステムインストラクション設計をコード付きで整理します。ペルソナ設計・出力制御・安全ガードレール・A/Bテストまで、本番環境で使える設計パターンを扱います。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →