banner
约 5,100 字
17 分钟

GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning 论文阅读

摘要

完整拆解 GEPA 的反思变异、逐实例 Pareto 候选选择和谱系合并,保留任务反馈、算法细节、预算口径与失败结果,说明提示优化如何接入 Agent 改进。

GEPA 将一次 Agent 或工作流运行留下的文本轨迹转成提示词优化信号。模型如何检索、工具为什么报错、哪些约束没有满足,都可以帮助反思模型提出新的模块指令。优化器再用任务结果检查这些指令是否有效,并保留擅长不同实例的候选,避免只沿着一个平均分最高的方案反复修改。

论文的核心是反思式提示变异、按实例表现选择候选,以及利用演化谱系组合互补模块。模型权重保持冻结,改动发生在系统的提示词集合中。实验说明这条路线在部分任务上有较高样本效率,也保留了数学任务中 GRPO 更好、合并策略可能退化等结果。它适合帮助开发者判断:当前问题能否通过更明确的任务规则与反馈解决,何时仍需要调整权重或系统结构。

信息

内容

论文

GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning

作者

Lakshya A. Agrawal、Shangyin Tan、Dilara Soylu 等;Omar Khattab 等参与

来源

ICLR 2026 Oral;首次预印本于 2025-07,本文读 arXiv:2507.19457v2,2026-02-14

阅读范围

正文 §1—7,算法 1—4,附录 C—E 的反思、合并、任务和训练设置,以及相关结果说明

优化对象

由一个或多个 LLM 模块组成的系统的提示词,底座权重冻结

输入

初始系统、训练任务、评价函数、文本反馈函数和 rollout 预算

输出

在候选选择集上总体表现最好的提示词系统

原文与代码

论文 v2,官方 GEPA 实现

任务奖励中丢掉了哪些可用信息

一个代码 Agent 编译失败,得到奖励 0;另一个 Agent 返回格式错误,也得到 0。两次失败对梯度算法可能表现为相同标量,但环境还包含不同错误位置、模块输出和约束说明。这些文本有助于判断下一次应该修改什么。

论文区分系统执行轨迹与评价轨迹。前者包含模块输入、输出、工具调用和可取得的推理信息;后者来自检查结果,例如编译器错误、失败测试或 rubric。GEPA 将评分之外的这些信息送给反思模型,让它形成新的指令候选。

这种信号需要与真实评测相连。反思模型可以提出原因,也可能误判;文本反馈丰富,不代表建议必然有效。因此 GEPA 在每次修改后重新运行系统,用任务分数决定是否接受候选。反思负责提出改变,执行评价负责检验改变。

系统表示:哪些东西参与优化

论文将复合 AI 系统写成 Φ=(M,C,X,Y)。M 是 LLM 模块集合,C 是控制流,X/Y 是整体输入输出 schema。每个模块包含提示词 π_i、权重 θ_i,以及模块自身的输入输出定义。

例如一个多跳问答系统可以有查询生成、检索、材料摘要和最终回答模块。第二跳查询模块输入原问题与第一跳摘要,输出新的查询;控制流将它交给检索器,再把新材料送到回答环节。

所有模块的提示词组成 Π,权重组成 Θ。论文用统一目标讨论提示与权重优化,以便比较不同方法:

max⁡Π,Θ  E(x,m)∼T[μ(Φ(x;Π,Θ),m)],#rollouts≤B.\max_{\Pi,\Theta}\; \mathbb E_{(x,m)\sim\mathcal T} \left[\mu\bigl(\Phi(x;\Pi,\Theta),m\bigr)\right], \quad \#\mathrm{rollouts}\le B.

x 是任务输入,m 是评价元数据,例如正确答案、rubric 或测试;μ 返回任务分数,B 为运行预算。GEPA 实际只修改 Π,Θ 固定。GRPO 等比较方法则在权重空间优化。系统定义、评价与预算需要共同记录,不能只根据最终分数判断哪种优化方式总是更好。

