跳转至

科学发现AI系统工程实现详解

最后更新: 2026-04-17 | 9个系统的模型架构/训练/评估


1. AI Feynman (Science Advances 2020)

算法4步流程

Step 1 MLP拟合: 6层FC [128,128,128,64,64,64], Softplus激活, Adam lr=0.005, weight_decay=1e-2, 100 epochs, batch=2048

Step 2 对称性检测:

  • 可分性: f_rms⁻¹·|f(x₁,x₂)-f(x₁,c₂)·f(c₁,x₂)/f(c₁,c₂)| < 10×验证误差

  • 平移对称: f(x₁+a,...) ≈ f(x₁,...)

  • 维度分析: 5基本量纲(M,L,T,θ,Q), 矩阵 Mp=b 零空间

  • 阈值: ε_sym = 7×NN验证误差

Step 3 递归分解: 检测到对称性→拆成低维子问题

Step 4 暴力符号搜索: 逆波兰表达式编码, 三级字母表逐步扩展, RMSE<1e-5终止

评估

  • 100/100 Feynman方程 (vs Eureqa 71)

  • 正确标准: 代数化简后 f'-f=0

  • 计算: 7秒~7032秒/方程, 最大2小时

  • 开源: github.com/SJ001/AI-Feynman


2. LLM-SR (ICLR 2025 Oral)

LLM-SR 架构总览 (Shojaee et al., ICLR 2025):

算法

10岛屿并行进化, ~2500次迭代:

  1. 随机选岛屿

  2. Boltzmann采样k=2个方程(偏好高分+短)

  3. LLM生成b=4个方程骨架(τ=0.8)

  4. scipy.BFGS优化参数(30秒超时)

  5. 适应度=-MSE, 改善则入库

Prompt模板

  • 问题描述+变量名/单位+约束

  • 历史成功方程作为few-shot

  • LLM: GPT-3.5-turbo (主) / Mixtral-8x7B (开源)

关键参数

  • 岛屿m=10, 采样k=2, 生成b=4

  • 优化器: scipy BFGS, 超时30秒

  • 总迭代~2500次 (vs 传统SR 200万+)

性能 (自定义OOD基准)

  • Oscillator OOD NMSE: 0.0005 vs PySR 0.0016

  • E.coli OOD: 0.0264 vs PySR 1.0141

  • 开源: github.com/deep-symbolic-mathematics/LLM-SR

注: 论文回避Nguyen-12基准(LLM可能记忆答案)


3. FunSearch (Nature 2024)

架构

程序数据库(m个岛屿) → 采样k=2个高分程序 → LLM(Codey/PaLM家族)生成新函数 → 沙箱执行 → 评估器验证 → 高分入库

  • 每4小时替换最差m/2岛屿(克隆最优)

  • 总~10⁶次LLM采样

  • 评估器: 纯数学验证(多项式时间, 100%可靠)

帽集发现

  • 搜索的是"构造优先级函数"(打分策略), 非集合元素

  • n=8: 发现大小512 (历史记录496)

  • 可形式化验证: 输出是数学对象, 独立验证器检查

开源

  • github.com/google-deepmind/funsearch (不含LLM和分布式)

4. Plan2Explore (NeurIPS 2020)

架构: RSSM + K个并行预测头

标准Dreamer RSSM + K个MLP预测头(参数独立, 结构相同)

内在奖励 = K个预测头的方差:

r_intrinsic = Var_{k=1..K}[ẑ^k_{t+1}]

= (1/K) Σ_k ||ẑ^k - mean(ẑ)||²

大方差→高不确定性→高内在奖励→优先探索

实验协议

  • 零奖励探索: 1×10⁶步 (仅内在奖励)

  • 零样本适应: 直接测试外在奖励

  • 少样本适应: 5-7.5×10⁵步微调

DMControl性能

  • Cheetah Run: 784.45 (vs Dreamer~750, ICM 495, 随机0.78)

  • Hopper Hop: 432.58 (vs Dreamer 336.57)

  • 样本效率比Dreamer提升~2.5×

开源

  • github.com/ramanans1/plan2explore

5. SciNet (PRL 2020)

架构: β-VAE

Encoder: 2层MLP [100,100], ELU激活 → μ,σ → z~N(μ,σ²)

Decoder: 镜像对称 [100,100]

训练: L = -E[log p(x|z)] + β·KL(q||p), β=0.001~0.1分阶段

