超越 GRPO!ICLR 2026 Oral 新作 GEPA:反思式 Prompt 进化,1/35 算力如何“翻盘”强化学习?

你有没有在优化智能体(Agent)的时候被这种折磨逼疯过:

调 Prompt 就跟“玄学炼丹”一样,精心加了一句指令,在 A 场景跑通了,结果在 B 场景又莫名“塌房”;好,那你一咬牙,决定用 GRPO(群体相对策略优化)或者 DPO 这类强化学习(RL)算法在参数空间去微调模型。

结果你一看卡,动辄几块 H100 跑几万个 Rollout,不仅算力烧不起,而且微调完的模型往往在稍微偏一点的测试集上直接“失忆”,泛化性惨不忍睹。

上周,由 UC 伯克利、斯坦福、MIT、Databricks 等顶尖机构联合发表的一篇 ICLR 2026 Oral 论文,给出了一个让我觉得“对,就该这么做”的破局方案。

这篇名为《GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning》的论文,直接对当前大火的强化学习微调提出了质疑。

作者的核心论点是:大语言模型的可解释性,让“自然语言”本身成为了一种远比冰冷、稀疏的标量奖励(Scalar Reward)更丰富的学习媒介。与其在参数空间用梯度下降瞎子摸象,不如在离散的“文本提示词空间”,利用自然语言反思(Reflection)和遗传算法(Genetic Algorithm),从试错(Trial and Error)中进行高阶规则进化。

这就是 GEPA(Genetic-Pareto,基因-帕累托)

图1:GEPA 与 GRPO、MIPROv2 等方法在 HotpotQA(左)和 HoVer(右)上的收敛性能与训练 Rollout 数量对比

图1:Qwen3 8B 上,GEPA 与 GRPO、MIPROv2 等方法在 HotpotQA(左)和 HoVer(右)上的收敛性能与训练 Rollout 数量对比。可以看到,GEPA 仅需极少的训练 Rollout 就能达到最高性能,而 GRPO(权重微调)需要高达 24000 个 Rollout,且性能依然不及 GEPA。


🔬 论文元信息

  • 论文标题:GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning
  • 论文作者:Lakshya A Agrawal, Shangyin Tan, Dilara Soylu, Noah Ziems, Rishi Khare, Krista Opsahl-Ong, Arnav Singhvi, Herumb Shandilya, Michael J Ryan, Meng Jiang, Christopher Potts, Koushik Sen, Alexandros G. Dimakis, Ion Stoica, Dan Klein, Matei Zaharia, Omar Khattab.
  • 作者单位:UC 伯克利(UC Berkeley)、斯坦福大学(Stanford University)、BespokeLabs.ai、圣母大学(Notre Dame)、Databricks、麻省理工学院(MIT)。
  • 发表状态:ICLR 2026 (Oral) 接收。
  • 论文链接https://arxiv.org/abs/2507.19457
  • 代码仓库https://github.com/gepa-ai/gepa

🤔 动机:为什么梯度下降会输给“调 Prompt”?

在当前的智能体优化范式中,大家都形成了一种思维惯性:一旦 Prompt 遇到瓶颈,就该上 RL 或者是 SFT 调参。

但这种方法在智能体开发上存在着致命痛点:

  1. 梯度信号极其稀疏:RL 算法(如 GRPO 或 PPO)通常只能获得一个粗糙的标量反馈(比如 0 或 1 代表测试通过与否)。在大规模轨迹中,这个反馈对于模型参数如何分配“信用”(Credit Assignment)非常模糊。
  2. 算力开销是天文数字:为了更新策略,RL 需要让模型产生数万个 Rollout。这不仅慢,对于没有 H100 集群的团队来说根本无法承受。
  3. 容易陷入分布漂移与过拟合:微调会强行扭曲参数分布,模型容易发生“灾难性遗忘”(Catastrophic Forgetting),而在未见过的测试集上泛化性极差。

那么,有没有一种方法,既能具备微调那样的自动化自适应优化能力,又能保留 Prompt 工程的超级高通用、极低算力和可解释性?

