论文题目:AutoML-Agent: A Multi-Agent LLM Framework for Full-Pipeline AutoML
作者:韩国科学技术院(KAIST)的 Patara Trirat 等人
发表会议:ICML 2025(机器学习领域顶级会议)
开源代码:https://github.com/deepauto-ai/automl-agent


一、这篇论文想解决什么问题?

做机器学习(ML)项目,哪怕是一个简单的分类或预测任务,通常需要很多步骤:

  1. 找数据:从某个地方把数据集弄到手。

  2. 清洗与预处理:处理缺失值、归一化、编码分类变量等。

  3. 特征工程:构造有用的特征。

  4. 选模型:从几十种候选模型中挑一个合适的。

  5. 调超参数:调整学习率、层数等参数提升效果。

  6. 评估与验证:用测试集看模型效果。

  7. 部署:把模型打包成接口或服务,让别人能调用。

这就是所谓的 “机器学习全流程”。传统方式下,这需要数据科学家或工程师花很多时间手动完成。
自动机器学习(AutoML) 想把这个过程自动化。但现有的 AutoML 工具(比如 Auto-sklearn、H2O)往往只覆盖部分步骤,而且需要反复训练模型,非常耗费算力和时间。

最近有人尝试用大语言模型(LLM,比如 GPT-4) 来自动化部分步骤,例如让 ChatGPT 直接写代码完成数据预处理。但这些方法通常只解决流程中的某一个环节(比如只做特征工程,或只做模型选择),很少有人能把从数据到部署的整个链条串起来。

这篇论文的核心目标是:设计一个基于多个 LLM 智能体(Agent)协作的系统,能够:

  • 覆盖从数据获取到模型部署的完整流程

  • 适用于不同类型的数据(图像、文本、表格、时间序列、图数据);

  • 不需要真的训练模型也能找到好方案,从而节省大量计算资源;

  • 具有较强的可靠性,避免 LLM 经常出现的“幻觉”(胡说八道或生成不能用代码)。


二、整体思路:用一支 AI 团队完成工作

AutoML-Agent 不像传统方法那样只有一个 AI 助手,而是设计了一个多智能体系统,每个智能体负责不同角色,各司其职,由一名“项目经理”统一协调。

2.1 五个智能体(一个团队)

角色

英文名

职责

项目经理

Agent Manager (Amgr)

跟用户对接,理解需求,制定多套备选方案,协调其他智能体,最后验证结果

需求解析师

Prompt Agent (Ap)

将用户的自然语言描述转成结构化的 JSON 数据,方便机器理解

数据专家

Data Agent (Ad)

负责所有跟数据相关的事:找数据集、清洗、分析、特征工程等

模型专家

Model Agent (Am)

负责模型搜索、超参数调优、模型性能预估,并给候选模型排序

开发工程师

Operation Agent (Ao)

把最终确定的方案变成可以直接部署的代码(如 Python 脚本)

项目经理是核心,所有任务都会经过它分配。其他智能体只做自己领域内的事情,相互之间沟通也经由项目经理。

为什么要拆成多个智能体?

  • 减少单个 LLM 需要处理的信息量,降低上下文过长的风险。

  • 专业分工可以提高质量(比如数据专家不需要懂模型细节)。

  • 多个计划可以并行执行,提升效率。

2.2 系统的工作流程图
  1. 用户提出需求(例如:“帮我用 Butterfly 数据集做一个图像分类模型,部署成 API。”)

  2. 项目经理先检查需求是否清晰(需求验证)。如果问题不清楚,它会反问用户补充信息。

  3. 需求解析师把需求转成系统内部 JSON 格式。

  4. 项目经理根据这个 JSON,调用外部搜索(比如搜 arXiv 论文或网页),从最新方法中获得灵感,生成 P 个不同的完整计划(比如计划 A 用 ResNet,计划 B 用 ViT,计划 C 用 EfficientNet)。

  5. 对于每个计划,项目经理把数据部分派给数据专家,模型部分派给模型专家。这两个专家采用 “伪执行”(假装执行)的方式,不实际运行代码,而是让 LLM 根据自己的知识“分析”数据并预测模型性能。

  6. 项目经理收集所有计划的“伪执行”结果,对比并选出最好的一个。

  7. 开发工程师根据获胜计划写出完整可运行的 Python 代码,并进行最终的部署验证。

  8. 系统返回给用户:训练好的模型 + 部署代码(或直接一个 API 端点)。

整个过程中,有三个验证关卡(需求验证、执行验证、实现验证),任何一个环节失败都会触发自动修订,直到成功或向用户求助。


三、关键技术细节

3.1 结构化需求解析 —— 让 LLM “听懂人话”

