大家的AI
机器学习AI论文

学习

  • AI论文
  • 理论·数学基础
    • 2026
      • CPAL
        • Kernel von Mises 影响函数公式
  • 模型优化·轻量化
    • PolarQuant:基于极坐标变换的 KV 缓存量化
  • 核心架构·算法
    • 2026
      • CPAL
        • AlphaFormer:使用 Transformer 的端到端阿尔法因子符号回归
  • 预测·表格数据
  • AutoML·ML 流水线
    • 2025
      • ICML
        • AutoML-Agent:面向全流程 AutoML 的多智能体 LLM 框架
      • ICLR
        • SELA: Tree-Search Enhanced LLM Agents for Automated Machine Learning
  • 视觉·多模态
  • NLP·大模型
    • 2026
      • CPAL
        • 大语言模型中的深度诅咒
  • 可信·可解释
  • 数据为中心·特征
  • 边缘·网页·服务
  • 领域应用
🏅我的成就
学习/AI论文/AutoML·ML 流水线/ICLR 2025/SELA: Tree-Search Enhanced LLM Agents for Automated Machine Learning

SELA: Tree-Search Enhanced LLM Agents for Automated Machine Learning

Yizhou Chi, Yizhang Lin, Sirui Hong, Duyi Pan, Yaying Fei, Guanghao Mei, Bangbang Liu, Tianqi Pang, Jacky Kwok, Ceyao Zhang, Bang Liu, Chenglin Wu

ICLR 2025 · arXiv:2410.17238

LLM 智能体常生成多样性不足、难以优化的代码,而传统 AutoML 受固定流水线限制。
MCTS(蒙特卡洛树搜索)把实验/决策展开成树,用模拟 rollout 与验证分数决定下一步尝试哪条分支。UCT-DP则改写用于挑选下一节点的 UCT 分数,使训练等代价大的深层步骤不那么被浅层乱搜挤掉。
SELA 将流水线表示为这样的树,用 MCTS 安排实验顺序,并以 UCT-DP 优先更深的训练阶段。本文从 Insight 到归一化分数逐步拆解公式。
PDF查看 PDF(arXiv)↗

Chapter 1: SELA 与基于树搜索的 AutoML

与上文一致,用平实语句说明:MCTS 在树上用 rollout 与验证分数决定下一步尝试哪条分支;UCT-DP 则改写挑选下一节点时用的 UCT,使训练等代价大的深层步骤较少被浅层搜索挤掉。

什么是蒙特卡洛树搜索(MCTS)?

简要说明: 把接下来要做的实验画成树,反复走下面四步。
- ① 选(选择): 用 UCT 等规则决定下一步去哪个节点。
- ② 加(扩展): 给树挂上还没有的子节点(新的尝试)。
- ③ 跑(rollout): 在这条分支上跑代码或仿真,得到验证分数。
- ④ 传(回传): 把分数往父节点上传,更新访问次数与平均分。
SELA 用这四步加上验证分数,探索 LLM 提出的流水线分支。
UCT 是什么?(把 Upper Confidence Bound 用到树上)在兄弟子节点里选下一步走哪条时用的打分规则。它把平均回报高的分支(利用)和访问还少的分支(探索)放在同一个式子里,用数值比较决定下一个节点。论文里的 UCT-DP 会微调 UCT,使代价更大的深层训练不那么被浅层乱搜挤掉。

四步(一轮)

① 选→② 加→③ 跑→④ 传
根分支 A分支 Brollout验证分数 s

紫色虚线表示本次选中的路径示例;多次重复后各分支会累积分数。

[摘要与引言] 三句摘要 + 问题

三句摘要
- 既有 LLM 智能体: 代码多样性不足,多次尝试也难以收敛到好解。
- 传统 AutoML: 接近 固定流水线/搜索模板(如 Auto-sklearn),数据与任务变化时难以动态重组流水线。
- SELA 要点: 用树表示流水线,用 MCTS 安排实验顺序,用验证分数驱动下一分支。UCT-DP 修改 UCT,使更深、训练成本更高的节点优先于浅层乱搜。
比喻: 赛车里只按工厂保养手册顺序操作,接近传统 AutoML;悬挂、发动机 map、胎压一次全改、只跑一圈就结束,接近单次 LLM 生成。SELA 则像看分段圈速与遥测(验证分数),再决定下一步调什么并比较分支的赛道工程师。

Chapter 2: 背景知识 — 读懂正文所需的五个概念

[背景知识]

