TusoAI: Agentic Optimization for Scientific Methods¶
会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=0M6BfcAVMW
代码: https://github.com/Alistair-Turcan/TusoAI
领域: Agent / 科学发现 / 自动机器学习
关键词: 科学方法优化, LLM Agent, 知识树, 贝叶斯采样, 单细胞分析
一句话总结¶
TusoAI 是一个为「科研计算方法开发」量身定制的 agent:给定任务描述、数据和一个评测函数 \(h(\cdot)\),它把领域知识组织成知识树,再用贝叶斯更新的分层规划 + 诊断式细粒度优化,在候选解池上迭代自我改进,最终在 11 个科学任务上稳定超过专家方法、MLE agent 和通用科学 agent,还在两个遗传学难题上改进了 SOTA 方法并发现了被旧方法遗漏的新生物学。
研究背景与动机¶
领域现状:科学发现常常卡在「为分析实验数据而手工开发计算工具」这一步——科学家要反复读文献、用经验数据检验建模假设、再把洞见落成高效代码,一个鲁棒方法往往要多个专家组花数年。LLM 在文献综述、用数据推理、生成领域代码上都展现了能力,于是出现了两类系统:一类是「科学分析 agent」(如 Biomni、Stella、ChemCrow),擅长用已有工具拼装并执行分析流水线;另一类是「机器学习工程(MLE)agent」(如 AIDE、DS-Agent、MLE-STAR),能为通用 ML 任务设计新算法。
现有痛点:这两类系统都不适合科研「方法开发」。科学分析 agent 不创造新算法,只是调用现成工具;MLE agent 虽然能造新算法,却假设知识是结构化的、已有 ML 模型可复用、搜索空间固定——这些在科研里统统不成立。科研里的领域知识高度非结构化(散落在论文里),现成模型常常不存在,优化目标和搜索空间随研究持续演化。经典 AutoML/NAS 更是被预定义搜索空间锁死,无法吸收领域先验。
核心矛盾:方法开发既要探索多样性(避免在局部最优里反复打转、只会换皮微调),又要保证解的质量(不能盲目乱试浪费算力预算);同时还要把非结构化的领域知识真正用进每一步优化里,而不是只靠 LLM 的参数先验。
本文目标:做一个能自主开发并优化科研计算方法的 agent,把结构化领域知识、系统化的假设探索、迭代式诊断都纳入同一个优化循环。
切入角度:模仿科学家做方法开发的循环——读文献建立先验、按类别尝试不同优化策略、诊断方法的中间输出再改进。关键观察是:如果把领域知识显式组织成「类别 + 类内指令」的树,就能既保证多样性(按类别采样)又保证相关性(指令来自论文),还能用贝叶斯更新把「哪类策略此刻更有用」的信念学出来。
核心 idea:用「知识树 + 贝叶斯分层规划 + 诊断式细粒度优化」三件套,把领域知识驱动的迭代优化做进一个 agent,让它只改大型代码库里的一个函数就能持续打磨出新方法。
方法详解¶
整体框架¶
TusoAI 把问题形式化为:在通用解空间 \(S_{full}\)(如所有 Python 脚本)上,找到最大化评测函数的解 \(s^* = \arg\max_{s} h(s)\),其中 \(h(\cdot)\) 可以是 AUC、多指标均值或领域专用度量(如推断疾病基因相对专家集的富集度)。输入是任务描述 \(T\)、数据集 \(D\)、评测器 \(h(\cdot)\),以及可选的初始解 \(s_{init}\)(warm start,如某个 SOTA 方法);它只操作一个任意大代码库中的单个函数,因此能在带大量脚手架的科研方法上灵活改造。
整体跑三大步:Step 1 收集领域知识——从 Semantic Scholar 按引用量取最多 10 篇相关论文,对每篇生成并迭代精炼一份 15 点技术摘要 \(P=\{P_i\}\),让后续指令反映领域最佳实践而非纯 LLM 先验;Step 2 构建知识树——用「先草拟再精炼(draft-then-refine)」造出两层结构:优化策略类别 \(\mathcal{C}\)(每类带效用概率 \(\pi_c\))和类内指令 \(I_c\),外加一个预定义的诊断类别 \(I_{diag}\);Step 3 迭代优化——先初始化候选解池 \(S\),然后在时间预算(默认 8 小时)内反复挑出多样的 top 解,对每个解以 80% 概率做指令式优化、20% 概率做诊断式优化,并用贝叶斯更新调整类别概率、用反馈列表抑制重复。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入:任务 T + 数据 D<br/>评测器 h(·) + 可选 s_init"] --> B["收集领域知识<br/>10 篇论文→15 点摘要 P"]
B --> C["知识树<br/>类别 π_c + 类内指令 I_c + 诊断类 I_diag"]
C --> D["候选初始化<br/>5 个方案→编译成解池 S"]
D --> E["分层规划 + 贝叶斯更新<br/>聚类选多样 top 解 + 采样类别 c"]
E -->|"80% 指令式"| F["细粒度生成<br/>指令优化 / 诊断优化"]
E -->|"20% 诊断式"| F
F -->|"h(s')>h(s) 则 π_c←1.1π_c"| E
F --> G["输出最优解 s*"]
关键设计¶
1. 知识树:把非结构化领域知识组织成「类别 + 类内指令」的两层结构
科研领域知识散落在论文里、形式各异,LLM 直接「优化这个模型」式的泛指令既无方向也容易重复。TusoAI 用知识树解决这点。第一层是优化策略类别 \(\mathcal{C}\),可以是通用的(如「正则化」「模型架构」)也可以是领域专属的(如「单细胞噪声建模」「遗传特征交互」);每个类别带一个效用概率 \(\pi_c\),初始化时让流水线靠前的类别(如「特征预处理」)权重高于靠后的(如「超参调优」)。第二层是类内指令 \(I_c\):先由 agent \(A_{instr}\) 从任务描述草拟 10 条,再对每篇论文摘要 \(P_i\) 追加 10 条精炼。每个类别还各挂一个反馈列表 \(F_c\)(初始为空),优化过程中不断累积「这次改动做了什么、效果如何」的总结。此外预定义一个诊断类别 \(I_{diag}\),专门给出「记录训练曲线 / 检查分布 / 验证假设」这类用于诊断的指令。这样一来,知识既结构化又可采样,多样性(跨类别)和相关性(指令源自真实论文)兼得。
2. 分层规划 + 贝叶斯更新:在保证质量的前提下主动探索多样解
agent 优化最容易陷入「在局部最优附近反复换皮微调」。TusoAI 的对策有两层。先是多样 top 解选取:把当前解池按「代码-文本相似度」聚类,在每个簇内挑出性能落在该簇最优 0.1% 以内的最短解——既压低过拟合和随机性,又保留簇间多样性、鼓励简洁代码。再是贝叶斯式类别采样:每轮按类别效用分布 \(c \sim \mathrm{Cat}(\{\pi_c\}_{c\in\mathcal{C}})\) 抽一个类别,若这次优化让 \(h(s') > h(s)\),就做一次贝叶斯更新 \(\pi_c \leftarrow 1.1\,\pi_c\) 再归一化,表示「此刻这个类别里含有用指令」的信念上升。这把「哪类策略当前更值得试」从静态先验变成随经验自适应的分布。规划层还随时间逐步收缩并行宽度(每 2 轮 \(N_{top}\leftarrow\max(1, N_{top}-1)\)),从广撒网逐渐聚焦到精修。消融显示去掉贝叶斯采样后计算效率掉得最多(优化耗时从 2.3h 升到 3.0h)。
3. 细粒度生成:把指令式优化与诊断式优化拧成一个改进循环
理解复杂数据规律很难,单靠「按指令改代码」不够,还需要像科学家那样诊断方法的中间输出再改进。TusoAI 对每个 top 解二选一:指令式优化(80%)——先采样类别 \(c\),从 \(I_c\) 里均匀抽 3 条候选指令、选最有希望的一条,结合该类别最近 5 条反馈把 \(s\) 优化成 \(s'\);改完由反馈 agent \(A_{feedback}\) 总结这次变化(如「在前 50 个主成分上建 kNN 而非全基因,性能提升 15%」)并写回 \(F_c\)。诊断式优化(20%)——从 \(I_{diag}\) 抽 3 条诊断指令选一条,先运行 \(s\) 收集诊断日志(训练曲线、分布检查等),再据此产出改进解 \(s'\),反馈写回 \(F_{diag}\)。每次实现尝试限时 10 分钟、至多 2 次修 bug,这种时间正则既防止少数低效实现拖垮整轮预算,也逼最终方法保持可扩展。两条路径配合知识树的指令与反馈,让 agent 既能「按已知策略改」也能「看数据反应再改」。
一个完整示例¶
以单细胞去噪(Denoise)任务为例看优化轨迹:TusoAI 从零起步,依次命中 5 个关键改动并逐步把性能推到最高——(1) 引入非负矩阵分解(NMF),(2) 对 dropout 率建模,(3) 对 Poisson 噪声建模,(4) 加入迭代精炼,(5) 加上稀疏性平衡步骤。值得注意的是,过程中它生成了大量反而降低性能的方法才收敛到高性能解——正是这种「广探索 + 反馈记忆」让它高效搜遍解空间。最终 TusoAI 设计出的 NMF 方案(建模 dropout + Poisson + 迭代精炼)与 OpenProblems 基准里唯一另一个 NMF 方法 ALRA 截然不同,是全新方法而非现成包的调用。
实验关键数据¶
主实验¶
评测覆盖 11 个科学任务:6 个单细胞分析任务(去噪 Denoise、标签投影 Label、批次整合 Batch、空间可变基因 SVG、空间解卷积 Decomp、降维可视化 Visual)+ 5 个科学深度学习任务(全向视觉 Spherical、假肢控制 NinaPro、心电诊断 ECG、卫星监测 Satellite、基因预测 DeepSEA)。每个任务跑 8 小时,验证集调优、测试集评测。
| 单细胞任务 | Avg | Avg Rank | 说明 |
|---|---|---|---|
| Expert(专家方法) | 0.57 | 3.7 | 顶级专家设计方法 |
| AIDE*(MLE agent) | 0.52 | 3.0 | 第二好的平均排名 |
| Biomni* | 0.49 | 3.7 | 科学分析 agent |
| ChatGPT-Agent* | 0.57 | 3.5 | GPT-5 后端 |
| TusoAI* | 0.66 | 1.2 | 从零生成代码,全面领先 |
在 5 个科学深度学习任务上,TusoAI 平均分 0.70、平均排名 2.8(第二好为 4.0),与专家方法(0.69)和 DARTS(0.71)相当或更优,且所有生成方法都计算高效(单细胞 <3 分钟、深度学习 <8 分钟)。
消融实验¶
| 配置 | Avg | Avg Rank | 说明 |
|---|---|---|---|
| TusoAI (default) | 0.66 | 2.0 | 完整模型 |
| No categories | 0.57 | 3.2 | 去掉类别结构、指令全塞一类 |
| No Bayesian | 0.55 | 3.4 | 关闭贝叶斯采样、类别均匀采 |
| No diagnosis | 0.64 | 2.0 | 关闭诊断式优化 |
| No knowledge | 0.46 | 3.8 | 丢掉领域知识、只用泛指令 |
关键发现¶
- 领域知识贡献最大:去掉领域知识(No knowledge)性能掉得最狠(0.66→0.46),代码多样性也从 0.48 跌到 0.33——说明把论文知识结构化进优化是核心增益来源。
- 贝叶斯更新主要管效率:去掉它平均排名掉最多、优化耗时从 2.3h 升到 3.0h,证明自适应类别采样让搜索更快收敛。
- 多样性是关键中介:TusoAI 全程代码多样性显著高于 AIDE(AIDE 在 Batch 任务反复提 UMAP 的小变体,TusoAI 则广探索多种降维/变换/缩放),消融各版本性能下降都伴随多样性下降。
- 小模型够用且便宜:GPT-4o-mini、Claude-3.5-Haiku 等低延迟模型配上好系统设计,性能不输甚至超过 GPT-5/Claude-4-Sonnet——后者倾向「过度构建」(GPT-5 每个方法 300+ 行)反而难精炼;去噪任务跑 8 小时,GPT-4o-mini 只花 $0.24,GPT-5 要 $22.3。
- 遗传学实战出新生物学:优化 scDRS 后因果模拟功效提升 >40%、真实数据多发现 21% 真关联(17 vs 14),24 小时内试了 167 个变体、花 $0.37(原作者 3 个月才试 <10 版);优化 pgBoost 后金标准链接富集提升 13.8%(eQTL)/7.2%(ABC),24 小时试 511 个特征组合、$0.41(原作者 1.5 个月试 5 个特征),并找到 7 条被旧方法遗漏的变体-基因新链接。
亮点与洞察¶
- 只改一个函数:TusoAI 只操作大型代码库里的单个函数,这让它能直接嫁接到 scDRS、pgBoost 这种「太大、改不动整脚本」的真实科研代码上,是它能落地遗传学难题的关键工程前提——也是相对「要重写整个 Python 脚本」的 agent 的硬区别。
- 知识树把多样性与相关性解耦:类别保证「往不同方向探」,类内指令(源自论文)保证「每个方向都靠谱」,贝叶斯更新再把「哪个方向当前有用」学出来——三者把探索-利用的张力拆得很干净,是可迁移到任何 agent 搜索任务的设计范式。
- 诊断式优化模拟「看中间输出再改」:80/20 的指令/诊断混合,把「按文献改」和「按数据反应改」两种科学家直觉都编码进循环,比纯指令驱动更能理解复杂数据规律。
- 「反而变差的中间解」是特性不是 bug:去噪轨迹里大量降性能尝试恰恰是广探索的代价,配合反馈记忆最终带来更优收敛——提醒我们评估 agent 不应只看单调上升曲线。
局限与展望¶
- 依赖好的评测函数 \(h(\cdot)\):整个优化以 \(h\) 为唯一信号,若评测指标本身有偏或不可靠(科研中常见),优化可能朝错误方向走,论文未深入讨论评测噪声的影响。
- 8 小时 / 时间正则的预算假设:限时 10 分钟一次实现、8 小时总预算是经验设定,对需要长训练的大模型任务是否适用、如何调这些预算缺少系统分析。
- 横向比较的可比性 caveat:不同任务难度差异大,单细胞平均排名 1.2 与深度学习 2.8 不可直接比;深度学习任务上 TusoAI(0.70/2.8)相对专家(0.69)和 DARTS(0.71)的领先并不明显。
- 与并发工作无法直接比:Aygün et al. (2025) 解类似问题但代码未开源,无法直接对照;TusoAI 强调「不依赖现成模型、能只改大方法的一小部分」作为差异点。
- 改进思路:把评测函数的不确定性纳入贝叶斯更新(用置信区间而非点估计驱动 \(\pi_c\))、让知识树随优化在线扩充新类别,可能进一步提升鲁棒性与探索深度。
相关工作与启发¶
- vs AIDE(MLE agent):AIDE 把 ML 工程当代码优化 + 树搜索,强调增量小改以保证可追溯,结果偏向局部调参;TusoAI 用知识树 + 贝叶斯采样主动维持多样性,多样性与最终性能都显著更高,且能处理 AIDE 不适用的非标准科学任务。
- vs Biomni / ChatGPT-Agent(科学分析 agent):它们擅长用现成工具拼装执行分析流水线,但不创造新计算方法;TusoAI 专攻方法开发,能从零设计出与现有包不同的新算法。
- vs MLE-STAR / DS-Agent:这些从 Kaggle/网络检索候选模型再精修,依赖「现成 ML 模型可用 + 搜索空间固定」;科研里这两个前提常不成立,TusoAI 用结构化领域知识 + 演化搜索空间补上这块。
- vs 经典 AutoML / NAS(auto-sklearn、DARTS、AMBER):受限于预定义搜索空间、无法吸收非结构化领域先验;LLM agent 能把「有原则的优化目标」和「启发式搜索」结合,更契合不断演化的科研场景。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 知识树 + 贝叶斯分层规划 + 诊断式细粒度优化三件套针对科研方法开发量身设计,「只改一个函数」让它能嫁接真实大代码库
- 实验充分度: ⭐⭐⭐⭐⭐ 11 个任务 + 4 项消融 + 5 个 LLM 后端 + 2 个遗传学实战案例,并发现被旧方法遗漏的新生物学
- 写作质量: ⭐⭐⭐⭐ 方法形式化清晰、算法伪代码完整,但大量细节压在附录,正文部分结论的可比性需对照附录
- 价值: ⭐⭐⭐⭐⭐ 真正改进了 scDRS/pgBoost 两个 SOTA 遗传学方法并产出可解释新发现,展示了 agent 加速科研方法开发的实际潜力