プロンプト(指示文)を自動で書き直すだけで、LLM(大規模言語モデル)の精度を底上げする最適化器がある。「GEPA(Genetic-Pareto Reflective Prompt Evolution)」だ。GPUでの再学習も強化学習もいらず、API越しのモデルにそのまま効く。原論文は機械学習の主要会議ICLR 2026で口頭発表に採択された。
ただし本記事の主役は「安い」ではない。GEPAは万能ではなく、効く条件と効かない条件がはっきり分かれる。だから本記事は、GEPAを強化学習(RL)やファインチューニング(SFT)と並べ、本当に得か・どこで使うべきかという損得の線引きで読み解く。LLMをAPIで一度でも叩いたことがあるなら、その線引きはあなたのタスク選びに直結する。
なぜ、プロンプトのほうを書き換えるのか
LLMの精度を上げる王道は、長く2つだった。SFT(ファインチューニング)は正解付きデータで重みを学習し直す方法で、大量のラベルとGPUが要る。RL(強化学習)はタスクを試させ点数(報酬)で直す方法で、試行(ロールアウト)を何万回も回す。どちらも高くつき、重みを書き換える前提のため、API越しのGPT-5やClaudeには使いにくい。GEPAは重みをいじらず、入力するプロンプトのほうを育てる。これが自動プロンプト最適化だ。
点数ではなく「なぜ間違えたか」を読ませる
GEPAの一番の新しさは、改善のヒントに点数ではなく文章を使う点だ。RLや進化的な手法は、試行の良し悪しを最後に1つの数字(正解=1、不正解=0)に潰すため、「なぜ失敗したか」が捨てられる。GEPAは評価のとき、エラーや推論ログをそのままLLMに読ませ、どこで間違えたかを診断させる。
GEPA公式はこの文章のヒントを「勾配のテキスト版」と呼ぶ。勾配とは数値で「精度を上げるにはどちらへ直すか」を示す値だ。地図でいえば、勾配が「あと少し北へ」と数字で指すのに対し、GEPAは「さっき曲がり間違えた、次は手前で曲がれ」と文章で道を教える。名前のGenetic-Paretoは選び方を表し、得意の違う候補を世代交代させながら残すので、少ない試行でも穴の少ないプロンプトに育つ。
GEPAに何を渡すと、何が返るのか
コードは載せないが、入力と出力をたどれば全体像はつかめる。渡すのは3つ――(1)出発点のプロンプト、(2)出来ばえを採点する評価関数(正解例は3つほどでよい)、(3)書き直し役のLLM。問い合わせを振り分けるタスクで一巡を見てみる。
- 出発点:「問い合わせ内容を分類して」だけの素朴な指示
- 拾った失敗ログ:返金要求を「一般質問」と誤判定した実行トレース
- 書き直し後:「返金・解約の語があれば優先カテゴリへ先に回す」と追記
この「失敗を読む→書き直す」一巡が振り返り(リフレクション)だ。GEPAはこれを収束まで自動で繰り返し、最適化済みのプロンプト1本を返す。導入は pip install gepa の一行で済む。
90分の1の正体――Databricksが測った損得
Databricksは情報抽出のベンチマーク(同社測定)で、オープンモデルgpt-oss-120bにGEPAをかけ、素のClaude Opus 4.1を上回りながら推論費用を約90分の1に抑えた。ファインチューニングと正面から比べると、性格の違いが表に出る。
| 手法 | 精度の伸び | 推論費用 |
|---|---|---|
| SFT(重みを再学習) | +1.9pt | 基準 |
| GEPA(プロンプト最適化) | +2.1pt | 約2割安 |
| GEPA+SFT(併用) | +4.8pt | ― |
GEPAはSFTと同等以上の精度を、より安い推論費用で出した。二者択一でなく、併用で伸びが乗る。ただしDatabricksは弱点も率直に書く。GEPAは最適化中に他手法の約3倍のLLM呼び出しが要り、2〜3時間ほどかかる。
Nubankが本番で確かめたこと
ブラジルのデジタル銀行Nubankの事例が、本番での効き方を示す。1億人超の顧客を抱える同社は、サポートAIを採点する「LLM-as-judge」(回答の良し悪しをLLMに採点させる仕組み)のプロンプトをGEPAで最適化した。判定の正確さは68.88%から88.89%へ上がり、最適化版を本番に出したA/Bテストでは、AI対応の推奨度(NPS)が37ポイント改善したと、Nubankの研究者らは報告している。
いつ効き、いつ効かないのか
公式が挙げるGEPAの「輝く条件」は4つ。1回の試行が重い、学習データがほぼ無い(3例から動く)、重みを触れないAPIのモデルを使う、「なぜ直したか」を文章で残したい――このいずれかだ。試行が高くつくほど、100〜500回で済むGEPAが有利になる。原論文でもRL代表のGRPO(強化学習の代表手法)比で6タスク平均+6%(最大+20%)を、その35分の1ほどの試行で出している(効果はタスク次第)。
逆に公式自身が、安いロールアウトを10万回以上回せるなら勾配ベースのRL・SFTが依然有利だと明言する。試行を安く大量に回せるなら、点数だけでも数で押し切れるからだ。
GEPAが書き直すプロンプトは、各モデルの失敗の出方を読んで、そのモデルの癖に合わせて整えられる。裏を返せば、モデルを新しい世代に乗り換えると癖がずれ、プロンプトを作り直す(再最適化)必要が出てくる。重みを学習するSFTとは別種の保守コストだ。なおGEPAは、LLM処理を部品のように組むフレームワークDSPyからも呼べる(本体は独立したツールだ)。
自分のタスクは、どちら側か
GEPAは、実行のトレースを読ませてプロンプトを進化させる最適化器だ。RLやSFTを葬る銀の弾丸ではなく、試行が高い・データが少ない・重みを触れない・理由が欲しい条件で特に効く道具である。逆に、安い試行を大量に回せるなら従来手法が勝つ。だからGEPAを使うかは「新しいか」ではなく「自分のタスクがどちら側か」で決まる。あなたがいま動かしているLLMは、どちら側だろうか。
参考文献
- GEPA 公式リポジトリ(gepa-ai/gepa, GitHub)- 概要・API・活用事例の一次情報: https://github.com/gepa-ai/gepa
- GEPA 原論文「GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning」(arXiv, ICLR 2026 Oral)- GRPO/MIPROv2比のベンチ結果: https://arxiv.org/abs/2507.19457
- GEPA 公式ドキュメント「Optimize Anything with LLMs」- 仕組み・適用条件・RLとの併用: https://gepa-ai.github.io/gepa/
- Databricks 技術ブログ「Building State-of-the-Art Enterprise Agents 90x Cheaper with Automated Prompt Optimization」- 情報抽出ベンチでのSFT比較・90倍安・GEPA+SFT: https://www.databricks.com/blog/building-state-art-enterprise-agents-90x-cheaper-automated-prompt-optimization
- Nubank 論文「Building Customer Support AI Agents at 100M-User Scale」(arXiv)- LLM-as-judge最適化・本番NPS改善: https://arxiv.org/abs/2606.08867