← 返回资料站  /  AI for AI
论文 算法发现 背景

LLM-SR: Scientific Equation Discovery via Programming with Large Language Models

LLM-SR:把方程写成程序,用 LLM 先验加进化搜索做科学方程发现
一句话把方程骨架表示为 Python 程序,让 LLM 基于科学先验反复提出假设、用 BFGS/Adam 拟合参数、进化式维护经验缓冲区,在 4 个自建科学基准上 NMSE 大幅优于 PySR/uDSR 等符号回归基线(尤其 OOD),ICLR 2025 Oral。

这是什么

符号回归(symbolic regression)传统上只从数据出发、在表达式树空间里搜索,既忽略了科学家实际依赖的领域先验,表示能力也受限。LLM-SR 的核心想法是:把候选方程写成带可调参数的 Python 函数(equation skeleton as program),让 LLM 用它的科学知识和代码生成能力来提出假设,再用数值优化器把参数拟到数据上。方法论与 DeepMind 的 FunSearch 同源(作者也明确致谢并基于其代码),等于把 FunSearch 的'LLM + 进化程序搜索'范式从组合数学搬到了方程发现。

作者特意没有用烂大街的 Feynman 方程做评测——他们用 perplexity 和发现曲线验证了 LLM 对 Feynman 方程大概率是背过的——而是自建了 4 个改造过的问题:两个非线性阻尼振子、E. coli 生长率(4 变量)、材料应力-应变,并同时在 in-domain 和 out-of-domain 测试集上报 NMSE。作者:Virginia Tech / CMU,2024-04 挂出,ICLR 2025 Oral,引用 119。

LLM-SR 整体框架:(a) LLM 根据问题规范 + 历史方程程序示例,生成带 params[i] 占位符的方程骨架程序(附物理注释);(b) 用 BFGS/Adam 在数据上优化参数并打分;(c) FunSearch 式 islands 经验缓冲区管理好的程序,回填 prompt 形成进化循环。
LLM-SR 整体框架:(a) LLM 根据问题规范 + 历史方程程序示例,生成带 params[i] 占位符的方程骨架程序(附物理注释);(b) 用 BFGS/Adam 在数据上优化参数并打分;(c) FunSearch 式 islands 经验缓冲区管理好的程序,回填 prompt 形成进化循环。

机制与做法

三段循环:假设生成 → 数据评估 → 经验管理

(a) 假设生成:prompt 里给问题的自然语言描述、评估函数代码、以及从经验缓冲区取出的 k 个历史方程程序作为 in-context 示例,LLM(GPT-3.5 或 Mixtral-8x7B,均冻结)每轮采样 b 个新的方程骨架函数,函数体里用 params[i] 占位数值系数,并附带物理意义注释(如 'driving force'、'nonlinear damping')。

(b) 数据驱动评估:对每个骨架用 numpy+scipy BFGS(或 torch+Adam,作者观察 numpy+BFGS 略好)优化参数,按拟合误差打分。(c) 经验管理:沿用 FunSearch 的 islands 模型维护多个子种群的 experience buffer,按分数采样好的程序回填 prompt,形成进化循环。

主结果

对比 GPlearn、NeSymReS、E2E、DSR、uDSR、PySR 六个基线:LLM-SR (GPT-3.5) 在 Oscillation 2 上 ID NMSE 2.12e-7 / OOD 3.81e-5,而最好的基线 PySR 是 0.0002 / 0.0098;E. coli 生长问题上 LLM-SR (Mixtral) OOD NMSE 0.0037,所有传统基线 OOD NMSE 均 >1(严重过拟合观测区间)。差距在 OOD 设定下最明显,作者归因于 LLM 先验让方程结构更接近真实物理形式,而非纯拟合。

关键结果

实证核查

扎实代码、数据、specs 齐全且与论文声称一致,方法本身被后续大量工作(含作者自建的 LLM-SRBench)沿用为标准基线;但'防背诵'的自建基准只有 4 个问题,且论文表格的 NMSE 评估脚本没随仓库发布。
论文声称 'Code and data are available',方法在 4 个自建科学基准上评测。
GitHub deep-symbolic-mathematics/LLM-SR(MIT,272 stars)结构完整:llmsr/ 主流程、llm_engine/ 本地模型服务、specs/ 各问题 prompt 规范、data/ 下恰好是论文的 4 个问题(oscillator1、oscillator2、bactgrow、stressstrain),README 的运行方式(本地 Mixtral / OpenAI API 两条路)与论文实验设置对得上。
Table 1 用 Normalized MSE 报告主结果,LLM-SR 比基线低若干个数量级。
repo issue #7(open)指出:仓库里搜索阶段的打分用的是未归一化 MSE(specs/specification_*_numpy.txt 第 25 行),而论文评测用的 NMSE 归一化方式(除以 var 还是 mean(y²))在仓库里找不到对应代码,作者未答复。复现 Table 1 的具体数字需要自己猜评估细节;不影响方法有效性,但影响逐数字复现。
自建基准'carefully designed to prevent LLM recitation',以证明性能来自推理而非记忆。
作者自己在后续 LLM-SRBench(ICML 2025 Oral, arXiv:2504.10415)中承认需要更严格的防记忆评测:在 239 个问题的新基准上,包括 LLM-SR 在内的所有 LLM 方程发现方法最佳也只有 31.5% 的 symbolic accuracy(openreview.net/forum?id=SyQPiZJVWY)。本文 4 个问题上的亮眼数字应理解为'在小规模精心设计的问题上可行',离通用方程发现还很远。

与我们方向的关系

对课题组的价值不在符号回归本身,而在范式:LLM-SR 几乎是 FunSearch 配方的直接移植——假设写成程序、可执行评估器打分、islands 经验缓冲区做进化——证明了这套'LLM 先验 + 进化搜索假设空间'的框架可以换域复用(组合数学 → 科学方程),而且用 GPT-3.5/Mixtral 这种量级的模型就够。做 LLM 驱动的算法/结构发现时,它的 spec 文件设计(问题描述 + 评估代码 + 历史程序示例三段式 prompt)和'参数占位 params[i] + 外部数值优化器'的解耦是可以直接借鉴的工程模板。

另一个可借鉴的点是评测方法论:先用 perplexity / 发现曲线检验目标是否已被 LLM 记忆,再决定基准能不能用——这对任何'LLM 发现了 X'类工作都是必要的卫生检查。后续的 LLM-SRBench 也说明,这条线的瓶颈已从'能不能跑通'转向'如何证明不是背的'。

阅读笔记

搜索阶段打分和论文评测指标不是一套代码(issue #7);若要复现注意 spec 里是裸 MSE。基线对比中 SR 方法迭代数与 LLM-SR 的采样预算不同量纲,横向比较搜索效率时需小心。

材料清单

TeX 源码
已存档:Raw/llm-sr/source/
代码仓库github.com/deep-symbolic-mathematics/LLM-SR
272★ · 最近推送 2025-07-31
后续基准arxiv.org/abs/2504.10415
LLM-SRBench(ICML 2025 Oral):同组作者的 239 题防记忆基准,LLM-SR 在其上最佳 symbolic accuracy 仅约 31%
基准数据huggingface.co/datasets/nnheui/llm-srbench
LLM-SRBench 数据集(本文 4 个问题的数据在 repo 的 data/ 目录)

同类条目