最新消息

您可以在此处找到 AutoGluon 当前和过去版本的发布说明。

v1.3.0

版本 1.3.0

我们很高兴地宣布 AutoGluon 1.3.0 版本发布!

AutoGluon 1.3 版本侧重于稳定性和易用性改进、错误修复和依赖项升级。

此版本包含来自 20 位贡献者的 142 次提交!请在此处查看完整的提交变更日志:https://github.com/autogluon/autogluon/compare/v1.2.0…v1.3.0

加入社区: 获取最新更新:Twitter

不支持加载在旧版本 AutoGluon 上训练的模型。请使用 AutoGluon 1.3 重新训练模型。


亮点

AutoGluon-Tabular 在 2025 年 AutoML Benchmark 中处于领先地位!

AutoML Benchmark 2025 是一项针对表格 AutoML 框架的独立大规模评估,展示了 AutoGluon 1.2 作为最先进的 AutoML 框架!亮点包括:

  • 通过 Nemenyi 后验检验,在所有时间限制下,AutoGluon 的排名在统计学上显著优于所有 AutoML 系统。

  • AutoGluon 在 5 分钟训练预算下优于所有其他具有 1 小时训练预算的 AutoML 系统。

  • AutoGluon 在所有评估的预设和时间限制下,在质量和速度方面都具有帕累托效率。

  • AutoGluon 在使用 presets="high", infer_limit=0.0001 (图中的 HQIL) 时,推理吞吐量达到 >10,000 样本/秒,同时性能优于所有其他方法。

  • AutoGluon 是最稳定的 AutoML 系统。对于“best”和“high”预设,AutoGluon 在所有 >5 分钟的时间预算下均未发生故障。

https://raw.githubusercontent.com/Innixma/autogluon-doc-utils/refs/heads/main/docs/whats_new/v1.3.0/amlb2025_fig1.png

AutoGluon 多模态的“技巧集”更新

我们很高兴地宣布 AutoGluon 多模态(AutoMM)集成了全面的“技巧集”更新。这项重大增强功能在处理图像、文本和表格数据组合时,显著提高了多模态 AutoML 的性能。此次更新实现了多种策略,包括多模态模型融合技术、多模态数据增强、跨模态对齐、表格数据序列化、更好地处理缺失模态,以及一个集成这些技术的集成学习器,以实现最佳性能。

用户现在可以通过初始化 MultiModalPredictor 时的简单参数来访问这些功能,具体方法请遵循此处的说明下载检查点。

from autogluon.multimodal import MultiModalPredictor
predictor = MultiModalPredictor(label="label", use_ensemble=True)
predictor.fit(train_data=train_data)

我们感谢 @zhiqiangdon 提供了这项重要贡献,增强了 AutoGluon 处理复杂多模态数据集的能力。以下是描述技术细节的相应研究论文:Bag of Tricks for Multimodal AutoML with Image, Text, and Tabular Data

弃用和重大变更

以下已弃用的 TabularPredictor 方法已在 1.3.0 版本中移除(在 1.0.0 中弃用,在 1.2.0 中引发错误,在 1.3.0 中移除)。请使用新名称:

  • persist_models -> persist, unpersist_models -> unpersist, get_model_names -> model_names, get_model_best -> model_best, get_pred_from_proba -> predict_from_proba, get_model_full_dict -> model_refit_map, get_oof_pred_proba -> predict_proba_oof, get_oof_pred -> predict_oof, get_size_disk_per_file -> disk_usage_per_file, get_size_disk -> disk_usage, get_model_names_persisted -> model_names(persisted=True)

