GEPA:反思性提示进化如何超越强化学习
在模型(LLMs)快速发展的当下,如何高效地将其适配到下游任务是其中的一个研究热点。强化学习方法如Group Relative Policy Optimization(GRPO)虽有成效,但往往需要数千次滚动(rollouts)才能完成新任务的学习。本文(arxiv 2025年7月25日)将介绍一种名为GEPA(Genetic-Pareto)的提示优化器,它充分利用自然语言的反思能力,从试错中学习高级规则,仅通过少量滚动(rollouts)就能实现显著的性能提升,为LLM系统的优化提供了全新思路。
1. 基本信息
本文标题为“GEPA: REFLECTIVE PROMPT EVOLUTION CAN OUTPERFORM REINFORCEMENT LEARNING”(GEPA:反思性提示进化能够超越强化学习)。
作者包括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 Berkeley、Stanford University、BespokeLabs.ai、Notre Dame、Databricks、MIT等机构。
该论文为预印本(Preprint),于2025年7月25日发布在arXiv上,编号为arXiv:2507.19457v1
https://arxiv.org/abs/2507.19457
2. 研究背景
近年来,大模型(LLMs)推动了智能体和系统的发展,这些系统结合了模糊的自然语言行为规范与检索、代码执行等工具。此类系统面临一个关键问题:如何在其框架内对LLMs进行优化,以获得最佳的下游性能。
一种常见的让LLMs适应下游任务的方法是带可验证奖励的强化学习(RLVR),其中包括Group Relative Policy Optimization(GRPO)等算法。这类强化学习方法将成功指标视为每个滚动(rollouts)结束时得到的标量奖励,并利用这些奖励来估计政策改进的梯度。
但这些强化学习方法存在明显不足,在实际应用中通常需要数万个滚动(rollouts)才能适应新任务。例如,近期在一系列任务中应用GRPO的研究,往往使用多达数十万个滚动(rollouts)进行训练。这种样本低效性很快会成为严重瓶颈:许多下游LLM应用调用工具的成本高昂,LLM自身的采样推理预算有限,而且对于最大或性能最佳的LLMs,根本无法对其权重进行微调。
作者观察到,即便是高度复杂的LLM系统,其滚动(rollouts)也能序列化为自然(和形式)语言的轨迹,因为这些轨迹仅包含每个LLM模块的指令、生成的LLM推理链、工具调用,以及可能的奖励函数内部运算过程(如编译器错误消息,在被压缩为标量奖励之前)。由于现代LLMs能轻松理解这种序列化轨迹,因此作者认为,与标准强化学习方法相比,通过反思这些轨迹以自然语言进行有意识学习的算法,或许能更高效地利用LLMs强大的语言先验。基于此,本文提出GEPA方法,旨在解决强化学习样本效率低的问题,实现LLM系统的高效优化。
3. 方法
3.1 改进动机
现有强化学习方法优化LLM系统时,样本效率低下,需要大量滚动(rollouts)才能取得较好效果,这在计算资源、时间或成本受限的场景中并不适用。而LLM系统的滚动(rollouts)可序列化为自然语言轨迹,其中包含丰富信息且能被LLMs理解。因此,有必要设计一种利用这些自然语言轨迹进行学习的方法,以提高样本效率,从而更高效地优化LLM系统。
3.2 方法具体描述
GEPA(Genetic-Pareto)是一种用于复合AI系统的反思性提示优化器,它将文本反思与多目标进化搜索相融合。GEPA会根据新滚动(rollouts)中提取的自然语言反馈,对AI系统中的每个提示进行迭代突变。每次突变时,候选提示都源于其“祖先”,并积累从观察和LLM反馈中得出的高级经验。为避免贪婪提示更新导致的局部最优问题,GEPA维持一个帕累托前沿(Pareto front):它并非只进化全局最佳提示,而是随机探索每个问题实例的顶级提示,以此丰富策略并促进稳健的泛化。
GEPA的输入包括:一个用简单提示实例化的复合AI系统Φ、训练数据集Dtrain(由任务实例(x, m)组成)、任务的标准评估指标μ、反馈函数μf以及总滚动(rollouts)预算B。
3.2.1 遗传优化循环
给定复合AI系统Φ,优化过程的目标是确定一组参数<Π, Θ>Φ,以最大化在任务分布上的得分。GEPA首先初始化一个候选池,其中的候选是复合系统可学习参数<Π, Θ>Φ的具体实例。最初,候选池仅包含作为唯一候选的基础系统参数。随后,GEPA进入优化循环,不断提出新候选并将其加入池中,直到评估预算耗尽。
在迭代过程中,GEPA通过突变或交叉的方式修改现有候选,提出更有效的候选。这些修改基于新收集的滚动(rollouts)所提供的学习信号,同时会跟踪每个新候选的“祖先”。这使得GEPA在优化过程中能沿着遗传树积累经验,每个新候选都会继承来自其父代的学习信号以及当前滚动(rollouts)的信号。
每次迭代时,GEPA从候选池中筛选出有前景的候选(候选选择),提出新候选(可能基于反思性反馈对模块中的提示进行突变,或在两个候选之间进行交叉),并在一小批量任务上评估这个新变体。如果新候选在局部小批量上的性能优于其父代,GEPA就会将其加入候选池P。这一过程涉及跟踪内部数据结构,包括新候选的祖先信息,以及新候选在Dpareto(用于候选选择的验证集)上的完整评估结果。
当预算耗尽后,GEPA返回在Dpareto上总体性能最佳的候选。
3.2.2 反思性提示突变
复合AI系统执行过程中生成的自然语言轨迹,能清晰展现每个模块的行为和职责,因为它们包含了中间推断和潜在的推理步骤。当这些轨迹与系统的最终结果(如成功或失败)相结合时,具有很高的诊断价值,能让研究者将错误或成功追溯到模块级别的具体决策。LLMs可通过反思这些轨迹进行隐式的信用分配,将最终结果的责任归咎于相关模块。这种反思过程可用于对各个模块进行针对性更新,从而显著且有效地改善整个系统的行为。
GEPA的具体操作如下:在优化循环的当前迭代中,针对选定的待突变候选,GEPA会用该候选参数更新系统,选择系统中需要改进的目标模块(通过轮询确保所有模块都能得到更新),并在从训练数据集中采样的小批量上生成一些滚动(rollouts),记录其结果(成功/失败)。通过分析系统的执行轨迹,GEPA识别出目标模块的输入、输出和推理过程。据此,GEPA利用LLM对这些信息进行反思性分析,将成功或失败归因于模块提示的某些元素(或其缺失),并为目标模块提出新指令。之后,会提出一个新候选,它是当前候选的副本,只是目标模块的提示已更新为新提出的提示。
评估轨迹作为诊断信号:系统自身的执行轨迹已为成功的反思和提示更新提供了有用信息,但还有另一个极具诊断价值的信息来源——评估指标。通常,评估指标会通过一系列策略进行评估以得出最终分数。例如,代码评估环境在给出标量奖励之前,会执行编译、执行、分析等一系列步骤,每个步骤都会产生自然语言轨迹。
作者提出,除系统自身的执行轨迹外,还可利用这些评估轨迹进行反思性信用分配和针对性提示更新。GEPA通过对评估指标进行简单更新来实现这一点,即创建一个反馈函数μf,该函数能识别评估指标执行过程中产生的相关文本轨迹,并返回最终分数及feedback_text。只要存在这种反馈函数,它还能提供模块级别的反馈(例如,在多跳系统中,评估器可在系统的每一跳后提供反馈)。
3.2.3 基于帕累托的候选选择
GEPA是一种高度模块化的算法,可支持多种在每次优化迭代中选择候选的策略。关键在于,候选选择策略决定了优化器所采用的探索-利用权衡方式。一种简单的策略是始终选择池中性能最佳的候选,但这可能导致优化器陷入提示空间的局部最优:一旦找到主导策略,就很难超越,优化器会在未学到新的、可能更好的策略的情况下耗尽预算。
为解决这一问题,GEPA采用基于帕累托的“启发”策略,如算法2所示。
具体而言,GEPA会确定所有候选在每个训练实例上的最高得分,构建优化过程至今所达得分的“帕累托前沿”。然后,GEPA编制一份在至少一个训练任务上取得最佳得分的候选列表。这会将候选池筛选为包含“获胜”策略的候选,保留所有在反思性突变中发现的有价值见解。接下来,GEPA会剔除严格受支配的候选:例如,若候选2仅在任务1上获得最佳得分,而候选3在任务1上获得相同最佳得分且在任务2上也获最佳得分,那么就会剔除候选2。最后,GEPA从这个经过修剪的列表中随机采样一个候选,为在更多训练实例上获得最佳得分的候选分配更高的选择概率。
在实际应用中,这种策略能帮助GEPA在不过度扩大搜索范围的情况下摆脱局部最优。通过将资源集中在已展现出有影响力的“获胜”策略的有前景候选上,GEPA有效地平衡了探索与利用,能在优化预算内持续改进。
4. 实验与发现
4.1 实验设置
作者在四个不同任务上对GEPA进行了评估,包括多跳推理(HotpotQA)、指令遵循(IFBench)、隐私感知委托(PUPA)和检索增强验证(HoVer),所使用的模型包括开源模型(Qwen3 8B)和专有模型(GPT-4.1 mini)。
所使用的优化器包括基线(不进行任何进一步优化的基础程序)、MIPROv2(一种广泛使用的复合AI系统提示优化器)、GRPO(一种强化学习算法),以及GEPA的两个变体(GEPA和GEPA+Merge)和两个消融版本(SelectBestCandidate和SelectBestCandidate+Merge)。
为了与MIPROv2进行公平比较,在每个基准上统一GEPA和MIPROv2的计算预算。每个基准的训练集用作Dfeedback(用于导出训练信号),验证集用作Dpareto。具体而言,由于MIPROv2的总滚动(rollouts)预算取决于验证集大小和模块数量等因素,作者先记录MIPROv2在每个基准上的滚动(rollouts)次数,再限制GEPA的优化以匹配该滚动(rollouts)预算。
4.2 实验结果
实验结果如下表1和图9所示:
表1:不同优化器在Qwen3 8B和GPT-4.1 Mini模型上多个任务的基准测试结果
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
从实验结果可得出以下结论:
-
反思性提示进化具有高样本效率,能超越权重空间强化学习:在所有四个基准测试中,GEPA在复合AI系统中展现出快速适应和稳健泛化能力——使用的滚动(rollouts)次数最多减少35倍,却比GRPO(24,000个带LoRA的滚动(rollouts))的性能高出19%。
GEPA在HotpotQA、IFBench、HoVer和PUPA上分别仅用6,438、678(减少35倍)、6,858和2,157(减少11倍)个滚动(rollouts)就达到最佳测试集性能,在这些任务上分别比GRPO高出19%、2.73%、13.66%和5.19%。值得注意的是,GEPA分别仅用402、330、1179和306个滚动(rollouts)就达到了GRPO的最佳验证分数,样本效率最高提升78倍。此外,GEPA+Merge组合方法在与GEPA相当的滚动(rollouts)预算下,性能比GRPO高出21%。特别是在GPT-4.1 mini上的IFBench中,尽管测试集包含全新的、完全域外的约束,GEPA+Merge仍实现了8.16%的提升。
还需注意的是,GEPA的大部分滚动(rollouts)用于验证集,这些分数仅用于候选选择,而非产生学习信号。若仅考虑实际用于学习的训练集滚动(rollouts),GEPA在HotpotQA、IFBench、HoVer和PUPA上分别只需737、79、558和269个训练滚动(rollouts)就能达到最佳性能。为匹配GRPO的最佳验证分数,GEPA分别仅用102、32、6和179个训练滚动(rollouts),这充分体现了基于反思性提示进化的学习具有高样本效率。
-
反思性提示进化使仅指令优化能超越联合指令和少样本优化:作者将GEPA与MIPROv2(一种最先进的联合指令和少样本优化器)在两个领先模型(GPT-4.1 mini和Qwen3 8B)的四个不同任务上进行比较。实验表明,GEPA在所有设置中均优于MIPROv2,差距最大为GPT-4.1 mini的11.1%和Qwen3 8B的10.3%。此外,GEPA和GEPA+Merge在所有基准和两个模型上的总体优化增益(+16.02%和+14.29%)是MIPROv2(+7.04%)的两倍多。
尽管之前的研究表明少样本示例优化通常优于基于指令的方法,但本文结果显示这一趋势发生了变化。这主要得益于LLMs在指令遵循和自我反思能力上的最新进展,以及GEPA设计中对这些改进能力的充分利用。
-
下一个候选选择策略对优化轨迹和最终性能影响显著,基于帕累托的采样优势明显。为测试基于帕累托的候选选择策略的影响,作者采用了一种简单的SelectCandidate策略基线:始终选择当前性能最佳的候选。如表2的消融结果所示,这种方法通常会导致对提示搜索空间的次优探索,最终性能不佳——采用基于帕累托采样策略的GEPA比SelectBestCandidate策略的性能最高高出8.17%,在所有基准上的总体差距为+6.4%。
-
指令优化的提示计算成本更低,泛化能力优于少样本演示提示:除了强大的泛化能力,反思性进化的指令还有一个显著实际优势:它们通常比少样本演示提示短得多,因此计算效率更高。对于复杂任务,即使是单个少样本演示也可能过长。而使用最先进的方法(如MIPROv2)优化少样本示例时,由于需要联合优化多个演示以同时使用,会进一步增加提示长度。
相比之下,GEPA生成的反思性进化指令在带来显著性能提升的同时保持了简洁性。如图16所示,GEPA和GEPA+Merge生成的提示比MIPROv2的提示短多达9.2倍,在性能提升的同时显著提高了效率。
此外,研究还观察到一个趋势,总体而言,性能更优的优化器往往生成更短的提示(见图15)。提示长度的减少不仅降低了下游任务的运行成本(因为所有API提供商都按输入令牌计费),还减少了延迟,提高了LLM服务系统的整体效率。
-
系统感知交叉策略可带来显著收益,但突变与交叉的最佳预算分配及合并调用时机仍需深入研究:作者提出了一种独特的系统感知交叉策略,并将其作为Merge实施(详见附录F)。GEPA+Merge的性能比GEPA高出5%,在GEPA已有的良好性能基础上,总体提升了2%。详细结果如表1所示。作者认为,这些收益源于GEPA+Merge识别不同优化谱系的能力,这些谱系通过进化不同模块学习到了互补策略,然后通过从每个谱系中挑选不同模块的最佳版本进行合并,从而提出一个最优候选。
在分析中,作者发现GEPA+Merge在GPT-4.1 Mini上效果尤为显著,但在与Qwen3 8B结合使用时性能有所下降。不过,Qwen3 8B在四分之一的任务中仍能从Merge中受益。作者将这些差异归因于滚动预算在反思性突变和交叉之间的分配方式,以及交叉策略的调用时机。在实验中,作者为GPT-4.1 Mini和Qwen3 8B设置了相同的超参数,这导致Qwen3 8B的选择并非最优。从直觉上讲,当存在表现良好的独立谱系时,交叉策略能发挥最大作用。因此,超参数的选择应确保仅在优化树进化出足够不同的谱系后才调用Merge。作者提出将这种自适应技术作为未来的研究方向。
5. 结论与展望
GEPA(Genetic-Pareto)是一种基于自然语言反思的提示优化器,通过从试错中学习高级规则,无需调整模型权重,仅通过改写自身提示 (prompt)实现多步AI系统的训练。
比传统强化学习(如GRPO)性能最高提升 19%。
所需训练轮次 (rollouts)减少35倍(仅需传统方法的1/35)。
低成本学习:通过自然语言反馈替代数值评分,学习信号更丰富。