Rollout 在本文中指一次系统运行及其评价,不等于一次底座调用。复合系统的一次 rollout 可能包含多个模块和工具。反思模型本身还会被额外调用,因此 rollout 数少不自动等于全部 token、时间或费用同比下降。

GEPA 的一轮优化如何执行

下图把候选池、评分矩阵、反思变异和合并接到同一循环。先跟踪中间的训练小批与新候选,再看左侧候选选择如何为下一轮提供起点。

原论文图 3:GEPA 完整流程
原论文图 3:GEPA 完整流程

来源:论文 v2,Figure 3,PDF 第 5 页。

初始化候选与两类任务用途

初始候选池 P 只含种子系统。优化器先记录它在候选选择集上的逐实例分数,再进入演化循环。算法区分 D_feedback 与 D_pareto:前者提供轨迹和反馈,用于生成新指令;后者提供选择分数,用于保留候选与最终选择。

论文实验使用训练集作 D_feedback、验证集作 D_pareto。反思阶段可以读取训练内容与反馈,验证内容不直接送进提示词生成过程;分数仍会被反复用于搜索选择。最终测试集单独保留,检查未见实例上的泛化。

候选选择集需要支付执行成本。原文指出,GEPA 很大一部分 rollout 花在验证而非反思采样。这也是它把评价预算作为核心资源的原因,不能只统计发生反思的那几条轨迹。

选一个候选,再选一个模块

从候选池中按实例表现选择演化起点,再按论文的 round-robin 策略选需要修改的模块。这样可以逐步改变不同模块,维持其他部分不变。

只改一个模块有助于解释局部变化,但最终评价仍针对整个系统。查询更好可能提高回答质量,也可能改变后续输入,让其他模块遇到新状态。局部指令看起来合理,仍需端到端检查。

收集轨迹与文本反馈

选中的系统在 D_feedback 的小批任务上运行。反馈函数 μ_f 返回数值与文本,并在可用时给出模块级反馈。多跳检索可以指出哪些相关文档仍未找到;格式任务可以指出满足与违反的约束;代码任务可以保留编译错误。

模块级信号不是所有任务都天然具有。只有最终答案评分时,反思模型需要从轨迹推断责任,归因可能更困难。论文允许人工解释作为辅助反馈,但这也增加了数据和人员依赖。

用反思模型提出新指令

反思输入包含当前模块提示、任务例子、输入输出、评分和反馈。附录 C 的 meta-prompt 要求理解任务格式、提取领域信息与可泛化策略,再输出新指令。这里的反思调用承担的是候选生成,不产生模型权重更新。

原文图 2 给出第二跳检索例子:种子提示只说明从问题与摘要生成查询,优化后的指令要求定位第一跳尚缺的相关实体或更高层概念,并避免简单重复原问题。它把训练中发现的检索失败原因变成可复用规则。

知识也可能被写入提示。若反馈含有训练答案或只有特定环境才成立的细节,新指令可能过拟合。因此应检查学到的是通用策略、必要领域规则,还是某几个训练样本的答案。

先小批比较,再扩大评价

新提示替换选中模块,其余模块和权重保持一致。优化器在相同小批上比较父候选与新候选;小批平均分改进后,再把新系统加入候选池,记录父子关系,并评价 D_pareto。

小批门槛减少明显无效候选的大规模评价成本,但可能受随机性影响。研究使用 minibatch size=3,属于论文设置,不能认为三条样本足以精确证明每次修改有效。需要结合任务噪声与运行预算确定实际检查强度。

预算耗尽后,从候选中选出在 D_pareto 上平均表现最好的系统。优化过程不要求每个新候选都取代当前最好系统,保留不同分支才能为后面的探索与合并提供条件。

按实例维护候选:Pareto 选择的实际细节

