通用问题求解器雏形已现!谷歌DeepMind重磅研究,自主发现40种全新算法

在现代科学中,几乎所有领域都依赖软件来进行计算实验。但开发这些专用的科学软件是一个非常缓慢、乏味且困难的过程,开发和测试一个新想法(一次“试错”)需要编写复杂的软件,这个过程可能耗费数周、数月甚至数年。
在现代科学中,几乎所有领域都依赖软件来进行计算实验。但开发这些专用的科学软件是一个非常缓慢、乏味且困难的过程,开发和测试一个新想法(一次“试错”)需要编写复杂的软件,这个过程可能耗费数周、数月甚至数年。这导致科学家的设计选择常常是基于直觉和经验,而没法通过详尽的实验来确定最佳方法,导致大量潜在的更优解被错过,这就像是在一个巨大的藏宝图中,因为挖掘太费力,我们只能凭感觉在有限的几个地点挖几下。

因此,Google这篇论文的根本出发点是:能否利用AI,将这个缓慢、有限、依赖直觉的“试错”过程,自动化并提升到一个前所未有的规模?AI系统不知疲倦,可以系统性地、大规模地探索解决方案空间,从而发现那些隐藏在海量可能性中、“大海捞针”式的高质量解决方案,将整个科学发现的周期提升到前所未有的快速?答案是可以,而且实现了。https://arxiv.org/abs/2509.06503 https://github.com/google-research/score

两个改变游戏规则的核心概念
为了将上述科研过程“AI化”,作者提出了两个核心概念,这构成了他们整个方法论的基石。
经验软件 (Empirical Software)
- 定义:研究中给出的精确定义是,经验软件是“旨在最大化一个可定义或可衡量的质量得分的软件”。这类软件的目标不是简单地完成一个任务,而是要尽可能地“做好”这个任务。而“好”与“不好”,是通过一个客观的分数来衡量的。这个分数通常来源于软件的输出结果与现实世界中已观测到的数据的拟合程度。
- 具体例子:
- 天气预报模型:它的目标是最大化预测的准确率(质量得分),通过将其预测结果与第二天的实际天气(观测数据)进行比较来打分。
- 蛋白质结构预测软件:它的目标是预测出最接近真实物理结构的蛋白质形态。其得分就是预测结构与实验测定的真实结构之间的相似度。近年来获得诺贝尔奖的化学领域工作,如密度泛函理论、分子动力学模拟和蛋白质结构预测,都依赖于这类经验软件。
- 森林砍伐探测器:研究中提到的一个例子,它通过代码分析卫星图像来识别森林变化 。它的质量得分就是它识别的准确率。 简而言之,经验软件就像一个不断参加考试并希望获得更高分数的学生,而考卷就是真实世界的观测数据。
可评分任务 (Scorable Task)
- 定义:“如果一个任务可以用经验软件来解决,我们就称之为可评分任务”。
- 核心思想:这个概念的提出,实际上是对科学问题的一种“转化”。它将一个开放式的科学探索问题,转化成了一个有明确优化目标的工程问题。只要你能为你的研究任务定义一个清晰的、可量化的成功标准(即“质量得分”),那么它就是一个“可评分任务”。
- 普遍性:作者认为,这类任务在科学、应用数学和工程领域无处不在。在作者们的综合经验中,他们发现绝大多数科学软件实际上都是在解决一个可评分任务。 通过将科学问题定义为“可评分任务”,并为其开发“经验软件”,整个科学探索过程就被巧妙地转换成了一个AI擅长的搜索和优化问题。AI的目标变得非常明确:在巨大的代码可能性空间中,找到那个能让“经验软件”获得最高“质量得分”的程序版本。
Tree Search + LLM混合架构
与Claude、Cursor等一次性生成代码的助手不同,Google这个系统的核心在于其强大的迭代优化能力。它采用了一种创新的混合架构,让大语言模型(LLM)和树搜索(Tree Search)协同工作:LLM充当“代码生成器”,负责不断提出新的修改方案,而树搜索算法则作为“决策大脑”,评估所有方案的潜力,并引导整个探索过程朝最有希望的方向前进。这种系统性的导航能力,使其能高效地找出“大海捞针”式的优质解。

