← 返回资料站  /  AI for AI
论文 Prompt 优化

Promptbreeder: Self-Referential Self-Improvement via Prompt Evolution

Promptbreeder:让 LLM 进化 prompt,同时进化"怎么变异 prompt"
一句话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 本身——这就是"自指"所在。
系统总览。上半部分是初始化:随机 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 上反而有害。
消融矩阵:每格是去掉某个自指组件后 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 也能看到语义上的"改进指令",比如让指令更清晰、换视角等。

关键结果

实证核查

有水分方法本身真实且消融做得认真,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/
OpenReview (ICML 2024)openreview.net/forum?id=HKkiX32Zw1
评审意见与作者回复
第三方复现github.com/vaughanlove/PromptBreeder
最热的社区实现(183 stars),langchain + Cohere,2024-08 后停更,未复现论文主结果
第三方系统比较arxiv.org/abs/2406.15708
Wan et al., NeurIPS 2024:附录 B.10 显示简单 exemplar 选择以远低成本达到相当或更好效果

同类条目