智能AI
evening
ScienceDiscovery实现树搜索驱动RSI,加速科学发现,小时级写出通用积分器,低成本找出物理科学规律
2026-09-04
1 阅读
约9分钟阅读
思邈
字号:
< img id="wx_img" src="https://www.qbitai.com/wp-content/uploads/imgs/qbitai-logo-1.png" width="400" height="400"> ScienceDiscovery实现树搜索驱动RSI,加速科学发现,小时级写出通用积分器,低成本找出物理科学规律 思邈 2026-09-04 16:57:14 来源: 量子位 允中 发自 凹非寺 量子位 | 公众号 QbitAI 科研里常见的情形是:写一个能算准振荡积分的程序,把一段数值代码调快十倍,从一张数字表里反推出背后的方程——第一版实现通常都不够好。 主要工作量不在实现第一版,而在其后的几十到上百次试错。 这类工作的形式是搜索,不是单次执行。 openJiuwen社区的ScienceDiscovery把这段试错交给程序自己完成:被演进的是 科研代码 本身,模型不训练、搜索规则也不改,每一轮变的只有 产物 。 通过树搜索实现科研场景产物RSI 搜索展开的形状是一棵树。每一版产物是树上的一个节点,可以被再次选中、改写并长出新的分支,也可以暂时搁置,几十版之后再被选中继续修改;得分较高的分支会获得更多改写机会。 每一轮迭代包括四步: 选择 一个父版本,交给模型 改写 ,进沙箱 评分 并挂成新节点,最后把这次访问 记账 到它的全部祖先上。运行失败的版本同样入树,标记为失败。 沙箱由ScienceDiscovery的底座提供,运行失败、死循环和超时都会被隔离,因此不必对模型生成的代码预设限制。有了分数,程序才知道哪一版更好、下一轮该从哪里接着改。当这棵树能够持续生长、不需要人工逐轮介入时,产物就在自行迭代。 这就是RSI的一种形态:目标给定之后,往哪个方向走、退回哪一版、在哪里深入,都由程序自己决定。 案例一:半无穷区间上的振荡积分 半无穷区间上的振荡积分,是物理计算里绕不开的一类量。通用积分器在这里失灵:它靠局部误差估计决定往哪里加密采样,而这些函数振荡一直不停,这套方法给不出可靠的收敛判断。 取38道这样的积分,题面和答案AI全程看不到,唯一的反馈是精度分——0分代表全部算准,越低误差越大。直接调用scipy.integrate.quad得−3.40:19道里只有3道进入3%容差,最差一道与真值差了约24亿倍。 搜索到第119个版本时,得分是−0.0007:用于打分的19道全部算准,平均相对误差0.07%。这类积分此前没有可用的通用工具,现在有了一个可以直接调用的求解器。 △灰点是每一版各自的得分,蓝线是到此为止的最好成绩 最终那份247行的程序,会先判断被积函数在何处发散、振荡有多快,再分情况选算法——不是把38道题各写一个分支,而是一套通用规则,因此在未参与打分的19道题上同样有效。 整场搜索历时2小时、产生236个版本,全程无人干预。 同一类任务换对象:₂F₁的双精度求值 高斯超几何函数 ₂F₁(a,b;c;z)的双精度求值是特殊函数体系的枢纽,公认没有单一算法能覆盖全参数域。基线scipy.special.hyp2f1沿用数十年,在我们测试的参数分布上,约三分之一的点正确有效数字不足10位。 用glm-5.2跑48次扩展、598秒,产出一份199行的程序。在1000个从未见过的点上,平均正确位数从9.836升至11.771,能算到10位以上的点从659增至965,原先不足10位的那部分点大多被修正。 拆开程序可以看到它找到了什么:z小于 −1时标准算法不收敛,搜索找出一条经典恒等式,把z换成1/z避开这一段,并自行确定了切换的条件。 △同一批点上,四种做法的平均正确有效数字 案例二:AlgoTune上的代码加速 AlgoTune收录了154个来自numpy、scipy、networkx、cvxpy的真实数值计算任务,交出的代码必须产生相同结果,得分是相对参考实现的加速比。 基准论文自身的结论是:现有模型「倾向于表层优化,而未能发现算法层面的创新」。 按AlgoTune自己的评分规则,ScienceDiscovery用同一套配置跑两个种子,平均加速2.279倍,同样的结果耗时降到原来的四成多。提示词里没有点名任何加速技术,改动由搜索自行找出。 作为对照,官方榜最高的是claude-opus-4.6的1.837,需要先用RL训一个模型的MetaEvolve是2.045;而这里用的是现成模型,没有做任何训练。 △八道题上的加速比,浅色是官方榜各家成绩 案例三:从观测数据反推方程 第三个案例属于科学发现本身:仅给出观测数据,反推背后的解析表达式。历史上不少物理定律正是这样得到的,例如开普勒从第谷的行星位置表中归纳出周期平方与半长轴三次方成正比。 LLM-SRBench的LSR-Transform子集给出的是一张纯数字表:4000行采样点、一列目标值。树上的每个节点是一段完整的Python程序,返回一个解析表达式。 通过树搜索,111道题里有41.4%写出了正确的方程,其中包括玻尔能级反解主量子数、普朗克分布反解温度、相对论多普勒,每题平均只有16.5次模型调用,采用deepseek-v4-flash费用开销不足3元。 △横轴是预测得准不准,纵轴是有没有把方程写出来 成本:模型、调用次数与耗时 三个案例用的都是现成模型,deepseek-v4-flash和glm-5.2,权重未作调整,提示词里也不点名任何技术路线。 同一批对照里,MetaEvolve要先用强化学习专门训一个模型,符号回归里数值最准的LaSR靠的是数百万次遗传变异。 调用次数的差距同样明显:符号回归每题平均16.5次模型调用,表里其他方法在250次上下;积分这一场2小时产生236个版本,最好成绩出现在第119个,ERA的最后一次有效改进出现在第961个节点;2F1的程序来自48次扩展、598秒。 一次搜索几十到两百多个版本,单机耗时几十分钟到两小时,中途无需人工干预。 选择规则:深挖与铺开之间的分配 什么时候沿着一条路径继续改,什么时候转去动别的分支,不由人来判断,而是由同一个打分规则分配。 它不从根往下逐层走,而是把全树所有节点放在一起比较一次,每个节点算一个分数。 名次越靠前越容易被选中,预算因此向效果好的版本集中,这是深挖的一侧;同一个节点每被选中一次,权重衰减一次,一条路径改上几轮之后,选择会转向别处,这是铺开的一侧。 两项合起来,树一边沿当前最好的版本继续改写,一边回到早先被搁置的分支上。 积分这一例就是这样走出来的:最终版本的父节点是第116版,而第116版由第65版改写而来——一个得分仅−2.22、早已被超越的版本。 它被重新选中时,当时的最优版本是第95版(−0.99),已经被连续改写5次都没有更好的结果,这一侧不再有产出,预算随之转向别处。 △橙线是最终版本一路回溯的改写来路,中间一跳落在早已被超越的第65版 如果选择规则只改写当前最优版本,这条路径不会出现。 搜索结束时的树的形状 积分问题上长出的236个版本摊开来看:前6轮全部花在根节点上,长出6条一级分支;随后迅速收敛,229个节点挂在其中一条下面;最宽的一个版本被反复改写了7次,最深的一条路径15层。 △236个版本按父子
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