项目经理不能直接处理自然语言,所以需要一个需求解析师。这个解析师是经过指令调优的大模型:作者构建了一个训练集,里面包含很多“用户自然语言输入 → 结构化 JSON 输出”的样例。

举个例子:
用户说:“我想基于 Vision Transformer 做图像分类,数据集是 CIFAR-10。”
解析后输出:

json

{"user":{"intent":"build","expertise":"medium"},"problem":{"area":"computer vision","downstream_task":"image classification"},"dataset":[{"modality":["image"],"target_variables":["class_label"]}],"model":[{"name":"Vision Transformer","family":"transformers"}]}

这样项目经理就知道:任务类型、数据模态、期望的模型类型等。如果用户没说清楚,项目经理会要求补充。

3.2 检索增强规划(RAP)—— 让 AI 主动查资料

传统方法往往只生成一个执行计划,但可能不是最优的。AutoML-Agent 会在确认需求后,主动去外部知识库搜索

  • 调用 arXiv API,搜索最近发布的与当前任务相关的论文摘要。

  • 调用 网络搜索引擎(例如 Google),查找最新的模型实现或技巧。

然后项目经理根据这些搜索结果,独立生成多套不同的端到端计划(比如 P=3 或 P=5)。这些计划在模型选择、预处理方法、调参策略上可以完全不同。

为什么要这样做?

  • 避免只依赖 LLM 内部过时的知识(大模型的知识可能截止到训练时间)。

  • 发现新方法,提高找到最优方案的概率。

  • 多个计划并行执行,探索更充分。

3.3 “伪执行”—— 不跑代码,省时省力

这是 AutoML-Agent 最聪明的地方之一。
传统 AutoML 在评估一个方案时,需要实际运行代码:加载数据、训练模型、计算指标。这个过程可能非常慢(尤其是大模型)。

AutoML-Agent 的数据专家模型专家被设计成:完全靠 LLM 的内部知识来模拟执行结果

具体怎么做?

  • 数据专家拿到数据集的基本信息(比如 metadata:有几行几列,列名是什么,数值/类别类型,有没有缺失等)。它并不真正读取每个数据点,而是基于这些统计信息和 LLM 对常见数据分布的“常识”,输出一份分析报告:
    “我认为这个数据需要做归一化,因为数值范围很大;性别列需要独热编码;缺失值少于5%,可以用中位数填充。处理后特征数量将变成 128 维。”

  • 模型专家拿到数据专家输出的报告后,根据任务类型(分类/回归)和当前流行模型,输出候选模型列表及预估性能:
    “对于这个图像分类任务,我建议尝试 ResNet-50(预估准确率 92%),Vision Transformer(预估 93%),EfficientNet(预估 91%)。超参数建议:学习率 0.001,batch size 32,训练 50 个 epoch。”

整个过程没有一行代码真正执行,完全是大语言模型在“假装执行”。但实验表明,这种伪执行的排序和真实训练后的排序有很高的相关性(在常见数据集上)。

优点:几乎零计算成本,速度快到秒级,可以同时探索很多个方案。
风险:如果遇到 LLM 从来没见过的奇怪数据分布,预测可能不准。论文通过后面的验证环节来兜底。

3.4 三重验证机制 —— 避免 AI 骗你

LLM 有时候会产生“看起来对但实际错”的输出(幻觉)。AutoML-Agent 设计了三个检查点:

验证阶段

谁负责

检查什么

失败后怎么办

请求验证

 (ReqVer)

项目经理

用户输入是否完整清晰?有没有歧义?

反问用户补充信息

执行验证

 (ExecVer)

项目经理

数据专家和模型专家的“伪执行”结果是否符合逻辑?计划能否走通?

记录失败原因,修改计划重试

实现验证

 (ImpVer)

项目经理

最后生成的代码能不能真正运行?能否部署?

反馈给开发工程师,重新生成代码

有了这三道防线,即使某个环节 LLM 出了错,系统也能自动修订或请求人工帮助,大大提高了成功率

3.5 并行执行 —— 多个计划同时推进

由于每个计划的执行是独立的(不同计划的数据专家、模型专家可以同时工作),而且“伪执行”本身很快,因此 AutoML-Agent 可以同时跑多个计划。项目经理只需要最后汇总结果。

实验里,他们通常设置 P=3 或 P=5,总时间基本就是最慢的那个计划的时间(通常几秒到几十秒),而不是 P 倍。


四、实验设计及结果

为了证明 AutoML-Agent 比现有方法好,作者设计了比较全面的实验。

4.1 任务与数据集

选了 7 个不同的下游任务,涵盖 5 种数据模态,总共 14 个数据集。例如:

模态

任务举例

数据集举例

图像

图像分类

Butterfly Image, Shopee-IET

文本

文本分类、文本蕴含

Ecommerce Text, SNLI

表格数据

