版本 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,并添加了弃用警告。
新功能¶
目标检测
添加新的问题类型
"object_detection"
。用户可以使用预训练的目标检测模型进行推理,并用三行代码训练自己的模型。
与 open-mmlab/mmdetection 集成,支持 Faster RCNN 等经典检测架构,以及 YOLOV3 和 VFNet 等更高效、更高性能的架构。
贡献者和提交:@FANGAreNotGnu, @bryanyzhu, @zhiqiangdon, @yongxinw, @sxjscience, @Harry-zzh (#2025, #2061, #2131, #2181, #2196, #2215, #2244, #2265, #2290, #2311, #2312, #2337, #2349, #2353, #2360, #2362, #2365, #2380, #2381, #2391, #2393, #2400, #2419, #2421, #2063, #2104, #2411)
命名实体识别
多模态匹配
添加新的问题类型
"text_similarity"
、"image_similarity"
、"image_text_similarity"
。用户现在可以使用预训练模型提取文本-文本、图像-图像和文本-图像匹配问题的语义嵌入。
此外,用户可以使用相关性数据进一步微调这些模型。
语义文本嵌入模型还可以与 BM25 结合,形成混合索引解决方案。
在内部,AutoGluon 多模态实现了双塔架构,该架构在为每个塔选择主干网络方面非常灵活。它支持 TIMM 中的图像主干网络、huggingface/transformers 中的文本主干网络以及 CLIP 主干网络。
更多详细信息请参阅教程。
贡献者和提交:@zhiqiangdon @FANGAreNotGnu @cheungdaven @suzhoum @sxjscience @bryanyzhu (#1975, #1994, #2142, #2179, #2186, #2217, #2235, #2284, #2297, #2313, #2326, #2337, #2347, #2357, #2358, #2362, #2363, #2375, #2378, #2404, #2416, #2407, #2417)
其他细微修复。@cheungdaven @FANGAreNotGnu @geoalgo @zhiqiangdon (#2402, #2409, #2026, #2401, #2418)
其他增强功能¶
修复 FT-Transformer 实现并支持 Fastformer。@BingzhaoZhu @yiqings (#1958, #2194, #2251, #2344, #2379, #2386)
通过改进的参数高效微调,支持在单个 AWS g4.2x-large 实例中微调十亿级 FLAN-T5-XL 模型。请参阅教程。@Raldir @sxjscience (#2032, #2108, #2285, #2336, #2352)
将多模态 HPO 升级到使用 ray 2.0,并添加新教程。@yinweisu @suzhoum @bryanyzhu (#2206, #2341)
进一步改进模型蒸馏。添加了示例和教程。@FANGAreNotGnu @sxjscience (#1983, #2064, #2397)
修订了用于图像分类问题的 AutoMM 默认预设。@bryanyzhu (#2351)
支持 autogluon.vision 中的 backend="automm"。@bryanyzhu (#2316)
向 autogluon.vision 和 autogluon.text 添加了弃用警告,并指示使用 autogluon.multimodal。@bryanyzhu @sxjscience (#2268, #2315)
关于Kaggle: Feedback Prize 预测竞赛的示例。我们使用 AutoGluon 多模态创建了一个解决方案,在公共排行榜中获得 152/1557 的成绩,在私人排行榜中获得 170/1557 的成绩,排名位于前 12% 的参赛者之中。该解决方案在比赛截止日期前几天公开,并获得了超过 3000 次浏览。@suzhoum @MountPOTATO (#2129, #2168, #2333)
提高原生推理速度。@zhiqiangdon (#2051, #2157, #2161, #2171)
其他改进、安全/bug 修复。@zhiqiangdon @sxjscience @FANGAreNotGnu, @yinweisu @Innixma @tonyhoo @martinschaef @giswqs @tonyhoo (#1980, #1987, #1989, #2003, #2080, #2018, #2039, #2058, #2101, #2102, #2125, #2135, #2136, #2140, #2141, #2152, #2164, #2166, #2192, #2219, #2250, #2257, #2280, #2308, #2315, #2317, #2321, #2356, #2388, #2392, #2413, #2414, #2417, #2426, #2028, #2382, #2415, #2193, #2213, #2230)
CI 改进。@yinweisu (#1965, #1966, #1972, #1991, #2002, #2029, #2137, #2151, #2156, #2163, #2191, #2214, #2369, #2113, #2118)
实验性功能¶
表格数据¶
新功能¶
新的实验性模型
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_gpus
和num_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)
其他增强功能¶
修复了调整 Random Forest、Extra Trees 或 KNN 时 HPO 崩溃的问题。@innixma (#2070)
imodels 集成改进。@Jalagarto (#2062)
修复了在 quantile_regression 中调用 feature importance 时崩溃的问题。@leloykun (#1977)
各类细微修复和清理。@innixma, @yinweisu, @gradientsky, @gidler (#1997, #2031, #2124, #2144, #2178, #2340, #2342, #2345, #2374, #2339, #2348, #2403, #1981, #1982, #2234, #2233, #2243, #2269, #2288, #2307, #2367, #2019)
时间序列¶
新功能¶
TimeSeriesPredictor
现在支持静态特征(也称时间序列元数据、静态协变量)和时变协变量(也称动态特征或相关时间序列)。@shchur @canerturkmen (#1986, #2238, #2276, #2287)AutoGluon-TimeSeries 现在默认使用 PyTorch(适用于
DeepAR
和SimpleFeedForward
),移除了对 MXNet 的依赖。@canerturkmen (#2074, #2205, #2279)新模型!
AutoGluonTabular
通过autogluon.tabular
模块在底层依赖于 XGBoost、LightGBM 和 CatBoost。Naive
和SeasonalNaive
预测器是简单的方法,可在不增加训练时间的情况下提供强大的基线。TemporalFusionTransformerMXNet
将 TFT Transformer 架构引入 AutoGluon。@shchur (#2106, #2188, #2258, #2266)对于
ETS
、ARIMA
和Theta
等统计(局部)预测模型以及WeightedEnsemble
,并行且内存高效的训练速度提高了多达 20 倍。@shchur @canerturkmen (#2001, #2033, #2040, #2067, #2072, #2073, #2180, #2293, #2305)使用数据缓存将 GluonTS 模型的训练速度提高了多达 3 倍。PyTorch 模型默认启用 GPU 训练。@shchur (#2323)
TimeSeriesPredictor
现在可以通过ignore_index
处理不规则采样的时间序列。@canerturkmen, @shchur (#1993, #2322)更新了
TimeSeriesEvaluator
,使预测评估速度提高了 15 倍,鲁棒性更强。@shchur (#2147, #2150)
更多教程和示例¶
改进的文档和新教程
更新了快速入门教程
新增!深入教程
新增!可用模型和超参数概览
更新了API 文档
其他¶
弃用将 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)