核心要点

  • APE:让 LLM 根据任务生成多个候选提示,在验证集上打分,保留高分提示并迭代变异,自动搜索最优指令。

  • DSPy:把提示视为可编程模块(用 signature 声明输入/输出),由优化器按评测指标自动「编译」出提示与示例。

  • 关键三件套:候选生成器、可量化的评分/指标、搜索/迭代策略(贪心、束搜索、进化)。

  • 必须先有验证集和明确指标,否则无法自动比较与收敛。

标准回答

核心思想

自动提示优化把「人工调提示」变成「用程序+LLM 搜索提示」。它依赖三个要素:能批量产出候选提示的生成器、一个可量化的评分指标(准确率、格式合规率等),以及在候选集合上迭代择优的搜索策略。

APE(Automatic Prompt Engineer)

APE 让一个 LLM 根据少量示范或任务描述生成多个候选指令,再在验证集上对每个候选打分,保留高分者,并对其做变异/改写继续迭代,最终选出表现最好的提示。本质是「LLM 生成 + 评分 + 迭代」的黑盒搜索。

DSPy

DSPy 把提示当作可优化的模块来工程化:开发者用 signature 声明每步的输入与输出,把流程写成可组合的程序;再交给优化器(如自动挑选 few-shot 示例、改写指令),按给定指标在数据上「编译」出最优的提示与示例组合。相比手写提示,它让提示随数据和指标自动调整,更易维护与迁移。

生产级提示的量化测试与改进可参考 Prompt 优化与评估

常见误区

⚠️ 常见踩坑

自动优化不是「无监督魔法」:没有验证集和明确指标就无从评分,结果会过拟合验证集或不可复现。DSPy 优化的是提示/示例,而非模型权重,别与微调混淆。

追问

追问 1APE 和 DSPy 的优化器在做的事有何不同?

APE 偏向直接搜索「指令文本」,靠 LLM 生成候选再按分数择优;DSPy 把流程拆成带 signature 的模块,优化器既能改写指令,也能自动挑选/生成 few-shot 示例,并支持多步程序的联合优化,更工程化、可组合。

追问 2自动提示优化容易过拟合,怎么缓解?

用独立的训练/验证/测试集划分,避免在用于搜索的同一份数据上报告效果;指标尽量贴近真实目标并包含多样样本;限制候选搜索的轮数与复杂度,必要时引入正则(如偏好更短、更通用的提示)以提升泛化。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。