当大语言模型开始设计“如何设计算法”的算法

中国仿真学会 资源规划仿真与决策专业委员会(筹)
2026-04-15 14:43:31
浏览 1096 次

看看最近AI圈又在卷什么新方向。不看不知道,一看吓一跳,现在用大模型(LLM)搞自动化算法设计(AAD)已经卷出了新高度,单纯让LLM写个算法代码?那已经是old school的玩法了。

大伙都知道,自从诸如AlphaEvolve[1]EoH[2]之类的工作展示了LLM +进化搜索的强大潜力以来,这个组合拳就成了现在搞自动化算法设计的最热CP。基本玩法就像下面这个图,简单粗暴:

1.jpg

图注:传统LLM引导搜索的典型流程:就像一个流水线,LLM根据固定的提示词和变异规则,不断生成新代码,评估后留下好的,周而复始。

说白了,就是把LLM当成一个超级聪明的变异算子。你给它几个还不错的算法(父代),它就能给你创造出一些新的、可能更好的算法(子代),不断迭代逼近最优解。

这个路子确实很顶,但是!大家有没有发现一个被普遍忽略的盲点?

无论是用MAP-Elites还是其他启发式方法,它们在整个进化过程中,那个搜索策略本身是写死的。比如,探索(exploration,去没去过的地方找找)和利用(exploitation,在已知的好地方深挖)的比例怎么平衡?选什么候选解?给大模型的提示词是什么?这些规则都是人提前定好的,从头到尾一成不变。

这就好比你拿着一张固定的地图去探索一片天天都在变的地形,前期可能还行,但随着搜索空间的演变,固定策略很容易陷入停滞(Stagnation),钻进死胡同出不来了~ 这就导致了极大的算力浪费:好地方没挖透,烂地方还在死磕。

为了打破这个僵局,最近有两支顶尖团队(包括UC BerkeleyStanford等)不约而同地抛出了一个极其优雅且硬核的思路:搜索策略本身,也应该是一个可以进化的对象!与其让人苦哈哈地手动调参,不如让系统自己学会在什么阶段该用什么策略。

今天,笔者就带大家盘一盘这两篇最新的SOTA新文——EvoXAdaEvolve

1. EvoX[3]双层嵌套的元进化

EvoX的核心洞察一针见血,它搞了个双层进化的框架,直接把如何搜索这个元问题也纳入了进化过程:

2.jpg

图注:EvoX双层框架。内层老老实实找解,外层像个教练,紧盯内层进度,不行就换战术。

  • 内层循环:跟传统方法一样,在当前搜索策略的指导下,让LLM进化候选解。

  • 外层循环:这个是精髓!它在进化搜索策略本身。当内循环的搜索陷入停滞时,外循环就会被激活。它会根据历史策略的表现和当前种群的状态(是多样性不够还是精度不够?),自动让LLM生成一个新的搜索策略给内循环用。

这简直就是算法在学习如何学习啊!这就好比打游戏开荒,你用莽夫流打法卡关了,外循环就跳出来说:别头铁了,看当前这个局势需要切风筝流打法,然后系统就自动换策略继续打。最妙的是,策略的切换是按需驱动的,且永远不会重置历史经验。

2. AdaEvolve[4]三级自适应的全能管家

如果说EvoX是双层嵌套的精妙,那AdaEvolve则是把自适应这个词做到了极致。它把LLM驱动的进化重构成了一个分层自适应优化问题。

3.jpg

图注:AdaEvolve 的三级自适应架构。从微观的单岛探索,到中观的全局算力分配,再到宏观的战术反思,安排得明明白白。

AdaEvolve的狠活在于,它用一个统一的累积改进信号(Accumulated Improvement Signal)贯穿了三个层级的动态调整,全程不需要人去设定什么繁琐的超参数(只要告诉它用什么大模型,跑多少轮就行了):

Level 1:局部适应(Local Adaptation)。在每一个候选解群体(岛屿)内部,动态调节探索和利用的强度。如果这个岛最近一直在进步(信号强),那就多利用(exploitation);如果卡住了,那就加大探索(exploration)力度去碰碰运气。

Level 2:全局适应(Global Adaptation)。把算力看作预算,用Bandit算法在不同的岛屿之间调度。哪个岛产出的解最能刷新全局最佳,就把算力倾斜给谁,坚决不把资源浪费在那些只能在烂泥坑里微创新的岛上。

Level 3:元引导(Meta-Guidance)。这是最后的杀手锏!如果上面两招都失效,全局彻底卡死了怎么办?这就说明大方向错了。这时候系统会召唤LLM进行系统 2级别的深度反思,不再是修修补补写代码,而是直接生成全新的解题战术(Solution Tactics)(比如:别用贪心算法了,试试动态规划),强行扭转搜索方向。

4.jpg

图注:看看这爬坡曲线!前期疯狂试错,中期集中资源优化,一旦停滞,触发元引导,立刻打破瓶颈,一路狂飙到SOTA

效果炸裂,这才是终极形态。

这两个脑洞大开的设计,效果怎么样?

EvoX在近200个真实的优化任务上(涵盖数学优化、系统性能优化、竞赛编程等)一通测试,在数学和系统优化基准中,在96%的任务上都取得了最优。

AdaEvolve同样在185个开放式优化问题上大杀四方。特别是在极其吃策略的Circle Packing(圆形排样)问题上,AdaEvolve甚至打破了人类专家和 AlphaEvolve保持的SOTA记录!

这种能自己换挡的自动变速箱,在实际的复杂优化中太重要了。比如咱们常说的卫星任务调度,应急任务来了需要快速探索新方案,常规任务需要精细打磨现有方案,固定的策略根本应付不来,而像EvoXAdaEvolve这种能感知种群状态并自适应调整的框架,显然就游刃有余了。

从技术视角看,把如何搜索纳入搜索本身,形成了一种自指(self-referential)的优化范式,这才是自动算法设计的终极梦想,不是吗~

这两篇神作的代码都已经开源,更多硬核细节和case study可以参考相关文章和代码

最后,欢迎转载,欢迎留言,欢迎扔砖,欢迎吐槽,欢迎提问。

 

参考文献:

[1] Romera-Paredes, B., Barekatain, M., Novikov, A., Balog, M., Kumar, M. P., Dupont, E., ... & Fawzi, A. (2024). Mathematical discoveries from program search with large language models. Nature, 625(7995), 468-475.

[2] Liu, F., Tong, X., Yuan, M., Lin, X., Luo, F., Wang, Z., ... & Zhang, Q. (2024). Evolution of heuristics: Towards efficient automatic algorithm design using large language model. arXiv preprint arXiv:2401.02051.

[3] S. Liu and S. Agarwal et al., "EvoX: Meta-Evolution for Automated Discovery," arXiv preprint, Feb. 2026.

[4] M. Cemri, S. Agrawal et al., "AdaEvolve: Adaptive LLM Driven Zeroth-Order Optimization," arXiv:2602.20133, Feb. 2026.