版本 0.6.0

我们很高兴地宣布 AutoGluon 0.6 版本发布。0.6 版本包含了对表格、多模态和时间序列模块的重大增强,以及许多用户体验改进和修复。

一如既往,请仅使用训练模型时所用的 AutoGluon 版本加载之前训练好的模型。不支持加载在不同 AutoGluon 版本中训练的模型。

此版本包含 来自 25 位贡献者的 263 次提交

请在此查看完整的提交变更日志:https://github.com/autogluon/autogluon/compare/v0.5.2…v0.6.0

特别感谢 @cheungdaven@suzhoum@BingzhaoZhu@liangfu@Harry-zzh@gidler@yongxinw@martinschaef@giswqs@Jalagarto@geoalgo@lujiaying@leloykun,他们是 AutoGluon 在此版本中的首次贡献者!

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

@shchur, @yinweisu, @zhiqiangdon, @Innixma, @FANGAreNotGnu, @canerturkmen, @sxjscience, @gradientsky, @cheungdaven, @bryanyzhu, @suzhoum, @BingzhaoZhu, @yongxinw, @tonyhoo, @liangfu, @Harry-zzh, @Raldir, @gidler, @martinschaef, @giswqs, @Jalagarto, @geoalgo, @lujiaying, @leloykun, @yiqings

此版本支持 Python 3.7 至 3.9。这是最后一个支持 Python 3.7 的版本。

变更

AutoMM

AutoGluon 多模态(又称 AutoMM)支持三个新功能:1) 目标检测,2) 命名实体识别,以及 3) 多模态匹配。此外,AutoGluon 多模态的 HPO 后端已升级到 ray 2.0。它还支持在单个 AWS g4.2x-large 实例上,通过改进的参数高效微调来微调十亿级 FLAN-T5-XL 模型。从 0.6 版本开始,我们建议使用 autogluon.multimodal 而不是 autogluon.text 或 autogluon.vision,并添加了弃用警告。

新功能

其他增强功能

实验性功能

表格数据

新功能

  • 新的实验性模型 FT_TRANSFORMER@bingzhaozhu, @innixma (#2085, #2379, #2389, #2410)

    • 您可以通过在 hyperparameters 字典中指定 FT_TRANSFORMER 键或通过 presets="experimental_best_quality" 来访问它。

    • 建议使用 GPU 训练此模型,但也支持 CPU 训练。

    • 如果给予足够的训练时间,该模型通常能提高集成模型的质量。

  • 通过 predictor.compile_models() 支持新的实验性模型编译功能。@liangfu, @innixma (#2225, #2260, #2300)

    • 目前仅支持 Random Forest 和 Extra Trees 的编译。

    • 为使其正常工作,您需要安装额外的依赖项:pip install autogluon.tabular[all,skl2onnx]

    • 在处理少量样本(<10000)时,编译模型能显著加快推理速度(约 10 倍)。

    • 请注意,当前实现存在一个已知 bug:编译后重新拟合模型会失败并导致崩溃。为避免此问题,请确保仅在最后调用 .compile_models

  • 添加了 predictor.clone(...) 方法,以允许将预测器对象完美克隆到新目录。这对于在更改预测器(例如在调用 .save_space.distill.compile_models.refit_full 之前)之前保留其状态非常有用。@innixma (#2071)

  • predictor.fit 添加了简化的 num_gpusnum_cpus 参数来控制总资源。@yinweisu, @innixma (#2263)

  • 通过对 ray 使用方式进行各种重构,提高了 HPO 功能的稳定性和有效性。@yinweisu, @innixma (#1974, #1990, #2094, #2121, #2133, #2195, #2253, #2263, #2330)

  • 升级了依赖版本:XGBoost 1.7, CatBoost 1.1, Scikit-learn 1.1, Pandas 1.5, Scipy 1.9, Numpy 1.23。@innixma (#2373)

  • 在加载已拟合的 TabularPredictor 时添加了 Python 版本兼容性检查。现在如果 Python 版本不兼容将报错。@innixma (#2054)

  • predictor.fit 添加了 fit_weighted_ensemble 参数。这允许用户禁用加权集成。@innixma (#2145)

  • 添加了级联集成基础逻辑。@innixma (#1929)

其他增强功能

时间序列

新功能

  • TimeSeriesPredictor 现在支持静态特征(也称时间序列元数据、静态协变量)和时变协变量(也称动态特征或相关时间序列)。@shchur @canerturkmen (#1986, #2238, #2276, #2287)

  • AutoGluon-TimeSeries 现在默认使用 PyTorch(适用于 DeepARSimpleFeedForward),移除了对 MXNet 的依赖。@canerturkmen (#2074, #2205, #2279)

  • 新模型!AutoGluonTabular 通过 autogluon.tabular 模块在底层依赖于 XGBoost、LightGBM 和 CatBoost。NaiveSeasonalNaive 预测器是简单的方法,可在不增加训练时间的情况下提供强大的基线。TemporalFusionTransformerMXNet 将 TFT Transformer 架构引入 AutoGluon。@shchur (#2106, #2188, #2258, #2266)

  • 对于 ETSARIMATheta 等统计(局部)预测模型以及 WeightedEnsemble,并行且内存高效的训练速度提高了多达 20 倍。@shchur @canerturkmen (#2001, #2033, #2040, #2067, #2072, #2073, #2180, #2293, #2305)

  • 使用数据缓存将 GluonTS 模型的训练速度提高了多达 3 倍。PyTorch 模型默认启用 GPU 训练。@shchur (#2323)

  • 通过多窗口回测对时间序列模型进行更精确的验证。@shchur (#2013, #2038)

  • TimeSeriesPredictor 现在可以通过 ignore_index 处理不规则采样的时间序列。@canerturkmen, @shchur (#1993, #2322)

  • 改进和扩展了预设,以实现更精确的预测。@shchur (#2304)

  • 更新了 TimeSeriesEvaluator,使预测评估速度提高了 15 倍,鲁棒性更强。@shchur (#2147, #2150)

  • 为时间序列模型的超参数优化启用了 Ray Tune 后端。@shchur (#2167, #2203)

更多教程和示例

改进的文档和新教程

@shchur (#2120, #2127, #2146, #2174, #2187, #2354)

其他

@shchur

  • 弃用将 quantile_levels 传递给 TimeSeriesPredictor.predict (#2277)

  • 在 GluonTS 预测模型中使用静态特征 (#2238)

  • 确保时间序列分割器不会将训练序列截短至短于 prediction_length + 1 (#2099)

  • 修复了时间序列模型 HPO 中的超参数过载问题 (#2189)

  • 清理了 TimeSeriesDataFrame 公共 API (#2105)

  • 修复了 GluonTS 模型预测中的项目顺序问题 (#2092)

  • 实现了 hash_ts_dataframe_items (#2060)

  • 加速 TimeSeriesDataFrame.slice_by_timestep (#2020)

  • 加速 RandomForestQuantileRegressor 和 ExtraTreesQuantileRegressor (#2204)

  • 各类后端增强/重构/清理 (#2314, #2294, #2292, #2278, #1985, #2398)

@canerturkmen