潜在维度选择

  • 不手动设置, 扫描实验确定

  • RMSE vs 维度曲线, 在"最小充分维度"出现折角(elbow)

  • 行星: 2维折角 (地球+火星各1自由度)

"发现日心说"验证

  • 2个潜在激活值是日心角度的线性组合

  • 网络输入地心角度, 输出的潜在表示与日心角度对齐

  • 排除偶然: 网络主动发现了更简洁的坐标系

  • RMSE <0.4%

各系统潜在维度

  • 阻尼单摆: 理论2→发现2, RMSE<2%

  • 粒子碰撞: 理论1→发现1, RMSE<4%

  • 太阳系: 理论2→发现2, RMSE<0.4%

  • 双量子比特: 理论6→发现6

开源

  • github.com/eth-nn-physics/nn_physical_concepts

6. DreamCoder (PLDI 2021)

Wake-Sleep库学习

初始库 L₀ = 基础原语 (car, cdr, cons, Y-combinator, +, -, *, /)

WAKE: 束搜索(k=5)枚举程序, 按P[ρ|x,L]排序

SLEEP抽象: 从解出程序中提取可复用子组件加入库L (版本空间代数+e-graph, ~10¹⁴潜在重构→多项式时间)

SLEEP做梦: 训练识别网络, 50%重放+50%幻想数据

8次循环后: 学会93%的60条物理定律

库发现示例

  • 向量内积: λv₁ λv₂. fold(zip(v₁,v₂), 0, λa λp. a + fst(p)*snd(p))

  • 逆平方律: λr. 1/(r*r) (覆盖牛顿引力+库仑电场)

开源

  • github.com/ellisk42/ec

7. Coscientist (Nature 2023)

架构: GPT-4 + 机器人

GPT-4 Planner → WebSearch + 文档搜索 + 代码执行 + 硬件控制

硬件: Opentrons OT-2液体处理机器人 + Emerald Cloud Lab远程实验室

合成任务

  • 阿司匹林: 正确规划路线(水杨酸+乙酸酐酯化), 路线规划级

  • 铃木/园头宫浦偶联(Pd催化): 实际机器人执行成功

安全问题!

  • GPT-4曾推断出神经毒剂(沙林)合成路线

  • 安全约束仅prompt级别(软约束, 可绕过)

  • 代码因安全原因仅部分公开


8. ARC-AGI 解决方案

TTT-LoRA 方法总览 (Akyürek et al., 2024):

TTT 详细架构 — 测试时对预训练模型做 LoRA 微调:

MindsAI TTT (55.5%, 获$500K)

  • 基础模型: T5系列(encoder-decoder)

  • 在每道题的demonstration pairs上微调

开源TTT复现 (Akyürek 2024)

  • 模型: Llama-3 8B

  • LoRA: rank=128, alpha=16, 应用于Q/V/MLP/输出

  • TTT: lr=5e-5~1e-4, 2 epochs, batch=1-2

  • 数据增强: 旋转(0°/90°/180°/270°)+翻转+颜色置换(30%概率)

  • 推理: 多变换投票+层次集成

o3 (87.5% → ARC-AGI-2 仅4%)

  • 自然语言程序搜索(非传统DSL)

  • 类AlphaZero的MCTS推测

  • 高算力172×: 每题数千万token/数千美元

为什么ARC-AGI-2重置到<5%?

  • 抗暴力搜索: AGI-1约49%可穷举, AGI-2消除

  • 多规则交互: 需同时应用互相依赖的规则

  • 上下文符号: 每题定义新语义, 无法预训练记忆

  • 多步依赖: 步骤N输出决定步骤N+1


综合对比表

  • AI Feynman: 物理启发+枚举, 符号方程, 开源✓, 可复现✓

  • LLM-SR: LLM+进化, 科学方程骨架, 开源✓, 可复现✓(需API)

  • FunSearch: LLM+进化, 数学构造函数, 部分开源, 部分可复现

  • Plan2Explore: 世界模型+集成, 内在激励, 开源✓, 可复现✓

  • SciNet: VAE+信息瓶颈, 物理潜变量, 开源✓, 可复现✓

  • DreamCoder: 程序合成+库学习, λ抽象, 开源✓, 可复现✓

  • Coscientist: LLM+机器人API, 化学合成, 部分(安全限制), 否

  • ARC TTT: 测试时微调, 抽象推理, 部分, 是(Akyürek复现)

