拓冰建站拓冰建站
首页 / 资讯中心 / 正文

AutoGluon 1.0 版本深度解读:Dynamic Stacking 与 Zeroshot-HPO 驱动的性能跃升

AutoGluon 1.0 版本深度解读Dynamic Stacking 与 Zeroshot-HPO 驱动的性能跃升【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluonAutoGluon 1.0 是该项目迈向正式里程碑的关键版本发布说明docs/whats_new/v1.0.0.md详尽记录了它在 Tabular、AutoMM多模态、TimeSeries时间序列三大模块上的核心增强、完整弃用 API 清单与配套论文。本文以该发布说明为主体结合当前仓库源码预设配置、Zeroshot 组合、问题类型常量、指标实现等帮助读者快速掌握 1.0 的技术变化、关键参数语义与升级迁移路径可用于模型选型、代码迁移与版本对比研究。版本总览四年开发一次全面换代AutoGluon 1.0 于 2023 年底发布官方将其定义为用 3 行代码实现快速且准确的机器学习愿景的集中体现。该版本包含 223 个提交来自 17 位贡献者并支持 Python 3.8、3.9、3.10 与 3.11。需要特别注意的是加载旧版本 AutoGluon 训练出的模型是不受支持的升级后必须使用 1.0 重新训练模型。这一兼容性边界在发布说明中被明确标注是迁移前必须评估的关键约束。依赖升级一览1.0 对核心依赖做了整体升级发布说明中列出的版本范围如下依赖版本范围影响面torch2.0,2.2深度学习后端全面升到 2.x 时代numpy1.21,1.29数值计算基础pandas2.0,2.2DataFrame 处理2.x 大版本scikit-learn1.3,1.5传统机器学习模型与工具scipy1.5.4,1.13科学计算LightGBM3.3,4.2GBDT 模型XGBoost1.6,2.1GBDT 模型Pillow10.0.1,11图像处理此外通用模块还新增了系统信息日志工具system info logging utility并在 AutoMM 侧将 lightning 升级到 2.0、torchmetrics 升级到 1.0为多模态训练的稳定性打下基础。Tabular两项核心创新带来预测质量跃升发布说明将 1.0 称为自 2020 年 3 月原始 AutoGluon 论文以来表格数据领域最大的一次 SOTA 跃迁其核心归功于两项特性Dynamic Stacking动态堆叠与Zeroshot-HPO 学习到的超参数组合portfolio。二者叠加使得 1.0 相较 0.8 具备 75% 的胜率win-rate同时推理更快、磁盘占用更小、稳定性更高。Dynamic Stacking缓解堆叠过拟合传统多层堆叠multi-layer stacking中高层模型使用的训练数据是由低层模型的预测拼接而成的这天然引入标签泄漏式的过拟合——即低层模型对自身训练样本的预测过于乐观导致高层模型学到的权重失真。Dynamic Stacking 通过在训练阶段动态判断哪些样本可以被安全地用于堆叠从而缓解这一问题。从源码看dynamic_stacking是TabularPredictor.fit的一个显式参数签名位于 predictor.py类型为bool | str默认值为False。其行为关键点对应_sanitize_stack_args逻辑见 predictor.py当传入字符串auto时AutoGluon 会根据use_bag_holdout等验证方案自动决定是否启用若use_bag_holdout被禁用则启用 dynamic stacking否则跳过当dynamic_stackingTrue但num_stack_levels 1时会自动强制降级为False因为不存在可优化的堆叠层启用后_dynamic_stacking方法见 predictor.py系统会动态调整num_stack_levels与剩余time_limit若时间不足还会提示设置dynamic_stackingFalseDynamic Stacking 仅在首次fit时检测堆叠过拟合fit_extra场景不支持见 predictor.py。dynamic_stacking还支持通过ds_*前缀的 keyword arguments 做细粒度控制见 predictor.py。Zeroshot-HPO 组合用 1 万次实验换来的超参数先验第二个创新来自 TabRepo 集成仿真库与 Zeroshot-HPO 技术在大量数据集上预先进行零样本超参数搜索将表现优异的模型配置整理成一个组合portfolio作为新数据集的默认超参数起点。仓库中的实现位于 tabular/src/autogluon/tabular/configs/zeroshot/zeroshot_portfolio_2023.py其文件头注释明确写道Portfolio learned from zeroshot-HPO using TabRepo. Contains the default AutoGluon-Tabular hyperparameters as well as up to 100 learned model configs.从该文件内容可以看到组合中为NN_TORCH等模型配备了多组带优先级的完整超参如activation、dropout_prob、hidden_size、learning_rate、num_layers、weight_decay、use_batchnorm并通过ag_args.name_suffix与priority控制集成时的排序权重。这正是 1.0 能同时在准确率与稳定性上超越 0.8 的配方来源。预设Preset中的落地方式Zeroshot 组合被接入到best_quality与high_quality预设中配置定义于 presets_configs.pybest_quality { auto_stack: True, dynamic_stacking: auto, hyperparameters: zeroshot, time_limit: 3600, } high_quality { auto_stack: True, dynamic_stacking: auto, hyperparameters: zeroshot, time_limit: 3600, refit_full: True, set_best_to_refit_full: True, save_bag_folds: False, }其中hyperparameters: zeroshot即指向上述组合导入见 hyperparameter_configs.py。high_quality与best_quality的差异在于它通过refit_fullset_best_to_refit_fullsave_bag_folds: False在保持高精度的同时将推理速度和磁盘占用优化约 8 倍发布说明原文表述为8x faster inference and 8x less disk usage。good_quality预设则使用hyperparameters: light进一步换取训练速度。用户也可以直接在fit中通过hyperparameters指定其他字符串如default、light或自定义字典。其他 Tabular 新特性与修复实验性 scikit-learn API可通过from autogluon.tabular.experimental import TabularClassifier, TabularRegressor使用与 sklearn 兼容的分类器/回归器封装。仓库实现见 _tabular_classifier.py 与 _tabular_regressor.py二者分别继承BaseEstimator、ClassifierMixin/RegressorMixin与ScikitMixin新增predictor.model_failures()与predictor.simulation_artifact()后者用于与 TabRepo 集成新增增强版 FT-Transformer在 AutoMM 的 tabular backbone 中替换了 MLP性能改进FastAI 回归输出裁剪、Skip-connection Weighted Ensemble、用 Ray 子进程做顺序拟合以修复内存泄漏发布说明称其在 AutoML Benchmark 上实现0 任务失败、低内存场景的动态并行折叠dynamic parallel folds支持稳定性多层堆叠现在产生确定性结果修复了模型内存占用计算错误、bagging 时infer_limit使用错误、FastAI 罕见崩溃等问题。推理速度与精度的取舍infer_limit发布说明强调 1.0 是在保持 SOTA 精度的前提下推理吞吐最快的 AutoML 系统用户可通过fit的infer_limit参数在精度与推理速度之间做显式权衡发布说明也记录了 bagging 场景下infer_limit使用错误的修复。OpenML AutoML Benchmark 结果回顾发布说明引用了 OpenML 于 2023 年 11 月 16 日发布的官方 2023 AutoML Benchmark 结果1040 个任务。根据其表述AutoGluon 1.0 对传统表格模型胜率在 95% 以上其中对 LightGBM 胜率 99%、对 XGBoost 胜率 100%对其他 AutoML 系统胜率在 82%94% 之间且在 63% 的任务中取得第一名第二名 lightautoml 为 12%AutoGluon 0.8 此前为 48%。完整对比表如下数据源自发布说明方法AG 胜率AG 损失改进Rescaled Loss平均排名冠军占比AutoGluon 1.0 (Best, 4h8c)--0.041.9563%lightautoml (2023, 4h8c)84%12.0%0.24.7812%H2OAutoML (2023, 4h8c)94%10.8%0.174.981%FLAML (2023, 4h8c)86%16.7%0.235.295%MLJAR (2023, 4h8c)82%23.0%0.335.536%autosklearn (2023, 4h8c)91%12.5%0.226.074%GAMA (2023, 4h8c)86%15.4%0.286.135%CatBoost (2023, 4h8c)95%18.2%0.286.893%TPOT (2023, 4h8c)91%23.1%0.48.151%LightGBM (2023, 4h8c)99%23.6%0.48.950%XGBoost (2023, 4h8c)100%24.1%0.439.50%RandomForest (2023, 4h8c)97%25.1%0.539.781%需要说明的是上表为发布说明中 AutoGluon 团队基于 OpenML 基准的自我报告数据读者可将其作为版本性能定位的参考。此外发布说明指出 AutoGluon 1.0 相较 0.8 还有平均 7.4% 的损失改进且凭借低内存训练中新的 Ray 子进程方案实现了 0 任务失败。AutoMMAutoGluon Multimodal基础模型微调的全面扩展AutoMM 的目标是用三行代码微调基础模型foundation models与 HuggingFace Transformers、TIMM、MMDetection 等模型库无缝集成支持图像、文本、表格、文档数据及其任意组合。与主要聚焦表格分类/回归的其他开源 AutoML 工具如 AutoSklearn、LightAutoML、H2OAutoML、FLAML、MLJAR、TPOT、GAMA相比AutoMM 是当时唯一同时覆盖多模态数据、多样化任务与基础模型体系含深度学习模型的 AutoML 系统。发布说明给出的能力对比矩阵如下系统图像文本表格文档任意组合分类回归目标检测语义匹配命名实体识别图像分割传统模型深度学习模型基础模型LightAutoML✓✓✓✓✓✓✓H2OAutoML✓✓✓✓FLAML✓✓✓✓✓✓✓MLJAR✓✓✓✓AutoSklearn✓✓✓✓✓GAMA✓✓✓✓TPOT✓✓✓✓✓✓AutoMM✓✓✓✓✓✓✓✓✓✓✓✓✓新问题类型语义分割Semantic Segmentation1.0 引入全新问题类型semantic_segmentation用于对 Segment Anything Model (SAM) 进行三行代码微调。仓库中该问题类型定义于 constants.py并配有独立的 learner 实现 semantic_segmentation.py默认评估指标为 IOU/BER/SM见 constants.py。发布说明要点覆盖自然图像、农业、遥感、医疗等多样化领域基准使用参数高效微调PEFT中的 LoRA 方法在基准测试中一致优于 VPT、adaptor、BitFit、SAM-adaptor、LST 等替代方案默认使用 SAM-ViT Huge 骨干要求 GPU 显存大于 25GB配套教程见 docs/tutorials/multimodal/image_segmentation/beginner_semantic_seg.ipynb完整示例见 examples/automm/Conv-LoRA/run_semantic_segmentation.py。新问题类型少样本分类Few Shot Classification新增few_shot_classification问题类型常量见 constants.py利用图像/文本基础模型提取特征并训练 SVM 分类器适用于小样本学习场景。配套教程见 docs/tutorials/multimodal/advanced_topics/few_shot_learning.ipynb。同时旧的FewShotSVMPredictor被弃用。性能与工程改进torch.compile 支持用于加速训练实验性需 torch 2.2默认骨干升级图像默认骨干升级后在图像基准上实现 100% 胜率表格默认骨干由 MLP 替换为 FT-Transformer在文本表格基准上实现 67% 胜率二者叠加在文本表格图像基准上实现 62% 胜率稳定性开启严格的多 GPU CI 测试并修复多项多 GPU 问题新增 DDP 策略的多 GPU 推理支持易用性支持自定义评估指标将 metric 对象传入eval_metric笔记本中支持多 GPU 训练实验性新增hf_text.use_fast选项控制快速 tokenizer 使用补充f1_macro、f1_micro、f1_weighted回退评估指标可扩展性引入新的 learner 类设计learners/base.py便于扩展新任务与新模态FT-Transformer、目标检测/语义分割/NER 可视化器均完成重构。TimeSeries鲁棒性、新模型与新指标发布说明指出1.0 的 TimeSeries 模块在易用性、性能与鲁棒性上均有大量改进并宣称在预测准确率上对主流预测框架取得 70% 胜率该表述对应 AutoML Conference 2023 论文。数据鲁棒性TimeSeriesPredictor现在可以处理所有 pandas 频率的数据、不规则时间戳以及用NaN表示的缺失值。TimeSeriesDataFrame也支持在from_path/from_data_frame构造时直接传入静态特征。新模型间歇性需求预测模型基于 conformal predictionADIDA、CrostonClassic、CrostonOptimized、CrostonSBA、IMAPA来自 GluonTS 的WaveNet与NPTS新基线模型Average、SeasonalAverage、Zero。同时DirectTabular改为基于mlforecast后端实现与RecursiveTabular一致RecursiveTabular与DirectTabular的训练/预测速度更快、内存占用更低。新指标与自定义指标新增点预测指标WAPE、RMSSE与SQL。这些指标已在仓库中注册实现导入与别名见 timeseries/metrics/init.py如weighted_absolute_percentage_error映射到WAPE。同时1.0 支持自定义预测指标并允许向TimeSeriesPredictor.evaluate传入多个评估指标。注意旧指标名mean_wQuantileLoss已更名为WQL。高级交叉验证选项TimeSeriesPredictor.fit新增两个参数refit_every_n_windows避免为每个验证窗口重复训练模型val_step_size调整验证窗口之间的步长。多窗口/最后窗口 splitter 类MultiWindowSplitter、LastWindowSplitter被弃用改为上述参数或ExpandingWindowSplitter。其他增强启用 Ray Tune 支持深度学习预测模型超参调优低时间预算下通过新预设与训练时间分配逻辑实现更准确的预测GluonTS 模型支持早停并提升推理速度通过将 import 移入模型类内部减少autogluon.timeseries的导入时间TimeSeriesPredictor的 API 与TabularPredictor对齐移除弃用方法。EDA 模块说明EDA 模块因仍需更多开发工作不在 1.0 中发布。如有需要请继续使用autogluon.eda0.8.2官方将在其就绪后另行公告。弃用Deprecations与升级迁移清单1.0 是一次大规模 API 整理发布说明给出了完整的迁移映射升级时务必对照修改代码。通用模块autogluon.core.spaces已弃用请改用autogluon.common.spaces。TabularPredictor 方法重命名以下旧方法仍可用但会输出警告日志计划在AutoGluon 1.2 移除旧方法已弃用新方法predictor.get_model_names()predictor.model_names()predictor.get_model_names_persisted()predictor.model_names(persistedTrue)predictor.compile_models()predictor.compile()predictor.persist_models()predictor.persist()predictor.unpersist_models()predictor.unpersist()predictor.get_model_best()predictor.model_bestpredictor.get_pred_from_proba()predictor.predict_from_proba()predictor.get_oof_pred_proba()predictor.predict_proba_oof()predictor.get_oof_pred()predictor.predict_oof()predictor.get_model_full_dict()predictor.model_refit_map()predictor.get_size_disk()predictor.disk_usage()predictor.get_size_disk_per_file()predictor.disk_usage_per_file()leaderboard()/evaluate()/evaluate_predictions()的silent参数改用display默认值为FalseAutoMM 弃用FewShotSVMPredictor弃用改用新的few_shot_classification问题类型AutoMMPredictor弃用改用MultiModalPredictorMultiModalPredictor.fit的config参数弃用MultiModalPredictor初始化 API 的init_scratch与pipeline参数弃用。TimeSeries 弃用TimeSeriesPredictor(ignore_time_index: bool)参数弃用若数据包含不规则时间戳应通过data.convert_frequency(freq)转换为规则频率或在创建 predictor 时指定TimeSeriesPredictor(freqfreq)predictor.evaluate()现在返回字典此前返回浮点数predictor.score()→predictor.evaluate()get_model_names()→model_names()get_model_best()→model_best指标mean_wQuantileLoss更名为WQLleaderboard()的silent参数改用display默认Falsefit中hyperparameters传字符串时仅支持default、light、very_lightTimeSeriesDataFrame.to_regular_index()→convert_frequency()get_reindexed_view()弃用基于 MXNet 的模型全部移除DeepARMXNet、MQCNNMXNet、MQRNNMXNet、SimpleFeedForwardMXNet、TemporalFusionTransformerMXNet、TransformerMXNet基于 Statsmodels 的统计模型ARIMA、Theta、ETS替换为 StatsForecast 版本超参数名称发生变化DirectTabular改用 mlforecast 后端大部分超参数名称变化TimeSeriesEvaluator弃用改用autogluon.timeseries.metrics中的指标MultiWindowSplitter与LastWindowSplitter弃用改用num_val_windows、val_step_size参数或ExpandingWindowSplitter。配套论文发布说明汇总了 1.0 相关的五篇论文可作为深入了解算法原理的入口AutoGluon-TimeSeries: AutoML for Probabilistic Time Series ForecastingAutoML Conference 2023对 DeepAR、TFT、AutoARIMA、AutoETS、AutoPyTorch 等框架的基准显示AutoGluon 在点预测与概率预测上均达 SOTA且对事后最优模型组合取得 65% 胜率TabRepo: A Large Scale Repository of Tabular Model Evaluations and its AutoML ApplicationsarXiv 2311.02971表格 Zeroshot-HPO 集成仿真库是 1.0 性能提升的关键支撑XTab: Cross-table Pretraining for Tabular TransformersICML 2023表格 Transformer 预训练可匹配 XGBoost/LightGBM 性能尚未集成进 AutoGluon计划未来版本引入Learning Multimodal Data Augmentation in Feature SpaceICLR 2023特征空间中的多模态数据增强模块LeMDA未集成计划未来引入Data Augmentation for Object Detection via Controllable Diffusion ModelsWACV 2024基于可控扩散模型与 CLIP 的目标检测数据增强流水线未集成Adapting Image Foundation Models for Video UnderstandingICLR 2023通过空间/时间/联合适配让冻结的图像基础模型获得时空推理能力。结语与升级建议AutoGluon 1.0 通过 Dynamic Stacking 与 Zeroshot-HPO 组合两项创新将表格学习的精度与稳定性推上新的台阶同时让 AutoMM 覆盖语义分割与少样本分类两大新任务并让 TimeSeries 模块在数据鲁棒性、模型库与交叉验证能力上全面升级。对于正在使用旧版本的用户建议按以下路径升级检查依赖环境Python 3.8–3.11torch 2.0与上述依赖版本范围对照弃用清单批量替换已弃用 API注意 TimeSeries 模型MXNet 系、Statsmodels 系、DirectTabular 后端的移除与超参数变化旧模型文件无法在 1.0 加载需重新训练在fit中优先使用best_quality/high_quality预设其内部已自动启用dynamic_stacking: auto与hyperparameters: zeroshot并按需用infer_limit权衡推理速度。【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门