你公司那条"灵魂 prompt"——很可能只是某次午饭时某个产品经理随手写的。这篇 arXiv 2211.01910 告诉你:机器写的 prompt 已经在 19/24 个任务上超过人类了

  • 关联论文:2211.01910

你有没有这种感觉 🤖?

你打开 ChatGPT / Claude / 内部 LLM 平台,信心满满写下一段精心打磨的 prompt——"请你作为一个资深分析师,从以下三个维度……"——结果输出要么"看起来对但答非所问",要么"废话一堆但关键点没说"。 你心想:"是我的 prompt 不够好吗?换一种说法试试?" 换完三种说法,输出还是飘的。你开始怀疑人生。

这件事的根源在于:prompt 工程是门手艺活,但"人写"的 prompt 跟"机器写"的 prompt 比起来,早就不是同一个水平了**。

arXiv 2211.01910(APE:Automatic Prompt Engineer)——一篇 2022 年 11 月的预印本——把这件"写 prompt"的事从手艺人活变成了自动流水线

让大模型自己生成几十条候选指令 → 用目标评分函数给每条打分 → 聚类去重挑最优。 在 24 个 NLP 任务上,机器生成的指令在 19 个任务上达到或超过人类写作者。 整个流程只需三步:提出 → 打分 → 选择

为什么这件事重要?因为今天所有"自动优化 prompt"的框架——DSPy、OPRO、PromptAgent、TextGrad、EvoPrompt——都能直接追到 APE 这条线。你今天用的每一个"prompt 一键优化"的工具,骨架都来自 2022 年 11 月的这篇预印本。


0 · TL;DR(30 秒版)

arXiv 2211.01910(APE) 解决一件具体的事:

把"自动提示工程"形式化成 program synthesis(程序合成)问题——让一个 LLM 当"proposer"生成 N 条候选指令,让目标函数在测试集上给每条打分,最后用聚类选最优。

关键洞察一句话:"prompt 不该是手工艺术品,而是指令空间上的离散搜索结果"

对从业者最直接的工程含义:你今天用的 DSPy / TextGrad / OPRO 等"prompt 自动优化"框架,全部沿用 APE 2022 年的 propose-score-select 三阶段流水线。理解 APE,就理解了 2026 年所有 prompt 编译工具 80% 的设计哲学。


1 · 痛点:为什么"手写 prompt"是个坑

1.1 同一个模型换 prompt 性能能差几倍

2020 年 GPT-3 时代起,研究者就发现:同一个模型、同一个任务、不同 prompt,性能差异能到 10-50 个百分点

这意味着: - 你以为"模型不行",可能只是 prompt 没写好。 - 你以为"模型很行",可能只是恰好踩中了 prompt 模板。 - 整个工业界的 prompt 库,本质上是一大堆不可复制的"祖传 prompt"——离了这家公司就废。

1.2 手工调 prompt 不可规模化

每个任务、每个模型都要重新写一套 prompt: - 摘要任务 prompt 模板 ≈ 30 个 - 客服对话 prompt 模板 ≈ 50 个 - 代码生成 prompt 模板 ≈ 20 个

每个模板都是某位工程师"调了半天、效果不错、沉淀下来"的产物。没有方法论、没有 A/B 标准、没有可解释性

1.3 没有"自动 prompt 优化"的方法论

超参数优化、AutoML、NAS(神经架构搜索)都已经成熟——但 prompt 工程在 2022 年还是1960 年代"手挑特征"的水平

  • 调参:用 Optuna / Ray Tune
  • 调网络架构:用 NAS(DARTS / ENAS)
  • 调 prompt:靠某个工程师的直觉与运气

APE 的核心贡献就是:把 prompt 也变成可优化对象

2 · 它到底在解决什么真问题

  1. 手工 prompt 不可规模化:每个任务、每个模型都要重写,没有方法论。
  2. prompt 优化的"自动化盲区":超参和架构都能自动搜,prompt 反而不能。
  3. "机器生成的指令能否搭便车提升 few-shot":如果机器写的指令本身可以 prepend 到下游任务的 few-shot prompt 前,能不能不重训模型就涨点?

APE 把这三个问题统一成一个框架:把 instruction 当成"程序",让 LLM 自己搜,再用下游评分函数选