参考


核心数学公式

AI Feynman: 符号回归算法

核心思路:通过数据驱动发现物理公式的解析表达式。

多项式拟合(Step 1)

目标:\(\min_{\mathbf{c}} \sum_{i} \left( y_i - \sum_{\alpha} c_\alpha \prod_j x_{ij}^{\alpha_j} \right)^2\)

其中 α 遍历所有次数 ≤ d 的单项式指标。多项式度 d=4,变量数 n 时复杂度 O(n⁴)。

对称性检测(Step 2)

平移对称:\(f(x_1+\delta, x_2+\delta) \approx f(x_1, x_2) \; \Rightarrow \; f = g(x_1 - x_2)\)

缩放对称:\(f(\lambda x_1, \lambda x_2) \approx \lambda^k f(x_1, x_2) \; \Rightarrow \; f = x_1^k \cdot h(x_2/x_1)\)

通过数值检验 ε-近似对称性,将 n 变量问题降为 (n-1) 变量。

神经网络分解(Step 3, AI Feynman 2)

可加性:\(f(x) \approx g(x_{S_1}) + h(x_{S_2}), \quad S_1 \cap S_2 = \emptyset\)

可乘性:\(f(x) \approx g(x_{S_1}) \times h(x_{S_2})\)

组合性:\(f(x) \approx g(h_1(x_{S_1}), h_2(x_{S_2}))\)

训练 MLP 拟合 f,检查 Jacobian 矩阵 ∂f/∂x 的秩是否 < n(可分解性的充要条件)。

Jacobian 秩检验:\(\text{rank}\left(\frac{\partial f}{\partial \mathbf{x}}\right) < n \; \Rightarrow \; \text{可分解}\)

LLM-SR: LLM 引导的符号回归

BFGS 常数优化

LLM 生成骨架表达式 f(x; c₁, c₂, ...),BFGS 优化常数:

\(\min_{c_1, c_2, \ldots} \sum_{i=1}^{N} \left( y_i - f(x_i; c_1, c_2, \ldots) \right)^2\)

评估指标:\(R^2 = 1 - \frac{\sum_i (y_i - \hat{y}_i)^2}{\sum_i (y_i - \bar{y})^2}\)

岛屿进化模型

适应度:\(\text{fitness}(f) = R^2(f) - \lambda \cdot \text{complexity}(f)\)

λ 控制简洁性偏好。每 T=20 轮岛间迁移最优个体,保持多样性。

提示构建:\(\text{prompt} = \text{task\_desc} + \text{top-}k\text{ from island} + \text{new hypothesis request}\)

FunSearch: 进化式程序搜索

评估函数(帽集问题)

在 F₃ⁿ 上找最大帽集(无三点共线子集):

\(\max_{S \subseteq \mathbb{F}_3^n} |S| \quad \text{s.t.} \quad \forall a,b,c \in S: a+b+c \neq \mathbf{0}\)

已知下界:\(|S| \geq 2 \cdot 3^{n/3} \quad (\text{Edel, 2004})\)

FunSearch发现:\(|S| = 512 \text{ for } n=8 \quad (\text{超越 Edel 下界})\)

程序数据库更新

岛 i 采样概率:\(P(\text{island}_i) \propto \text{softmax}\left(\frac{\text{score}_i}{T}\right)\)

T = 温度参数。每个岛维护最优 k=2 程序,Codey LLM 采样 temperature=1.0。

Plan2Explore: 好奇心驱动探索

RSSM 世界模型

确定性路径:\(h_t = f_\theta(h_{t-1}, s_{t-1}, a_{t-1})\)

随机状态后验:\(s_t \sim q_\theta(s_t | h_t, o_t)\)

随机状态先验:\(\hat{s}_t \sim p_\theta(s_t | h_t)\)

集成分歧奖励

K=5 个独立预测头,分歧 = 预测方差:

\(r_{\text{explore}}(s_t, a_t) = \text{Var}_{k=1}^{K}\left[\hat{s}_{t+1}^{(k)}\right] = \frac{1}{K}\sum_{k=1}^{K} \|\hat{s}_{t+1}^{(k)} - \bar{s}_{t+1}\|^2\)

高分歧 → 世界模型不确定 → 值得探索。Zero-shot 迁移时替换为任务奖励。

MPPI 规划

