用途:dspy.GEPA 是 DSPy 的优化器,用于自动进化程序中各预测器的自然语言指令,而非添加少样本示例或微调模型权重。它迭代地提出、评估并改进引导每次 LM 调用的指令。
主要能力:仅调优指令,不注入少样本示例,提示保持紧凑;使用文本反馈,反思 LM 读取执行轨迹与失败反馈来提出更好指令;维护帕累托前沿,保留在不同子集上表现优异的多个候选并合并优点;支持多步流水线的逐预测器反馈(通过 pred_name);需要 20-100 条样本。
使用方式:需要三样东西——DSPy 程序、反馈指标、训练集。指标可返回浮点数或含 score 与 feedback 的字典。构造 dspy.GEPA(metric, reflection_lm=..., auto="light"),再调用 gepa.compile(program, trainset=trainset),可用 optimized.save(...) 保存。预算控制三选一:auto("light"/"medium"/"heavy")、max_full_evals、max_metric_calls。可传 valset;不传则用训练集兼作验证。
适用场景:有 20-100 条标注样本;希望不添加少样本示例而优化指令;任务失败模式可用自然语言描述;多步流水线需逐预测器调优;希望提示紧凑。
限制:dspy.GEPA 自 DSPy v3.0.0 起标记为 @experimental,API 可能变化。仅优化 Signature 文档字符串,不优化 InputField/OutputField 描述、Pydantic Field 描述、字段名、类型约束或少样本示例。无文本反馈时建议改用 dspy.BootstrapFewShot;有 200+ 样本且追求最佳提示优化可用 dspy.MIPROv2;需调权重用 dspy.BootstrapFinetune。具体费用与效果以官方资料为准,此处不展开。