分类/回归/聚类

Banana Quality, Crab Age

时间序列

预测

几个公开时序数据集

图数据

节点分类

Cora, Citeseer

4.2 对比的方法(基线)

他们对比了 6 种现有的基于 LLM 的自动化框架,包括 AutoML-GPT、HuggingGPT、AgentHPO、Data Interpreter 等。为了公平,每个方法都在相同的数据集上运行。

4.3 评估指标

他们设计了一个综合分数(CS),兼顾代码成功率与模型性能:

CS = 0.5 × 成功率 + 0.5 × 归一化性能
归一化性能 = 1 / (1 + 损失值)
损失值越小,归一化性能越接近 1;损失越大越接近 0。

为什么要用归一化性能?因为不同任务的评价指标不一样(比如分类用准确率,回归用均方误差),归一化后可以统一比较。

4.4 主要结果

在 14 个数据集上,AutoML-Agent 的综合分数平均比第二名高出约 15%~20%(具体数值可查原文表 2,这里简述趋势):

  • 成功率:在约束感知(用户指定硬件/时间限制)和约束无关两种设定下,均显著高于其他方法。尤其对于复杂任务(如图数据),其他方法失败率较高,而 AutoML-Agent 成功率保持在 80% 以上。

  • 模型性能:即使与需要真训练的 AutoML 方法相比,AutoML-Agent 通过伪执行找到的方案性能也很接近(差异小于 5%),但速度快了 100 倍以上。

  • 多模态适应性:在所有 5 种模态上,AutoML-Agent 都表现稳定,证明它是任务无关的通用框架。

4.5 消融实验(验证每个组件是否必要)

他们做了一些“去掉某个组件”的实验:

  • 去掉检索增强规划(RAP):综合分数下降约 10%,说明上网查资料确实能带来更好的方案。

  • 去掉伪执行,改成真训练:效果稍微好一点点(提升约 3%),但时间开销是原来的 50 倍以上。说明伪执行是一种很好的效率代价平衡。

  • 去掉三重验证:代码生成的成功率大幅下降到 40% 左右,可见验证机制对防止 LLM 幻觉非常重要。


五、优点总结(论文声称的主要贡献)

  1. 第一个真正覆盖全流程(数据→部署)的多智能体 AutoML 系统

  2. 第一次把“检索增强”引入 AutoML 规划阶段,让 AI 可以学习最新知识。

  3. “伪执行”训练自由搜索,大幅降低计算成本,使得普通电脑也能运行全流程 AutoML。

  4. 三重验证 + 自动修订,保证高成功率和代码可用性。

  5. 任务无关,能处理图像、文本、表格、时序、图数据。

  6. 开源,方便复现和二次开发。


六、存在的不足与可以改进的地方

  1. 伪执行的局限性
    如果任务的数据分布非常新颖(例如一个从未出现在 LLM 训练数据中的特殊传感器数据),LLM 很难凭空预测最佳预处理和模型性能。虽然最终有实现验证兜底,但可能会多几次失败重试。

  2. 检索开销
    上网搜论文和网页需要几秒到十几秒,对于简单任务来说,这个开销可能比直接跑一个小模型还大。或许可以设计一个“快速模式”,跳过检索。

  3. 部署部分还不够深入
    论文里的部署验证主要是检查代码能否运行并返回推理结果。真实生产环境的部署(如 Docker 镜像、负载均衡、模型版本管理)尚未覆盖。

  4. 大规模任务的处理能力
    当数据集非常大(比如几十 GB)或模型非常大(比如 LLaMA-70B)时,项目经理的上下文窗口和智能体间的通信可能成为瓶颈。目前未测试极限情况。

  5. 对用户专业度的依赖
    虽然系统会反问,但如果用户自己也不清楚任务细节(比如不知道要预测哪一列),仍然可能卡住。论文没有深入讨论完全零输入的情况。


七、个人感受与应用启发

  • “伪执行”这个思路很有启发:我们不一定每一步都要真实计算,可以让大模型充当“代理模型”快速筛选候选方案,最后只验证少数几个最优方案。这种做法可以推广到很多需要搜索的场景(如神经网络架构搜索、自动 prompt 优化)。

  • 多智能体协作 + 外部知识检索:未来任何复杂的自动化任务(不仅仅是机器学习)或许都可以用类似架构:分解角色、并行探索、检索知识、验证闭环。

  • 可靠性设计的价值:很多人用 LLM 一次生成代码就完事了,但 AutoML-Agent 通过三阶段验证把成功率提得很高。这对于实际落地非常关键。

  • 如果想复现或使用:可以直接去 GitHub 拉代码,按 README 跑一下示例。他们提供了若干现成的数据集和任务配置,可以很快体验“从一句话到部署代码”的感觉。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