跳转至

GEPA: Genetic-Pareto 提示词优化

概述

GEPA(Genetic-Pareto)是一个反思式提示词优化框架,通过完整的自然语言执行轨迹来演化文本提示词,而非像 GRPO 等强化学习风格的优化器那样依赖标量奖励信号。其核心洞察在于:一个单一数字(通过/失败、评分)几乎丢弃了 LLM 推理过程中所有可用的诊断信息——模型的推理过程、调用了哪些工具、在哪里出错。GEPA 将完整轨迹反馈给 LLM 反思步骤,由其提出对提示词的文本修改,并维护一条候选提示词的 Pareto 前沿,而非收敛到单一的当前最优候选。该项目托管于 gepa-ai/gepa,并已作为优化器集成到 DSPy

核心概念 / 架构 / 特性

  • 反思式变异:每次推理展开(rollout)后,LLM 读取完整轨迹(推理过程、工具调用、中间输出、最终评分),并提出对提示词的具体文本修改——类似于人类工程师阅读失败日志后手动修复提示词,而非执行黑盒梯度步骤。
  • 完整轨迹优于标量奖励:GEPA 的优化器所看到的诊断信号,与人类提示词工程师使用的信息同样丰富,而非单一奖励数字——这与 Meta-Harness 后来将 harness 代码优化泛化时所采用的设计原则相同(参见 Harness Optimization)。
  • Pareto 前沿候选选择:GEPA 不贪婪地只保留单一最高分候选,而是维护一组候选前沿,其中每个候选在至少一个评测实例或子指标上最优。这可避免过早收敛到对聚合分数过拟合的局部最优提示词。
  • 样本效率:GEPA 的反思式、轨迹驱动变异所需的 rollout 次数远少于纯奖励 RL 微调,即可达到相当甚至更好的提示词质量。

评测结果

  • 在使用多达 35 倍更少 rollout 的情况下,比 GRPO(Group Relative Policy Optimization)高出约 10–20%
  • 比 MIPROv2(DSPy 领先的提示词优化器)高出超过 10%
  • 已在多个任务领域中作为 DSPy 集成优化器得到验证

优势

  • 针对冻结、无法微调的模型进行提示词优化的团队——此场景下 RL 风格的权重更新不可行
  • rollout 预算昂贵或缓慢的场景——GEPA 相对于 GRPO 的样本效率优势尤为突出
  • DSPy 用户——希望使用比模块评分更丰富反馈的即插即用优化器

局限

  • 仍是文本空间优化器——只变异提示词,无法修改 Meta-Harness 等 harness 级优化器可以编辑的检索/工具/状态管理代码
  • 每批 rollout 都需要一个 LLM 反思步骤,在 rollout 本身之外额外增加推理成本
  • Pareto 前沿维护相比 OPRO 等单最优候选优化器增加了记账复杂度

与其他优化器的关系

GEPA 介于经典文本空间提示词优化器(OPRO、ProTeGi、TextGrad、MIPROv2——这些优化器将反馈压缩为标量分数或简短文本梯度)与代码级 harness 优化器(Meta-Harness——通过编程智能体使用原始执行轨迹编辑任意 harness 代码)之间。GEPA 是最早将完整轨迹反思引入提示词优化的广泛采纳方案;Meta-Harness 则将同样的完整轨迹原则从提示词文本扩展到整个 harness 代码库。比较表格见 Harness Optimization

最佳实践

挑战 / 领域 说明 解决方案 / 建议
反思模型选择 弱反思模型只能提出低质量变异 反思步骤使用前沿级模型,即使目标/被优化提示词运行在较小模型上也如此
前沿规模膨胀 追踪过多 Pareto 最优候选会增加评测成本 在长时间优化运行中定期设置前沿规模上限或剪枝被支配候选
Rollout 批大小 每次变异步骤 rollout 过少会产生嘈杂的反思信号 每轮批量足够多的 rollout,确保反思步骤看到具有代表性的失败样本,而非单一案例
对训练实例过拟合 变异后的提示词对训练集特定失败案例过度专化 保留与用于反思的 rollout 不同的验证集;只接受能提升验证分数的变异

参见

参考资料