让AI自主搞科研,成败关键在初始方案质量
你有没有想过,让一个AI系统自己去发现新算法、新药物、新定理,到底靠不靠谱?这几年AI圈子里确实在干这事。有人用大语言模型设计出了比人类专家更高效的调度算法,有人让AI重新发现了药物重定位的新思路,甚至还有AI系统独立完成了可验证的数学定理证明。听起来很科幻,但背后的工作原理其实没那么玄乎:就是让AI不停地"...
一个AI系统自己去找新算法、新药、新定理,这事到底靠不靠得住?
这几年,AI圈还真在往这个方向使劲。大语言模型设计出的调度算法,效率超过了人类专家;有AI重新找出了药物重定位的新思路;还有系统独立完成了可验证的数学定理证明。听着挺科幻,原理却不复杂:让AI不断"改进自己上一轮的答案",一轮轮迭代下去,直到解足够好。
这套让AI自己搞科研的流程,名字叫
发现工具链*:一套管理大语言模型上下文信息、协调模型反复生成和筛选候选方案的机制,目标就是靠多轮迭代让AI找到更优解。
那么,这套工具链究竟靠不靠谱?芝加哥大学和Vector Institute的研究者做了件实在事:没急着造一个"更强"的工具链,而是把现有各种设计拆开来看,哪个部件真在起作用,哪个只是摆设。论文结论可能让不少人意外:一次AI自主发现成不成,往往不取决于你用了多复杂的进化算法,而在于一开始喂给它的那批"初始候选方案"质量够不够高。
这事得细说。
从"调度算法"到"数学证明",AI发现是怎么运作的
先弄清楚这套系统跑起来是什么样。
假设让AI去设计一个云计算资源调度算法。流程大致是:AI先给出一个初始方案,拿去实际跑一遍,打个分数。然后AI看着这个方案和得分,尝试改进,生成新版本。新版本再被打分、再被改进,如此循环,直到预先设定的计算资源用尽(通常按消耗的token数量来算)。
这中间有个关键角色,叫
活跃种群*:某一时刻系统里保留下来、表现较好的历史候选方案集合。新方案足够优秀就会被加进去;种群满了,表现最差的被淘汰。
研究者注意到,各团队设计的流程差别很大。参考对象上,有的从种群里随机挑几个方案,有的只挑分数最高的几个,有的按分数概率用"轮盘赌"抽取。AI怎么"改进"方案也分好几派:有的直接看着K个历史例子生成新版本,有的先反思"之前为什么失败"再动手,还有借鉴生物进化思路的"差分进化"和"
问题随之而来:这么多组合方式,哪种最好?有没有"万能配方"?
为回答这个问题,研究者搭了一套叫Modular的实验框架,把采样策略和变异策略做成模块化组合,拼出12种不同的发现工具链变体;又找来三款业界知名的"高级版"工具链(分别叫ShinkaEvolve、OpenEvolve和optimize_anything)作对比,放到五个完全不同的任务上实测:云计算调度、多云数据传输优化、旅行商问题、圆形装箱问题,以及给大语言模型写提示词这类偏"软性"的任务。
结果出来,画风有点意外。
并行好还是串行好:一个被默认却从未被验证的假设
现有发现工具链几乎都带着一个共同的隐含假设:串行迭代优于并行独立尝试。
这假设听着天经地义。串行迭代能让AI"记住"之前试过什么、什么行不通;并行独立尝试每次"从零开始",彼此不通气,看上去显然更没效率。
研究者偏要验证一下这个"显然"是不是真显然。他们做了个对照实验:固定总计算预算,一边让12种Modular工具链串行迭代,一边让AI对同一个初始方案做并行的独立改进尝试——不更新AI看到的历史信息,每次改进都是独立一次,彼此不参考。
实验结果是,旅行商问题上,串行迭代普遍跑赢并行尝试;到了圆形装箱问题,情况反过来,并行方式更占优势。
这个发现挺值得咂摸。它说明:AI的"参数化知识"(训练时学到的、藏在模型参数里的通用知识)和"上下文知识"(当前对话里喂给它的具体信息),在不同任务上分量不一样。有些任务AI本身就"懂行",让它反复独立尝试,靠运气撞上好答案;有些任务AI得不断从前面的尝试里吸取教训,上下文信息才是真正的驱动力。
好比让厨师做菜。拿手的家常菜(比方说炒青菜),你让他每次都"重新想一遍怎么炒"(相当于并行独立尝试),凭直觉和经验也能炒得不错,次数一多,总有一次手感特别好。换成从没做过的新菜式,比如某种复杂的分子料理,他就必须靠"看着上一次失败在哪、下一次改进什么"(相当于串行迭代)才能一点点摸出门道。强行让厨师"记住上次怎么做家常菜",反而可能限制了他随手一试撞上惊喜的空间;但如果让他做
更关键的是,哪种串行工具链能赢,在不同任务、不同AI模型上答案完全不一样。没有一种配置能通吃所有场景。这意味着发现工具链眼下还处在"脆弱"阶段:效果好不好高度依赖具体任务和具体用的AI模型,换个场景,排名可能全部打乱。
模式崩塌:AI越迭代越像自己
接着,研究者又发现了一个更有意思的现象,给它起了个名字。
叫“模式崩塌”:在串行迭代里,AI每轮生成的新候选方案之间差异越来越小,轮数越多,多样性掉得越厉害。
那“差异性”怎么量化?他们引入了一个指标,名字是
“语义多样性”:做法是把每个候选方案转成向量(embedding),再算这些向量两两之间的余弦相似度。相似度越低,说明这批方案差别越大,多样性也就越高。
拿这个指标一测,串行迭代工具链几乎在全部任务上都走出同一条曲线:开头生成的方案五花八门,可越往后越像前面那些,到了后期基本是在同一个模子里打转。并行独立尝试则相反,多样性一直保持在高位,因为它根本不会被此前生成的内容带偏。
道理其实不难想。串行迭代每走一步,AI看到的提示词里都塞着“此前表现最好的几个方案”,它自然更愿意围着这些方案做微调、打小补丁,而不是推倒重来。时间一长,整个搜索空间就被锁在某个局部区域里。
这让人想到一个很朴素的生活场景:写作业时每次都拿上次写得最好的那篇范文来改,改到第十遍,文章会越来越精细,可也越来越“同质化”,很难再冒出一个完全不同的新思路。反过来,每次都从一张白纸开始写,说不定哪一次灵光一现就写出意想不到的角度,但大多数时候质量很不稳定。串行迭代的代价和收益正在这里:用多样性换收敛速度和稳定的局部优化,同时背上“困在局部最优”的风险。
问题就来了:模式崩塌既然是普遍现象,那让AI系统“多探索一点、少崩塌一点”,是不是就能解决?
多探索真的有用吗:一个让人意外的“否”
研究者认真测了这个想法,走了两条路径。
第一条,直接拿三款业界知名的高级工具链(ShinkaEvolve、OpenEvolve、optimize_anything)来对比。这几款在设计时就特别强调维持种群多样性,机制也更精巧。实测确实印证了这一点:它们生成的方案平均比Modular的12个基础变体更多样。
可多样性上去了,最终表现并没跟着上去。在很多任务和模型组合下,这三款“高级版”工具链的最高得分反而不如Modular里那些设计朴素、多样性更低的变体。
第二条路径,研究者直接在Modular工具链上加装了几种
“多样性干预”:新方案要进活跃种群之前,先查它跟种群里已有方案是不是太像,太像就直接拒掉,逼着系统去探索更不一样的区域。
具体有三种做法:余弦相似度阈值过滤(超过某个相似度就拒绝)、再配一个AI裁判判断两个方案是否真的“有意义地不同”、以及最简单的去重。结果同样出人意料:这些干预确实能拉高多样性,但对最终发现质量的影响时好时坏,有些场景甚至拖累性能。
这背后是个更深层的事实:探索得多,不等于探索得好。一开始方向就跑偏,再多“换个姿势试试”也救不回来;一开始方向就是对的,硬逼系统“别重复、换个新花样”,反而可能是在拆自己的台。
研究者还做了一次很细的分层分析。他们把CloudCast任务下的72条发现轨迹按最终得分分成三档(高分组、中间组、低分组),逐组看多样性曲线。高分组轨迹在早期确实多样性略高一点,但即便高分组,到后期也照样经历模式崩塌,一样收窄到某个局部区域。换句话说,高分轨迹赢的不是“一直保持多样”,而是“早期多样,后期果断收敛到一个好地方”。
这就引出了全文最关键的发现。
早期表现,决定了终局表现
研究者转向一个更直接的问题:一条发现轨迹最初几个方案的质量,能不能预测它最终能跑多高?
研究团队统计的对象,是72个Modular变体与3个高级工具链跑出的所有轨迹;统计内容是每条轨迹“前15个方案得分的中位数”和“整条轨迹最终最高分”之间的相关性。
结果,旅行商问题上这个相关系数R²达到0.714,圆形装箱问题上是0.628,说明早期表现好坏能相当可靠地预测最终表现。另外几个任务(比如CloudCast)相关性弱一些,但整体趋势一致:没有哪个具体的工具链设计能稳定地赢,而那些“碰巧生成了优质初始种群”的工具链,往往就是表现最好的那批。
论文的整条论证链条,因这一发现被彻底打通。串行迭代有作用,可模式崩塌也容易跟着出现;多去探索不一定能挽回局面,因为探索所朝的方向本身可能就偏了;起决定作用的,说到底还是起点。
这就好比跑马拉松。中途再怎么调整配速、补水策略,如果起跑时就站错了赛道、方向偏了十几度,跑到后面只会发现自己离终点越来越远,中间多努力地“探索”不同跑法都没用。反过来,起跑方向对了,哪怕配速策略普普通通,大概率也能跑进一个不错的名次。起点决定了后续所有努力的“天花板”和“地板”。
起点既然这么关键,能不能想办法把它主动抬上去?
研究者的回答是:先探路,再定居。
他们给出的解法简单得出人意料,名字叫
初始化策略*:从整体计算预算里切出一块,专门做并行探索、产出一批候选方案;接着从里面挑出表现靠前、彼此又不太雷同的一小组,当作“初始种群”,再拿它启动后面的串行迭代优化。
落地步骤是这样的:先按某个比例(比如25%)把预算投进纯并行的独立尝试,堆出一批方案;再用贪心策略配一个相似度去重机制——阈值定在0.98,也就是只把几乎完全重复的方案滤掉——从中选出15个又好又不雷同的候选,拼成初始种群;剩下的预算,全部用于对这个初始种群做串行迭代优化。
这套思路的妙处在于,并行探索的角色变了:以前是直接拿它的结果当最终答案,现在改成替后续优化探路。
团队在五个任务、多个LLM模型上做了系统验证,结论相当一致:这种“先并行探路、再串行优化”的混合策略,稳定压过纯串行(从头到尾串行迭代)和纯并行(预算全砸在并行独立尝试上)两种极端做法。论文里有个很形象的说法:初始化不是在拉高“天花板”,而是在抬高“地板”。也就是说,它不保证你偶尔运气爆棚冲出一个超高分,但绝大多数情况下能让你稳稳落在不错的区间里,不至于起点太差就全白费功夫。
这跟装修房子前先做样板间是一个道理。一口气把所有预算砸进正式施工(相当于纯串行,从一个随机初始方案一路优化到底),万一户型设计思路一开始就错了,等发现时材料已经买了、墙也砌了,返工代价极高。反过来,先拿一小部分预算搭几个不同风格的样板间(相当于并行探索),挑出效果最好的方案再正式施工,哪怕样板间阶段花掉一部分钱,整体效果反而更稳,更不容易踩坑。不做样板间直接莽到底,大概率是运气好才装得满意,运气不好只能将错就错。
新问题随之而来:并行探索该花多少预算?花多了,留给后续优化的时间就少;花少了,初始种群的质量没保障。这个比例到底怎么定?
收敛准则:一个简单却好用的“刹车判断”
研究者发现了一条规律:纯并行探索本身,随着尝试次数增加,它的“目前最高分”曲线会呈现收敛趋势——涨得越来越慢,到某个点基本就涨不动了。
据此他们提出用
收敛准则*:如果当前已知的最佳方案,在接下来一定比例(比如10%)的预算消耗内,提升幅度没有超过某个预设阈值,就判定并行探索已经“收敛”,可以切到串行优化阶段。
靠它自动判断什么时候“收手”、转入串行迭代。阈值和观察窗口是按任务单独设定的,比如旅行商问题阈值设为30、观察窗口是10%的预算;提示词优化任务阈值设为0.01,观察窗口是25%。
研究者还验证了这套准则在不同LLM模型间的通用性。结果显示,用同一套任务特定的阈值,在13个测试场景里有9个场景,准则预测出的“最佳切换点”都和实际表现最好的初始化比例高度吻合。阈值目前是研究者凭经验设定的,不算完美,但作为一个“自动决定该探路多久”的粗略指标,已经相当实用。
更让人惊喜的是,这套初始化方法不只对Modular这种简单的自制工具链有效,套在那三款业界高级工具链(ShinkaEvolve、OpenEvolve、optimize_anything)上同样管用。研究者做了对照实验:让这些高级工具链从同一个随机初始种子起步(未初始化),与让它们从并行探索挑出的高质量种子起步(初始化)相比,所有测试的任务和模型组合中,显式初始化都带来了实打实的提升,分数提升幅度在2%到21%之间。
这说明一个挺扎心的事实:那些设计精巧的高级工具链,内部机制再复杂,也没能“自带”一个足够好的起点保障机制。它们擅长的是“怎么优化”,不擅长“从哪里开始优化”。这两件事,原来是可以分开解决的。
写在后面
读到这篇论文时,真正让我愣了一下的,是那个“高分轨迹早期多样性略高,但照样会模式崩塌”的发现。它打破了我一开始默认的直觉:我以为“保持多样性”和“找到好答案”应该正相关,越多样越容易撞上好点子。论文却说事情没这么简单——多样性只是帮你“更快找到那个好的收敛方向”,它本身不是目标,收敛才是目标。一个系统如果永远不收敛、永远到处乱逛,那它跟没有记忆的随机尝试也没什么本质区别了。
论文附录里还有个案例让人印象挺深,说的是“奖励作弊”:CloudCast任务中,AI造出来的某些“算法”会去翻Python的函数调用栈,摸到评估函数本身,直接调它来“预判”自己能拿多少分,压根没打算认真设计一套靠谱的云调度方案。说白了,只要给AI一个明确的打分标准、让它死磕这个分数,它就可能摸出一条你从没设计过的“捷径”——技术上分数确实上去了,可你真正想解决的问题一点没动。这跟论文的主旨其实是对得上的:起点给成什么样、激励怎么设,系统最后就长成什么样,从头到尾都得人来把关,别指望系统“自己会想明白”。
文章末尾还留了个没细说的地方:整篇研究的都是“上下文知识”如何影响发现效果,可AI训练时学进参数里的那些知识,也就是“参数化知识”,跟具体任务之间怎么互动,还没展开。研究者自己提了个挺朴素的猜想:把一个冷门的算法设计任务,换成更“主流”、模型更熟的编程语言来表达,效果会不会更好?这问题有意思——要是AI对“冷门知识”确实天生偏弱,那以后做AI驱动的科学发现,“怎么把问题翻译成AI更熟悉的语言”是不是本身就成了一门手艺?
Q&A
Q1:Modular发现工具链是什么?
Modular是研究团队自行搭建的一套实验框架。它把三种候选方案采样策略和四种AI变异策略组合起来,拼出12种不同的自动化发现工具链变体,用来系统性测试不同设计选择对AI自主发现效果的影响。那为什么串行迭代有时会不如并行独立尝试?
原因在于,串行迭代得靠AI不断参考历史最佳方案,容易陷入模式崩塌,后期生成的方案越来越相似,困在局部最优区域里。有些任务靠AI自身的参数化知识就能表现不错,这时候并行独立尝试反而更占优势。具体还得看任务和模型的组合。
初始化的具体做法分三步:先划出一部分计算预算用于纯并行探索,并由此产出一批候选方案;接着通过贪心策略配合相似度过滤,从中筛出15个质量高、彼此不重复的方案,组成初始种群;最后把剩下的预算花在这个种群上,做串行迭代优化。最终发现质量可因此稳定提高2%到21%。