对每个选择实例 i,计算候选中的最高分 s_i*,收集达到最高分的候选。将这些候选取并集,再剔除被其他保留候选支配的方案。若一个候选在全部实例上不差、至少一个实例更好,就可以支配另一个候选。

原文策略先要求候选至少在一个实例取得最高分,再做支配检查,因此其选择池具有具体筛选规则。不能把它笼统理解为保存所有数学意义上的非支配点。完成过滤后,按候选在多少实例中进入最高分集合来设置抽样权重。

一个教学例子:候选 A 在三项任务上的分数是 [1,1,0],B 是 [0,1,1],C 是 [1,0,0]。A 与 B 分别覆盖不同成功区域,C 被 A 支配。保留 A、B 后,两者都在两个实例上取得最高分,下一轮有相应机会继续演化。分数仅用于说明算法,不是论文实测。

只按平均分选择可能过早放弃某种尚未成熟的策略。按实例保留使优化器能继续探索局部强项,并可能从中产生整体更好的候选。它仍依赖选择集代表性,少数噪声实例或错误评分也可能影响候选频率。

原论文图 6:候选选择与演化树
原论文图 6:候选选择与演化树

来源:Figure 6,PDF 第 10 页。左侧只演化当前最高分候选,右侧按实例表现进行选择,展示该次实验中的搜索路径差异。

System-aware Merge 怎样组合分支

合并候选需要保存演化谱系。附录 D 的算法寻找具有共同祖先、且不是直接祖先后代关系的两个分支,检查相对祖先的表现,以及是否存在互补的模块改动。已经试过的组合不重复提出。

对于某个模块,若一个分支仍使用祖先提示,另一个分支已改进,则采用改变后的提示;若两个分支都改了同一模块且提示不同,算法按整体候选分数选择其中一个,平分时随机处理;其他情况沿用对应一致提示。它是在模块层面组合提示集合,不是把两段长指令无条件拼接。

举一个教学例子。共同祖先有查询模块和摘要模块。分支 A 改善查询,让检索更精准;分支 B 改善摘要,使关键证据保留更完整。Merge 可以形成查询取 A、摘要取 B 的候选,再重新评价。即使两个局部版本分别有效,组合也可能改变输入分布而失效,所以合并结果不能直接免检。

论文实验最多调用合并 5 次,预算在变异和合并之间分配。作者发现 GPT-4.1 Mini 的合并总体有益,Qwen3-8B 则在一些任务上退化。合并需要足够独立、有互补价值的分支,何时启动与分配多少预算仍是待研究问题。

用伪代码走完整个优化过程

下面依据算法 1—4 整理,只用于教学,省略实现细节,不是已经运行的官方代码。

纯文本
准备初始系统、反馈任务、候选选择任务、评分与总预算
候选池 = {初始系统}
记录初始系统在选择任务上的逐项分数

预算尚未耗尽时:
    从按实例最高分筛选后的候选中抽样父候选
    选择一个需要修改的模块
    在反馈任务的小批上执行父候选
    收集模块输入输出、工具反馈、任务分数和评价解释
    反思模型提出新的模块提示
    保留其他模块,形成新候选
    在相同小批上比较新旧系统
    若小批表现改进:
        扩大到候选选择任务评价
        保存逐项分数、父子关系和提示版本
    有合适互补分支且预算允许时:
        提出模块级合并候选并检验

返回候选选择集平均分最高的系统
在独立测试集上评价一次最终方案

最后一步的独立测试不参与候选生成。开发时如果根据测试集错误反复改提示,该集合就已经进入调参循环,应另留真正独立的数据检查泛化。

实验使用了哪些任务和反馈

论文的六项任务覆盖不同工作流,反馈内容直接影响反思能获取多少诊断信息。

任务

系统与评价对象

供优化使用的反馈特点

HotpotQA

多跳检索后回答问题

提示每跳仍缺的相关文档

HoVer

多跳查询与证据检索

已检索和仍需检索的正确文档

IFBench

先回答,再按约束改写

哪些格式或指令约束满足/失败

