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 不同的验证集;只接受能提升验证分数的变异 |
参见
- Harness Optimization — Meta-Harness 将 GEPA 的完整轨迹反思原则从提示词文本扩展到任意 harness 代码
- SkillOpt — Microsoft 的文本空间技能文档优化器;与 GEPA 进行了基准测试对比(SkillOpt 作者报告 52/52 胜出)
- Prompt Engineering Overview
- Context Engineering Strategies
- Agent Harness
参考资料
- GEPA Project Page — 官方文档与 DSPy 集成指南
- gepa-ai/gepa GitHub Repository — 开源实现