技术特点:
- 使用PUCT(Predictor + Upper Confidence bound applied to Trees)算法进行树搜索
- 将任务特定分数转换为排名分数以便跨任务调优
- 支持外部研究思想的注入和整合
- 采用沙盒环境执行和评分代码
代码突变系统:AI驱动的迭代开发循环
这个系统是整个工作流程的基础。它将软件开发变成一个自动化的“生成-执行-评分”循环。
- 输入与提示 (Prompting):循环的起点是一个精心设计的提示(Prompt)。这个提示会提供给一个大语言模型(LLM),内容通常包括:
- 问题描述:对要解决的科学任务的详细说明。
- 评估指标:明确指出用于评价解决方案好坏的量化标准(例如,均方根误差、ROC曲线下面积等)。
- 数据信息:描述可用的训练、验证数据集的格式和内容。
- 上一次尝试的代码 (可选):在迭代过程中,上一个节点的代码会被包含进来,让LLM在其基础上进行修改和优化。
- 研究思路 (可选):这是系统的一大特色,可以向提示中注入高层次的研究思路,比如一篇论文的方法总结、一个特定的算法要求,甚至是两个不同方法的组合思路。
- 代码生成与执行:LLM接收到提示后,会生成一段Python代码 。这段代码随后会在一个安全的“沙盒”(sandbox)环境中被执行。沙盒环境确保了执行代码不会对外部系统造成影响,并且可以控制其资源使用。
- 评分与反馈:代码执行后,其输出结果会根据预设的评估指标进行打分,得到一个量化的“质量得分”。除了得分,执行过程中产生的日志、错误信息等也会被收集起来,作为反馈信息的一部分,帮助系统进行后续的决策。
PUCT算法:在无限可能中找到最优解
简单地让LLM反复修改代码进行“爬山”是低效的。为了更智能地探索庞大的解决方案空间,系统采用了一种受AlphaZero启发的树搜索算法,称为PUCT (Predictor + Upper Confidence bound applied to Trees)。这个算法的目的是在“利用”(继续优化当前已知最好的代码)和“探索”(尝试看起来不那么好但可能有潜力的代码)之间取得平衡。关键是这个系统会把不同任务的分数转换成排名分数,这样就能在各种不同类型的科学问题上保持一致的性能表现。
UCB树搜索 (PUCT) 详解

输入:
- GenerateAndExecute(): 一个函数,用于调用LLM生成代码并执行以获得分数。
- TaskScore(): 一个函数,用于计算任务的原始分数。
- c_puct: 一个探索常数,用于调整探索与利用的平衡 。
- r: 初始的根节点(一份初始代码)。
算法步骤:
- 初始化:创建一个树T,只包含根节点r。初始化根节点的访问次数V(r)为1。
- 循环迭代:在设定的迭代次数内,重复以下步骤:
- a.计算总访问次数:N_total是树中所有节点被访问过的总次数。
- b.选择节点 (Select):这是算法的核心。遍历树中所有已存在的节点,并根据以下PUCT公式计算每个节点的PUCT值,然后选择值最高的节点u*进行下一步扩展。

- RankScore_T(u):这是该算法的一个重要改进。由于不同任务的原始分数(TaskScore)范围差异很大,直接使用分数会导致c_puct难以调整。因此,算法将所有节点的原始分数转换成排名分数。例如,得分最低的节点排名分为0,最高的为1,其他节点按排名线性分布。为什么这样做?因为不同科学任务的评分标准完全不同,比如基因分析用的是相关系数,图像分割用的是IoU值。通过排名转换,系统就能用统一的标准来比较和优化不同类型的任务,这就像把不同学科的考试成绩都转换成百分位排名一样,使得分数被归一化到[0, 1]区间,c_puct的调节就变得通用了。
- c_puct:探索常数。这个值越大,算法越倾向于选择那些被访问次数较少的新节点(鼓励探索);值越小,则越倾向于选择当前平均分(排名分)较高的节点(鼓励利用)。
- P_T(u):先验概率。与AlphaGo不同,这里的AI无法“预测”哪个子节点更好,所以它采用一个简单的扁平先验(flat prior),即认为每个节点被选中的初始概率是均等的