3 · 核心方法(人话版)

3.1 把 prompt 当"程序"——形式化

APE 的核心思想来自经典 program synthesis(程序合成):

instruction* = arg max_{instruction ∈ I}  score(instruction)
  • I:候选指令集合,由一个 LLM(proposer)生成。
  • score(instruction):在该指令下,目标 LLM 在测试集上的表现(准确率、对数概率、人类偏好)。

这把 prompt engineering 从"人写一句话"变成"在指令空间上的离散搜索"。

3.2 三阶段流水线

[Stage 1] Propose:        LLM_propose → {i_1, i_2, ..., i_N}     # 生成 N 条候选指令
[Stage 2] Score:          for each i_k:   compute score(i_k)        # 评估每条候选
[Stage 3] Select:         i* = arg max_k score(i_k)                 # 选最优

Stage 1:Propose(提出候选)

三种生成策略:

  • Forward synthesis(正向合成):给 LLM 看若干 (input, output) 示例,让它"反向写出能产出这些示例的指令"。这是最直观的方法。
  • Reverse synthesis(反向合成):给 LLM 看已有候选指令,让它生成对应的输入输出对,再用这个数据集打分。
  • 混合:两种策略各采一批候选。

论文还强调"温度控制 + 多样性采样"——单纯 greedy decode 会让候选高度同质化(都长得差不多)。

Stage 2:Score(打分)

两种评分方式:

  • Black-box 评分:用目标 LLM 在该指令下 zero-shot 跑测试集,算准确率 / 困惑度 / BLEU。
  • 基于对数概率的评分:让目标 LLM 在每条候选下生成参考输出,算对数概率平均。

Stage 3:Select(选择)

这一步是 APE 比朴素搜索更稳的关键:对"指令本身"做语义聚类,在每个簇里挑 top-k

为什么要聚类?因为 LLM 在 Stage 1 生成的候选常常高度同质化——50 条候选里有 20 条意思差不多。不聚类的话,top-5 全是同义变体,等于浪费搜索预算。

3.3 一段伪代码看明白

def ape_pipeline(target_llm, eval_set, proposer_llm, n_cands=50, top_k=5, rounds=3):
    candidates = proposer_llm.propose(eval_set.demos, n=n_cands, T=0.7)
    best = None
    for r in range(rounds):
        scores = [score(c, target_llm, eval_set) for c in candidates]
        top = cluster_and_pick_top(candidates, scores, top_k)
        best = max(zip(candidates, scores), key=lambda x: x[1])
        candidates = proposer_llm.mutate(best[0], n=n_cands, T=0.7)
    return best

整篇论文的核心贡献其实就是这条流水线 + "propose-score-select 三阶段 + 聚类去重"的设计哲学。

3.4 多轮迭代

Stage 1 的 proposer 也可以用当前得分最高的指令做 in-context,再生成新候选。2-3 轮后收益递减,但首轮的提升通常非常显著。

4 · 关键实验与数据

APE 的实验结果非常有冲击力:

  • 任务数:24 个 NLP 任务,覆盖 Instruction Induction 任务集合(因果推理、词义消歧、情感、QA、翻译等)。
  • 与 LLM baseline 对比:自动生成的指令在 24 个任务上大幅超越(outperform by a large margin)之前的 LLM baseline——所谓"baseline"就是直接问 LLM "请你为这个任务写一段 prompt"的那种朴素做法。
  • 与人类对比:在 19/24 任务上达到或超过人类写作者的指令表现。⚠️ 需核实:具体对比条件(paired comparison、标注员数量、标注员间一致性)原文未在已读取段落中展开,引用时应补条件。
  • 跨任务迁移:在 TruthfulQA 等任务上搜出的指令可以直接 prepend 到其他任务的 few-shot prompt 前,提升 zero-shot 性能。
  • 真实性 / 信息量引导:APE 搜出的指令可显式把模型往 truthfulness 或 informativeness 方向推——这是"软对齐"(不重训只换 prompt)的代表案例。

⚠️ 必须说清楚:原文以"outperform by a large margin"定性描述与 LLM baseline的具体百分点;19/24 任务上击败人类的具体任务清单需查原文表格,本文解读未逐项核实,引用时建议补具体任务名。