作者团队一针见写地指出:语言本身具有极强的可解释性与因果表达力。当模型在某一步犯错时,系统产生的报错日志、工具输出或者推理轨迹,其实已经用自然语言清清楚楚地写明了错在哪里。

既然如此,我们为什么不让 LLM 作为“元优化器”(Meta-Optimizer),去阅读这些执行轨迹,用自然语言反思诊断,然后像遗传算法进化生物基因一样,让系统中的 Prompt 自主突变、保留精华、杂交进化?


🏗️ 核心架构:GEPA 是如何运作的?

GEPA 的名字来源非常简单:Genetic-Pareto(遗传-帕累托)。它的外层是一个高鲁棒性的遗传演化框架,内层则嵌套了一个极其精密的 LLM 反思引擎。

图2:GEPA 算法的整体优化循环图。包含执行轨迹反思、局部 Minibatch 测试、Pareto 筛选以及跨模合并。

图2:GEPA 算法的整体优化循环。GEPA 采用迭代式工作流。在每次迭代中,通过“反思性提示突变”(Reflective Prompt Mutation)或“系统感知合并”(System-Aware Merge)策略,对现有候选 Prompt 做出改进。先在超小 Minibatch 上评测,若有提升再推到大训练集评测,并使用 Pareto 采样机制保持种群多样性。

让我们顺着它的工作流,把整个机制掰开揉碎来分析。

1. 极度克制的轨迹采集(Trajectories & Feedback)

普通的 Prompt 优化方法往往一上来就需要在大规模数据集上跑一遍评测,开销极大。

GEPA 在突变阶段只在训练集中随机抽取一个非常小的 Minibatch,其大小 \(b = 3\)(你没看错,只有 3 个样本!)。

当系统运行这 3 个样本时,所有的中间步骤——推理链、工具调用、工具返回值、甚至是编译报错信息——都会被序列化为一段完整的 Textual Trace(文本轨迹),配合专门的评测指标 \(\mu\) 生成详细诊断文本,打包送进突变模块。

2. 反思性提示突变(Reflective Prompt Mutation)

