一个尴尬的场景
想象你是一个进化算法,正在用LLM当变异算子,试图解决一个科学优化问题——比如设计更高效的GPU内核、或者给RNA测序数据去噪。你让LLM生成候选方案,评估器打分,高分方案进入下一轮。
但很快你卡住了。LLM的知识有上限,它不知道某个领域刚发表的技巧,不知道某个库的API去年改了名。你给它加了web搜索工具,结果它每次搜的都是同一个关键词,返回同一批页面——因为你的方案在变,但搜索词没变。
这就是EvoDuet要解决的问题:搜索和求解是两个需要协同进化的目标,而不是一个工具的附属功能。
双层循环:外层进化方案,内层进化查询
EvoDuet的核心架构是一个双层优化框架(bi-level optimization):
外层循环(Solution Optimization):这是经典的进化搜索流程。选择父方案→LLM生成子方案→评估器打分→更新种群。和OpenEvolve等框架一样。
内层循环(Query Optimization):这是EvoDuet的创新。它不是简单地"搜一下",而是把搜索查询本身当作一个需要优化的对象。内层循环根据当前方案种群的状态,构造查询→搜索网页→对返回文档打分→保留有用文档。文档的"有用程度"由外层方案的性能来定义——如果一个文档帮助生成了高分方案,它就是好文档。
连接两个循环的桥梁:知识缺口检索门(Knowledge-Gap-based Retrieval Gate)。这是最关键的设计。在每次外层迭代开始前,LLM先评估自己:"我当前的知识够不够生成更好的方案?"它有三个选择:
- retrieve:知识不够,需要搜索新文档
- look-up:知识够,但之前搜到的文档还没用完,直接复用
- no-op:知识够,不需要外部信息,直接生成
这个门控机制避免了两个极端:一是每次都搜索(浪费API调用,还搜到重复内容),二是从不搜索(错过新知识)。
为什么"简单加搜索"不行
论文做了一个关键实验:如果把web搜索直接挂在外层循环上(每次迭代都搜),效果反而不好。原因是搜索结果和方案状态不匹配。
想象你在做菜。第一轮你搜"怎么做番茄炒蛋",得到一批菜谱。第二轮你改进了做法,想搜"番茄炒蛋怎么去腥"——但如果搜索词没跟着方案进化,你搜的还是"怎么做番茄炒蛋",得到的还是同一批菜谱。
EvoDuet的内层循环解决了这个问题。它根据当前种群状态构造查询描述符(population state descriptor),让搜索词随着方案的进化而进化。论文称之为"search placement changes how evidence enters the solution loop"——搜索结果进入方案循环的方式决定了它是否有用。
数据说话
在21个优化任务上测试:
- GPT-5.6-Luna:OpenEvolve的归一化发现增益从74.1%提升到78.0%
- Gemini-3.8-Flash:从61.3%提升到82.3%(+21个百分点)
- Qwen3.5-9B:没有提升——说明模型本身的能力是前提
更重要的是,EvoDuet的最佳运行在8个任务上超越了此前报告的最佳分数,包括Q20的Swap Reduction和Rosetta任务,另外3个任务持平。在Denoising任务上还超越了SimpleTES。
行为分析:搜索不是搜索,是知识管理
论文的行为分析部分很有意思,揭示了几个反直觉的发现:
1. 多语言查询很少见,且只出现在竞赛任务中。 模型默认用英文搜索,只有在特定任务(如Rosetta)中才会用其他语言。
2. 资源偏好因任务领域而异。 不同任务需要不同类型的文档——算法任务搜论文,工程任务搜文档。
3. 模型在检索和复用之间的平衡策略不同。 有些模型倾向于频繁搜索新文档,有些倾向于复用已有文档。
4. 后期搜索可以复用早期文档。 搜索不是线性的——第20轮搜到的文档可能在第5轮就已经被检索过了,只是当时没被用上。
5. 存储文档在多轮迭代中持续使用。 这验证了look-up机制的价值:一次搜索的成果可以被多次复用。
失败案例分析:不是所有搜索都有用
论文诚实地分析了搜索失败的情况。一个典型案例是Galileo任务:模型搜到了一篇看起来很有希望的文档,但基于它生成的子方案反而比父方案更差。这说明检索质量≠方案质量——即使搜到了相关信息,LLM也可能误用它。
另一个失败模式是"evidence-inspired over-reach":模型搜到一些相关文档后,过度自信地扩展了文档中的方法,超出了文档的适用范围。
我的思考:搜索作为一等公民
EvoDuet让我想到一个更大的趋势:搜索正在从"工具调用"变成"一等公民"。
在早期的Agent框架里,搜索就是一个function call——需要信息了就调一下。但EvoDuet把搜索提升为一个需要独立优化的目标,和方案优化平起平坐。这和Hindsight(记忆不是存储是学习)、treg(工具API路由层)是同一个思路:把之前被认为是"附属功能"的东西升级为独立优化对象。
另一个值得注意的点是知识缺口评估。retrieval gate让LLM自己判断"我知不知道",这比固定频率搜索更高效。这和人类研究者的行为一致——你不会每写一段话就去查一次文献,而是在"感觉缺信息"的时候才去查。EvoDuet把这个直觉形式化了。
不过,Qwen3.5-9B没有受益这个结果值得深思。双层优化需要模型具备一定的自我评估能力——它得能判断"我缺什么知识"。如果模型能力不够,retrieval gate的判断就不可靠,整个机制就失效了。这可能是一个能力门槛:协同进化需要足够聪明的"两个大脑",否则内层循环只是噪音。
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。