AutoGluon 1.4.0 深度解析:extreme 预设、五大全新 Tabular 模型与 MLZero 自动化智能体
【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon
AutoGluon 1.4.0 是面向表格(Tabular)与时间序列(TimeSeries)两大模块的一次里程碑式发布:引入全新的extreme预设(TabularPredictor),一次性新增 RealMLP、TabM、TabPFNv2、TabICL、Mitra 五个表格模型家族,并正式发布端到端数据科学智能体 AutoGluon Assistant(MLZero 1.0)。本文基于官方发布说明(docs/whats_new/v1.4.0.md),结合仓库源码逐一拆解各新特性的实现原理、配置细节与迁移要点,帮助读者在理解版本内容的同时掌握实际使用方法。
版本总览
AutoGluon 1.4.0 的核心主题是「把表格机器学习做到极致,把 AutoML 自动化做到零人工」:
- Tabular 模块:推出
extreme预设(别名extreme_quality、eq),官方称其为「AutoGluon 包历史上对预测性能最大的一次单一改进」,并新增 5 个模型家族:RealMLP、TabM、TabPFNv2、TabICL、Mitra。 - TimeSeries 模块:核心数据结构
TimeSeriesDataFrame的大幅性能优化、新模型PerStepTabular、以及DirectTabular/RecursiveTabular的 API 重构。 - AutoGluon Assistant(MLZero 1.0):基于 LLM 的多智能体系统,将 AutoGluon 从「3 行代码」进一步推向「0 行代码」。
该版本共包含 69 个提交、由 18 位贡献者完成(见 v1.4.0 发布说明),支持Python 3.9、3.10、3.11、3.12。需要注意的是:AutoGluon 1.4.0 不再支持加载旧版本训练的模型,升级后需使用 1.4.0 重新训练。
Tabular 核心更新:extreme 预设
3 行代码体验新预设
extreme(全称extreme_quality)是 1.4.0 为 TabularPredictor 引入的全新预设,使用方式与既有预设完全一致:
from autogluon.tabular import TabularPredictor predictor = TabularPredictor(label="class").fit("train.csv", presets="extreme") predictions = predictor.predict("test.csv")底层模型组合:TabArena 元学习组合
extreme预设依赖一个元学习得到的模型组合(portfolio),它是 TabArena 论文中「TabArena ensemble」的改进版本。在当前仓库中,对应配置位于 zeroshot_portfolio_2025.py,文件头部注释明确其适用范围为「≤10000 样本、≤500 特征、且存在 GPU」的小数据场景。该组合包含:
| 模型键 | 说明 | 组合内配置数量 |
|---|---|---|
REALTABPFN-V2 | 表格基础模型(TabPFNv2) | 1 个默认配置 |
GBM | LightGBM 树模型 | 3 个调参副本(_r33/_r21/_r11) |
CAT | CatBoost 树模型 | 5 个调参副本(默认/_r51/_r10/_r24/_r91) |
TABM | TabM 深度模型 | 6 个调参副本 |
TABICL | TabICL 基础模型 | 1 个默认配置 |
XGB | XGBoost 树模型 | 2 个调参副本(_r171/_r40) |
MITRA | Mitra 基础模型(含 50 步微调) | 1 个配置(fine_tune_steps: 50) |
从配置文件中可以看到,每个副本都携带了从 TabArena 基准上学习到的完整超参数(如 GBM 的bagging_fraction、learning_rate、num_leaves,CAT 的depth、l2_leaf_reg、grow_policy,TABM 的arch_type、d_block、d_embedding等),并通过ag_args.priority控制训练先后顺序。这正是官方所称「88% win-rate 对比 1.3 版best_quality(<10000 样本数据集)、TabArena 上整体 Elo 提升 290」的性能来源(数据引自官方发布说明)。
预设配置解析
在 presets_configs.py 中可以看到与 v1.4.0 相关的两条配置:
tabarena预设(hyperparameters: "zeroshot_2025_tabfm"):即 v1.4.0 的extreme核心配置,包含auto_stack、dynamic_stacking: "auto"、num_stack_levels: 0、num_bag_sets: 1、默认time_limit: 3600;extreme_quality_v140(别名extreme_v140、experimental_quality_v140):在tabarena基础上开启_experimental_dynamic_hyperparameters,且不锁定静态组合,由 fit 时动态决定超参。
当前仓库的tabular_presets_alias字典中,extreme、eq均映射到extreme_quality(新版组合),而extreme_v140仍指向extreme_quality_v140,可供需要复现 1.4.0 行为的用户使用。
使用前提与限制
官方文档明确了extreme预设的适用边界,实践中必须注意:
- GPU 强推荐:为获得最佳效果需要 CUDA 兼容 GPU,理想情况 32 GB 以上显存;推理时间可能长于
best,但在 GPU 上依然可接受。 - 样本量阈值:
extreme组合仅用于样本量不超过30000的数据集;更大数据集仍沿用best_quality组合。 - 需要联网下载权重:fit 过程中需要下载 TabPFNv2、TabICL、Mitra 的基础模型权重。离线环境需提前预下载这些权重,否则无法在 fit 时使用。
- 实验性状态:官方声明该预设在本版本中视为实验性功能,未来版本可能在没有警告的情况下变更。
- 训练效率:官方指出
extreme训练 5 分钟即可超过best运行 4 小时的结果(引自官方发布说明)。
TabArena 与新增的五个 Tabular 模型
v1.4.0 同时将 TabArena 基准的研究结论直接落地为产品能力。TabArena 是一个面向 IID 表格数据的在线基准:拥有接受提交的在线排行榜、经过精心筛选的真实数据集(具备预测性、表格型、IID、许可宽松)、覆盖树模型/深度学习/基础模型三类强基线,并在评估上遵循内层 CV、外层 CV、早停等最佳实践。其核心洞察包括:RealMLP 与 TabM 在加权集成下略超提升树但训练+推理更慢;TabPFNv2、TabICL 这类基础模型仅适用于部分数据集但在其上表现极强;「赢家通吃」并不成立——对不同模型类型做加权集成可显著超越当时的 SOTA(AutoGluon 1.3)。这些结论直接催生了extreme预设。
五个新模型在仓库中的实现位置与使用方式如下:
| 模型 | 模型键 | 仓库实现 | 安装方式 | 论文主题 |
|---|---|---|---|---|
| Mitra | "MITRA" | mitra_model.py | pip install autogluon.tabular[all,mitra](autogluon全量安装自带) | 混合合成先验的表格基础模型 |
| TabPFNv2 | "TABPFNV2" | tabpfnv2 目录 | pip install autogluon.tabular[all,tabpfn]或autogluon[tabarena] | 小数据上的表格基础模型 |
| TabICL | "TABICL" | tabicl 目录 | pip install autogluon.tabular[all,tabicl]或autogluon[tabarena] | 大规模数据的上下文学习基础模型 |
| RealMLP | "REALMLP" | realmlp 目录 | pip install autogluon.tabular[all,realmlp]或autogluon[tabarena] | 预调优 MLP 与提升树 |
| TabM | "TABM" | tabm 目录 | pip install autogluon.tabular[all,tabm](autogluon全量安装自带) | 参数高效集成推进表格深度学习 |
若只需使用这批新模型而不跑整个extreme预设,可通过pip install autogluon[tabarena]一键安装全部相关依赖。
Mitra:AutoGluon 团队自研的表格基础模型
Mitra 是五个新模型中唯一由 AutoGluon 团队(AWS AI)原生自研的表格基础模型,从源码(mitra_model.py)可以确认以下关键事实:
- 模型定位:完全在合成数据上预训练,目标是「优化微调性能优于上下文学习性能」;模型注释注明其默认超参在小数据集上超越了 TabArena v0.1 上所有非集成方法。
- 支持任务:
_supported_problem_types = ["binary", "multiclass", "regression"],即分类与回归均可使用。 - 硬件偏好:
gpu_strongly_recommended = True(官方标注 CPU 上上下文推理慢 12–63 倍),default_num_gpus = 1;同时支持 GPU 与 CPU 运行。 - 使用边界:默认
_default_auxiliary_params_extra限制max_rows: 10000、max_features: 500、max_classes: 10,与「擅长小样本」的定位一致。 - 两种模式:支持零样本(zero-shot)与微调(fine-tune),在
extreme组合中即配置为fine_tune: True, fine_tune_steps: 50。 - 开源与授权:权重采用 Apache-2.0 协议完全开源,对关心数据共享与托管的企业更友好。
使用方式同样是三行代码:
from autogluon.tabular import TabularPredictor predictor = TabularPredictor(label="class").fit( train_data, hyperparameters={"MITRA": {}}, )模型移除与组合调整
1.4.0 同时移除/调整了部分旧能力,升级用户需注意:
- TabPFNv1 被移除:因其与 TabPFNv2 不兼容(对应 PR #5191);
- KNN 退出预设:KNN 模型从
best_quality与high_quality预设组合中移除,原因是「通常不会带来整体提升」(对应 PR #5211)。
AutoGluon Assistant(MLZero 1.0):从 3 行代码到 0 行代码
定位与架构
AutoGluon Assistant 1.0 与学术框架MLZero(端到端零人工干预的 AutoML 智能体框架)合而为一,从 v0.1 的纯表格能力扩展为支持图像、文本、表格、音频及混合数据流水线的多模态全流程自动化。其核心是一套基于 LLM 的多智能体架构,涵盖感知(perception)、记忆(语义记忆与情景记忆)、代码生成、执行与迭代调试,可将原始多模态输入直接转化为高质量的 ML/DL 流水线。
官方强调的设计原则包括:
- 零代码:用户仅用自然语言描述任务(如「用自定义标签对猫狗图像分类」),无需任何手动配置或专业知识;
- 站在成熟库之上:MLZero 基于已有高性能 ML 库生成代码而非重新造轮子,保证方案稳健,同时便于接入新库;
- 模块化可扩展:每个智能体与提示词独立设计与实现,由中心化管理者协调,便于后续增改智能体、提示词与工作流;
- 配套 WebUI 与 MCP:v1.0 重新设计了聊天机器人风格的 WebUI,并引入 MCP(Model Control Protocol)集成,可通过标准化协议远程编排 AutoML 流水线。
(文中 MLZero 的性能对比表格与成功率数据均出自官方发布说明引用的 MLZero 论文,v1.4.0 发布说明 中可查看原始对照表。)
安装与使用
AutoGluon Assistant 支持Python 3.8–3.11与 Linux:
pip install uv uv pip install autogluon.assistant>=1.0CLI 方式:
mlzero -i <input_data_dir>WebUI 方式(分别启动前后端,前端默认端口 8509):
mlzero-backend # 启动后端 mlzero-frontend # 启动前端MCP 方式(服务端与客户端):
# server mlzero-backend # 启动后端 bash ./src/autogluon/mcp/server/start_services.sh # 在新终端中启动服务 # client python ./src/autogluon/mcp/client/server.py如何进一步了解
AutoGluon Assistant 的独立仓库维护(autogluon-assistant),本仓库中可结合 tabular-foundational-models 教程 了解表格基础模型(Mitra、TabPFNv2、TabICL)的使用细节。
Tabular 模块的其它改进
除新预设与新模型外,1.4.0 对 Tabular 的使用体验做了多项修补(详见 v1.4.0 发布说明):
- 资源控制:
sequential_localfit 策略开始尊重num_cpus/num_gpus参数;CPU 核数探测全面改用 loky(get_cpu_count)。 - 参数化约束:新增
max_rows、max_features、max_classes、problem_types等支持,便于在 fit 时对数据规模做约束。 - 快捷语法:新增
ag.ens.作为ag_args_ensemble的快捷写法(对应 PR #5143),例如在超参中直接使用ag.ens.ensemble_size: 40这类字典写法。 - 模型修复:修复 CatBoost 在
problem_type="quantile"且len(quantile_levels)==1时的崩溃;修复 CatBoost 回归任务默认loss_function错误;Softclass 中移除fobj。 - 基础模型缓存:新增从 S3 缓存表格基础模型权重到 benchmark 的能力,避免 HuggingFace 限流。
- 蒸馏增强:增强
spunge_augment与munge_augment函数(并对其做加速),服务模型蒸馏场景。
TimeSeries 模块更新
核心数据结构性能大幅提升
官方指出TimeSeriesDataFrame核心方法经重构后,在大数据集(>1000 万行)上端到端predictor.fit()与predict()时间最多可降低 7 倍。实现层面,对应 PR #5159 用基于indptr的高效替代方案替换了groupby,显著降低了各类TimeSeriesDataFrame操作的运行时开销。
新模型:PerStepTabular
PerStepTabular(per_step.py)为预测时域中的每一步单独训练一个表格回归模型。从源码可以看到:
- 每步模型可用的特征包括:滞后特征(lag,基于数据频率)、时间特征(如星期几)、已知协变量(known covariates)、以及每个序列的静态特征(static features)。
- 训练与推理均按核数并行化(源码使用
joblib的Parallel实现),官方称其为开源 Python 包中该模型类型最高效、最准确的实现之一。 - 其超参数包括
trailing_lags(默认[1, 2, ..., 12])、seasonal_lags(按频率自动确定)、date_features、target_scaler(默认"mean_abs")、model_name(默认"CAT")、model_hyperparameters、validation_fraction等。 - 若评估指标需要分位数(
eval_metric.needs_quantile),底层表格模型以"quantile"问题类型训练;否则以"regression"训练,并通过「残差服从零均值正态分布」的假设生成虚拟分位数。 - 实现上复用 mlforecast 做高效预处理,但逐步骤预测策略与 mlforecast 的
max_horizon不同。
DirectTabular / RecursiveTabular API 重构(重要迁移点)
v1.4.0 将DirectTabular与RecursiveTabular的内部实现从「构建整个TabularPredictor」重构为「底层拟合单个autogluon.tabular回归模型」,带来更低的磁盘占用,并使 API 与timeseries模块其它部分保持一致(实现位于 mlforecast.py,model_name通过ag_model_registry.key_to_cls解析为具体的表格模型类)。
相应地,两个超参数被废弃:
| 版本 | API |
|---|---|
| 新 API(≥ v1.4.0) | {"RecursiveTabular": {"model_name": "CAT", "model_hyperparameters": {"iterations": 100}}} |
| 旧 API(≤ v1.3.1) | {"RecursiveTabular": {"tabular_hyperparameters": {"CAT": {"iterations": 100}}}} |
迁移规则(官方明确):
- 在 v1.4.0 中若仍传入
tabular_hyperparameters且只包含单个模型,会记录警告并自动转换为新 API; - 若传入 ≥2 个模型,因无法自动转换会直接报错,需手动改写为新 API;
tabular_fit_kwargs同样被model_hyperparameters取代。
完整对照示例:
# New API: >= v1.4.0 predictor.fit( ..., hyperparameters={ "RecursiveTabular": {"model_name": "CAT", "model_hyperparameters": {"iterations": 100}} } ) # Old API: <= v1.3.1 predictor.fit( ..., hyperparameters={ "RecursiveTabular": {"tabular_hyperparameters": {"CAT": {"iterations": 100}}} } )其它 TimeSeries 变更
lag_transforms支持:RecursiveTabular新增lag_transforms超参数,可对滞后特征做变换。- Chronos:
optimization_strategy超参数(v1.3.0 起已废弃)在 v1.4.0 中被正式移除;同时改进了 Chronos-Bolt 在长期预测(prediction_length > 64)展开时的启发式策略。 gluonts命名空间重组:autogluon.timeseries.models.gluonts命名空间被重新组织。- 训练失败诊断:单个模型训练失败时现在会记录完整堆栈轨迹;修复
refit_full在quantile_levels=[]时集成预测失败的问题。 - Python 3.9 兼容性修复。
Multimodal 与通用改进
- 多语言预设精度修复:多语言(multilingual)预设改用 FP32,以避免 DeBERTa 的 BFloat16 问题(对应 PR #5139)。
- 安全修复:NLTK 依赖约束更新为
<3.10,以解决 CVE-2024-39705。 - CPU 探测:新增 CPU 工具函数,提升 docker、slurm 等受限环境下的 CPU 探测准确性(改用 joblib 替代 loky 的探测方式),并支持 Apple Silicon 的系统信息记录。
- 数据 I/O:默认使用 pyarrow 读写 parquet,移除 fastparquet;新增从 URL 加载 pickle 的支持,并修复
save_str在根路径下保存的问题。 - 依赖版本:numpy 上限更新(允许 2.3.0)、PyTorch 上限更新至 2.8(启用 2.7);优先使用 PyTorch wheel 自带的 CUDA 库而非系统/DLC 的;
pkg_resources.parse_version替换为packaging.version.parse。 - RAPIDS 兼容:修复 LinearModel 使用 RAPIDS cuML 模型时的 AttributeError;
upload_file新增 kwargs 选项。
升级与兼容性建议
- 重新训练:1.4.0 不支持加载旧版本训练的模型,升级后所有模型需重新训练。
- 表格模型安装:使用 Mitra、TabPFNv2、TabICL、RealMLP、TabM 时,按上文表格选择对应 extras;
autogluon[tabarena]可一次装齐。 - TimeSeries 迁移:若代码中使用
tabular_hyperparameters/tabular_fit_kwargs,请改为model_name/model_hyperparameters,避免升级后报错。 - extreme 预设:确认具备 GPU(32 GB+ 显存最佳)与网络(可下载基础模型权重),且数据集样本量不超过 30000,否则该预设不会启用其专属组合。
总结
AutoGluon 1.4.0 通过extreme预设与五大新模型的组合,将表格数据的预测能力带上新的台阶,同时以 MLZero 智能体把 AutoML 的自动化边界从「三行代码」推进到「自然语言描述」;TimeSeries 侧则通过性能重构与新模型、新 API 持续打磨工程体验。对于开发者而言,理解extreme预设的模型组合与硬件前提、掌握新模型的安装方式、及时完成DirectTabular/RecursiveTabular的 API 迁移,是落地本版本价值最直接的三个切入点。
【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考