在拿到 traces 后,GEPA 并不是像常规方法那样直接让 LLM “写个更好的 Prompt”,而是设计了精密的 Meta-Prompt,引导 LLM 展开三步走:

  1. Credit Assignment(信用分配/归因分析):仔细阅读那 3 个样本的执行轨迹,分别对比成功和失败的案例。LLM 必须写出,究竟是当前的哪条指令导致了错误的发生,或者是因为遗漏了什么规则才导致工具调用翻车。
  2. Rule Induction(规则归纳):LLM 需要将这些失败教训,提炼成具有“泛化意义的高阶规则”。比如,不只是写“在这道题里需要加一个括号”,而是提炼出“在处理带有负号的乘法运算时,必须在负数外包裹英文圆括号以防止编译器解析错误”。
  3. Instruction Revision(指令重写):在原 Prompt 的基础上,将这套高阶规则无缝地、逻辑一致地融合进去,形成一个全新的 Candidate Prompt \(\pi_j'\)

这就是 Reflective Mutation。这种机制极其像人类开发者的思考过程:看 Log -> 找出 Bug 原因 -> 总结出避坑指南 -> 写入代码。

3. Pareto 照亮采样(Pareto-Based Candidate Sampling)

在遗传算法中,如何选择“父母”进行下一代进化是至关重要的。

最简单也最容易想到的办法,就是贪心地选择全局平均分(Average Score)最高的 Candidate(即 SelectBestCandidate 策略)。

但我得提醒你,这其实是个巨大的陷阱。大范围的实践证明,在优化早期,如果每次都把平均分最高的选出来变异,很快种群就会趋同,陷入 Local Optima(局部最优),导致泛化性能极差。

比如,Candidate \(A\) 在高难度长序列上表现惊艳,攻克了其他所有人都没搞定的硬骨头,但因为它在 90% 的普通短序列上得分平平,全局平均分并不高。在贪心策略下,它在第一轮就会被无情淘汰。但这其实极其不公平——它身上拥有的“解决高难度任务”的基因,在种群中是最具价值的。

GEPA 的神来之笔在于:用 Pareto Frontier(帕累托前沿)作为“照亮器”(Illumination Selection)

图3:贪心选择策略(左)与 GEPA 帕累托候选采样策略(右)的对比示意。帕累托机制能在实例级别“照亮”那些局部表现优异的多样化种群。

图3:传统的贪心策略(a)容易导致种群快速收敛到局部最优(被红色淹没)。而 GEPA 引入的 Pareto 采样机制(b)通过维护任务级别的 Pareto 前沿,能有效保留在不同细分实例上表现极佳的“偏科天骄”,避免多样性流失。

它的具体做法是: 1. 建立 instance-wise 矩阵:在 Pareto 验证集上,跟踪记录每个 Candidate 在每一个具体样本上的得分,而不仅仅看平均分。 2. 提取 Pareto 边界:找出在任意一个样本上,拿到了绝对最高分的那些 Candidate。 3. 剔除严格支配者:如果 Candidate \(X\) 在所有样本上的得分都低于 Candidate \(Y\),那 \(X\) 就是被严格支配的,无情删掉。 4. 计算权重概率:为留在帕累托边界上的每一位“偏科天骄”算分,其作为单项冠军的样本数越多,分到的下一轮突变选择概率就越高。 5. 随机采样:按概率随机抽取父母。

这个机制保证了种群的多样性。它就像生物演化中,寒带的熊保留了厚厚的脂肪,热带的猴保留了散热的无毛皮肤,让不同的 Candidate 保留了应对不同边界案例(Edge Cases)的特有基因。

4. 系统感知合并(System-Aware Merge)

对于多模块(Multi-Module)的复合 AI 系统(比如由 Query-Writer 模块和 Doc-Summarizer 模块组成的 RAG 系统),如果两个不同的 Candidate 支线沿着不同的方向进化(一个专精于写检索词,一个专精于提炼文档),GEPA 支持 Crossover(杂交) 机制。

它会自动识别两个独立进化的支线,并将它们表现最好的局部 Prompt 拼装成一个新的 System。


📈 实验对决:狂揽 6 项 Benchmark,数据极其硬核

为了验证 GEPA 的绝对实力,作者团队在 4 个复杂的复合智能体任务 以及 2 个极高难度的推理搜索(Inference-time search)任务 上进行了全方位测试,并对比了 GRPO 微调(24000 个 Rollout 预算)和目前的 SOTA Prompt 优化器 MIPROv2。

这 6 个任务极具代表性:

  • HotpotQA:多步检索问答,包含多层复杂的 RAG 循环。
  • IFBench:可验证的复杂指令遵循(如限制字数、特定词频等)。
  • HoVer:多步 claim 校验,包含复杂的 3-hop 检索。
  • PUPA:敏感数据隐私去敏,在利用外部不可信 API 时防止泄漏敏感信息。
  • NPUEval & KernelBench:AMD 处理器及 NVIDIA V100 的 CUDA 高并行代码生成及优化。

我们在 Qwen3 8B 和 GPT-4.1 Mini 两大模型上做了全面评测,核心实验结果如下表:

Qwen3 8B 评测大表(Table 3)

优化算法 HotpotQA IFBench Hover PUPA 平均得分(Aggregate) 相对提升(Improvement)
Base Baseline 42.33 36.90 35.33 80.82 48.85
MIPROv2 55.33 36.22 47.33 81.55 55.11 +6.26
GRPO (LoRA) 43.33 35.88 38.67 86.66 51.14 +2.29
GEPA (Ours) 62.33 38.61 52.33 91.85 61.28 +12.44
GEPA+Merge 64.33 28.23 51.67 86.26 57.62 +8.78

GPT-4.1 Mini 评测大表(Table 3)

优化算法 HotpotQA IFBench Hover PUPA 平均得分(Aggregate) 相对提升(Improvement)
Base Baseline 38.00 47.79 46.33 78.57 52.67
MIPROv2 58.00 49.15 48.33 83.37 59.71 +7.04
GEPA (Ours) 69.00 52.72 51.67 94.47 66.97 +14.29
GEPA+Merge 65.67 55.95 56.67 96.46 68.69 +16.02

(注:由于闭源小模型 GPT-4.1 Mini 无法开放权重,故无法在闭源模型上运行 GRPO 基线)

从上面的数据,我们能读出几个极其惊艳的技术发现:

1. 为什么 GRPO 输得这么惨?

在 Qwen3 8B 上,使用 24000 组大规模 Rollout 进行 LoRA 权重更新的 GRPO 策略,平均只提升了 2.29 个百分点(51.14 vs 48.85),在 HotpotQA 上几乎原地踏步,IFBench 上甚至比原版 Baseline 还要弱。

相比之下,GEPA 在文本 Prompt 空间上狂飙了 12.44 个百分点(达到了 61.28)。

这有力地证明了作者的论点:当数据集和算力规模受限时,智能体的多步控制链在权重空间极其难训练。通过连续改变几十亿个浮点数,模型很难建立对“工具输出格式”或“检索词相关度”的多步逻辑闭环。而自然语言反思,能够提供比单纯梯度更丰富、更具备因果性的反思信息,实现了维度上的跨越打击

2. 精致的 Prompt Token 控制:吊打 MIPROv2

MIPROv2 采用了经典的贝叶斯优化,极其依赖 Few-Shot 样本的拼接(Bootstrapping)。这就导致 MIPROv2 优化完的 Prompt 往往极其臃肿,塞满了冗长且可能过拟合的少样本,不仅在推理时产生昂贵的 Token 开销,泛化到 OOD(分布外)测试集时还极易翻车。

而 GEPA 生成的 Prompt 只是紧凑、干货满满的高阶指令(Instructions),平均 Token 长度只有 MIPROv2 的 1/9,极大地节省了实际落地时的推理成本。


🔎 批判性审视与我的判断:GEPA 的局限、遮羞布与核心学术价值

读完这篇论文,我说实话,它的帕累托采样和轨迹反思是真的漂亮。但是作为一个在算法和工程一线摸爬滚打的开发者,我们必须保持极高的学术敏感度和批判性思维。

在这篇 Oral 论文那些华丽数据的背后,其实有几个极其关键、甚至有些刻意掩盖的“大坑”和行业真相。

1. 遮羞布:GRPO 是不是真的这么废?——关于“稻草人基线”的学术真相

我们在实验大表里看到,更新权重的 GRPO 微调策略在 Qwen3 8B 上平均只提升了 2.29 个百分点,几乎被 GEPA 的 +12.44% 跨维度吊打。

但这真的是因为强化学习微调技不如人吗?

显然不是。这里面其实藏着学术界常用的 “稻草人基线”(Strawman Baseline) 嫌疑。

  • Rollout 预算严重“缩水”:在论文的实验中,GRPO 的训练 Rollout 预算被限制在了极其克制的 24000 个(500 步 \(\times\) Batch Size 48)。但在真正的对齐或强化学习(例如 DeepSeek R1-Zero 等)实战中,强化微调通常需要几十万甚至数百万级别的 Rollout 训练才能实现稳定收敛。
  • 高方差与稀疏奖励下的不收敛:在多步智能体(例如 HotpotQA 的 3-hop 检索控制)或可验证指令遵循(IFBench)中,任务的奖励是极其稀疏且高方差的(多步控制中一步错就是 0 分,全对才得 1 分)。在如此稀疏的 scalar reward 下,仅给 2.4 万个样本让 LoRA 去更新几十亿维的权重空间,策略梯度由于信用分配(Credit Assignment)信噪比极低,还在黑暗中乱晃,根本还没收敛就到了训练终点。

所以,在极度样本受限(Sample-constrained)的冷启动阶段,GRPO 表现差是必然的。

但这引出了一个极其深刻的控制论与信息论本质:

  • 参数空间微调(Weight Space Tuning)的困境:在浮点权重空间中,反馈只有干瘪的标量分(比如 0 或 1)。要靠这个冰冷的分数,反向传播去扭曲几十亿个参数,其样本复杂度(Sample Complexity)是天文数字。
  • 离散规则空间搜索(Instruction Space Search)的跨度:自然语言本身蕴含了人类极其丰富的离散逻辑与高阶约束。调 Prompt 实际上是在大模型已被 Pretrain 赋予的万亿级高维语义空间里做“离散跳跃”。因为模型本身已经具备极强的指令遵循能力,你只需改一句话(Prompt),就能利用起大模型内部海量的预存先验。
  • 我的判断RL 微调绝对不是搞笑的。但在算力和样本受限的“冷启动”和“复杂多步离散控制流”场景下,直接在 Prompt 离散规则空间进行搜索,其收敛效率天生就比在连续参数空间做盲目的梯度下降高出几个数量级。 当 Rollout 规模达到百万级别,RL 必然能学到超越文本 Prompt 表达上限 of 参数级底层行为;但在小算力冷启动场景,Prompt 进化确实构成降维打击。

2. System-Aware Merge 的滑铁卢:协同演化瓶颈(Co-adaptation)

我们刚才注意到一个非常诡异的数据:在 Qwen3 8B 平台上,GEPA 在单个模块进化时拿到了 61.28 的高分。但是,当你开启 GEPA+Merge(杂交/合并)之后,在 IFBench 任务上,性能竟然发生雪崩,从 Baseline 的 36.90 暴跌到了 28.23!使得平均分掉到了 57.62

而在 GPT-4.1 Mini 闭源模型上,GEPA+Merge 却取得了最高分 68.69

这说明了什么?

这就是典型的 Co-adaptation(协同演化瓶颈)。在多模块系统中,模块 A 的 Prompt 风格和模块 B 的 Prompt 逻辑在演化中会发生隐性的耦合依赖

当模型本身的指令遵循和反思归因能力不够强悍时(如 Qwen3 8B 与闭源金标模型相比),如果我们在各自的分支上独立突变,然后强行将其拼装在一起,两个模块之间就会出现严重的“鸡同鸭讲”现象(比如 Query 模块为了高召回把输出写得很脏,而 Summary 模块却突变出了一套极高要求的严格解析 Prompt,两者强强合并,直接引发了灾难性的死锁崩溃)。

所以,多模块智能体的优化绝非简单的“积木拼接”,模块间的语义对齐是不可忽视的屏障。

3. 反思性突变(Reflective Mutation):不就是我们日常的人肉 Badcase 归因和迭代吗?

你可能会说:LLM 跑一个小样本,抓出 Trace 报错,然后归因出原因,重新写一句更严谨的 Prompt 写入代码,最后跑一次回归测试。

这不就是我们日常算法人员和 Prompt 工程师每天上班干的“人肉活”吗?

确实,这套流程可以说是我们最熟悉的常规操作。它是全自动闭环的,不依赖于像 lm-evaluation-harness 这类特定评估 hurness,而是直接在系统的 Execution Trace(执行轨迹)上进行序列化解析。

但为什么这套看似“常识”的直觉能成为 ICLR Oral 的核心创新?

因为在学术上,它彻底击中了传统自动 Prompt 优化器的阿喀琉斯之踵。 - 从“盲搜索”到“因果归因”:在 GEPA 之前,主流优化器(如 APE 或早期 DSPy 变体)在突变 Prompt时,基本属于“瞎变异”——要么随机让大语言模型“生成 10 个类似的提示词候选”,要么利用贝叶斯优化在历史候选库里盲目拼接。它们 根本不看运行时的 Trace 细节,更无法做到真正的 Credit Assignment(归因分析)。 - 因果关系桥接:GEPA 第一次在方法论上证明了,通过设计特定的 Meta-Prompt,可以将系统 Execution Trace 中暴露的中间报错、状态和 metric 信息,成功转化为 LLMs 的自然语言推理信用分配(Trace-conditioned Reflection)。它让自动化 Prompt 搜索从此不再靠“瞎碰玄学”,而是真正拥有了人肉归因般的定向演化直觉。

4. Pareto 照亮采样:它在离散文本进化中对抗“平庸种群”退化的数学直觉

我们抽查一下 Table 4 的消融实验。作者对比了贪心选择平均分最高的 SelectBestCandidate 策略与他们提出的 GEPA 帕累托边界采样:

  • SelectBestCandidate:HotpotQA 58.33 | IFBench 30.44 | Hover 45.33 | PUPA 85.45 | 平均: 54.89
  • GEPA(Pareto 采样):HotpotQA 62.33 | IFBench 38.61 | Hover 52.33 | PUPA 91.85 | 平均: 61.28

帕累托采样策略足足比贪心策略高了 6.4 个百分点!

这个消融实验极其扎实,也解释了为什么之前的很多自动调 Prompt 工具进化到第 3 代、第 4 代之后就陷入了同质化死锁(Diversity Loss)。

在代码自动生成(例如 NPU 向量化、CUDA 算子高度并行化)这种复杂的崎岖任务空间中,存在着典型的 “悬崖损失”(Cliff Loss)。任务具有极强的不均匀性(Heterogeneity)。 - 平庸种群的退化:假设 Candidate \(A\) 专攻克了 10% 极难的多步长序列难题,但在剩下 90% 的简单样本上表现平平。如果按照传统的全局平均分筛选,这个“偏科天才”在第一代进化就会被贪心策略无情扼杀。种群很快就会退化为“只会做简单题、而在硬骨头面前全军覆没”的平庸克隆体。 - Pareto Frontier 的多样性照亮(Illumination Selection): GEPA 创造性地引入 Pareto 边界选择。只要 Candidate \(A\)哪怕只有一个具体样本上取得了所有候选人中的最高分,它就会被强制保留,不被任何“全局均分稍高、但攻不克这个特定难点”的平庸候选所严格支配。它在 Pareto 边界上占据的单项冠军样本数越多,下一轮突变的几率 \(f[\Phi_k]\) 就越高。

这种对局部“特长基因”的数学化保护,在本质上防止了离散文本在进化中丧失多样性,是 GEPA 能在 CUDA 算子优化这类极度崎岖和不均匀任务上取得颠覆性突破的核心魔法。

5. NPU 与 CUDA 代码生成:惊艳的推理期搜索

除了常规的 Prompt 调优,GEPA 在 AMD NPU 处理器 XDNA2 内核生成(NPUEval 任务)上的表现,说实话让我非常吃惊。

图4:GEPA 在 AMD NPU 上迭代优化向量利用率(Vector Utilization)的实验曲线

图4:在 AMD NPU kernel 编译利用率测试中。原版的 GPT-4o 进行 10 次顺序环境报错重试,向量利用率只有 4.25%。而当 GEPA 进化了一整套系统控制 Prompt 后,同样的 Agent 即使在零外接工具(无 RAG)的情况下,直接编译一次,利用率就能狂飙到 26.85%,逼近了外接复杂 RAG 及 MIPRO 联合重卡环境的上限!

这说明,通过 GEPA 进化的系统 Prompt 中,已经凝聚了极高通用性和泛化度的高阶编程规范与抗错直觉。


🎯 总结:如果你在做智能体,这篇 Paper 对你有什么启发?

GEPA 被 ICLR 2026 接收为 Oral,真的不是偶然。它给广大饱受 RLHF、GRPO 算力摧残、以及为 Prompt 工程调参感到迷茫的开发者指明了一条路:

  1. 别急着调参数权重,先调 Prompt。微调是极其昂贵且无法控制其泛化性的,而 Prompt 是在离散的高阶规则空间直接控制模型的推理逻辑,其性能天花板和泛化度可能远超你的预期。
  2. 写 Prompt 变异时,别让模型凭空去想。看 Traces,看 Traces,还是看 Traces。大语言模型最好的学习媒介,就是它们自己产生的自然语言。在写重写 Agent 时,务必要求模型先做 Credit Assignment(分析究竟哪一行 Prompt 导致了某一步的错误),再进行重写。
  3. 别每次都选平均分最高的候选,多看看在边缘边界案例(Edge Case)上极其优异的“偏科”Prompt。建立帕累托采样前沿,是保持种群多样性、突破局部最优(Local Optima)的唯一魔法。

如果你目前正在做复杂多步骤 RAG 或是代码、数据库优化智能体,强烈建议立刻去读这篇论文的原文,或者在你的 Prompt 优化框架中试一试这套 Pareto 筛选与 Trace 反思突变,它的 sample 效率绝对会让你大吃一惊。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我