资讯动态

AutoGluon 1.3.1 版本发布详解:Tabular、TimeSeries 与 Multimodal 关键修复与升级指南

发布时间:2026/9/15 22:28:09 来源:尧图企业网站定制
AutoGluon 1.3.1 版本发布详解Tabular、TimeSeries 与 Multimodal 关键修复与升级指南【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon本文基于 AutoGluon 官方发布说明docs/whats_new/v1.3.1.md整理并结合作者所在仓库的源码实现进行深度验证。1.3.1 是一个聚焦稳定性与正确性的补丁版本涵盖 Tabular、TimeSeries、Multimodal 三大核心模块的 Bug 修复、日志改进以及文档与 CI 更新。读完本文你将掌握本次版本每个修复点的具体影响、涉及的源码位置以及从 1.3.0 平滑升级到 1.3.1 时需要注意的兼容性事项。版本概览与升级须知AutoGluon 1.3.1 是 1.3 系列的首个补丁版本共包含来自 5 位贡献者的 9 个提交。该版本的核心目标是修复上一版本遗留的依赖与参数问题、改善日志与警告输出、消除潜在的隐蔽 Bug而不引入任何新的功能特性——这意味着对已在使用 1.3.0 的用户来说升级风险极低。版本与 Python 支持范围1.3.1 继续支持Python 3.8、3.9、3.10 和 3.11四个版本。需要特别强调的是官方发布说明中的一条重要约束Loading models trained on older versions of AutoGluon is not supported. Please re-train models using AutoGluon 1.3.1.即不支持加载旧版本 AutoGluon 训练出的模型。若你手中存在 1.3.0 之前训练并保存的模型如通过TabularPredictor.load()、TimeSeriesPredictor.load()等方式加载升级后必须使用 1.3.1 重新训练否则可能出现反序列化失败或推理结果异常。这一约束与仓库中持久化机制的设计有关——各模块的预测器在保存时都会记录版本元数据例如 Tabular 预测器会写入version.txt与metadata.json见 tabular/src/autogluon/tabular/predictor/predictor.py加载时会据此做兼容性判断。修复清单总览模块修复内容类型TabularTabPFN 依赖修复依赖/运行稳定性TabularTabularPredictor构造器中positive_class引用错误正确性TimeSeries集成ensemble权重打印格式日志输出TimeSeriesDirectTabular/RecursiveTabular的scaler参数被默认target_scaler遮蔽正确性/参数解析TimeSeriesleaderboard与evaluate方法中的FutureWarning兼容性警告Multimodal1.3 发布后的教程tutorial问题文档文档/CIwhats_new 发布说明粘贴流程、Docker 基础镜像更新工程化Tabular 模块修复从依赖到参数解析修复一TabPFN 依赖问题TabPFNTabular Prior-data Fitted Network是 AutoGluon Tabular 中的一种基于预训练 Transformer 的表型基础模型。本次修复PR #5119针对的是 TabPFN 依赖声明与导入方式的问题确保模型能够正确初始化与运行。在仓库源码中TabPFN 相关模型位于 tabular/src/autogluon/tabular/models/tabpfnv2/ 目录其核心实现 tabpfnv2_5_model.py 在_fit阶段动态导入tabpfn三方包from tabpfn import TabPFNClassifier, TabPFNRegressor is_classification self.problem_type in [binary, multiclass] model_base TabPFNClassifier if is_classification else TabPFNRegressor对应 tabular/src/autogluon/tabular/models/tabpfnv2/tabpfnv2_5_model.py#L183-L187而权重获取逻辑 _weight_fetch.py 中则依赖tabpfn.model_loading子模块import tabpfn.model_loading as model_loading对应 tabular/src/autogluon/tabular/models/tabpfnv2/_weight_fetch.py#L34这种对tabpfn不同子模块的依赖意味着当 TabPFN 上游包调整其内部结构或版本约束时AutoGluon 的导入路径可能失效。1.3.1 的修复即是对此类依赖问题的针对性调整使 TabPFN 系列模型包括TabPFNv2、TabPFNv3见 tabular/src/autogluon/tabular/models/tabpfnv2/tabpfn3_model.py 与 tabpfnv2_6_model.py在依赖就绪时能够稳定加载。对用户的影响若你在 1.3.0 上使用 TabPFN 模型时遇到导入错误或依赖冲突升级到 1.3.1 后应恢复正常同时请确保环境中安装的tabpfn版本与 AutoGluon 1.3.1 的依赖声明兼容。修复二TabularPredictor构造器中的positive_class引用错误positive_class参数用于指定二分类任务中的正类它直接影响依赖正负类方向的指标如f1的得分计算。1.3.0 中存在对该参数的错误引用导致该参数在特定路径下无法正确生效1.3.1 修复了这一问题PR #5129。从当前源码看TabularPredictor.__init__的完整参数链路如下构造器签名中正式声明positive_class: int | str | None None见 tabular/src/autogluon/tabular/predictor/predictor.py#L248当传入非None值时将其写入learner_kwargs转发给底层 Learner见 tabular/src/autogluon/tabular/predictor/predictor.py#L271-L272if positive_class is not None: learner_kwargs[positive_class] positive_class其默认推断规则在文档字符串中有明确说明见 tabular/src/autogluon/tabular/predictor/predictor.py#L198-L204若未显式设置将取排序后唯一类别中的第二个元素作为正类例如类别为[0, 1]时正类为1类别为[def, abc]时正类为def类别为[True, False]时正类为True。该参数在推理阶段同样被引用——例如当predict()只输出正类概率列时可通过predictor.positive_class属性获取当前正类名称见 predictor.py#L5225-L5235。使用建议在二分类场景中若你的评估指标f1、precision、recall等对正负类敏感建议显式指定positive_class避免依赖默认推断而产生歧义from autogluon.tabular import TabularPredictor predictor TabularPredictor( labeltarget, problem_typebinary, positive_classchurn, # 显式指定正类 ).fit(train_data)TimeSeries 模块修复三个易被忽略的细节修复一集成ensemble权重打印格式AutoGluon TimeSeries 在训练完成后会自动在多个模型之上构建加权集成ensemble。1.3.0 中当打印集成的模型权重时存在格式问题导致输出不可读或误导用户。1.3.1 修复了该打印逻辑PR #5132。从源码结构看时间序列预测器的训练与评估体系围绕TimeSeriesPredictortimeseries/src/autogluon/timeseries/predictor.py与底层TimeSeriesTrainertimeseries/src/autogluon/timeseries/trainer/trainer.py展开集成权重由训练器在fit收尾阶段计算并记录。本次修复属于纯日志/输出层面的正确性修复不影响权重计算的数学结果但对依赖日志排查集成构成如查看各子模型权重占比的用户更友好。修复二scaler参数不再被默认target_scaler遮蔽这是 1.3.1 中最具参数语义深度的一个修复PR #5131涉及DirectTabular与RecursiveTabular两类模型。背景这类基于 AutoGluon Tabular 的时间序列模型支持对目标序列做缩放scaling预处理用于稳定回归训练。在 1.3.x 中官方推荐参数名为target_scaler但历史上长期存在一个旧参数名scaler用于兼容。1.3.0 的实现缺陷在于当用户显式传入scaler时该值可能被默认的target_scaler取值遮蔽导致用户配置不生效。当前源码中的修复逻辑见 timeseries/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py#L187-L196做了两件事if target_scaler in model_params and scaler in model_params: warnings.warn( fBoth target_scaler and scaler hyperparameters are provided to {self.__class__.__name__}. Please only set the target_scaler parameter. ) # Support scaler for backward compatibility scaler_type model_params.get(target_scaler, model_params.get(scaler))冲突告警若同时传入target_scaler与scaler会发出明确警告提示用户仅使用官方参数target_scaler向后兼容通过model_params.get(target_scaler, model_params.get(scaler))的取值顺序保证scaler在target_scaler未显式设置时仍能生效且不再被默认值覆盖。对用户的影响如果你此前在DirectTabular或RecursiveTabular中通过旧参数scaler配置过目标缩放例如设置为StandardScaler升级到 1.3.1 后该配置会真正生效。官方建议新代码统一迁移到target_scaler参数同时注意若希望禁用缩放应显式设置target_scalerNone因为模型的默认超参数中存在非空的默认target_scaler值相关默认值定义于 timeseries/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py#L461 所列举的超参数键中。修复三leaderboard与evaluate方法中的FutureWarningleaderboard模型性能排行表与evaluate评估是时间序列预测最常用的两个接口。1.3.0 中这两个方法在内部实现中触发了FutureWarning警告通常源于底层依赖如 pandas 的弃用行为见 timeseries/src/autogluon/timeseries/metrics/abstract.py#L110 中对FutureWarning的分类使用虽然不影响结果正确性但会污染日志并干扰用户对真正告警的识别。1.3.1 修复了该警告来源PR #5126。leaderboard方法的完整调用链在源码中清晰可见TimeSeriesPredictor.leaderboard → learner.py#L276 → trainer.py#L621最终生成按性能排序的模型表格evaluate则在 predictor.py#L1864 处复用同一套底层逻辑。升级后这两类调用将不再输出无谓的弃用警告日志更干净也避免了FutureWarning在未来版本升级为Error时的潜在风险。Multimodal 模块与工程化更新Multimodal 教程修复1.3.0 正式发布后多模态相关的官方教程tutorial中出现了一处与 1.3 新接口不一致的问题1.3.1 修复了该教程PR #5121使其与当前 API 对齐。仓库中对应的多模态教程位于 docs/tutorials/multimodal/ 目录涵盖 multimodal_prediction/beginner_multimodal.ipynb、text_prediction/beginner_text.ipynb 等入门示例。若你在 1.3.0 期间按教程操作时遇到与预期不符的报错可对照 1.3.1 更新后的教程重新验证。文档与 CI发布流程与 Docker 镜像本次版本还包含两项工程化改进发布说明流程补充PR #5111为维护者补充了将 whats_new 发布说明粘贴到相应位置的发布指引。仓库中的发布相关脚本与说明位于 release_instructions/ 目录例如 ReleaseInstructions.md 与 add_links_to_release_notes.py。对普通用户而言这保证了每个版本的更新日志都能被准确、完整地归档到 docs/whats_new/ 目录下含 v1.3.1 在内的全部版本记录均可在此查阅。Docker 基础镜像升级PR #5130将 CI Docker 镜像的基础从 1.3 之前的基线更新为 1.3 发布基线。相关 Dockerfile 位于 CI/docker/ 目录如 Dockerfile.cpu-training、Dockerfile.gpu-training 等确保使用官方容器镜像时开箱即为 1.3.1 环境无需额外升级。升级到 1.3.1 的实操建议综合以上修复内容从 1.3.0 升级到 1.3.1 的建议如下常规升级1.3.1 为纯修复版本无新 API、无破坏性变更使用pip install -U autogluon或对应模块的包名如autogluon.tabular、autogluon.timeseries、autogluon.multimodal即可完成升级注意 Python 版本确认运行环境位于 Python 3.8–3.11 支持范围内重新训练已存模型由于官方明确不支持加载旧版本训练出的模型请对生产环境中的存量模型使用 1.3.1 重新训练后再上线关注 TimeSeries 超参数若你的DirectTabular/RecursiveTabular配置使用了旧参数scaler升级后可验证其是否按预期生效并逐步迁移到官方参数target_scaler同时避免两者同时设置TabPFN 用户若此前受依赖问题困扰升级后可在干净的虚拟环境中验证 TabPFN 系列模型的训练是否正常。小结AutoGluon 1.3.1 是一次典型的小而稳的补丁发布9 个提交、5 位贡献者聚焦于 TabularTabPFN 依赖、positive_class引用、TimeSeries集成权重打印、scaler参数遮蔽、FutureWarning、Multimodal教程同步以及文档/CI发布流程、Docker 基线的正确性与体验改进。对于在生产环境中运行 1.3.0 的用户本次升级风险低、收益明确尤其是 TimeSeries 的scaler参数修复解决了实际的超参数生效问题。文中涉及的每个修复点均可在仓库对应源码文件中找到实现依据建议结合文中的相对路径深入阅读以充分理解各模块的内部机制。【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价