PUPA

隐私保护的请求委托与回答改写

回答质量与 PII 泄漏的分项反馈

AIME-2025

单模块数学推理

数学答案评价;旧年份供调参

LiveBench-Math

单模块数学任务

相应答案分数与可用反馈

HotpotQA 使用 150 个训练、300 个验证、300 个测试样本;HoVer 同样使用这一规模。IFBench 测试包含新的约束类型,训练与验证来自另一份训练数据,帮助检查对未见指令的泛化。PUPA 使用 111/111/221 的划分。AIME 用 2022—2024 年 90 道题分训练和验证,2025 年 30 道题各运行 5 次测试。LiveBench-Math 使用 2025-07-30 获取的数据子集,再做划分。

这些细节说明结果的范围。某些任务具备训练时的文档标签、约束检查或隐私分项评分;自己的无标签 Agent 任务未必能提供同样反馈。测试题重复运行提高了对采样的观察,但没有增加独立数学题的数量。

模型包括 Qwen3-8B 与 GPT-4.1 Mini,推理上下文上限为 16384 token。Qwen 的论文设置使用 temperature=0.6、top-p=0.95、top-k=20,GPT-4.1 Mini 用固定版本与 temperature=1.0。这里记录研究设置,不作为当前接口配置推荐。

主结果支持什么,哪些结果不能省略

下面保留表 1 中的六任务分数。指标按论文任务定义报告为百分制,任务之间含义不同;平均值是作者的汇总方式,不能直接解释成同一种能力的准确率。

Qwen3-8B 方法

HotpotQA

IFBench

HoVer

PUPA

AIME-2025

LiveBench-Math

汇总

初始系统

42.33

36.90

35.33

80.82

27.33

48.70

45.23

GRPO

43.33

35.88

38.67

86.66

38.00

51.26

48.91

MIPROv2

55.33

36.22

47.33

81.55

20.00

46.60

47.84

GEPA

62.33

38.61

52.33

91.85

32.00

51.95

54.85

GEPA+Merge

64.33

28.23

51.67

86.26

32.00

51.95

52.40

来源:论文 Table 1,PDF 第 8 页。GEPA 汇总较 GRPO 高 5.94 分;在该表的六项任务中,GEPA 有五项高于 GRPO,AIME 低于 GRPO。Merge 提高了 HotpotQA,却在 IFBench 等任务退化,汇总也低于不合并版本。

这个表是理解标题的必要条件。GEPA 能在一些工作流上超过对应 GRPO 设置,不能推出提示优化在所有学习任务上都优于权重更新。数学推理任务与带丰富模块反馈的检索系统,可能具有不同改进空间。

原论文图 1:分数与 rollout 预算
原论文图 1:分数与 rollout 预算

来源:Figure 1,PDF 第 1 页。曲线显示验证表现与测试标记;预算统计需要结合主表和附录理解。

GRPO 比较使用 24,000 rollouts。原文报告 IFBench 的最好提示在约 678 rollouts 时找到,同时表中整个 GEPA 搜索预算约为 3593。最佳候选出现所需预算、完整搜索预算和仅训练反馈预算是不同口径。作者提出的最高约 35 倍样本效率优势属于特定任务与停止位置,不能将它理解为所有任务或所有费用均减少 35 倍。

GPT-4.1 Mini 的表 2 中,初始汇总为 53.03,GEPA 为 65.22,GEPA+Merge 为 66.36,MIPROv2 为 58.67。Qwen 上优化的提示不改动就迁移到 GPT-4.1 Mini,汇总为 62.03。这支持部分任务规则能够跨模型使用,但不保证迁移到你的模型、工具定义或业务任务后仍然有效。

候选选择消融

表 3 保持演化框架一致,在四个 Qwen 任务上改变选择策略。仅选择最高分候选的汇总是 54.89,beam search 为 53.95,GEPA 为 61.28,初始为 48.84。这个消融比跨优化算法主表更直接地支持候选选择的贡献,仍需要保留四任务范围与相同框架条件。

