APE 是什么
APE(Automatic Prompt Engineer,自动提示生成与筛选)指让模型自己批量生成候选指令,再用目标任务的评分从里面挑出表现好的那几条。它把「提示调优」从手写试错变成一次有目标的搜索:先扩大候选空间,再用可计算的指标收敛。前提是任务必须可度量——没有可自动计算的评分,整套方法就退化成随机抽卡。
基本信息
| 来源 | Large Language Models Are Human-Level Prompt Engineers(Zhou 等,ICLR 2023) |
|---|---|
| 适用任务 | 批量、可度量的任务(分类、抽取、格式转换);主观写作类收益有限 |
| 必要条件 | 固定的评测集与可自动计算的评分 |
| 产出物 | 候选指令集合 + 评分表 + 定稿指令,可作为后续迭代的原料 |
典型使用场景
- 字段抽取:候选指令在固定样本上跑,比字段准确率
- 文本分类:候选措辞对类别边界的影响可以直接量化
- 格式转换:评分看格式合法率与解析成功率
- 多语言改写:以回译一致或人工抽检分数作为筛选依据
- 提示改版初期:人手不知从哪改起时,先批量生成候选再收敛
流程
流程
# 1 准备:固定一组输入与参考输出(评测集),留一份不参与筛选的留出集
# 2 生成:给出任务描述与若干样例,要求生成 5-10 条候选指令
# 3 执行:同一评测集分别跑每条候选,记录得分与失败样本
# 4 选择:取分居前的 1-2 条,人工检查措辞与合规性后定稿
# 5 复核:在留出集上复跑定稿版本,确认不是适配了评测集
# 6 归档:候选与分数一并留存,标注所用模型版本与日期评分口径选择
| 任务类型 | 可用的自动评分 | 注意事项 |
|---|---|---|
| 分类 | 准确率、混淆矩阵 | 类别不均衡时看宏平均,别只看总体 |
| 抽取 | 字段级准确率与召回 | 漏抽与错抽的代价通常不同 |
| 结构化输出 | 格式合法率、解析成功率 | 合法但语义错的输出要单独统计 |
| 主观写作 | 模型打分或人工抽检 | 分数噪声大,需多轮抽样取稳 |
候选指令会被模型写得越来越长,像在堆约束。筛选时把长度与 token 成本一并记录,避免选出「质量略高但成本翻倍」的版本。
留出集的作用是识别过拟合:若定稿版本在评测集上明显领先、在留出集上优势消失,说明它只是记住了样本特征,不宜上线。