以下逻辑已在 1.3.0 版本中开始弃用,并将记录 FutureWarning。功能将在未来版本中更改:

  • (FutureWarning) TabularPredictor.delete_models() 在未来版本中将默认设置为 dry_run=False(目前为 dry_run=True)。为了在未来版本中保留现有逻辑,请确保您显式指定 dry_run=True@Innixma (#4905)

一般

改进

依赖项

文档

修复和改进


表格数据

移除的模型

  • 移除了 vowpalwabbit 模型(键:VW)和可选依赖项(autogluon.tabular[vowpalwabbit]),因为 AutoGluon 中实现的此模型使用不广泛且基本未维护。@Innixma (#4975)

  • 移除了 TabTransformer 模型(键:TRANSF),因为 AutoGluon 中实现的此模型严重过时,自 2020 年以来未维护,且通常性能不如 FT-Transformer(键:FT_TRANSFORMER)。@Innixma (#4976)

  • 在准备未来支持 tabpfn>=2.x 时,从 autogluon.tabular[tests] 安装中移除了 tabpfn。@Innixma (#4974)

新功能

  • 添加对通过分箱进行回归分层分割的支持。@Innixma (#4586)

  • 添加 TabularPredictor.model_hyperparameters(model) 方法,用于返回模型的超参数。@Innixma (#4901)

  • 添加 TabularPredictor.model_info(model) 方法,用于返回模型的元数据。@Innixma (#4901)

  • (实验性) 添加 plot_leaderboard.py,用于可视化预测器在训练时间上的性能。@Innixma (#4907)

  • (重大) 添加内部 ag_model_registry,以改进对支持的模型系列及其能力的跟踪。@Innixma (#4913, #5057, #5107)

  • 添加 raise_on_model_failure 参数到 TabularPredictor.fit,默认为 False。如果设置为 True,则当模型在拟合过程中引发异常时,将立即抛出原始异常,而不是继续下一个模型。在调试时,如果试图找出模型失败的原因,将其设置为 True 会非常有帮助,因为否则异常会被 AutoGluon 处理,这在调试时是不希望的。@Innixma (#4937, #5055)

文档

修复和改进

  • (重大) 确保 refit_full 中的 bagged refits 正常工作(v1.2.0 中因 bug 崩溃)。@Innixma (#4870)

  • 改进 XGBoost 和 CatBoost 内存估算。@Innixma (#5090)

  • 改进 LightGBM 内存估算。@Innixma (#5101)

  • 修复 plot_tabular_models 保存路径。@everdark (#4711)

  • 修复 balanced_accuracy 指标的边缘情况异常 + 添加单元测试以确保未来不会出现 bug。@Innixma (#4775)

  • 修复 HPO 日志记录详细程度。@Innixma (#4781)

  • 改进 use_child_oof=True 的日志记录。@Innixma (#4780)

  • 修复 NN_TORCH 使用少于 8 个样本进行训练时崩溃的问题。@Innixma (#4790)

  • 改进 CatBoost memory_check 回调中的日志记录和文档。@celestinoxp (#4802)

  • 改进代码格式以满足 PEP585。@celestinoxp (#4823)

  • 移除已弃用的 TabularPredictor 方法:@Innixma (#4906)

  • (FutureWarning) TabularPredictor.delete_models() 在未来版本中将默认设置为 dry_run=False(目前为 dry_run=True)。为了在未来版本中保留现有逻辑,请确保您显式指定 dry_run=True@Innixma (#4905)

  • 通过各种优化将表格单元测试速度提高了 4 倍(3060 秒 -> 743 秒)。@Innixma (#4944)

  • 重大表格单元测试重构,避免使用 fixtures。@Innixma (#4949)

  • 修复 XGBoost GPU 警告。@Innixma (#4866)

  • 修复当存在分类特征时 TabularPredictor.refit_full(train_data_extra) 失败的问题。@Innixma (#4948)

  • convert_simulation_artifacts_to_tabular_predictions_dict 创建的 artifact 内存使用量减少了 4 倍。@Innixma (#5024)

  • 小幅修复。@shchur (#5030)

  • 确保在 holdout 模型拟合期间遵守最大模型资源限制。@Innixma (#5067)

  • 移除 LightGBM 模型拟合期间意外设置的全局随机种子。@Innixma (#5095)


时间序列

新的 v1.3 版本为 TimeSeries 模块带来了众多易用性改进和 bug 修复。在内部,我们完成了核心类的重大重构,并引入了静态类型检查,以简化未来的贡献、加速开发并及早发现潜在 bug。

API 变更和弃用

  • 作为重构的一部分,我们对内部 AbstractTimeSeriesModel 类进行了多项更改。如果您维护着 自定义模型 实现,则可能需要对其进行更新。有关详细信息,请参阅自定义预测模型教程

    仅依赖 timeseries 模块的公共 API(TimeSeriesPredictorTimeSeriesDataFrame)的用户无需执行任何操作。

新功能

  • @shchur 编写的关于添加自定义预测模型的新教程,见 #4749

  • @abdulfatir#5078 中添加了对 evaluateleaderboardcutoff 的支持

  • @shchur#5084 中为 TimeSeriesPredictor 添加了对 horizon_weight 的支持

  • @shchur#5051 中向 TimeSeriesPredictor 添加了 make_future_data_frame 方法

  • @canerturkmen#5062 中重构了集成基础类并添加了新的集成

代码质量

修复和改进

  • @shchur#4899 中允许 TFT 模型使用自定义的 distr_output

  • @shchur#4745 中更新了 statsforecastcoreforecast 的版本范围

  • @canerturkmen#4845 中修复了使用 covariate_regressor 的模型的特征重要性计算

  • @abdulfatir @shchur#4838 #5075 #5079 中修复了 Chronos 和其他模型的超参数调优

  • @abdulfatir @shchur#4834 #5066 中修复了 TimeSeriesDataFrame 的频率推断

  • 修复 CovariateRegressor 的一些小错误,由 @shchur#4849 中完成

  • 更新自定义 distr_output 的文档,由 @Killer3048#5068 中完成

  • 次要文档更新,由 @shchur#4928 #5092 中完成

  • 如果提供了无效模型名称,则引发信息性错误消息,由 @shchur#5004 中完成

  • 优雅地处理损坏的缓存预测,由 @shchur#5005 中完成

  • Chronos-Bolt: 修复影响常数序列的缩放问题,由 @abdulfatir#5013 中完成

  • 修复 transformers 中已弃用的 evaluation_strategy kwarg,由 @abdulfatir#5019 中完成

  • 修复提供 val_datatime_limit 的问题 #5046,由 @shchur#5059 中完成

  • 重命名协变量元数据,由 @canerturkmen#5064 中完成

  • 修复重采样期间的 NaT 时间戳值,由 @shchur#5080 中完成

  • 修复 py39 的类型兼容性,由 @suzhoum @shchur#5094 #5097 中完成

  • 如果向 TimeSeriesPredictor 提供了 S3 路径,则发出警告,由 @shchur#5091 中完成


多模态

新功能

AutoGluon 的 MultiModal 模块已通过全面的“技巧集”(Bag of Tricks) 更新得到增强,该更新通过先进的融合技术、数据增强以及现在通过简单的 use_ensemble=True 参数即可访问的集成学习器,显著提高了处理图像、文本和表格数据组合时的性能。请按照这里的说明下载 checkpoints。

文档

修复和改进

  • 更新 AutoMM 单元测试的 s3 路径为公共 URL,由 @suzhoum#4809 中完成

  • 修复对象检测教程和 predict 的默认行为,由 @FANGAreNotGnu#4865 中完成

  • 修复下载函数中的 NLTK tagger 路径,由 @k-ken-t4g#4982 中完成

  • 通过限制 transformer 范围修复 AutoMM 模型保存逻辑,由 @tonyhoo#5007 中完成

  • 修复:考虑分布式训练的学习率调度,由 @tonyhoo#5003 中完成


特别感谢

  • Zhiqiang Tang 实现了 AutoGluon MultiModal 的“技巧集”(Bag of Tricks),显著提升了多模态性能。

  • Caner Turkmen 领导了 timeseries 模块内部逻辑的重构和改进工作。

  • Celestino 作为新贡献者,提供了大量错误报告、建议和代码清理。

贡献者

完整贡献者列表(按提交数量排序)

@Innixma @shchur @canerturkmen @tonyhoo @abdulfatir @celestinoxp @suzhoum @FANGAreNotGnu @prateekdesai04 @zhiqiangdon @cheungdaven @LennartPurucker @abhishek-iitmadras @zkalson @nathanaelbosch @Killer3048 @FireballDWF @timostrunk @everdark @kbulygin @PGijsbers @k-ken-t4g

新贡献者

v1.2.0

版本 1.2.0

我们很高兴地宣布 AutoGluon 1.2.0 发布。

AutoGluon 1.2 包含对 Tabular 和 TimeSeries 模块的巨大改进,每个模块相较于 AutoGluon 1.1 取得了 70% 的胜率。此版本还新增了对 Python 3.12 的支持,并取消了对 Python 3.8 的支持。

此版本包含来自 19 位贡献者的 186 个提交!在此查看完整的提交变更日志:https://github.com/autogluon/autogluon/compare/v1.1.1…v1.2.0

加入社区:
获取最新动态: Twitter

不支持加载在旧版本 AutoGluon 上训练的模型。请使用 AutoGluon 1.2 重新训练模型。

对于 Tabular 模块,我们将新的 TabPFNMix 表格基础模型和并行训练策略的主要增强功能整合到新的 "experimental_quality" 预设中,以确保希望尝试尖端新功能的用户能顺利过渡。我们将利用此版本在将这些功能集成到其他预设之前收集反馈。我们还引入了一种新的堆叠层模型剪枝技术,可在小数据集上实现 3 倍的推理加速,同时性能零损失,并显著改善了整体后处理校准,尤其是在小数据集上。

对于 TimeSeries 模块,我们引入了 Chronos-Bolt,这是我们集成到 AutoGluon 中的最新基础模型,与 Chronos 相比,它在准确性和推理速度方面都有巨大改进,并提供了微调功能。我们还增加了协变量回归器支持!

我们也很高兴地宣布 AutoGluon-Assistant (AG-A),这是我们在自动化数据科学领域的首次尝试。

更多详情请见下面的聚焦部分!

聚焦

AutoGluon 成为 2024 年竞赛机器学习的黄金标准

在深入探讨 1.2 的新功能之前,我们想首先强调 AutoGluon 在 2024 年 Kaggle 等竞赛机器学习网站上获得的广泛采用。在 2024 年全年,AutoGluon 在 18 个表格 Kaggle 竞赛中,有 15 个实现了前 3 名的成绩,其中包括 7 个第一名,并且从未跌出私人排行榜的前 1%,每个竞赛平均有超过 1000 支人类团队竞争。在奖金高达 75,000 美元的 2024 Kaggle AutoML 大奖赛中,第一名、第二名和第三名团队都使用了 AutoGluon,其中第二名团队由两位 AutoGluon 开发者:Lennart PuruckerNick Erickson 领导!相比之下,在 2023 年,AutoGluon 只获得了一个第一名和一个第二名解决方案。我们将这种增长主要归功于 AutoGluon 1.0 及更高版本的改进。

我们想强调的是,这些结果是通过人类专家与 AutoGluon 和其他工具的交互实现的,通常包括手动特征工程和超参数调整,以充分发挥 AutoGluon 的优势。要查看所有 AutoGluon 解决方案在 Kaggle 上的实时排名,请参考我们的 AWESOME.md ML 竞赛部分,其中提供了所有解决方案报告的链接。

AutoGluon-Assistant:使用 AutoGluon 和 LLMs 自动化数据科学

我们很高兴分享新的 AutoGluon-Assistant 模块 (AG-A) 的发布,该模块由 AWS Bedrock 或 OpenAI 的 LLMs 提供支持。AutoGluon-Assistant 使用户能够仅通过自然语言描述来解决表格机器学习问题,通过我们简单的用户界面,无需编写任何代码。完全自主的 AG-A 在 Kaggle 竞赛中超越了 74% 的人类机器学习从业者,并以 Team AGA 🤖 的身份在奖金 75,000 美元的 2024 Kaggle AutoML 大奖赛中获得了实时前 10 名的成绩!

TabularPredictor 预设 = "experimental_quality"

TabularPredictor 有一个新的 "experimental_quality" 预设,它提供了比 "best_quality" 更好的预测质量。在 AutoMLBenchmark 上,我们在 64 核 CPU 机器上运行 4 小时的情况下观察到相对于 best_quality 有 70% 的胜率。此预设是用于测试尖端功能和模型的试验场,我们希望在未来的版本中将其整合到 best_quality 中。我们建议使用至少 16 核 CPU、64 GB 内存和 4 小时以上 time_limit 的机器,以便从 experimental_quality 中获得最大收益。如果您在运行 experimental_quality 预设时遇到任何问题,请通过 GitHub issue 告知我们。

TabPFNMix:表格数据的基础模型

TabPFNMix 是 AutoGluon 团队创建的第一个表格基础模型,并且完全在合成数据上进行了预训练。该模型构建在 TabPFNTabForestPFN 的先前工作之上。据我们所知,TabPFNMix 在 1000 到 10000 个样本的数据集上实现了单个开源模型的最新性能,并且还支持回归任务!在 TabRepo 中小于或等于 10000 个训练样本的 109 个分类数据集上,微调后的 TabPFNMix 优于所有先前的模型,相对于最强的树模型 CatBoost 胜率为 64%,相对于微调后的 TabForestPFN 胜率为 61%。

该模型可通过 TABPFNMIX 超参数键使用,并在新的 experimental_quality 预设中使用。我们建议将此模型用于训练样本少于 50,000 个的数据集,最好具有较大的时间限制和 64GB+ 内存。这项工作仍处于早期阶段,我们感谢社区提供的任何反馈,以帮助我们在未来的版本中进行迭代和改进。您可以通过访问我们在 HuggingFace 上的模型页面了解更多信息(tabpfn-mix-1.0-classifiertabpfn-mix-1.0-regressor)。如果您想看到更多内容,请在 HuggingFace 上给我们点赞!未来计划发表一篇论文,提供有关该模型的更多详细信息。

fit_strategy=”parallel”

AutoGluon 的 TabularPredictor 现在支持新的 fit 参数 fit_strategy 和新的 "parallel" 选项,该选项在新的 experimental_quality 预设中默认启用。对于具有 16 个或更多 CPU 核的机器,并行训练策略比先前的 "sequential" 策略提供了主要的加速。我们估计使用 64 个 CPU 核时,大多数数据集将体验到 2-4 倍的加速,并且随着 CPU 核数量的增加,加速效果也会更大。

Chronos-Bolt⚡:一个快 250 倍、更准确的 Chronos 模型

Chronos-Bolt 是我们集成到 AutoGluon 中的最新时间序列预测基础模型。它基于 T5 编码器-解码器架构,并在近 1000 亿个时间序列观测数据上进行了训练。它将历史时间序列上下文分成多个观测值的块,然后将其输入到编码器中。解码器随后使用这些表示直接生成多个未来步骤的分位数预测——这种方法称为直接多步预测。与相同大小的原始 Chronos 模型相比,Chronos-Bolt 模型速度提高了 250 倍,内存效率提高了 20 倍。

下图比较了 Chronos-Bolt 与原始 Chronos 模型在预测 1024 个时间序列时的推理时间,其中上下文长度为 512 个观测值,预测范围为 64 个步骤。

Chronos-Bolt 模型不仅显著更快,而且比原始 Chronos 模型更准确。下图报告了 Chronos-Bolt 的概率和点预测性能,分别以加权分位数损失 (WQL)平均绝对缩放误差 (MASE) 表示,并在 27 个数据集上进行了汇总(有关此基准的详细信息,请参阅Chronos 论文)。值得注意的是,尽管在训练期间没有接触过这些数据集,零样本 Chronos-Bolt 模型表现优于已在这些数据集上训练过的常用统计模型和深度学习模型(以 * 突出显示)。此外,它们的性能也优于其他基础模型(用 + 表示),这表明这些模型已在我们基准测试的某些数据集上进行了预训练,并非完全零样本。特别是,Chronos-Bolt (Base) 在预测准确性方面也超越了原始 Chronos (Large) 模型,同时速度快了 600 多倍。

Chronos-Bolt 模型现在可通过 AutoGluon 提供四种大小——Tiny (9M)、Mini (21M)、Small (48M) 和 Base (205M)——并且也可在 CPU 上使用。随着 Chronos-Bolt 模型和其他增强功能的加入,AutoGluon v1.2 相较于上一版本取得了 70%+ 的胜率

除了新的 Chronos-Bolt 模型外,我们还增加了对 Chronos 和 Chronos-Bolt 模型进行轻松微调的支持。请查看更新的Chronos 教程,了解如何使用和微调 Chronos-Bolt 模型。

时间序列协变量回归器

我们为所有预测模型添加了协变量回归器支持。协变量回归器是表格回归模型,可以与单变量预测模型结合使用以纳入外部信息。这对于像 Chronos-Bolt 这样的基础模型特别有用,因为它们仅依赖目标时间序列的历史数据,无法直接使用外部信息(例如节假日或促销)。为了在协变量可用时改进单变量模型的预测,首先在已知协变量和静态特征上拟合一个协变量回归器,以预测每个时间步的目标列。然后将协变量回归器的预测结果从目标列中减去,单变量模型再预测残差。Chronos 教程展示了如何将协变量回归器与 Chronos-Bolt 结合使用。

一般

改进

  • 更新 full_install.sh 以并行安装 AutoGluon 并使用 uv,从而显著加快源代码安装时间。@Innixma (#4582, #4587, #4592)

依赖项

文档

修复和改进

  • 将 DropDuplicatesFeatureGenerator 训练时间加快 2 倍以上。@shchur (#4543)

  • 添加 compute_metric 作为 compute_weighted_metric 的替代,提高项目兼容性。@Innixma (#4631)

  • 增强了 generate_train_test_split@Innixma (#4478)

表格数据

新功能

  • 添加 TabPFNMix 模型。尝试使用 presets="experimental"@xiyuanzh @Innixma (#4671, #4694)

  • 支持并行模型训练。尝试使用 fit_strategy="parallel"@LennartPurucker @Innixma (#4606)

  • 支持 Predictor 回调。@Innixma (#4327, #4473)

  • 学习曲线生成功能。@adibiasio @Innixma (#4411, #4635)

  • 默认将 calibrate_decision_threshold 设置为 "auto",并改进决策阈值校准。这极大地改进了二分类中当 eval_metricf1balanced_accuracy 时的结果。@Innixma (#4632)

  • 添加 roc_auc_ovoroc_auc_ovr 指标。@Innixma (#4248)

  • 添加自定义内存(软)限制支持。@LennartPurucker (#4333)

  • 向模型添加 ag.compile 超参数,以在训练时而不是使用 predictor.compile 进行编译。@Innixma (#4354)

  • 为 NN_TORCH 添加 AdaptiveES 支持,并将 max_epochs 从 500 增加到 1000,默认启用。@Innixma (#4436)

  • 添加通过 delay_bag_sets fit 参数控制重复交叉验证行为的支持。默认设置为 False(之前为 True)。@LennartPurucker (#4552)

  • positive_class 作为 TabularPredictor 的初始化参数。@Innixma (#4445)

  • 为 NN_TORCH 模型添加 AdamW 支持。@Innixma (#4610)

文档

修复和改进

时间序列

新功能

修复和改进

多模态

修复和改进

  • 修复模型在检查点融合阶段失败后恢复时缺失验证指标的问题,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4449 中完成

  • 添加 coco_root 以更好地支持 COCO 格式的自定义数据集。由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/3809 中完成

  • 添加 COCO 格式保存支持并更新对象检测 I/O 处理,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/3811 中完成

  • 在使用 bandit 检查时跳过 MMDet 配置文件,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4630 中完成

  • 修复 Logloss 错误并优化 Compute Score 逻辑,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4629 中完成

  • 修复教程中的索引拼写错误,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4642 中完成

  • 修复多分类的 Proba 指标,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4643 中完成

  • 支持 torch 2.4,由 @tonyhoo 在 https://github.com/autogluon/autogluon/pull/4360 中完成

  • 在教程中添加对象检测安装指南,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4430 中完成

  • 添加 Bandit 警告缓解措施,用于内部 torch.savetorch.load 的使用,由 @tonyhoo 在 https://github.com/autogluon/autogluon/pull/4502 中完成

  • 更新 accelerate 版本范围,由 @cheungdaven 在 https://github.com/autogluon/autogluon/pull/4596 中完成

  • 绑定 nltk 版本以避免冗长的日志记录问题,由 @tonyhoo 在 https://github.com/autogluon/autogluon/pull/4604 中完成

  • 升级 TIMM,由 @prateekdesai04 在 https://github.com/autogluon/autogluon/pull/4580 中完成

  • v1.2 版本中 _setup_utils.py 的关键依赖更新,由 @tonyhoo 在 https://github.com/autogluon/autogluon/pull/4612 中完成

  • 每个 HPO 试验可配置的检查点保留数量,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4615 中完成

  • 重构每种问题类型的指标,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4616 中完成

  • 修复对象检测的 Torch 版本和 Colab 安装问题,由 @FANGAreNotGnu 在 https://github.com/autogluon/autogluon/pull/4447 中完成

特别感谢

贡献者

完整贡献者列表(按提交数量排序)

@Innixma @shchur @prateekdesai04 @tonyhoo @FangAreNotGnu @suzhoum @abdulfatir @canerturkmen @LennartPurucker @abhishek-iitmadras @adibiasio @rsj123 @nathanaelbosch @cheungdaven @lostella @zkalson @rey-allan @echowve @xiyuanzh

新贡献者

  • @nathanaelbosch 在 https://github.com/autogluon/autogluon/pull/4366 中做出了首次贡献

  • @adibiasio 在 https://github.com/autogluon/autogluon/pull/4391 中做出了首次贡献

  • @abdulfatir 在 https://github.com/autogluon/autogluon/pull/4608 中做出了首次贡献

  • @echowve 在 https://github.com/autogluon/autogluon/pull/4667 中做出了首次贡献

  • @abhishek-iitmadras 在 https://github.com/autogluon/autogluon/pull/4685 中做出了首次贡献

  • @xiyuanzh 在 https://github.com/autogluon/autogluon/pull/4694 中做出了首次贡献

v1.1.1

版本 1.1.1

我们很高兴地宣布 AutoGluon 1.1.1 发布。

AutoGluon 1.1.1 包含对 Tabular、TimeSeries 和 Multimodal 模块的错误修复和日志记录改进,以及对 PyTorch 2.2 和 2.3 的支持。

加入社区:
获取最新动态: Twitter

此版本支持 Python 3.8、3.9、3.10 和 3.11 版本。不支持加载在旧版本 AutoGluon 上训练的模型。请使用 AutoGluon 1.1.1 重新训练模型。

此版本包含来自 10 位贡献者的 52 个提交!

一般

表格数据

注意:由于 model-interals.pkl 路径的修复,尝试加载使用先前 AutoGluon 版本训练的带有 FastAI 模型的 TabularPredictor 将在调用 predict 时引发异常。请确保版本匹配。

  • 修复当 num_gpus>0 且启用了 dynamic_stacking 时的死锁问题。@Innixma (#4208)

  • 改进决策阈值校准。@Innixma (#4136, #4137)

  • 改进动态堆叠日志记录。@Innixma (#4208, #4262)

  • 修复 LightGBM 早停时回归指标(RMSE 和 MSE 除外)计算不正确的问题。@Innixma (#4174)

  • 修复 LightGBM 早停时自定义多分类指标计算不正确的问题。@Innixma (#4250)

  • 修复 NN_TORCH 和 FASTAI 模型在 HPO 时崩溃的问题。@Innixma (#4232)

  • 改进 NN_TORCH 运行时估计。@Innixma (#4247)

  • 添加推理吞吐量日志记录。@Innixma (#4200)

  • 由于观察到性能下降,对线性模型禁用 sklearnex。@Innixma (#4223)

  • 改进 Kaggle 中 sklearnex 日志记录的详细程度。@Innixma (#4216)

  • 将缓存版本文件重命名为 version.txt。@Innixma (#4203)

  • 为线性模型添加 refit_full 支持。@Innixma (#4222)

  • 添加 AsTypeFeatureGenerator 的详细异常日志记录。@Innixma (#4251, #4252)

时间序列

  • 确保 prediction_length 以整数形式存储。@shchur (#4160)

  • 修复表格模型预处理失败的边缘情况。@shchur (#4175)

  • 修复如果 predictor 移动到不同目录时,表格模型加载失败的问题。@shchur (#4171)

  • 修复将 predictor 保存到现有 predictor 上时,缓存预测出错的问题。@shchur (#4202)

  • 使用 AutoGluon 的 Chronos 模型分支。@shchur (#4198)

  • 修复 Chronos 推理中的 off-by-one 错误。@canerturkmen (#4205)

  • 将缓存版本文件重命名为 version.txt。@Innixma (#4203)

  • 在 MLForecast 的回退模型中使用正确的目标和 quantile_levels@shchur (#4230)

多模态

文档和 CI

贡献者

完整贡献者列表(按提交数量排序)

@Innixma @shchur @Harry-zzh @suzhoum @zhiqiangdon @lovvge @rey-allan @prateekdesai04 @canerturkmen @FANGAreNotGnu

新贡献者

  • @lovvge 在 https://github.com/autogluon/autogluon/commit/57a15fcfbbbc94514ff20ed2774cd447d9f4115f 中做出了首次贡献

  • @rey-allan#4145 中做出了首次贡献

v1.1.0

版本 1.1.0

我们很高兴地宣布 AutoGluon 1.1 发布。

AutoGluon 1.1 包含对 TimeSeries 模块的重大改进,通过添加预训练的时间序列预测模型 Chronos 以及众多其他增强功能,相较于 AutoGluon 1.0 取得了 60% 的胜率。其他模块也通过新增功能(如 Conv-LORA 支持)以及改进对 5 - 30 GB 大小的大型表格数据集的性能得到了增强。有关 AutoGluon 1.1 功能的完整详细信息,请参阅下面的功能亮点和逐项增强功能。

加入社区:
获取最新动态: Twitter

此版本支持 Python 3.8、3.9、3.10 和 3.11 版本。不支持加载在旧版本 AutoGluon 上训练的模型。请使用 AutoGluon 1.1 重新训练模型。

此版本包含来自 20 位贡献者的 121 个提交!

完整贡献者列表(按提交数量排序)

@shchur @prateekdesai04 @Innixma @canerturkmen @zhiqiangdon @tonyhoo @AnirudhDagar @Harry-zzh @suzhoum @FANGAreNotGnu @nimasteryang @lostella @dassaswat @afmkt @npepin-hub @mglowacki100 @ddelange @LennartPurucker @taoyang1122 @gradientsky

特别感谢 @ddelange 在 Python 3.11 支持和 Ray 版本升级方面的持续帮助!

聚焦

AutoGluon 在机器学习竞赛中屡获佳绩!

自 AutoGluon 1.0 发布以来,AutoGluon 在 Kaggle 上获得了广泛采用。在过去 90 天里,AutoGluon 已在超过 130 个 Kaggle notebook 中使用,并在超过 100 个讨论帖子中提及!最令人兴奋的是,自 2024 年初以来,AutoGluon 已在多个拥有数千名参赛者的竞赛中获得顶级排名。

排名

竞赛

作者

日期

AutoGluon 详情

备注

:3rd_place_medal: 排名 3/2303 (前 0.1%)

钢板缺陷预测

Samvel Kocharyan

2024/03/31

v1.0, Tabular

Kaggle Playground 系列 S4E3

:2nd_place_medal: 排名 2/93 (前 2%)

预测区间竞赛 I:出生体重

Oleksandr Shchur

2024/03/21

v1.0, Tabular

:2nd_place_medal: 排名 2/1542 (前 0.1%)

WiDS Datathon 2024 挑战 #1

lazy_panda

2024/03/01

v1.0, Tabular

:2nd_place_medal: 排名 2/3746 (前 0.1%)

肥胖风险多类别预测

Kirderf

2024/02/29

v1.0, Tabular

Kaggle Playground 系列 S4E2

:2nd_place_medal: 排名 2/3777 (前 0.1%)

使用银行流失数据集进行二分类

lukaszl

2024/01/31

v1.0, Tabular

Kaggle Playground 系列 S4E1

排名 4/1718 (前 0.2%)

肝硬化结果多类别预测

Kirderf

2024/01/01

v1.0, Tabular

Kaggle Playground 系列 S3E26

我们很高兴看到数据科学社区正在利用 AutoGluon 作为他们快速有效地实现顶级 ML 解决方案的首选方法!有关使用 AutoGluon 的竞赛解决方案的最新列表,请参阅我们的 AWESOME.md,如果您在竞赛中使用了 AutoGluon,请随时告诉我们!

Chronos,一个用于时间序列预测的预训练模型

AutoGluon-TimeSeries 现在引入了 Chronos,这是一系列在大量开源时间序列数据集上预训练的预测模型,可以为新的未见数据生成准确的零样本预测。查看新教程,了解如何通过熟悉的 TimeSeriesPredictor API 使用 Chronos。

一般

时间序列

亮点

AutoGluon 1.1 带来了时间序列模块的众多新功能和改进。这些功能包括急需的功能,例如特征重要性、对分类协变量的支持、预测结果可视化能力以及日志记录增强。新版本还在预测准确性方面取得了显著提升,与之前的 AutoGluon 版本相比,胜率达到 60%,平均误差减少 3%。这些改进主要归因于 Chronos 的增加、改进的预处理逻辑以及原生缺失值处理。

新功能

修复和改进

AutoMM

亮点

AutoMM 1.1 引入了创新的 Conv-LoRA,这是一种参数高效微调 (PEFT) 方法,源自我们在 ICLR 2024 上发表的最新论文,题为“卷积遇到 LoRA:Segment Anything Model 的参数高效微调”。Conv-LoRA 专为微调 Segment Anything Model 设计,在包括自然图像、农业、遥感和医疗健康在内的各种领域的语义分割任务中,与之前的 PEFT 方法(如 LoRA 和视觉提示调优)相比,表现出卓越的性能。查看我们的 Conv-LoRA 示例

新功能

修复和改进

表格数据

亮点

AutoGluon-Tabular 1.1 主要侧重于 bug 修复和稳定性改进。特别是,通过使用子采样进行决策阈值校准以及对 100 万行数据进行加权集成拟合,我们大幅提高了处理 5 - 30 GB 大规模数据集时的运行时性能,在保持相同质量的同时,执行速度也快得多。我们还将默认加权集成迭代次数从 100 次调整为 25 次,这将使所有加权集成的拟合时间加快 4 倍。我们对 fit_pseudolabel 逻辑进行了大量重构,现在应该能获得显著更强的结果。

修复和改进

文档和 CI

v1.0.0

版本 1.0.0

今天终于来了……AutoGluon 1.0 已经到来!!经过四年多的开发以及111 位贡献者的 2061 次提交,我们很高兴与大家分享我们努力的成果,创建并普及了世界上最强大、易于使用且功能丰富的自动化机器学习系统。AutoGluon 1.0 带来了预测质量的革命性增强,这得益于多项新的集成创新组合,亮点如下。除了性能增强之外,还进行了许多其他改进,这些改进在各个模块部分中有详细介绍。

注意:不支持加载在旧版本 AutoGluon 上训练的模型。请使用 AutoGluon 1.0 重新训练模型。

本版本支持 Python 3.8, 3.9, 3.10 和 3.11 版本。

本版本包含来自 17 位贡献者的 223 次提交!

完整贡献者列表(按提交数量排序)

@shchur, @zhiqiangdon, @Innixma, @prateekdesai04, @FANGAreNotGnu, @yinweisu, @taoyang1122, @LennartPurucker, @Harry-zzh, @AnirudhDagar, @jaheba, @gradientsky, @melopeo, @ddelange, @tonyhoo, @canerturkmen, @suzhoum

加入社区:
获取最新动态: Twitter

聚焦

表格性能增强

AutoGluon 1.0 带来了预测质量的重大增强,在表格建模领域建立了新的最先进水平。据我们所知,AutoGluon 1.0 标志着自 2020 年 3 月原始 AutoGluon 论文发表以来,表格数据最先进水平的最大飞跃。这些增强主要来自两个特性:动态堆叠减轻堆叠过拟合,以及通过 Zeroshot-HPO 获得的新学习模型超参数组合,该组合来自最新发布的 TabRepo 集成模拟库。总的来说,与 AutoGluon 0.8 相比,它们带来了 75% 的胜率,同时具有更快的推理速度、更低的磁盘使用量和更高的稳定性。

AutoML 基准测试结果

OpenML 于 2023 年 11 月 16 日发布了官方 2023 AutoML 基准测试结果。他们的结果显示 AutoGluon 0.8 在各种任务中是 AutoML 系统中最先进的:“总体而言,在模型性能方面,AutoGluon 在我们的基准测试中始终具有最高的平均排名。” 我们现在展示 AutoGluon 1.0 即使与 AutoGluon 0.8 相比也能取得更优越的结果!

以下是关于 OpenML AutoML 基准测试在 1040 个任务上的比较。LightGBM、XGBoost 和 CatBoost 的结果是通过 AutoGluon 获得的,其他方法则来自官方 2023 AutoML 基准测试结果。AutoGluon 1.0 对传统表格模型具有 95%+ 的胜率,其中包括对 LightGBM 的 99% 胜率和对 XGBoost 的 100% 胜率。AutoGluon 1.0 对其他 AutoML 系统具有 82% 到 94% 的胜率。对于所有方法,AutoGluon 都能够实现 >10% 的平均损失改进(例如:从 90% 准确率提升到 91% 准确率,损失改进为 10%)。AutoGluon 1.0 在 63% 的任务中获得第一名,lightautoml 以 12% 排名第二(AutoGluon 0.8 之前获得第一名的比例为 48%)。AutoGluon 1.0 甚至比 AutoGluon 0.8 平均损失改进了 7.4%!

方法

AG 胜率

AG 损失改进

重新缩放损失

排名

冠军

AutoGluon 1.0 (最佳, 4h8c)

-

-

0.04

1.95

63%

lightautoml (2023, 4h8c)

84%

12.0%

0.2

4.78

12%

H2OAutoML (2023, 4h8c)

94%

10.8%

0.17

4.98

1%

FLAML (2023, 4h8c)

86%

16.7%

0.23

5.29

5%

MLJAR (2023, 4h8c)

82%

23.0%

0.33

5.53

6%

autosklearn (2023, 4h8c)

91%

12.5%

0.22

6.07

4%

GAMA (2023, 4h8c)

86%

15.4%

0.28

6.13

5%

CatBoost (2023, 4h8c)

95%

18.2%

0.28

6.89

3%

TPOT (2023, 4h8c)

91%

23.1%

0.4

8.15

1%

LightGBM (2023, 4h8c)

99%

23.6%

0.4

8.95

0%

XGBoost (2023, 4h8c)

100%

24.1%

0.43

9.5

0%

RandomForest (2023, 4h8c)

97%

25.1%

0.53

9.78

1%

AutoGluon 1.0 不仅更准确,而且由于在低内存训练期间新使用了 Ray 子进程,也更加稳定,在 AutoML 基准测试中实现了 0 次任务失败

AutoGluon 1.0 能够实现所有 AutoML 系统中最快的推理吞吐量,同时仍获得最先进的结果。通过指定 infer_limit fit 参数,用户可以在准确性和推理速度之间进行权衡,以满足他们的需求。

如下图所示,AutoGluon 1.0 为质量和推理吞吐量设定了帕累托前沿,与其他所有 AutoML 系统相比,实现了帕累托优势。AutoGluon 1.0 High 性能优于 AutoGluon 0.8 Best,推理速度快 8 倍,磁盘使用量少 8 倍!

AutoGluon 1.0 AutoML Benchmark Plot

您可以在此处获取更多结果详情。

我们很高兴看到用户能通过 AutoGluon 1.0 增强的性能实现什么成果。一如既往,我们将在未来的版本中继续改进 AutoGluon,为所有人推动 AutoML 的边界。

AutoGluon 多模态 (AutoMM) 亮点图解

AutoMM highlights

AutoMM 的独特性

AutoGluon 多模态 (AutoMM) 将自身与其他开源 AutoML 工具箱区分开来,例如 AutosSklearnLightAutoMLH2OAutoMLFLAMLMLJARTPOTGAMA,这些工具主要专注于表格数据的分类或回归。AutoMM 旨在对跨多种模态(图像、文本、表格和文档,可单独或组合使用)的基础模型进行微调。它为分类、回归、对象检测、命名实体识别、语义匹配和图像分割等任务提供了广泛的功能。相比之下,其他 AutoML 系统通常对图像或文本的支持有限,通常只使用少数预训练模型(如 EfficientNet)或手工设计的规则(如 词袋模型)作为特征提取器。它们通常依赖于传统模型或简单的神经网络。AutoMM 提供了一种独特且全面的 AutoML 方法,是唯一支持灵活多模态和广泛任务的 AutoML 系统。下表详细比较了对各种数据模态、任务和模型类型的支持情况。

数据

任务

模型

图像

文本

表格

文档

任意组合

分类

回归

对象检测

语义匹配

命名实体识别

图像分割

传统模型

深度学习模型

基础模型

LightAutoML

H2OAutoML

FLAML

MLJAR

AutoSklearn

GAMA

TPOT

AutoMM

特别感谢

我们想通过感谢 Pieter Gijsbers, Sébastien Poirier, Erin LeDell, Joaquin Vanschoren 以及其他 AutoML 基准测试作者来结束本次亮点介绍,感谢他们在提供共享和广泛的基准测试以监控 AutoML 领域进展方面发挥的关键作用。他们的支持对 AutoGluon 项目的持续增长至关重要。

我们还要感谢 Frank Hutter,他持续在 AutoML 领域保持领导地位,组织了 2022 年和 2023 年的 AutoML 会议,将社区聚集在一起分享想法并达成引人入胜的愿景。

最后,我们要感谢 Alex Smola 和 Mu Li 在 Amazon 倡导开源软件,使这个项目成为可能。

额外特别鸣谢

一般

亮点

其他增强功能

依赖项更新

表格数据

亮点

AutoGluon 1.0 带来了预测质量的重大增强,在表格建模领域建立了新的最先进水平。有关更多详情,请参阅上面的亮点部分!

新功能

性能改进

其他增强功能

Bug 修复 / 代码和文档改进

AutoMM

AutoGluon 多模态 (AutoMM) 旨在仅用三行代码简化基础模型在下游应用中的微调。它与流行的模型库(如 HuggingFace TransformersTIMMMMDetection)无缝集成,支持广泛的数据模态,包括图像、文本、表格和文档数据,无论单独使用还是组合使用。

新功能

性能改进

  • 改进了默认图像骨干网络,在图像基准测试中实现了 100% 的胜率。 @taoyang1122 (#3738)

  • 将 MLP 替换为 FT-Transformer 作为默认表格骨干网络,在文本+表格基准测试中实现了 67% 的胜率。 @taoyang1122 (#3732)

  • 同时使用改进的默认图像骨干网络和 FT-Transformer 在文本+表格+图像基准测试中实现了 62% 的胜率。 @taoyang1122 (#3732, #3738)

稳定性增强

可用性增强

可扩展性改进

  • 新学习器类设计的引入促进了 AutoMM 中对新任务和数据模态更轻松的支持,增强了整体可扩展性。 @zhiqiangdon (#3650, #3685, #3735)

其他增强功能

代码改进

Bug 修复/文档改进

时间序列

亮点

AutoGluon 1.0 包含了时间序列模块的众多可用性和性能改进。这些改进包括自动处理缺失数据和不规则时间序列、新的预测指标(包括自定义指标支持)、高级时间序列交叉验证选项以及新的预测模型。AutoGluon 在预测准确性方面取得了最先进的结果,与其他流行的预测框架相比,胜率达到 70%+

新特性

  • 支持自定义预测指标 @shchur (#3760, #3602)

  • 新的预测指标 WAPE, RMSSE, SQL + 改进的指标文档 @melopeo @shchur (#3747, #3632, #3510, #3490)

  • 鲁棒性增强:TimeSeriesPredictor 现在可以处理包含所有 pandas 频率、不规则时间戳或用 NaN 表示缺失值的数据 @shchur (#3563, #3454)

  • 新模型:基于共形预测的间歇性需求预测模型(ADIDACrostonClassicCrostonOptimizedCrostonSBAIMAPA);来自 GluonTS 的 WaveNetNPTS;新的基线模型(AverageSeasonalAverageZero@canerturkmen @shchur (#3706, #3742, #3606, #3459)

  • 高级交叉验证选项:使用 refit_every_n_windows 避免为每个验证窗口重新训练模型,或使用 val_step_size 参数调整验证窗口之间的步长,应用于 TimeSeriesPredictor.fit @shchur (#3704, #3537)

增强功能

  • 为深度学习预测模型启用 Ray Tune @canerturkmen (#3705)

  • 支持将多个评估指标传递给 TimeSeriesPredictor.evaluate @shchur (#3646)

  • 静态特征现在可以直接传递给 TimeSeriesDataFrame.from_pathTimeSeriesDataFrame.from_data_frame 构造函数 @shchur (#3635)

性能改进

  • 由于新的预设和更新的模型训练时间分配逻辑,在低时间限制下实现了更准确的预测 @shchur (#3749, #3657, #3741)

  • DirectTabularRecursiveTabular 模型的训练和预测更快 + 内存使用更少 (#3740, #3620, #3559)

  • 为 GluonTS 模型启用早期停止并提高推理速度 @shchur (#3575)

  • 通过将导入语句移到模型类内部来减少 autogluon.timeseries 的导入时间 (#3514)

Bug 修复 / 代码和文档改进

EDA

EDA 模块将在稍后发布,因为在准备好发布 1.0 版本之前还需要额外的开发工作。当 EDA 准备好发布时,我们将发布公告。目前,请继续使用 "autogluon.eda==0.8.2"

已弃用

一般

  • autogluon.core.spaces 已弃用。请改用 autogluon.common.spaces @Innixma (#3701)

表格数据

如果使用已弃用的方法,Tabular 将记录警告。计划在 AutoGluon 1.2 中删除已弃用的方法 @Innixma (#3701)

  • autogluon.tabular.TabularPredictor

    • predictor.get_model_names() -> predictor.model_names()

    • predictor.get_model_names_persisted() -> predictor.model_names(persisted=True)

    • predictor.compile_models() -> predictor.compile()

    • predictor.persist_models() -> predictor.persist()

    • predictor.unpersist_models() -> predictor.unpersist()

    • predictor.get_model_best() -> predictor.model_best

    • predictor.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()

    • predictor.leaderboard()silent 参数已弃用,替换为 display,默认为 False

      • 同样适用于 predictor.evaluate()predictor.evaluate_predictions()

AutoMM

  • 已弃用 FewShotSVMPredictor,转而使用新的 few_shot_classification 问题类型 @zhiqiangdon (#3699)

  • 已弃用 AutoMMPredictor,转而使用 MultiModalPredictor @zhiqiangdon (#3650)

  • autogluon.multimodal.MultiModalPredictor

时间序列

  • autogluon.timeseries.TimeSeriesPredictor

    • 已弃用参数 TimeSeriesPredictor(ignore_time_index: bool)。现在,如果数据包含不规则时间戳,可以使用 data = data.convert_frequency(freq) 将其转换为规则频率,或者在创建预测器时提供频率,例如 TimeSeriesPredictor(freq=freq)

    • predictor.evaluate() 现在返回一个字典(以前返回浮点数)

    • predictor.score() -> predictor.evaluate()

    • predictor.get_model_names() -> predictor.model_names()

    • predictor.get_model_best() -> predictor.model_best

    • 指标 "mean_wQuantileLoss" 已更名为 "WQL"

    • predictor.leaderboard()silent 参数已弃用,替换为 display,默认为 False

    • predictor.fit() 中将 hyperparameters 设置为字符串时,支持的值现在是 "default""light""very_light"

  • autogluon.timeseries.TimeSeriesDataFrame

    • df.to_regular_index() -> df.convert_frequency()

    • 已弃用方法 df.get_reindexed_view()。有关如何处理不规则时间戳的信息,请参阅上面 TimeSeriesPredictorignore_time_index 的弃用说明。

  • 模型

    • 所有基于 MXNet 的模型(DeepARMXNetMQCNNMXNetMQRNNMXNetSimpleFeedForwardMXNetTemporalFusionTransformerMXNetTransformerMXNet)均已移除

    • Statmodels 中的统计模型(ARIMAThetaETS)已被 StatsForecast 中的对应模型取代(#3513)。请注意,这些模型现在的超参数名称不同。

    • DirectTabular 现在使用 mlforecast 后端实现(与 RecursiveTabular 相同),模型的多数超参数名称已更改。

  • autogluon.timeseries.TimeSeriesEvaluator 已弃用。请改用 autogluon.timeseries.metrics 中提供的指标。

  • autogluon.timeseries.splitter.MultiWindowSplitterautogluon.timeseries.splitter.LastWindowSplitter 已弃用。请改用 TimeSeriesPredictor.fitnum_val_windowsval_step_size 参数(或者,使用 autogluon.timeseries.splitter.ExpandingWindowSplitter)。

论文

AutoGluon-TimeSeries:用于概率时间序列预测的 AutoML

我们在 2023 年 AutoML 会议上发表了一篇关于 AutoGluon-TimeSeries 的论文(论文链接YouTube 视频)。在论文中,我们对 AutoGluon 和流行的开源预测框架(包括 DeepAR、TFT、AutoARIMA、AutoETS、AutoPyTorch)进行了基准测试。AutoGluon 在点预测和概率预测方面取得了 SOTA 结果,甚至对事后看来最佳的模型组合也达到了 65% 的胜率

TabRepo:表格模型评估的大规模仓库及其 AutoML 应用

我们在 arXiv 上发表了一篇关于表格 Zeroshot-HPO 集成模拟的论文(论文链接GitHub)。这篇论文是实现 AutoGluon 1.0 性能改进的关键,我们计划继续开发代码库以支持未来的增强功能。

XTab:表格 Transformer 的跨表预训练

我们在 ICML 2023 发表了一篇关于表格 Transformer 预训练的论文(论文链接GitHub)。在论文中,我们展示了表格深度学习模型的最新性能,包括能够媲美 XGBoost 和 LightGBM 模型的性能。尽管预训练的 Transformer 尚未集成到 AutoGluon 中,但我们计划在未来的版本中集成它。

在特征空间中学习多模态数据增强

我们关于学习多模态数据增强的论文已被 ICLR 2023 接受(论文链接GitHub)。这篇论文引入了一个即插即用模块,用于在特征空间中学习多模态数据增强,对模态的身份或模态之间的关系没有任何约束。我们展示了它可以 (1) 提高多模态深度学习架构的性能,(2) 应用于以前未考虑过的模态组合,以及 (3) 在包含图像、文本和表格数据的各种应用中取得最新成果。这项工作尚未集成到 AutoGluon 中,但我们计划在未来的版本中集成它。

通过可控扩散模型进行目标检测数据增强

我们关于生成式目标检测数据增强的论文已被 WACV 2024 接受(论文和 GitHub 链接即将提供)。这篇论文提出了一种基于可控扩散模型和 CLIP 的数据增强流程,通过视觉先验生成来引导生成,并使用类别校准的 CLIP 分数进行后过滤以控制其质量。我们证明,在使用我们的增强流程与不同检测器时,各种任务和设置的性能都得到了提升。尽管扩散模型目前尚未集成到 AutoGluon 中,但我们计划在未来的版本中集成这些数据增强技术。

调整图像基础模型以进行视频理解

我们在 ICLR 2023 发表了一篇关于如何高效地调整图像基础模型以进行视频理解的论文(论文链接GitHub)。这篇论文引入了空间适应、时间适应和联合适应,以逐步为冻结的图像模型配备时空推理能力。所提出的方法在训练成本方面大大节省了大型基础模型,同时取得了与传统完全微调相当甚至更好的性能。

v0.8.3

版本 0.8.3

v0.8.3 是一个补丁版本,用于解决安全漏洞。

在此处查看完整的提交更改日志:https://github.com/autogluon/autogluon/compare/v0.8.2…v0.8.3

此版本支持 Python 3.8、3.9 和 3.10 版本。

更改

  • transformers 和其他包版本升级 + 一些修复。@suzhoum (#4155)

v0.8.2

版本 0.8.2

v0.8.2 是一个热修复版本,用于固定 pydantic 版本,以避免在 HPO 期间崩溃。

与往常一样,只能使用原始训练模型所使用的 AutoGluon 版本加载之前训练的模型。不支持加载在不同版本的 AutoGluon 中训练的模型。

在此处查看完整的提交更改日志:https://github.com/autogluon/autogluon/compare/v0.8.1…v0.8.2

此版本支持 Python 3.8、3.9 和 3.10 版本。

更改

v0.8.1

版本 0.8.1

v0.8.1 是一个错误修复版本。

与往常一样,只能使用原始训练模型所使用的 AutoGluon 版本加载之前训练的模型。不支持加载在不同版本的 AutoGluon 中训练的模型。

在此处查看完整的提交更改日志:https://github.com/autogluon/autogluon/compare/v0.8.0…v0.8.1

此版本支持 Python 3.8、3.9 和 3.10 版本。

更改

文档改进

错误修复 / 通用改进

v0.8.0

版本 0.8.0

我们很高兴地宣布 AutoGluon 0.8 版本发布。

注意:不支持加载在不同版本的 AutoGluon 中训练的模型。

此版本包含了来自 20 位贡献者的 196 次提交!

在此处查看完整的提交更改日志:https://github.com/autogluon/autogluon/compare/0.7.0…0.8.0

特别感谢 @geoalgo 在生成此版本中实验性的表格 Zeroshot-HPO 组合方面的合作!

完整贡献者列表(按提交数量排序)

@shchur, @Innixma, @yinweisu, @gradientsky, @FANGAreNotGnu, @zhiqiangdon, @gidler, @liangfu, @tonyhoo, @cheungdaven, @cnpgs, @giswqs, @suzhoum, @yongxinw, @isunli, @jjaeyeon, @xiaochenbin9527, @yzhliu, @jsharpna, @sxjscience

AutoGluon 0.8 支持 Python 3.8、3.9 和 3.10 版本。

更改

亮点

  • AutoGluon TimeSeries 引入了几项重大改进,包括新模型、提升预测准确性的升级预设,以及加速训练和推理的优化。

  • AutoGluon Tabular 现在支持**在二元分类中校准决策阈值**(API),这大大改善了像 f1balanced_accuracy 等指标。例如,f1 分数从 0.70 提高到 0.73 并不罕见。我们**强烈**鼓励所有使用这些指标的用户尝试新的决策阈值校准逻辑。

  • AutoGluon MultiModal 引入了两项新功能:1)**PDF 文档分类**,以及 2)**开放词汇目标检测**。

  • AutoGluon MultiModal 升级了目标检测的预设,现在提供 medium_qualityhigh_qualitybest_quality 选项。实证结果表明,使用相同的预设,mAP(平均精度均值)指标相对提高了约 20%。

  • AutoGluon Tabular 添加了实验性的 **Zeroshot HPO 配置**,该配置在行数小于 10000 的小型数据集上表现良好,前提是提供至少一小时的训练时间(相对于 best_quality 胜率约为 60%)。要尝试此功能,在调用 fit() 时指定 presets="experimental_zeroshot_hpo_hybrid"

  • AutoGluon EDA 添加了对**异常检测**和**偏依赖图**的支持。

  • AutoGluon Tabular 已添加对 **TabPFN** 的实验性支持,TabPFN 是一种预训练的表格 Transformer 模型。通过 pip install autogluon.tabular[all,tabpfn] 进行尝试(超参数键为“TABPFN”)!

一般

多模态

AutoGluon MultiModal(也称为 AutoMM)引入了两项新功能:1)PDF 文档分类,以及 2)开放词汇目标检测。此外,我们升级了目标检测的预设,现在提供 medium_qualityhigh_qualitybest_quality 选项。实证结果表明,使用相同的预设,mAP(平均精度均值)指标相对提高了约 20%。

新功能

性能改进

  • 将检测引擎从 mmdet 2.x 升级到 mmdet 3.x,并升级我们的预设 @FANGAreNotGnu (#3262)

    • medium_quality: yolo-s -> yolox-l

    • high_quality: yolox-l -> DINO-Res50

    • best_quality: yolox-x -> DINO-Swin_l

  • 使用 deepspeed 策略加速融合模型训练。@liangfu (#2932)

  • 启用检测骨干网络冻结,以提高微调速度并节省 GPU 使用量 @FANGAreNotGnu (#3220)

其他增强功能

Bug 修复 / 代码和文档改进

表格数据

新功能

  • 添加了 calibrate_decision_threshold教程),它允许优化给定指标的决策阈值以显着提高指标分数。@Innixma (#3298)

  • 我们添加了一个实验性的 Zeroshot HPO 配置,当提供至少一小时的训练时间时,该配置在行数小于 10000 的小型数据集上表现良好。要尝试此功能,在调用 fit() 时指定 presets="experimental_zeroshot_hpo_hybrid" @Innixma @geoalgo (#3312)

  • TabPFN 模型现在作为实验模型受到支持。当推理速度不是问题且训练数据行数小于 10,000 时,TabPFN 是一个可行的模型选项。通过 pip install autogluon.tabular[all,tabpfn] 尝试一下!(超参数键是“TABPFN”)! @Innixma (#3270)

  • 对分布式训练的后端支持,这将随下一个 Cloud 模块版本一起提供。@yinweisu (#3054, #3110, #3115, #3131, #3142, #3179, #3216)

性能改进

其他增强功能

Bug 修复 / 代码和文档改进

时间序列

在 v0.8 版本中,我们对 Time Series 模块引入了几项重大改进,包括新模型、提升预测准确性的升级预设,以及加速训练和推理的优化。

亮点

  • 新模型:来自 GluonTS 的 PatchTSTDLinear,以及基于与 mlforecast 库集成的 RecursiveTabular @shchur (#3177, #3184, #3230)

  • 由于更新的预设,准确性提高且总训练时间缩短 @shchur (#3281, #3120)

  • AutoARIMAAutoETSThetaDirectTabularWeightedEnsemble 模型的训练和推理速度提高了 3-6 倍 @shchur (#3062, #3214, #3252)

新功能

  • 由于预测缓存,重复调用 predict()leaderboard()evaluate() 的速度大大加快 @shchur (#3237)

  • 使用 fit()num_val_windows 参数,通过使用多个验证窗口来减少过拟合 @shchur (#3080)

  • 使用 fit()excluded_model_types 参数,从预设中排除某些模型 @shchur (#3231)

  • 新方法 refit_full(),用于在组合训练和验证数据上重新拟合模型 @shchur (#3157)

  • hyperparameters 参数中提供列表,以训练同一模型的多个配置 @shchur (#3183)

  • time_limit 设置的时间限制现在所有模型都会遵守 @shchur (#3214)

增强功能

  • DirectTabular 模型(以前称为 AutoGluonTabular)的改进:更快的特征化,如果 eval_metric 设置为 "mean_wQuantileLoss",则训练为分位数回归模型 @shchur (#2973, #3211)

  • 计算 MASE 指标时使用正确的季节周期 @shchur (#2970)

  • 从磁盘加载 TimeSeriesPredictor 时检查 AutoGluon 版本 @shchur (#3233)

次要改进 / 文档 / 错误修复

探索性数据分析 (EDA) 工具

在 0.8 版本中,我们引入了一些新工具,帮助进行数据探索和特征工程。

  • **异常检测** @gradientsky (#3124, #3137) - 有助于识别数据中显著偏离常规的异常模式或行为。它最适用于查找异常值、罕见事件或可疑活动,这些可能预示着欺诈、缺陷或系统故障。查看 异常检测教程 以探索此功能。

  • **偏依赖图** @gradientsky (#3071, #3079) - 可视化特征与模型输出之间对于数据集中每个独立实例的关系。双向变体可以可视化任意两个特征之间的潜在交互。详情请参阅此教程:使用交互图了解数据信息

Bug 修复 / 代码和文档改进