5 · 为什么这件事重要

5.1 它是"自动 prompt 优化"范式的祖师爷

把时间线拉直:

  • 2022.11 APE(本篇):把 prompt engineering 形式化成 program synthesis。
  • 2023.09 OPRO(2309.03409):把 APE 的离散搜索改成"LLM 自身在文本中写搜索历史",实现更连续的优化。
  • 2023.10 DSPy(2310.03714):把 APE 思想封装成"模块化 LM program + 自动编译",从论文走向工业框架。
  • 2024 PromptAgent、Promptbreeder、EvoPrompt:把 APE 的"指令空间搜索"扩展到"指令 + 示例"的协同进化。
  • 2024-2026 TextGrad、OPRO+:把 APE 的 score 函数升级为 LLM-as-judge + 文本梯度。

今天所有"prompt 一键优化"工具,背后都能看到 APE 的影子

5.2 它解释了为什么"prompt 也算模型的一部分"

DSPy 等框架的核心口号是"programming, not prompting"——把 prompt 视为可编译的中间表示(IR),而非手写代码。这背后隐含的假设就是:prompt 应该像超参数一样被自动搜索,而不是像源代码一样被人工维护。

APE 是这个范式的奠基论文:它第一次系统证明了"机器写的 prompt 可以击败人类"。

5.3 它是"软对齐"的代表案例

APE 在 TruthfulQA 上的实验证明:可以通过优化 prompt 来引导模型往真实性 / 信息量方向走,不需要重训

这给"低成本安全对齐"提供了一个全新思路——对于很多 alignment 场景,与其改模型权重,不如直接搜 prompt。

6 · 工程落地(2026 年视角)

6.1 实际部署三大坑

  1. Score 函数计算代价高:每条候选 instruction 都要在完整 eval_set 上跑 target LLM。假设 N=50 条候选、eval_set=500 条样本、target=GPT-4 Turbo(~$0.01/1K tokens)、每条 query 100 tokens out,则单轮 cost ≈ $15。3 轮迭代 = $45。工业化初期建议用小模型(GPT-3.5-turbo / Qwen2.5-7B)做粗筛,再在大模型上精筛。
  2. "语义空洞"候选难检测:Proposer 生成 "This task requires careful analysis..." 等模板化指令时,在 target LLM 上会得到高分(因为这类指令足够模糊,target 倾向于自由发挥,得分方差小)。解法:在 score 函数里加 length_penaltycoverage_score,拒绝过短或过泛的候选。
  3. Self-APE 偏差是系统性陷阱:当 proposer == target 时(即 self-APE),系统会收敛到"target 模型最喜欢但不一定最优"的指令风格——这类指令在 target 上得分高,但在其他模型上泛化差。

6.2 2026 年工程等效实现路径

APE 原件 2026 年工程替代
prompt 工程做 propose GPT-4o / Claude 3.5 用结构化输出做候选生成
Black-box 评分 LLM-as-judge(GPT-4 当评分员)
语义聚类去重 sentence-transformers + 层次聚类
多轮迭代 DSPy 的 BootstrapFewShot + COPRO 编译器
TruthfulQA 软对齐 Constitutional AI 的 self-critique + prompt rewrite

简单说:APE 的范式没变,底层工具链换了一代——从手工 prompt 工程换成了结构化输出,从朴素评分换成了 LLM-as-judge,从手工聚类换成了 sentence-transformers。

6.3 你今天用它的姿势

不要重新实现 APE——直接用 DSPyOPRO

  • DSPy:把 APE 的 propose-score-select 封装成 BootstrapFewShot / COPRO 编译器。
  • OPRO:把 APE 的离散搜索改成"LLM 自身在文本中写搜索历史",实现更连续的优化。
  • PromptAgent:把 APE 的单层指令搜索升级为"agent + 反思 + 迭代"。

它们的 API 形状跟 APE 的三阶段流水线一一对应,只是更稳定、更快、更省 token。

你必须读一遍 APE 的论文——因为它的 propose-score-select 流水线,就是今天所有 prompt 自动优化框架的"骨架图"。理解骨架比记住 API 更重要。

