版本 0.4.0¶
我们很高兴地宣布 AutoGluon 0.4 版本发布。0.4 版本对表格数据和文本模块进行了重大增强,同时还包含了许多提升用户体验的改进和修复。
从 v0.3.1 升级到此版本是非破坏性的。请务必记住,只能使用训练模型的 AutoGluon 版本来加载之前训练过的模型。不支持加载在不同 AutoGluon 版本中训练的模型。
此版本包含来自 14 位贡献者的 151 次提交!
查看完整的提交变更日志:https://github.com/autogluon/autogluon/compare/v0.3.1…v0.4.0
特别感谢 @zhiqiangdon、@willsmithorg、@DolanTheMFWizard、@truebluejason、@killerSwitch 和 @Xilorole,他们是此版本 AutoGluon 的首次贡献者!
完整贡献者列表(按提交次数排序)
@Innixma, @yinweisu, @gradientsky, @zhiqiangdon, @jwmueller, @willsmithorg, @sxjscience, @DolanTheMFWizard, @truebluejason, @taesup-aws, @Xilorole, @mseeger, @killerSwitch, @rschmucker
此版本支持 Python 3.7 到 3.9 版本。
变更¶
通用¶
AutoGluon 现在支持 Windows 操作系统! Windows 上支持 CPU 和 GPU。
AutoGluon 现在支持 Python 3.9。不再支持 Python 3.6。
AutoGluon 已将所有深度学习模型从 MXNet 迁移到 PyTorch,从而带来了大幅度的速度提升。
新教程展示了使用 AWS SageMaker 和 Lambda 进行云端训练和部署。
文本¶
AutoGluon-Text 已使用 PyTorch Lightning 进行重构。它现在支持 huggingface/transformers 中的骨干网络。新版本具有更好的性能、更快的训练时间和更快的推理速度。此外,AutoGluon-Text 现在支持解决多语言问题,并已实现一个新的 AutoMMPredictor
用于自动构建多模态深度学习模型。
更好的性能
与 AutoGluon 0.3 中的 TextPredictor 相比,AutoGluon 0.4 中的 TextPredictor 在 NeurIPS 2021 发表的多模态文本-表格基准测试中拥有 72.22% 的胜率。如果我们使用
presets="high_quality"
,由于采用了 DeBERTa-v3 骨干网络,胜率提高到 77.8%。此外,我们重新提交了结果至 MachineHack: 产品情感分析、“MachineHack: 图书价格预测” 和 “Kaggle: Mercari 价格建议”。只需三行代码,AutoGluon 0.4 就能在这些竞赛中取得前茅(分别是第 1、2、2 名)。AutoGluon 0.4 取得的结果也始终优于 AutoGluon 0.3 取得的结果。
更快的速度
新版本在训练方面提速约 ~2.88 倍,在推理方面提速约 ~1.40 倍。使用 g4dn.12x 实例,该模型在使用 4 个 GPU 时可以额外提速 2.26 倍。
多语言支持
AutoGluon-Text 现在支持通过跨语言迁移解决多语言问题(教程)。通过设置
presets="multilingual"
来触发此功能。您现在可以在英语数据集上训练模型,然后直接将模型应用于其他语言的数据集,如德语、日语、意大利语等。
用于多模态问题的 AutoMMPredictor
支持实验性的 AutoMMPredictor,它支持 timm 中的融合图像骨干、huggingface/transformers 中的文本骨干以及 CLIP 等多模态骨干(教程)。它可能比集成 ImagePredictor + TextPredictor 的效果更好。
其他功能
支持从现有检查点进行持续训练。加载之前训练好的模型后,您可以再次调用
.fit()
。
感谢 @zhiqiangdon 和 @sxjscience 贡献了 AutoGluon-Text 的重构! (#1537, #1547, #1557, #1565, #1571, #1574, #1578, #1579, #1581, #1585, #1586)
表格数据¶
AutoGluon-Tabular 在 0.4 版本中通过大量优化得到了显著增强。总的来说,这些改进带来了
在 Good、High 和 Best 质量预设下,训练速度提升约 ~2 倍。
推理速度提升约 ~1.3 倍。
相对于 AutoGluon 0.3.1,胜率达到 63%(结果来自 AutoMLBenchmark)。
在数据行数 >= 100,000 的数据集上,相对于 AutoGluon 0.3.1,胜率高达 93% (!!!)。
具体更新
添加了
infer_limit
和infer_limit_batch_size
作为新的训练时间约束(教程)。这允许用户指定最终模型期望的端到端推理延迟,AutoGluon 将自动训练模型以满足该约束。这对于需要满足端到端延迟约束(例如 50 毫秒)的在线推理场景非常有用。@Innixma (#1541, #1584)在 TabularPredictor 中实现了自动化的半监督和转导学习。通过
TabularPredictor.fit_pseudolabel(...)
试试吧!@DolanTheMFWizard (#1323, #1382)在 TabularPredictor 中实现了自动化的特征修剪(即特征选择)。通过
TabularPredictor.fit(..., feature_prune_kwargs={})
试试吧!@truebluejason (#1274, #1305)实现了自动化的模型校准,以改进 AutoGluon 在分类问题中的预测概率。此功能默认启用,可通过
calibrate
训练参数进行切换。@DolanTheMFWizard (#1336, #1374, #1502)通过 Ray 实现了并行打包训练。这使得在启用打包时,相比于 v0.3.1 在相同硬件上,训练速度提升了约 2 倍,原因是对于无法有效利用所有核心的模型,资源使用效率更高了。@yinweisu (#1329, #1415, #1417, #1423)
在分位数回归中添加了自动模型校准。@taesup-aws (#1388)
增强了日期时间特征处理。@willsmithorg (#1446)
添加了对特征重要性中自定义置信水平的支持。@jwmueller (#1328)
改进了神经网络 HPO 搜索空间。@jwmueller (#1346)
重构了
refit_full
逻辑,以极大简化用户模型贡献,并通过高级预设改进多模态支持。@Innixma (#1567)添加了实验性的 TabularPredictor 配置助手。@gradientsky (#1491)
新教程
表格模型¶
新增:TabularNeuralNetTorchModel(别名:‘NN_TORCH’)¶
作为从 MXNet 迁移到 Torch 的一部分,我们创建了一个基于 Torch 的模型,作为之前 MXNet 表格神经网络模型的对应物。此模型有几个主要优点,例如
训练速度快 1.9 倍
推理速度快 4.7 倍
相对于 MXNet 表格神经网络,胜率达到 51%
在默认的超参数配置中,此模型已取代 MXNet 表格神经网络模型,并默认启用。
感谢 @jwmueller 和 @Innixma 为 AutoGluon 贡献了 TabularNeuralNetTorchModel! (#1489)
新增:VowpalWabbitModel(别名:‘VW’)¶
VowpalWabbit 已作为 AutoGluon 中的新模型添加。VowpalWabbit 默认不安装,必须单独安装。VowpalWabbit 在 hyperparameters='multimodal'
预设中使用,对于包含文本特征的数据集,该模型是一个很好的选择。
要安装 VowpalWabbit,请通过 pip install autogluon.tabular[all, vowpalwabbit]
或 pip install "vowpalwabbit>=8.10,<8.11"
指定。
感谢 @killerSwitch 为 AutoGluon 贡献了 VowpalWabbitModel! (#1422)
XGBoostModel(别名:‘XGB’)¶
CatBoostModel(别名:‘CAT’)¶
LightGBMModel(别名:‘GBM’)¶
FastAIModel(别名:‘FASTAI’)¶
LinearModel(别名:‘LR’)¶
线性模型通过一系列优化,训练速度提升了 20 倍,推理速度提升了 20 倍。要获得加速的训练速度,请通过 pip install "scikit-learn-intelex>=2021.5,<2021.6"
安装 scikit-learn-intelex。
请注意,LinearModel 目前在 AutoGluon 中默认未启用,必须通过 'LR'
键在 hyperparameters
中指定。未来的版本计划通过进一步测试将 LinearModel 作为默认模型。
感谢 scikit-learn-intelex
团队和 @Innixma 对 LinearModel 的优化! (#1378)
视觉¶
其他¶
AutoGluon 不再依赖 ConfigSpace、cython、dill、paramiko、autograd、openml、d8 和 graphviz。这极大地简化了 AutoGluon 的安装,尤其是在 Windows 上。
完全重构了 HPO 逻辑,以打破对 ConfigSpace 的依赖,并提高稳定性和开发便利性。@Innixma 在此版本中将 HPO 简化为使用随机搜索,同时我们正在努力在未来的版本中重新引入更高级的 HPO 方法(如贝叶斯优化)。此外,删除了 40,000 行过时代码,以简化未来的开发。@Innixma (#1397, #1411, #1414, #1431, #1443, #1511)
作为代码清理的一部分,移除了
autogluon.mxnet
和autogluon.extra
子模块。@Innixma (#1397, #1411, #1414)修复了 Kaggle 上的日志输出问题,之前在 Kaggle kernel 中训练 AutoGluon 时不会显示日志。@Innixma (#1468)
添加了针对 Linux、MacOS 和 Windows 的平台测试。@yinweisu (#1464, #1506, #1513)
添加了 ROADMAP.md,向社区突出显示过去、现在和未来的功能优先级和进展。@Innixma (#1420)
各种文档和 CI 改进
各种后端增强 / 重构 / 清理
各种 bug 修复