使用GEPA构建反射性提示优化:多组件提示、结构化反馈与留出验证
本教程演示如何使用GEPA框架优化小语言模型求解多步算术应用题,通过弱种子提示、确定性基准、结构化评估器和多组件提示演化,最终在留出验证集上比较基线与优化提示。
本教程展示了如何使用GEPA(一种反射性提示演化框架)来改进语言模型解决算术应用题的方式。我们从弱种子提示开始,创建一个小型确定性基准数据集,定义结构化评估器,并将可操作的反馈传递给GEPA,使其理解候选提示失败的原因。我们还使用多组件提示设置,同时演化指令字段和输出格式规则。最后,我们在留出验证集上比较基线提示与优化提示,并观察演化过程如何提升性能。
首先,安装GEPA和LiteLLM,配置任务模型(gpt-4o-mini)和反射模型(gpt-4.1),并设置最大度量调用预算为100。接着,构建确定性算术基准数据集,包含折扣、旅行距离、钱包计算和链式运算四类问题,共18个样本,其中12个用于训练,6个用于留出验证。
定义评估器时,我们将候选提示转换为系统提示,任务模型回答问题后,评估器解析输出,检查最终答案是否遵循“#### ”格式,并分配分数(1.0为正确且格式正确,0.5为正确但格式错误,0.0为错误)。同时返回结构化反馈,说明错误类型(算术错误或格式违规)。
配置GEPA后,我们以弱种子提示(“Solve the math problem.”和“Give the answer.”)为起点,评估其在训练集和验证集上的表现。然后运行优化过程,GEPA利用评估器反馈逐步改进指令和格式规则。最终,我们提取最佳候选提示,比较其在留出验证集上的性能。结果显示了显著的改进:优化提示不仅提高了准确率,还强制模型输出逐步推理和严格的最终答案格式。
通过本次实践,我们证明了反射性提示优化可以超越手动试错,通过结构化反馈和迭代精炼生成更强大、更可靠的提示。完整代码和笔记本可在原文中找到。