AutoGluon 1.6.0 发布深度解析:tabular 基础模型新预设、validation_structure 与时间序列能力全面升级
2026/9/15 21:33:43 网站建设 项目流程

AutoGluon 1.6.0 发布深度解析:tabular 基础模型新预设、validation_structure 与时间序列能力全面升级

【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon

<output_article>

AutoGluon 1.6.0 发布深度解析:tabular 基础模型新预设、validation_structure 与时间序列能力全面升级

AutoGluon 1.6.0 是面向表格(Tabular)与时间序列(Time Series)两大模块的一次重磅升级,核心亮点包括:新增 Nori、TabPFN-3、TabDPT-Turbo、TabPFN-2.6、TabICLv2 五个表格基础模型与 Toto-2 预训练预测模型,引入extreme/noncommercial两个新预设,以及面向非独立同分布(non-IID)数据的validation_structure验证机制。阅读本文后,你将掌握 1.6.0 各模块的新能力清单、新预设的适用场景与底层配置结构、基础模型的取舍方法、非 IID 数据的验证配置方式,以及时间序列模块的新指标与模型导出用法。

版本总览与兼容性

AutoGluon 1.6.0 由 19 位贡献者共同完成(含 184 次提交),本版本支持Python 3.10、3.11、3.12、3.13四个版本。需要注意一条明确的兼容性约束:不支持加载在旧版本 AutoGluon 上训练的模型,使用 1.6.0 时需要用本版本重新训练模型。

在依赖层面,1.6.0 整体刷新了深度学习与数据栈的版本基线,主要升级包括:

依赖版本范围说明
torch>=2.10,<2.14PyTorch 主版本升级
transformers>=5.3,<5.15拥抱 transformers v5
scikit-learn>=1.4.0,<1.10.0
ray>=2.55.0,<2.57分布式调度
lightgbm>=4.0,<4.8
xgboost>=2.0,<3.4同时支持 xgboost v3.3
tabpfn>=8.0,<8.3表格基础模型库
tabicl>=2.0,<2.2
numpy>=1.25.0,<2.6.0
onnx / skl2onnx>=1.21.0,<1.23.0/>=1.20.0,<1.21.0部署链路
pyarrow>=23.0.1,<25.0.0
Pillow>=10.0.1,<13
nltk>=3.10,<3.11
typing-extensions>=4.14.0,<5

此外,仓库构建体系切换为PEP 621 + uv workspace的完整 monorepo 结构(各子包如common/core/tabular/timeseries/multimodal/均采用pyproject.toml声明元数据),同时通过延迟导入 networkx、requests、tqdm 使import TabularPredictor提速约 25%。

Tabular 新预设:extreme 与 noncommercial

1.6.0 的最大亮点是发布了两个新的 tabular 预设:extreme(别名eqextreme_v160)与noncommercial(别名noncommercial_v160)。

  • extreme预设:官方推荐的 GPU 环境预设。相对 AutoGluon 1.5 的extreme(4 小时),训练快约 27 倍、推理快约 4 倍,同时保持 67% 的胜率;相对best(4 小时)训练快约 65 倍,胜率 84%。预设内的所有模型均可免费商用。
  • noncommercial预设:在extreme基础上叠加 TabPFN-3,在 TabArena 上取得新 SOTA。它比 TabFM 训练时间少四分之三、推理快 20 倍、基础模型参数量少 10 倍。TabPFN-3 对研究与内部实验免费,商用需向 Prior Labs 购买许可。

官方基准:TabArena-Lite 51/51 任务

发布说明给出了 TabArena-Lite(51/51 任务)上对比公开排行榜的成绩表:

methodelorankimprovability (%)train sinfer s
AutoGluon 1.6noncommercial18216.25.81597.0
TabFM (default)17917.05.1613138.4
AutoGluon 1.6extreme17458.56.81376.2
AutoGluon 1.5extreme(4h)163812.97.9375827.4
TabPFN-3 (default)163213.29.1262.4
AutoGluon 1.4best(4h)151620.012.1886933.8
RealMLP (tuned + ensemble)148022.513.03198233.8

从源码看两个预设的构成

在 presets_configs.py 中,extreme_quality预设定义如下:

