2026-05-22 · aha team

LLM 即优化器:从 OPRO 到 FunSearch 的进化式编码

解读 OPRO、FunSearch、ReEvo 和 LLaMEA 四篇核心论文,理解 LLM 如何充当变异器、重组器和候选生成器。

当 LLM 不再只是”生成一个答案”,而是持续生成候选、接收反馈、改进再提交时,它就变成了一个优化器。这条线的工作从 OPRO 到 FunSearch,提供了一个清晰的工程隐喻:生成候选 → 打分 → 选择 → 变异/重组 → 保留谱系。

OPRO:自然语言优化器

OPRO(Large Language Models as Optimizers)把优化问题翻译成自然语言:把历史候选和分数列出来,让 LLM 基于这些信息提出下一个候选。核心发现是 LLM 可以在没有梯度的情况下做黑盒优化,而且历史记录越长、反馈越精确,搜索效率越高。

这对 Self Evolve 意味着:提示词历史 + 分数就是通用优化器接口。无论是调 prompt、调代码、调架构,都可以用同一个模式。

FunSearch:程序进化的重要案例

FunSearch(发表在 Nature)把 LLM 和评估器组合在一起,用进化算法搜索数学和科学发现的程序。它的核心流程是:

  1. LLM 生成程序变体
  2. 评估器对每个程序打分
  3. 高分程序被保留进入种群
  4. 种群中的程序作为下一轮的”父代”

FunSearch 的意义在于:在 cap set 和 bin packing 这类有明确 evaluator 的任务中,它报告了优于已知结果的程序发现。这个结论不能外推到所有程序进化任务。

ReEvo:反思式进化

ReEvo 将反思引入进化搜索:不是盲目变异,而是让 LLM 分析当前候选的优缺点,然后有针对性地生成改进。这对应 Self Evolve 需要的反馈丰富型优化循环

LLaMEA:进化优化器本身

LLaMEA 的对象更进一步:它进化的不是任务解,而是优化器本身。LLM 生成元启发式算法,用 benchmark 评估,再改进算法。它提供了一个清晰的”改进改进者”类比,但仍需要结合具体 benchmark 和复现实验理解边界。

对开发者的启示

如果你在构建自进化系统,这条线给了明确的工程模板:

Self Evolve 会持续追踪这些工作的最新实现和 benchmark 复现。