比较中的训练配置与成本

附录中的复合系统 GRPO 使用 LoRA rank=16、α=64、dropout=0.05,覆盖注意力与 MLP 投影;组大小为 12,每步 4 个训练实例,学习率为 1e-5,并使用相应正则、裁剪与调参。另有单模块全参数训练对照,因此作者并未仅比较一个纯 attention LoRA 基线。

GEPA 与 MIPROv2 的预算按任务对齐,实际消耗仍有小幅差异。反思调用、候选评价、提示长度和工具开销应分开记录。原文附录给出 GPT-4.1 Mini 实验的历史费用,例如 GEPA 全部相关任务约 86 美元;这只是作者在当时配置中的成本,不能作为当前报价。

优化后的指令在一些条件下比 MIPROv2 的多示例提示更短,可能降低后续输入成本。但它依然可能形成较长、针对性很强的提示,不能推导为提示越短越好。

推理时搜索与鲁棒性扩展

论文还将 GEPA 用于特定代码任务的搜索:让反馈集与候选选择集包含待解决问题,允许优化器针对这些题反复改进。此时目标是解决给定实例,数据使用口径不同于独立测试泛化。

在早期 NPUEval 实验中,GPT-4o 结合最多十次顺序修正的系统平均向量利用率为 4.25%;加入检索与 MIPROv2 后为 19.03%;GEPA 保留不同任务最优策略时报告 30.52%。这些是特定 AMD NPU 内核任务的利用率指标,需要同时满足功能正确条件,不能解释成一般代码准确率或所有硬件加速比例。

KernelBench 扩展使用 NVIDIA V100、35 个代表任务,报告 fast_p:生成的功能正确内核中,达到相对 PyTorch eager 指定速度条件的任务比例。这些实验仍被作者定位为初步结果。

鲁棒性扩展则反向优化提示,寻找保持题目内容但降低成功分数的干扰。原文 AIME 案例中,GPT-5 Mini 在测试集的分数由 76% 降至 10%;人工检查发现模型经常输出格式占位符。该下降主要揭示干扰信息与严格格式要求的交互,不能直接解释成数学知识全部消失。它可以提供压力测试样本,但不能代替正常分布的能力评价。

怎样应用到自己的 Agent

先把系统拆成具有明确输入输出的模块,记录稳定的种子提示和控制流。选择一组能给出可核验结果的任务,为失败保留具体反馈。查询缺证据、工具格式错误和无效引用,比一句“回答不好”更适合反思。

划分反馈、候选选择与独立测试数据,给搜索设置明确预算。每次修改保存提示版本、运行轨迹、模块身份与逐项分数,检查反思是否把训练答案、隐私数据或不可信工具文本写进指令。优化器产生的提示仍需要符合系统授权边界。

用新的任务检查迁移结果,并与当前人工提示在相同底座和预算下比较。若提示明确化已经解决问题,可以减少不必要的训练;若任务需要大量新知识、模型不能生成有效行动,或能力受底座限制,则继续研究数据、蒸馏和权重更新。

GEPA 与微调可以共同使用,但论文没有证明一种固定组合顺序最优。可以分别测提示优化、权重微调以及二者组合,检查独立任务的质量、回归、输入长度和运行成本,再决定项目采用哪条路线。

来源与关键复读位置

  1. GEPA v2 原文:§2 系统与预算定义,§3 变异与候选选择,Figure 3—4 总览和核心算法,§4 结果与消融,§5 扩展。

  2. 附录 C,PDF 第 22—23 页:反思 meta-prompt;附录 D,第 23—24 页:共同祖先与模块合并算法;附录 E,第 23—27 页:反馈、划分、模型与 GRPO/GEPA 设置。

  3. 官方代码。本文按所读论文版本解释算法,未运行官方实现,也不将论文历史配置当作当前库的默认值。

END