extreme_quality={ "hyperparameters": "commercial_2026_08_05", "num_bag_folds": 8, "num_bag_sets": 1, "num_stack_levels": 0, "dynamic_stacking": False, "time_limit": 3600, "callbacks": [["EarlyStoppingCountCallback", {"patience": [[400, 1], [401, 2], [2000, 2], None]}]], "aux_kwargs": {"child_hyperparameters": {"ensemble_size": 40}}, },

要点解读:

  • num_bag_folds=8num_bag_sets=1num_stack_levels=0dynamic_stacking=False:采用 8 折 bagging 集成,不做多层 stacking,兼顾精度与训练效率;
  • time_limit=3600:默认 1 小时训练预算,可自行调大;
  • EarlyStoppingCountCallback按训练行数区间设定早停耐心值(如 400 行内耐心 1、401–2000 行耐心 2),保证小数据集上也能及时收敛;
  • 内置注释明确提醒:该预设会使用预训练表格基础模型,使 predictor 产物体积至少增加 100 MB,且强烈建议使用 GPU(理想 40GB+ 显存)

noncommercial预设与extreme几乎一致,仅将超参数组合替换为noncommercial_2026_08_05(含 TabPFN-3),并把 401–2000 行区间的早停耐心从 2 提高到 3,以让更长的基础模型前缀在小数据上可达。

两个预设指向的超参数组合分别定义在:

  • zeroshot_portfolio_commercial_2026_08_05.py(7 个配置,无 TabPFN):
    • NORI(nori-30m,ag.max_rows=10000,优先级 -1)
    • TABICLv2(ag.max_rows=100000,优先级 -2)
    • TABDPT-TURBOag.max_rows=100000,优先级 -3)
    • 两个GBM变体:其中第一个带name_prefix="Prep"ag.model_specific_feature_generator_kwargs(即 TabPrep LightGBM,优先级 -4),第二个为_r8ag.min_rows=50000,优先级 -5)
    • CATag.min_rows=50000,优先级 -6)
    • REALMLP_r9,含 act=mish、hidden_width=256、n_ens=8 等调参结果,优先级 -7)
  • zeroshot_portfolio_noncommercial_2026_08_05.py(8 个配置):在商用组合基础上前置加入TABPFN-3(优先级 -1),其余配置优先级顺延。

组合内使用ag_argspriority字段编码拟合顺序,与预设的早停回调配合,在小数据集上按优先级截断模型数量。

使用方式

from autogluon.tabular import TabularPredictor # GPU 环境推荐,全模型可商用 predictor = TabularPredictor(label="target").fit( train_data, presets="extreme" ) # 追求极致精度(研究/内部实验,商用 TabPFN-3 需许可) predictor = TabularPredictor(label="target").fit( train_data, presets="noncommercial" )

新增表格基础模型一览

1.6.0 的 Tabular 模块新增了 5 个基础模型,在源码中均有对应实现目录(见 tabular/src/autogluon/tabular/models):

模型源码位置定位与要点
Norimodels/nori由 Synthefy 提出的轻量基础模型,预设中使用nori-30m权重
TabPFN-3models/tabpfnv2/tabpfn3_model.pyPrior Labs 的前沿基础模型,仅用于noncommercial预设;已移除特征数量上限
TabDPT-Turbomodels/tabdptTabDPT 的加速变体,默认顺序拟合折(sequential fold fitting),保留缺失值并放宽类别数上限
TabPFN-2.6models/tabpfnv2/tabpfnv2_6_model.pyTabPFN 系列 2.6 版本,移除特征上限;旧 TabPFNv2 代码已删除
TabICLv2models/tabicl上下文学习(ICL)路线的基础模型 v2,使用固定 checkpoint,新增 batch 分层并下调行数上限

与此相关的其他模型变化包括:移除 fasttext 模型、TabPFNv2 支持分位数(quantile)问题类型、Mitra 支持从本地 checkpoint 路径加载。

从发布说明与源码可以推断,这些基础模型与 TabPrep LightGBM、CatBoost、RealMLP 一起构成了新预设的模型池,覆盖了从"基于上下文学习的 transformer"(TabPFN/TabICL)、"轻量蒸馏模型"(Nori/TabDPT-Turbo)到"经典树模型与 MLP"的多样化组合。

validation_structure:面向 non-IID 数据的验证方案