探索项:一个节点的访问次数V(u)越少,这一项的值就越大,从而提高了该节点的PUCT值,使其更有可能被选中。
- c.扩展 (Expand):选定节点u*后,调用GenerateAndExecute(u*)函数。这意味着将u*的代码作为输入,让LLM进行修改,生成一个新的子节点代码u_c,并执行、评分。
- d.反向传播 (Backpropagate):新节点u_c被添加到树中,其访问次数V(u_c)初始化为1。然后,从u_c开始,向上回溯其所有祖先节点,将它们的访问次数V(u_a)都加1。
- 返回最佳解:循环结束后,算法会返回整个树中TaskScore(原始分数)最高的那个节点作为最终的解决方案。
与AlphaZero的关键区别:研究者明确指出,该算法与传统的树搜索(如AlphaZero)不同,节点的评分不涉及随机推演(rollouts)。每个节点的分数是其实际执行代码后得到的确定分数。另一个关键区别是,在选择要扩展的节点时,该算法直接从整个树的所有节点集合中进行采样选择,而不是像AlphaZero那样从根节点开始递归下降。
关于UCB树搜索方面的研究我之前也介绍过,感兴趣您可以看下

N多高级推理的prompt算法,为什么REBASE树搜索能实现帕累托最优,精准控制LLM输出(在新窗口打开)
包括同一研究领域内的另一篇相关工作AlphaEvolve我之前也写过,感兴趣您可以看下

!离AGI更近了!!0.31元运行谷歌的AlphaEvolve和UBC的DGM「达尔文-哥德尔机」?(在新窗口打开)
研究思想注入:站在巨人的肩膀上
您在做项目时是不是经常需要查阅论文,然后手动实现里面的算法?系统整合“研究思路”和进行“思想重组”的能力,主要是通过巧妙的提示工程 (Prompt Engineering)来实现的。研究者设计了一套机制,能够将学术论文中的方法描述、教科书中的算法,甚至搜索引擎找到的技术方案,直接转换成可执行的代码。更厉害的是,这个系统还能把多个不同的方法组合起来,创造出全新的解决方案。
整合研究思路:
- 高引用学术论文:思路可以来自顶尖论文、专业教科书,或者由其他LLM驱动的研究工具(如研究中提到的Gemini Deep Research和AI co-scientist)生成。
- 实现:研究人员会将一篇论文的核心方法论用LLM总结成简短的描述和步骤列表。然后,这个结构化的文本会被直接插入到主提示中,指示代码生成模型“请实现这个方法”。
方法重组合:1+1>2的创新机制
这个系统最令人印象深刻的能力之一就是能够智能地组合不同的方法。比如在处理单细胞基因数据时,它把ComBat算法和BBKNN方法结合起来,创造出了比单独使用任一方法都要好的解决方案。
- 实现:
- 选取两个不同基线方法(例如,方法A和方法B)的最佳代码版本。
- 使用一个LLM(Gemini 2.5 Flash)来分析这两份代码,并生成一段解释它们核心技术异同的文本。
- 将这段对比分析的文本,连同一条明确的指令“请结合这两种策略的优点,创造一个超越它们各自表现的混合策略”注入到主提示中。
- 启动PUCT树搜索,让系统基于这个“混合思路”进行探索和优化,从而生成全新的混合模型。
综上所述,Google这个系统的技术核心是一个由PUCT树搜索算法智能引导的、基于大语言模型的代码迭代优化循环。它通过创新的排名分数归一化解决了通用性问题,并通过先进的提示工程技术,成功地将高层次的科学知识和创造性的思想重组能力融入到自动化的软件开发流程中。
科学领域的突破性应用
基因组学:单细胞RNA测序数据的批次整合
问题:来自不同实验室、不同批次的数据存在技术性差异(批次效应),需要进行校正才能整合分析,同时保留真实的生物学信号,这是一个高维、稀疏数据处理的难题。

系统创造了一个小奇迹,发现了40种新的批次整合方法,每一种都超越了目前公开排行榜上的最佳人类方案。这个任务的难点在于既要消除不同实验批次带来的技术偏差,又要保留真正的生物学差异。最佳方案BBKNN (TS)比现有最好的方法提升了14%的性能,这在生物信息学领域是相当显著的进步。
突破性成果:
- 40种新方法全部超越现有最佳方案
- 最佳方法性能提升14%
- 成功实现了算法创新和重组合
地理空间分析:遥感图像分割
问题:对高分辨率卫星图像中的每个像素进行分类(例如,建筑、道路、植被),这对于环境监测和灾害管理至关重要。