\(a_{1:H}^* = \arg\max_{a_{1:H}} \mathbb{E}_{s_{1:H} \sim p_\theta}\left[\sum_{t=1}^{H} r(s_t, a_t)\right]\)

规划 horizon H=12,采样 1000 候选序列,选奖励加权平均。

SciNet: β-VAE 物理坐标发现

β-VAE 目标

\(\mathcal{L} = -\mathbb{E}_{q(z|x)}\left[\log p(x|z)\right] + \beta \cdot D_{\text{KL}}\left(q(z|x) \| p(z)\right)\)

编码器:\(q(z|x) = \mathcal{N}(\mu_\phi(x), \sigma_\phi^2(x))\)

解码器:\(p(x|z) = \mathcal{N}(f_\psi(z), \sigma^2 I)\)

β 退火策略

β 从 0.001 渐增到 0.1,分阶段训练:

\(\beta(t) = \min\left(\beta_{\max}, \; \beta_0 + \frac{\beta_{\max} - \beta_0}{T_{\text{anneal}}} \cdot t\right)\)

低 β → 先学好重构;高 β → 压缩潜空间到最少维度。太阳系:z_dim=4 → 2 个活跃维度(日心经纬度)。

日心坐标涌现验证

互信息:\(I(z_i; \theta_{\text{helio}}) \gg I(z_i; \theta_{\text{geo}})\)

潜变量 z₁, z₂ 与日心经纬度的相关系数 > 0.98,与地心坐标低相关。

DreamCoder: 贝叶斯程序库学习

联合后验

\(P(L, \{\rho_j\} | \{x_j\}) \propto P(L) \prod_j P(\rho_j | L) \cdot P(x_j | \rho_j)\)

库先验:\(P(L) \propto 2^{-|L|_{\text{description\_length}}}\)

程序先验:\(P(\rho | L) \propto 2^{-|\rho|_L}\)

|ρ|_L = 在库 L 下的描述长度。好的库让程序更短 → P(ρ|L) 更高。

Wake-Sleep 迭代

Wake:\(\rho_j^* = \arg\max_{\rho} P(x_j | \rho) \cdot P(\rho | L)\)

Abstraction:\(L^{\prime} = \arg\max_L \sum_j \log P(\rho_j^* | L) + \log P(L)\)

Sleep (梦):\(\text{sample } \rho \sim P(\rho|L^{\prime}), \; x = \text{exec}(\rho) \; \Rightarrow \; \text{train recognition model}\)

Abstraction 阶段用 anti-unification 从已解程序中提取共享子结构加入库。

Coscientist: LLM+机器人实验

Coscientist 是系统集成,核心不在数学公式,而在工具链编排。关键量化指标:

合成成功率:\(\text{Yield} = \frac{m_{\text{product}}}{m_{\text{theoretical}}} \times 100\%\)

Suzuki 反应:\(\text{Yield}_{\text{best}} = 80\% \;(\text{GPT-4优化后, vs 初始} \sim 30\%)\)

搜索空间:\(|\mathcal{A}| = (\text{温度}) \times (\text{浓度}) \times (\text{催化剂}) \times (\text{时间}) \approx 10^4\)

ARC-AGI: 测试时训练 (TTT)

TTT-LoRA 目标

在推理时对预训练模型做 LoRA 微调:

\(\mathcal{L}_{\text{TTT}} = -\sum_{(x_i, y_i) \in \text{demos}} \log P_{\theta + \Delta\theta}(y_i | x_i)\)

LoRA 更新:\(\Delta\theta = B \cdot A, \quad B \in \mathbb{R}^{d \times r}, A \in \mathbb{R}^{r \times d}, \; r \ll d\)

数据增强:\(\{(x, y)\}_{\text{aug}} = \text{AffineTransforms}(\text{demos}) \quad (\text{旋转+翻转+颜色置换})\)

MindsAI 方法

集成投票:\(y^* = \text{majority\_vote}\left(\{f_{\theta_k}(x_{\text{test}})\}_{k=1}^{K}\right)\)

K=32 个不同数据增强下微调的模型投票。像素级多数投票确保鲁棒性。

ARC-AGI-2 难度升级

AGI-1 → AGI-2:\(\text{score}_{\text{o3}} : 87.5\% \rightarrow 4\%\)

关键变化:任务需要多步组合推理,单步模式匹配失效。


上级 · 00.2 世界模型 = 内在科学家?从物理理解到规律发现与工具制造