版本 0.6.0¶
我们很高兴宣布AutoGluon 0.6版本的发布。0.6版本包含了对Tabular、Multimodal和Time Series模块的重大增强,以及许多生活质量的改进和修复。
一如既往,仅使用与原始训练时相同版本的AutoGluon加载先前训练的模型。 不支持加载在不同版本的AutoGluon中训练的模型。
此版本包含263 次提交,来自 25 位贡献者!
查看完整的提交变更日志请访问: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 Multimodal(又称AutoMM)支持三个新功能:1) 目标检测,2) 命名实体识别,以及3) 多模态匹配。此外,AutoGluon Multimodal的HPO后端已升级至ray 2.0。它还支持在单个AWS g4.2x-large实例上微调十亿级FLAN-T5-XL模型,并改进了参数高效的微调。从0.6版本开始,我们建议使用autogluon.multimodal而不是autogluon.text或autogluon.vision,并添加了弃用警告。
新功能¶
Object Detection
添加新的问题类型
"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 Multimodal 实现了一种双塔架构,该架构在每个塔的骨干选择上非常灵活。它支持 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 Multimodal创建了一个解决方案,在公开排行榜上获得了152/1557的成绩,在私有排行榜上获得了170/1557的成绩,位列前12%的参与者。该解决方案在竞赛截止日期前几天公开,并获得了超过3000次浏览。@suzhoum @MountPOTATO (#2129, #2168, #2333)
提高本地推理速度。@zhiqiangdon (#2051, #2157, #2161, #2171)
其他改进、安全/错误修复。@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)
实验性功能¶
支持使用DeepSpeed进行110亿规模模型的微调。@Raldir (#2032)
启用11B规模模型的少样本学习。@Raldir (#2197)
ONNX 导出示例的 hf_text 模型。@FANGAreNotGnu (#2149)
Tabular¶
New features¶
新的实验模型
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)目前只有随机森林和额外树有编译支持。
您需要安装额外的依赖项才能使其工作:
pip install autogluon.tabular[all,skl2onnx]。编译模型在处理小批量样本(<10000)时显著加快了推理时间(约10倍)。
请注意,当前实现中存在一个已知的错误:在编译后重新拟合模型将会失败并导致崩溃。为了避免这种情况,请确保仅在最后调用
.compile_models。
添加了
predictor.clone(...)方法,以允许将预测器对象完美克隆到新目录中。 这在更改预测器之前保留其状态非常有用 (例如在调用.save_space、.distill、.compile_models或.refit_full之前)。@innixma (#2071)添加了简化的
num_gpus和num_cpus参数到predictor.fit以控制总资源。 @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)
添加了
fit_weighted_ensemble参数到predictor.fit。这允许用户禁用加权集成。 @innixma (#2145)添加了级联集成基础逻辑。@innixma (#1929)
Other Enhancements¶
使用
infer_limit时改进了日志的清晰度。@innixma (#2014)显著改进了XGBoost的HPO搜索空间。@innixma (#2123)
修复了在调优随机森林、额外树或KNN时HPO崩溃的问题。@innixma (#2070)
优化了roc_auc指标评分速度,提升了7倍。@innixma (#2318, #2331)
修复了AutoMM表格模型如果未最后训练时崩溃的错误。@innixma (#2309)
重构了
Scorer类,使其更易于使用,并为所有指标添加了全面的单元测试。@innixma (#2242)在预处理过程中,文本特殊特征生成速度提高了20% @gidler (#2095)
imodels 集成改进 @Jalagarto (#2062)
修复在分位数回归中调用特征重要性时崩溃的问题。@leloykun (#1977)
为缺失值插值添加FAQ部分。@innixma (#2076)
各种小修复和清理 @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)
Time Series¶
New features¶
TimeSeriesPredictor现在支持 静态特征(也称为时间序列元数据、静态协变量)和 ** 时变协变量**(也称为动态特征或相关时间序列)。@shchur @canerturkmen (#1986, #2238, #2276, #2287)AutoGluon-TimeSeries 现在默认使用 PyTorch(用于
DeepAR和SimpleFeedForward),移除了对 MXNet 的依赖。@canerturkmen (#2074, #2205, #2279)新模型!
AutoGluonTabular依赖于 XGBoost、LightGBM 和 CatBoost,通过autogluon.tabular模块实现。Naive和SeasonalNaive预测器是简单的方法,提供了强大的基线,且不会增加训练时间。TemporalFusionTransformerMXNet将 TFT 变压器架构引入 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)
通过多窗口回测对时间序列模型进行更准确的验证。@shchur (#2013, #2038)
TimeSeriesPredictor现在可以处理不规则采样的时间序列,使用ignore_index。@canerturkmen, @shchur (#1993, #2322)改进和扩展了预设,以实现更准确的预测。@shchur (#2304)
通过更新
TimeSeriesEvaluator@shchur (#2147, #2150),预测评估速度提高了15倍,并且更加稳健。启用了Ray Tune后端用于时间序列模型的超参数优化。@shchur (#2167, #2203)
More tutorials and examples¶
改进的文档和新教程:
@shchur (#2120, #2127, #2146, #2174, #2187, #2354)
Miscellaneous¶
@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
增加DeepAR在预测时使用的样本数量 (#2291)
将时间序列预设修改为最小上下文长度为10 (#2065)
修复时间序列每日频率推断周期 (#2100)
各种后端增强/重构/清理 (#2286, #2302, #2240, #2093, #2098, #2044, #2385, #2355, #2405)