论文
Prompt 优化
Promptbreeder: Self-Referential Self-Improvement via Prompt Evolution
Promptbreeder:让 LLM 进化 prompt,同时进化"怎么变异 prompt"
Chrisantha Fernando, Dylan Banarse, Henryk Michalewski, Simon Osindero, Tim Rocktäschel · Google DeepMind · arXiv · 2023-09 · 被引 577
一句话 DeepMind 用遗传算法让 LLM 同时进化 task-prompt 和 mutation-prompt(自指式自改进),在 PaLM 2-L 上 GSM8K 零样本 83.9%(超 OPRO 的 80.2%)、ETHOS 仇恨言论分类 89%;无官方代码,主结果建立在闭源 PaLM 2-L 上,外界无法复现。
这是什么 CoT、Plan-and-Solve 这类 prompt 策略都是人手写的,而 prompt 措辞的微小变化会显著影响 LLM 表现,所以自动化 prompt 工程是自然的方向。此前的 APE(Automatic Prompt Engineer)尝试迭代优化 prompt,但作者发现它三轮之后就收益递减,于是干脆放弃了迭代。Promptbreeder 的回答是:用一个保持多样性的进化算法来避免收益递减。
更有野心的一层是"自指"(self-referential):不只进化 task-prompt(给任务用的指令),还进化 mutation-prompt(指导 LLM 怎么改写 task-prompt 的指令)。论文把 prompt 类比为 LLM 的"程序",接上 Schmidhuber 自指权重矩阵的老思路——系统不仅改进自己,还改进"改进自己的方式"——但把自改进的载体从参数换成自然语言,不需要任何梯度更新。这也是它被视为 RSI(recursive self-improvement)早期具体实现的原因。
整个系统跑在 PaLM 2-L 上:LLM 既是被评测的对象,也是变异算子本身。2024 年被 ICML 接收,至 2026-08 引用约 577 次;DeepMind 没有放出官方代码。
系统总览。上半部分是初始化:随机 thinking-style + 随机 mutation-prompt + 领域问题描述拼接后让 LLM 续写,生成初始 task-prompt 种群;下半部分是主循环:种群中每个单元带一个 task-prompt(黑)和一个 mutation-prompt(蓝),按训练集 batch 上的 fitness 做 binary tournament,输家被赢家的变异副本替换,变异算子有五大类(左框),其中 Hyper Mutation 会去变异 mutation-prompt 本身——这就是"自指"所在。 机制与做法 进化单元与主循环
种群 50 个"进化单元",每个单元 = 2 个 task-prompt + 1 个 mutation-prompt(few-shot 模式下再加一组做对的 workings out)。fitness = 在训练集随机抽的 100 道 Q&A 上的准确率。主循环是 binary tournament 遗传算法:随机抽两个单元比 fitness,赢家变异后覆盖输家,典型跑 20-30 代。
初始化就有讲究:不直接用问题描述,而是把随机抽的 mutation-prompt + 随机 thinking-style(如 "Let's think step by step")+ 问题描述拼起来让 LLM 续写,生成多样化的初始 task-prompt。后面的 ablation 显示这一步(而非自指变异)才是最大的收益来源。
消融矩阵:每格是去掉某个自指组件后 fitness 超过完整算法的比例(越蓝=去掉越伤,越红=该组件反而有害)。关键读法:第三列 SR task-prompt(去掉 thinking-style 引导的初始化)伤害最大(-39%~-80%),第一列 Hyper(去掉 mutation-prompt 的变异,即论文标题的"自指"机制)伤害明显更小,而 GSM 行第四列 +41 说明随机初始 mutation-prompt 在 GSM8K 上反而有害。 九种变异算子,五大类
变异时从 9 个算子中均匀随机选一个:(1) Direct Mutation——零阶(从问题描述+"A list of 100 hints:"重新生成,防漂移)和一阶(mutation-prompt + 父代 task-prompt 喂给 LLM);(2) EDA 类——把整个种群(按 BERT embedding 余弦相似度 >0.95 去重)列给 LLM 让它续写新 prompt,其中 Rank-and-Index 变体故意"骗"LLM 说列表是降序排列(实际升序),利用 recency bias 同时避免它照抄最后一项;(3) Hypermutation——用 hyper-mutation-prompt(如 "Please summarize and improve the following instruction:")去变异 mutation-prompt 本身,这就是自指的部分;(4) Lamarckian——从一份做对的 working out 反推出 task-prompt("I gave a friend an instruction... The instruction was:");(5) crossover(10% 概率从种群按 fitness 比例抽一个 task-prompt 换入)和 few-shot context shuffling。
进化出来的 prompt 长什么样
GSM8K 上进化出的最优零样本 prompt 简单到反直觉:"SOLUTION\"",拿 83.9%,比 OPRO 精心优化出的 "Take a deep breath and work on this problem step-by-step"(80.2%)还高——作者自己也把这当作 LLM 对 prompt 极度敏感的证据。ETHOS 上则进化出两段很长的、领域特化的串联 prompt(89%,手写 baseline 80%),说明系统能做复杂的领域适应。进化出的 mutation-prompt 也能看到语义上的"改进指令",比如让指令更清晰、换视角等。
关键结果 零样本:PaLM 2-L 上 GSM8K 83.9%、SVAMP 90.2%、MultiArith 99.7%、AQuA-RAT 62.2%、CSQA 85.4%、SQA 71.8%,除 AddSub 外全线高于同模型的 PS+ 和 APE;few-shot 下 SVAMP 93.7%、MultiArith 100%、SQA 80.2% 进一步提升,但 GSM8K 为 83.5%,略低于零样本。 ETHOS 仇恨言论分类:进化出的两段式 prompt 拿 89%,手写 prompt "Determine whether a text contains hate speech" 只有 80%。 与 OPRO(同期 DeepMind 工作)对比:GSM8K 83.9% vs 80.2%,且获胜 prompt 只是 "SOLUTION\"" 一个词。 Ablation(种群 10、200 次评估):去掉"用 thinking-style 重描述初始 task-prompt"伤害最大(多个数据集 -58% 到 -80%);去掉 hyper-mutation(自指部分)伤害较小(-11% 到 -62%);GSM8K 上随机抽初始 mutation-prompt 反而有害(去掉后 +41%)。 与 APE 的关键区别被实验支持:fitness 在整个 run 中持续上升,没有 APE 三轮后停滞的现象(附录 A 典型 run 图)。 所有 9 个变异算子统计上都有正贡献(附录 mutation operator effectiveness 表),但贡献很不均匀。 实证核查
有水分 方法本身真实且消融做得认真,ICML 2024 接收、引用 577;但无官方代码、主结果在闭源 PaLM 2-L 上外界无法复现,"自指"卖点在自家 ablation 里恰恰不是主要收益来源,第三方基准还显示其性价比差。
论文核心卖点是"self-referential self-improvement":不只改进 prompt,还改进"改进 prompt 的方式"(hyper-mutation 进化 mutation-prompt)。
论文自己的 ablation(附录 Ablations,fig04)显示最大收益来自初始化时用 thinking-style 重写 task-prompt(去掉后多数数据集 -58%~-80%),而去掉 hyper-mutation 影响明显更小(-11%~-62%),GSM8K 上随机初始 mutation-prompt 甚至是有害的(+41%)。也就是说标题里的"自指"机制成立但只是贡献来源之一,且不是最大的。
"outperforms state-of-the-art prompt strategies such as CoT and Plan-and-Solve"。
主表(Table 1)中 text-davinci-003 上的 CoT/PoT/PS+/Manual-CoT 数字是直接从 Plan-and-Solve 论文搬来的(括号标注),与 PB 的 PaLM 2-L 不同模型、不可直接比;真正同模型的对比只有 PS/PS+/APE/OPRO 四个 PaLM 2-L baseline,那部分确实全面占优。另外 MultiArith/SingleEq/AddSub/SVAMP 四个数据集用了作者自己随机划分的一半做测试集(表注),与 baseline 的测试集并不完全一致。
作为通用 prompt 优化方法可用。
DeepMind 无官方开源(catalog 确认 code_url 为空);社区复现里最热的 vaughanlove/PromptBreeder 仅 183 stars、基于 langchain 只支持 Cohere、2024-08 后停更(gh api 核实),没有任何公开复现报告确认过 GSM8K 83.9% 这类主结果——因为 PaLM 2-L 本身闭源,原始数字实质不可复现。
进化搜索是自动 prompt 优化的有效路线。
第三方系统比较 Wan et al., NeurIPS 2024 (arXiv:2406.15708, Google Cloud AI) 附录 B.10 专门对比了 PromptBreeder:一个简单的 exemplar 选择 routine 就能以其一小部分成本收敛到相当或更好的解,并指出 PB "often requires hundreds of evaluations before convergence"、其 exemplar 处理(context shuffling)是纯随机而非按验证指标优化。方向成立,但成本效益在后续工作面前不占优。
与我们方向的关系 这是课题组 RSI 方向最常被引的"具体而微"的自指实现:改进器(mutation-prompt)和被改进物(task-prompt)在同一语言空间里,由同一个 LLM 驱动,不动参数。它给出了一个可操作的模板——把"元层"也放进进化种群,用同一套 fitness 信号间接评估元层(hyper-mutation 的效果通过它产出的 task-prompt 的 fitness 来体现)。这个"元层评估靠下层落地"的设计在后来的 self-improving agent 工作(如 self-referential 的 Gödel Agent、ADAS 一类)里反复出现。
值得借鉴的工程细节:用 binary tournament 而非全局排序来省评估;用 embedding 相似度过滤维持多样性;"骗" LLM 列表排序方向来对抗 recency bias。同样值得记住的教训是它的 ablation:自指机制的实际贡献往往小于精心的初始化/多样性维持——做 RSI 实验时要有同等力度的消融,否则容易把收益错误归因给"自指"这个故事。另外注意成本:种群 50、每次 fitness 评估 100 道题、跑 20-30 代,这个搜索量在 2026 年看性价比已被 exemplar 优化和 DSPy 类方法明显超越。
阅读笔记 论文附录非常厚(全部 mutation-prompt、thinking-style 列表和各数据集最优 prompt 都在),想复现的话素材齐全,难点只在换模型后数字必然对不上。fitness 评估用两段式 prompt 串联(第一段+题目出续写,续写+第二段出答案),这个细节容易被忽略。
材料清单 TeX 源码 已存档:Raw/promptbreeder/source/
同类条目