1.6.0 为TabularPredictor.fit()新增validation_structure参数(PR #5756、#5796),专门解决非独立同分布(non-IID)数据的验证问题:当数据存在分组结构(如同一客户/会话的多条记录)或时间结构时,默认的随机划分会引入数据泄漏,导致验证结果虚高。

其核心类为ValidationStructure(见 validation_structure.py),支持声明式字段:

字段默认值作用
group_onNone标识分组的列(如客户 ID、会话 ID),同组行不允许同时跨越训练与验证划分
time_onNone时间列(datetime 或数值),验证集被切成连续时间块,非 bagging 的 holdout 取最新一块
stratify_onNone分层列(可以是标签而非特征);分类任务与group_on搭配时默认取标签
size_validation_on_groupsFalse是否按组数而非行数选择自动验证方法;对"68 组、4672 行"这类按组计数更合理的任务有用
temporal_forward_onlyFalse时间数据限定为前向链式验证(扩展窗口):第 i 折只训练第 i+1 块之前的数据,避免模型"看到未来";代价是最早的时间块永远只作训练数据,其行没有 OOF 预测(可通过uncovered_rows处理),且需要至少 3 个时间块
splitterNonesklearn 风格交叉验证器(如TimeSeriesSplit(n_splits=5)),用于表达声明字段无法覆盖的方案;与其余字段互斥,且折数取自 splitter 本身

设计要点(从源码 docstring 可见):

  • 先于特征工程解析ValidationStructure.from_input()在特征变换改变相关列之前,于原始清洗后的数据框上解析,由 learner 解析 bagging 的custom_splits、trainer 解析非 bagging 的 holdout;
  • 约束规则group_ontime_on不能同时设置;splitter必须是带split(X, y)方法的交叉验证器(防止把字符串列名误传成 splitter);
  • 与旧groups参数的关系groups(TabularPredictor 初始化参数)是validation_structure={"group_on": ...}的弃用写法,两者不能同时指定;groups会从特征中移除分组列,而validation_structure会保留其命名的列。

使用示例:

from autogluon.tabular import TabularPredictor # 分组结构:同一 session_id 的行不允许跨划分 predictor = TabularPredictor(label="target").fit( train_data, validation_structure={"group_on": "session_id"}, ) # 时间结构:按时间列前向链式验证,杜绝未来数据泄漏 predictor = TabularPredictor(label="target").fit( train_data, validation_structure={"time_on": "timestamp", "temporal_forward_only": True}, )

TabPrep 特征工程:模型级特征生成

配合新预设,1.6.0 内置了 TabPrep 论文(arxiv 2606.02384)中的特征生成器,并支持按模型而非全局声明预处理流水线,通过ag.model_specific_feature_generator_kwargs实现。

从商用组合源码可见其流水线结构(组成为 GroupByFeatureGenerator → RandomSubsetFeatureCompressionGenerator → ArithmeticFeatureGenerator → 嵌套的 CategoricalInteractionFeatureGenerator 与 OOFTargetEncodingFeatureGenerator,最后经 SpearmanFeatureSelector 选出最多 2000 个特征),并可通过passthrough_types控制原始特征类型透传(组合中排除了 category 与 object 类型)。

这也解释了新预设中 TabPrep LightGBM 的命名:它带name_prefix="Prep",仅对该模型应用 TabPrep 特征工程。相关实现位于 models/tabprep,修复了"特征生成器运行两次"以及 LightGBM 特征名冲突等细节问题。

Tabular API 变更与弃用提示

1.6.0 引入了一批面向模型定制与资源管理的 API 调整,其中与升级相关的关键点:

  • 新增core_kwargsaux_kwargsfit 参数(PR #5646),配合AuxiliaryParams类型化 schema 使用;
  • 弃用警告:模型paramsparams_aux构造后变为不可变,1.7 版本起将直接抛错;
  • 新增min_features/min_cells/max_cells约束参数,约束未满足时以 skip 而非报错的形式上报;
  • 新增_supported_problem_types_default_auxiliary_params_extra等类属性,声明模型支持的问题类型、辅助参数覆盖与集成资源默认值,并在verify_model中校验;
  • 特征重要性计算内存占用降低约 25 倍;GPU 内存估算贯通(含基础模型校准后的 CPU/GPU 内存估计),并行 bagging 折的预算分配会纳入 GPU 显存;
  • [实验性]fit_strategy='parallel'的 GPU 原型支持(由AG_PARALLEL_GPU环境变量控制);
  • 自动选择的验证方法以"size curves"形式表达,可覆盖auto_stack并增益动态 stacking。

其他值得注意的修复包括:修复 TabPFN 包装器丢失缺失类别值、TabDPT 保留缺失值并放开类别上限、xgboost v3.3 下enable_categorical的共享类别空间、LightGBM 特征名冲突、全 NaN 分类列上的 GroupByFeatureGenerator IndexError 等。测试方面新增了 test_augment_rare_classes.py 与 test_pandas_utils.py。

TimeSeries 新特性:Toto-2、新指标与独立模型导出

时间序列模块是 1.6.0 的另一条主线,亮点如下。

Toto-2 预训练预测模型

新增 Toto-2 预训练预测模型,实现位于 timeseries/src/autogluon/timeseries/models/toto2(含model.pydataloader.py_internal/)。新预设基于它实现了相对 AutoGluon v1.5 约 65% 的胜率。

新增预测指标

1.6.0 新增四类指标,定义见 timeseries/metrics/point.py:

指标含义公式要点
MAEB带偏差惩罚的 MAEMAE + 平均预测偏差的绝对值(MAEB = MAE + \|mean(f - y)\|
WAPEB带偏差惩罚的 WAPEWAPE 的偏差惩罚变体
BIAS预测偏差检查直接量化系统性高估/低估
MQL平均分位数损失用于概率预测评估

这些指标已注册到 metrics/init.py 的可用指标映射(如MAEBWAPEBmean_absolute_error_with_bias等别名),可通过eval_metric="MAEB"直接选用。同时,时间序列的eval_metric格式与 tabular 对齐。

export_model:不依赖 AutoGluon 的独立 checkpoint

新增TimeSeriesPredictor.export_model方法,可将训练好的模型导出为独立 checkpoint,加载时无需 AutoGluon,便于轻量部署。实现位于 timeseries/learner.py:

predictor.export_model(path="model_checkpoint", model="Toto2")

其他变更

  • [实验性] 新增TimeSeriesPredictor.update(),用于在新鲜数据上重新进行集成选择(PR #5803);
  • 弃用TimeSeriesPredictor中的预测缓存默认关闭并标记弃用,将在未来版本移除;
  • 使用 Chronos-2 新预处理 API 进行微调,并尊重用户为 Chronos 指定的设备(device);
  • 修复 Chronos2 协变量单元测试(适配 chronos-forecasting 2.3.1),静默 Chronos/TFT 的加载日志噪音。

工程与生态改进

除功能外,1.6.0 还包含大量质量改进:

  • 移除不受支持的 "lite" 模式;修复远程文件系统上产物目录创建的冲突;移除 DataFrame 尺寸估算中的pickle.dumps以缓解内存峰值;
  • 修复get_bool_true_val在 category dtype 上的失败、特征重要性逻辑中的 NaN 比较、p 值计算与批大小优化、贪婪集成选择改用np.isclose浮点比较等;
  • Multimodal 模块补充了 hf_model_list.yaml 缺失的图像骨干网络,更新语义分割脚本并修复相关测试;
  • CI 与工具链同步升级(ruff pre-commit 自动更新等)。

升级建议与总结

如果你正从 1.5 或更早版本升级,请注意:

  1. 必须重新训练模型:1.6.0 不支持加载旧版本训练的模型;
  2. Python 版本:确认环境位于 3.10–3.13;
  3. 依赖刷新:torch、transformers、ray、numpy 等核心依赖的版本区间均已上移,升级前核对环境;
  4. API 兼容性:模型params/params_aux构造后不可变(1.7 起强制)、groups参数建议迁移到validation_structure、时间序列预测缓存弃用,均需在升级时逐步适配。

总体而言,AutoGluon 1.6.0 通过extreme/noncommercial预设把表格基础模型(Nori、TabPFN-3、TabDPT-Turbo、TabPFN-2.6、TabICLv2)与 TabPrep 特征工程整合为开箱即用的高性能方案,同时以validation_structure补上了非 IID 数据的验证短板,并在时间序列侧交付了 Toto-2、新指标与独立部署能力,是值得认真对待的一个大版本。 </output_article>

【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询