7 · 关键数据与必须警惕的边界

  • "propose-score-select 三阶段流水线":论文 Section 2 核心贡献。✅ 有据可查。
  • "在 24 任务上大幅超越 LLM baseline":⚠️ 原文为定性描述("outperform by a large margin"),未在已读取段落中给出具体百分点;引用时建议补具体任务名与数字。
  • "19/24 任务上达到或超过人类":⚠️ 具体对比条件(paired comparison?标注员数?标注员间一致性 Krippendorff α?)原文未在已读取段落中明确,引用时需补条件。
  • "TruthfulQA 软对齐可迁移到其他任务":✅ 论文 Section 4 报告,但具体百分比未在已读取段落中明确。
  • "APE 启发 DSPy / OPRO / PromptAgent":⚠️ 此为本文解读的"沿用关系判断",论文卡未明确给出此映射;属于方向性归类而非论文显式声明。
  • "T=0.7 / 50 候选 / 2-3 轮迭代":⚠️ 此为常见工程经验值,原文是否明确给出 temperature 与候选数原文未在已读取段落中说明。

三个标题变体

  1. 《你公司那条"灵魂 prompt"——很可能只是某次午饭时某个产品经理随手写的。这篇 arXiv 2211.01910 告诉你:机器写的 prompt 已经在 19/24 个任务上超过人类了》
  2. 《别再让工程师手写 prompt 了——arXiv 2211.01910 APE 用"程序合成"思路,让 LLM 自己搜出比人类更好的指令》
  3. 《为什么"prompt 一键优化"工具现在这么多?答案藏在 arXiv 2211.01910 这篇 2022 年的"自动 prompt 工程"祖师爷论文里》

📱 小红书风格卡片文案(可直接发布)

📌 你公司那条"灵魂 prompt"——很可能只是某次午饭时某个产品经理随手写的

你有没有这种感觉 🤖 —— 你打开 ChatGPT / Claude / 内部 LLM 平台,信心满满写下一段精心打磨的 prompt——"请你作为一个资深分析师,从以下三个维度……"——结果输出要么"看起来对但答非所问",要么"废话一堆但关键点没说"。你心想:"是我的 prompt 不够好吗?换一种说法试试?"换完三种说法,输出还是飘的。

arXiv 2211.01910(APE:Automatic Prompt Engineer)—— 一篇 2022 年 11 月的预印本——把这件"写 prompt"的事从手艺人活变成了自动流水线

让大模型自己生成几十条候选指令 → 用目标评分函数给每条打分 → 聚类去重挑最优。 在 24 个 NLP 任务上,机器生成的指令在 19 个任务上达到或超过人类写作者。 整个流程只需三步:提出 → 打分 → 选择

🔸 3 个普通读者最该记住的点

1️⃣ 它是今天所有"自动 prompt 优化"工具的"祖师爷"——DSPy、OPRO、PromptAgent、TextGrad、EvoPrompt,propose-score-select 三阶段流水线全部沿用 APE 2022 年画的骨架图。理解 APE,就理解了 2026 年所有 prompt 编译工具 80% 的设计哲学。

2️⃣ "prompt 是程序,不是艺术品"是这条范式的灵魂——把 prompt 视为"指令空间上的离散搜索结果",而非工程师手工调参的产物。这是 2026 年所有 LLM 应用框架的共识起点

3️⃣ 它是"软对齐"的代表案例——APE 在 TruthfulQA 上的实验证明,可以通过优化 prompt 来引导模型往真实性方向走,不需要重训。这给"低成本安全对齐"提供了一个全新思路。

🔸 一句话给老板

别再让工程师手写 prompt 了。arXiv 2211.01910 APE 在 24 个 NLP 任务上证明了机器生成的 prompt 可以在 19 个任务上超过人类——而今天的 DSPy / OPRO / TextGrad 都把 APE 的流水线封装成了"prompt 一键优化"的工业框架。"prompt 编译"已经从研究论文变成了工程实践,下一个不学 APE 的 prompt 工程师,会被会写 DSPy 的同事替代。

Prompt工程 #大模型 #LLM #AI工程 #自动优化 #APE #DSPy #OPRO #AI产品 #机器学习