GEPA

一句话定义

GEPA(Genetic-Pareto,Reflective Prompt Evolution)是一种用 LLM 反思反馈驱动 Prompt 变异、并以 Pareto 前沿保留多目标候选的自动优化方法,目标是在不更新模型权重的情况下让提示词根据真实任务数据持续改进。

摘要

GEPA 把 Prompt 优化建模为一个可观测的搜索闭环。任务模型用候选 Prompt 执行样本,评分器计算整体分数和逐样本结果,Judge 对错误样本做归因,反思模型根据输入、输出、分数和诊断反馈生成新的 Prompt。选择器不只留下一个最高综合分,而是保留在多个目标上互不支配的候选,使精确率、召回率、成本、长度等目标之间的业务权衡可以继续被观察和选择。

在大淘宝技术的工程实践中,GEPA 被封装成任务无关的 Service。用户提供带标注数据和任务目标,Inspector 自动推断任务类型、字段、模板和种子 Prompt;配置构建器再把输出 Schema、提取方式和评分函数配成一致组合。这样同一套引擎可以覆盖二分类、多分类、评分、规则判定、对比和聚类,而不必为每个业务重写一套 Adapter。

详情

起源与背景

传统 Prompt 调优依赖专家凭经验修改,常见问题是修改方向没有数据依据、静态扫描缺少对错误的深层反思、个人经验无法复制,以及修好一个指标时另一个指标退化。GEPA 受到论文《GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning》和 DSPy 生态启发,把“哪条规则导致这个 Badcase”作为反思输入,试图将经验试错改成可测量、可回放的搜索过程。

核心机制 / 工作原理

一个完整迭代通常包含四个环节:

  1. 推理:任务模型以当前候选 Prompt 批量处理训练集,生产原始回复和结构化答案;温度通常设为 0,以便同一候选可重复比较。
  2. 评分:解析器从回复中提取 JSON 字段、正则结果或文本,按任务类型计算样本级与批次级指标。二分类可看 Precision、Recall、F1 和 Accuracy,评分任务可看 MAE、RMSE、Spearman 或 Kappa,聚类可看配对 F1 和 ARI。
  3. 反思与变异:规则反馈先区分正确、解析失败和答错;对错误样本再由 Judge 依次回答错误定位、Prompt 归因和改进建议,反思模型据此生成一个或多个候选变体。
  4. 选择:将候选在多个目标上的结果组成 Pareto 集,保留互不支配的解并从中采样下一轮,避免只沿单一总分贪心而陷入局部最优。

这种流程把模型自由生成限制在“有证据的反馈”上,同时保留不同业务偏好的选择空间。对于精确率优先、召回率优先或成本受限的任务,评分器可以定义约束目标,而不必把所有偏好粗暴压成一个加权数字。

工程化实现

GEPA Service 的配置层包含任务、模型、数据、Prompt、输入、输出、评分、反馈、优化和评估等对象。build_config() 根据 binary、multiclass、scoring、comparison、clustering 等任务类型自动对齐 Schema 主字段、答案提取器和优化评分。引擎层暴露 run_optimize、run_evaluate、validate_config;组件层提供可插拔的 data、parsers、scorers、feedback、llm、evaluate 和 inspector;服务层通过 CLI、FastAPI、文件系统任务目录和 JSONL 进度流支持交互式或自动化调用。

Inspector 会分析字段类型、唯一值、长度、缺失率和可能的标签列,输出 DatasetProfile 以及任务、输入字段、答案范围、模板和种子 Prompt 的建议。运行时将 train、val、holdout 分层切分,保存最优 Prompt、候选树、逐样本输出、配置和状态,使一次优化能够复评泛化能力而不是只记住训练集。

生产边界

Prompt 不是越长越好。文章建议把硬性约束、工具调用协议和输出 Schema 放进冻结区,让选择器只返回可变区;同时把长度作为独立 Pareto 目标或硬门禁,防止反思模型不断追加补丁。没有 Ground Truth 时,可以将离线评测、线上业务效果和历史策略回溯转成排序或否决信号,但应避免把“少做决定、保守匹配”误当成真正进步,也不能让自我生成的奖励成为唯一发布依据。

应用 / 使用场景

  • LLM Judge 与 Agent 评估器的人工标注对齐
  • 内容审核、客服意图识别、规则判定等分类任务
  • 策略有效性、质量等级等评分任务
  • Pairwise 选择和相似商品聚类
  • 将 Prompt 候选、评分和 Badcase 反馈接入持续评测或 Claude Code Skill

局限与注意事项

  • 反思、Judge 和候选评估会增加调用次数、延迟和成本,需设置预算、并发和停止条件。
  • 评分器错误或标注偏差会被闭环放大,必须保留人工抽查和独立验证集。
  • Pareto 前沿给出的是可选权衡面,不会替业务自动决定精确率和召回率的优先级。
  • Prompt 变异可能删除关键约束或制造 reward hacking,冻结区、长度门禁和发布审核不可省略。
  • 没有真实业务反馈时,离线分数提升不等于线上效果提升。

与其他实体的关系

  • 自进化Agent —— GEPA 是将反馈和反思落到 Prompt 策略层的一种自进化机制。
  • Generator-Evaluator —— 任务模型、Judge 和反思模型分别承担生成、评判和改写职责。
  • Prompt评估体系 —— 黄金集、逐样本指标、验证集和回归记录为 GEPA 提供测量基础。
  • Harness-Engineering —— 配置、状态、预算、权限和进度管理把优化算法变成可运行服务。

参考来源