- AutoML: 减少人工介入,自动完成预处理、模型、超参数等流程;常见模式是 试错→评估→迭代。
- LLM 智能体: 根据自然语言任务描述与数据摘要 生成并运行代码。在 SELA 中 规划 与 代码/执行 分阶段进行。
- 搜索空间(Search space): 某一数据集/任务上可尝试的 预处理×模型×超参数 组合集合。组合爆炸使得 穷举 几乎不可行。
- MCTS: 在树上结合 rollout 与统计,选择 有潜力的分支;核心是 探索 与 利用 的平衡。
- 探索 vs 利用: 在 同一个公式里 同时调节“多访问少有人走的路”与“沿高回报路径加深”。UCT-DP 额外强调 优先更深的训练阶段。

Chapter 3: 方法 — 带白话注释的公式

[方法] 五个步骤

论文公式保持原样;每一步前附「白话」。
(1) Insight Proposer
白话: LLM 在 每个阶段写下候选想法(预处理、选模型等)。尚未运行代码——只是在 扩大可选分支。
给定任务描述 ppp、数据说明 ddd 与语言模型 MMM,对每个阶段 τ∈T\tau \in Tτ∈T 采样候选。
InsightProposer(p,d,M)→Λ={λiτ∣τ∈T, i=1,…,m}\mathrm{InsightProposer}(p, d, M) \rightarrow \Lambda = \{ \lambda_i^{\tau} \mid \tau \in T,\, i = 1,\ldots,m \}InsightProposer(p,d,M)→Λ={λiτ​∣τ∈T,i=1,…,m}
- 符号含义: ppp = 要解决的问题;ddd = 数据摘要;MMM = LLM;Λ\LambdaΛ = 全部候选;λiτ\lambda_i^{\tau}λiτ​ = 阶段 τ\tauτ 的第 iii 个想法。
- 直观理解: 由任务说明 (ppp) 与数据概要 (ddd) 出发,按阶段列出 待试方案——还没有跑代码或训练任务,只是扩展分支。
(2) 计划与代码
白话: 树选定 一次实验 ccc 后,(1) 写成 分步指令,(2) 在 真实数据上运行代码 并读取 一个验证分数 sss。
对配置 ccc 生成指令 IτI^{\tau}Iτ,在数据 DDD 上运行得代码 στ\sigma^{\tau}στ 与分数 sss。
Eplan(p,d,c,M)→Iτ∈TE_{\mathrm{plan}}(p, d, c, M) \rightarrow I^{\tau \in T}Eplan​(p,d,c,M)→Iτ∈T
Ecode&execute(Iτ∈T,D,M)→(στ∈T,s)E_{\mathrm{code\&execute}}(I^{\tau \in T}, D, M) \rightarrow (\sigma^{\tau \in T}, s)Ecode&execute​(Iτ∈T,D,M)→(στ∈T,s)
- 符号含义: ccc = 选定组合;EplanE_{\mathrm{plan}}Eplan​ = 计划→指令;IτI^{\tau}Iτ = 各阶段任务;Ecode&executeE_{\mathrm{code\&execute}}Ecode&execute​ = 生成代码并运行;DDD = 数据;στ\sigma^{\tau}στ = 代码;sss = 验证分数。
- 直观理解: 上式 = 流水线/实验步骤(计划);下式 = 在数据上执行并得到验证分数 sss。
(3) UCT-DP
白话: 为 下一步试哪个子节点 打分。第一项 ≈ 目前的 平均好坏;第二项 ≈ 给 很少访问路径 的奖励。UCT-DP 调整 未访问 处理,使搜索不会 只在浅层扫一遍,而能进入 发生训练 的深处。
UCTDP(x)=v(x)n(x)+αexploreln⁡nvisits(xparent)n(x)\mathrm{UCTDP}(x) = \frac{v(x)}{n(x)} + \alpha_{\mathrm{explore}} \sqrt{\frac{\ln n_{\mathrm{visits}}(x_{\mathrm{parent}})}{n(x)}}UCTDP(x)=n(x)v(x)​+αexplore​n(x)lnnvisits​(xparent​)​​
n(x)={αunvisitedif nvisits(x)=0nvisits(x)otherwisen(x) = \begin{cases} \alpha_{\mathrm{unvisited}} & \text{if } n_{\mathrm{visits}}(x) = 0 \\ n_{\mathrm{visits}}(x) & \text{otherwise} \end{cases}n(x)={αunvisited​nvisits​(x)​if nvisits​(x)=0otherwise​
- 符号含义: xxx = 当前节点;v(x)v(x)v(x) = 累积回报;nvisitsn_{\mathrm{visits}}nvisits​ = 访问次数;parent = 父节点;α\alphaα 系列 = 探索/未访问调节参数。
- 直观理解: 第一项 = 平均质量;第二项 = 探索推力。UCT-DP 让未访问节点分母 小但非零,使 深而有望 的路径仍具竞争力。
(4) NS
白话: 各数据集 量纲不同。NS 将 原始指标 映射为 越大越好 后再做基准比较。
NS(sraw)={11+log⁡(1+sraw)越小越好(如 RMSE)sraw越大越好(如 F1)\mathrm{NS}(s_{\mathrm{raw}}) = \begin{cases} \dfrac{1}{1 + \log(1 + s_{\mathrm{raw}})} & \text{越小越好(如 RMSE)} \\ s_{\mathrm{raw}} & \text{越大越好(如 F1)} \end{cases}NS(sraw​)=⎩⎨⎧​1+log(1+sraw​)1​sraw​​越小越好(如 RMSE)越大越好(如 F1)​
- sraws_{\mathrm{raw}}sraw​: 模型输出的 原始验证数值。
(5) Rescaled NS
白话: 令 SELA 的 NS = 1;其他方法为 比值。> 1 表示在该设定下该方法的归一化分数优于 SELA。
RescaledNS(f)=NSfNSSELA\mathrm{RescaledNS}(f) = \frac{\mathrm{NS}_f}{\mathrm{NS}_{\mathrm{SELA}}}RescaledNS(f)=NSSELA​NSf​​
一句话: 建 Λ\LambdaΛ → 选 ccc → 跑出 sss → 用 UCT-DP 在树上移动 → 用 NS 比较。

Chapter 4: 玩具数据走读

[玩具模拟]

数字仅作 示意——抓住 流程 即可。
帧 1 — Proposer
白话: 即便只有「二分类 + 有缺失」,LLM 仍会列出 简短 的预处理想法。
ppp=二分类,ddd=表格含缺失 → Λ\LambdaΛ 中有填补、标准化等候选。
帧 2 — MCTS 选择 ccc
白话: 搜索选中 一种组合(如标准化 + 逻辑回归),并沿该 分支 下行。
帧 3 — EplanE_{\mathrm{plan}}Eplan​
白话: 把组合写成 具体流水线顺序。
在 IτI^{\tau}Iτ 中填入 `SimpleImputer` → `StandardScaler` → `LogisticRegression`。
帧 4 — 执行
白话: 运行代码,读取 一个 验证分数—此处假设 F1 =0.72=0.72=0.72。
若验证 F1 sraw=0.72s_{\mathrm{raw}}=0.72sraw​=0.72,且指标为越大越好,则 NS=0.72\mathrm{NS}=0.72NS=0.72。
帧 5 — UCT-DP 更新
白话: 将分数回传,使该节点下次能与 兄弟节点 竞争;借助 未访问 处理,深层节点也不易吃亏。
向 v(x)v(x)v(x) 累加回报并增加访问次数;在兄弟间比较 UCTDP\mathrm{UCTDP}UCTDP。
帧 6 — Rescaled NS
白话: SELA 基准为 1,其他方法除以 SELA。小于 1 在此处表示 SELA 更优。
若 SELA 的 NS 为 0.720.720.72,另一方法为 0.650.650.65,则比 ≈0.90\approx 0.90≈0.90(<1 有利 SELA)。

Chapter 5: 实验

[结果]

在 20 个 ML 数据集(arXiv 摘要)上,SELA 相对各基线报告约 65%–80% 胜率——优势稳定。MCTS 优于随机搜索;增加 rollout 通常 提升 分数——便于规划 API/时间预算。

Chapter 6: 结论与图示说明

[结论]

可落地要点(≤3 条)
1. 无需逐步手选 也能得到较强的 AutoML 基线。
2. 缓存 rollout 降低 API/GPU 成本。
3. 树状日志 便于解释 走了哪条分支。
局限: 向机器人/软件工程等域推广;更大搜索空间需更高样本效率;更强 可解释性 需配套 UI。

[图示] 摘要

- 传统: 线性/一次性流程—反馈弱时难以达到目标质量。
- SELA: 在树上 MCTS + UCT-DP,用 验证分数 更新—下方 左右图 仅为对比示意。

对比一览

左: 固定顺序与单次生成,反馈可能偏弱。右: 用验证分数在树上选分支。下图为示意。

传统:固定流水线·单次生成

一次定全局或只按规则执行,反馈弱、难以收敛。

实验难度轴

数据准备
选模型
训练与验证
卡在这里
一次生成代码
验证分偏低

起点 → 目标质量

散乱尝试

难控制

SELA:树搜索 + UCT-DP

按阶段分支,用验证分数更新平均回报。

Insight 候选 Λ(LLM) · 精细实验 · MCTS rollout 与仿真

起点
较差分支
累计平均
接近目标
验证分数向上反馈

树上收敛

接近目标的分数

SELA 用 MCTS 在树上排列 LLM 想法,UCT-DP 减少浅层浪费。NS 公平对比,缓存与日志帮助成本与可解释性。