You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AzureML加载AutoML模型时报HoltWintersResultsWrapper导入错误

根因说明

该报错与是否启用指数类模型无关,核心是训练与加载环境的依赖版本不匹配:

  • HoltWintersResultsWrapper是AzureML AutoML运行时的内置适配类,仅存在于和训练任务所用AutoML SDK严格匹配的statsmodels版本中,公开发行的statsmodels 0.13.0及以上版本已经重构移除了这个内部类,盲目把依赖更新到最新反而会触发版本断层。
  • 即使你在AutoML配置中排除了指数平滑模型,AutoML的时序特征处理、模型包装层依然会导入该模块,因此排除模型类型无法解决问题。
  • 通用AzureML策展环境默认拉取最新版依赖,和你训练任务当时锁定的依赖版本不一致,所以切换后依然会报错。
解决步骤
  • 提取训练时的精确依赖版本
    进入AzureML工作室找到对应AutoML训练Run,在「输出+日志」路径下找到system_logs/conda/env_dependencies.yml,记录文件中azureml-automl-runtime、statsmodels、joblib、pandas的精确版本号,不要使用latest标签。
  • 在模型加载环境中安装完全对应版本的依赖,示例命令:
    pip install statsmodels==0.11.1 azureml-automl-runtime==1.47.0 joblib==1.0.1
    
    安装完成后不要单独升级上述包,避免再次出现版本错位。
  • 更简便的方案:直接复用训练Run的原生环境,无需手动核对版本,参考代码如下:
    from azureml.core import Workspace, Run
    from azureml.core.model import Model
    import joblib
    
    ws = Workspace.from_config()
    # 将引号内内容替换为你的AutoML训练任务实际Run ID
    training_run = Run.get(ws, run_id="your_automl_training_run_id")
    # 直接拉取训练时锁定的环境配置
    infer_env = training_run.get_environment()
    
    model_obj = Model(ws, "ModelName")
    model_path = model_obj.download(exist_ok=True)
    model = joblib.load(model_path)
    
    如果需要做在线部署,直接将上述拿到的infer_env传入部署配置即可,不需要手动调整环境依赖。
  • 避坑提示:不要尝试手动复制旧版statsmodels中的HoltWintersResultsWrapper类到当前环境补全导入,会触发后续一连串反序列化依赖错误,版本严格对齐是唯一稳定的解决方式。

内容的提问来源于stack exchange,提问作者E.Brum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:33:14