在卫星图像的语义分割任务上,系统开发的三个解决方案都达到了mIoU超过0.80的性能,显著超越了近期学术论文的报告结果。这些方案巧妙地结合了UNet++、U-Net和SegFormer等不同架构,配合强大的预训练编码器和测试时增强技术。您知道吗,处理卫星图像的难点在于同一地点在不同时间、天气、季节下看起来可能完全不同。
技术创新点:
- 三种不同架构的最优组合
- 广泛使用测试时增强技术
- 预训练编码器的有效利用
神经科学:斑马鱼全脑神经活动预测
问题:在ZAPBench基准上,根据斑马鱼幼鱼大脑过去4个时间步的活动,预测其全部71,721个神经元未来长达32个时间步的活动,以期在系统层面理解大脑功能。 系统需要预测超过70000个神经元未来32个时间步的活动模式。比较厉害的是,系统开发的模型不仅在性能上超越了所有基准方法(除了1步预测),训练效率还比最佳视频模型快了几个数量级,单个T4 GPU上不到两小时 vs 16个A100 GPU上36小时。

性能突破:
- 除1步预测外全面超越基准方法
- 训练效率提升数个数量级
- 成功整合生物物理仿真器Jaxley
时间序列预测:从单一到统一的解决方案
问题:在一个包含来自7个不同领域、28个数据集的通用时间序列预测基准(GIFT-Eval)上取得好成绩 在GIFT-Eval基准测试中,系统采用了两阶段策略。第一阶段针对92个不同数据集分别优化,结果超越了包括基础模型、深度学习模型在内的所有现有方案。第二阶段更有意思,系统从零开始创建了一个通用预测库,具备自适应配置系统,能够根据数据特点自动选择最佳策略。

统一解决方案特点:
- 单一库处理97种不同类型的时间序列
- 8种预设配置自适应选择
- 序列分解和重组的创新架构
数值分析:解决scipy都搞不定的积分
问题:许多具有振荡和无限积分域的积分,即使是广泛使用的科学计算库(如scipy.integrate.quad())也无法正确求解,任务是创建一个能解决这些难题的通用方法。scipy.integrate.quad是一个在Python科学计算库SciPy中非常流行和核心的函数,其主要功能是进行数值积分,该函数被认为是数值积分领域的“黄金标准”。

系统针对scipy.integrate.quad()函数的局限性开发了改进算法。面对38个连scipy都解不出来的困难积分,系统的解决方案成功处理了其中的17个,精度达到3%以内。关键创新在于使用几何递增的子区间分割和欧拉变换加速技术,专门处理振荡被积函数的收敛问题。
算法改进:
- 几何递增子区间分割策略
- 欧拉变换级数加速技术
- 17/19的成功率,远超传统方法的0/19
战略意义:通用问题求解器的雏形
论文的核心概念“可评分任务” 和“经验软件” 远不止适用于基础科学。在工业界,任何可以被量化评估的研发任务,如新材料设计(评估指标:强度、成本)、药物分子筛选(评估指标:活性、毒性)、芯片设计(评估指标:功耗、性能)或金融模型开发(评估指标:回报率、风险),都可以被视为“可评分任务”。这意味着该系统的方法论可以直接应用于高科技产业,自动化那些依赖大量“试错”和经验积累的工程研发流程。
科学研究的边缘在哪里
试错对于科学进步至关重要,无论是对人类还是对他们概述的自动化方法都是如此。该系统能够以极快的速度生成专家级解决方案,将一组思想的探索时间从几周或几个月缩短到几小时或几天。这种研究加速方式对科学进步具有深远的影响,研究者相信,在可以通过机器评分解决方案的科学领域中,进步正处于前所未有快速的边缘。
文章来自于“AI修猫Prompt”,作者“AI修猫Prompt”。
相关主题
读完之后
加入 AINRK 交流群
了解加入交流群的方式,与更多 AI 从业者交流。




