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

Azure ML批量部署模型遇azureml.training模块缺失错误求助

解决思路

1. 匹配训练与部署环境的Azure ML SDK版本

自动化ML训练的模型依赖的azureml.training模块属于旧版Azure ML SDK组件,新版SDK中该模块的结构已调整。需:

  • 从自动化ML实验的训练环境配置/日志中,获取训练时使用的Azure ML SDK具体版本
  • 在部署环境的依赖配置中,指定完全一致的SDK版本,而非使用最新版

2. 复用训练环境的conda依赖配置

找到自动化ML实验输出的conda依赖文件(通常在实验资产的environment目录下),直接将其内容复制到部署用的conda.yml中,确保所有依赖包版本与训练环境完全对齐。示例配置:

name: batch-deploy-env
channels:
  - conda-forge
dependencies:
  - python=3.8
  - pandas=1.4.2
  - scikit-learn=1.0.2
  - xgboost=1.6.1
  - pip:
    - azureml-core==1.42.0
    - azureml-automl-core==1.42.0
    - azureml-training-automl==1.42.0

3. 提取原始XGBoost模型重新注册

自动化ML训练的模型会被Azure ML的包装类封装,导致依赖azureml.training。可在训练完成后提取原始模型再注册:

# 获取自动化ML训练的最优模型
automl_model = best_run.get_output(model=True)
# 提取原始XGBoost模型对象
raw_xgb_model = automl_model.named_steps['model']
# 保存并注册原始模型
pickle.dump(raw_xgb_model, open("pure_xgb_model.pkl", "wb"))
Model.register(workspace=ws, model_name="pure-xgb-model", model_path="./pure_xgb_model.pkl")

重新注册的模型仅依赖XGBoost本身,不再需要Azure ML训练模块。

4. 改用MLflow格式导出并部署模型

自动化ML支持导出MLflow格式模型,该格式会自动管理依赖,避免模块缺失问题:

import mlflow
# 下载自动化ML输出的MLflow模型
best_run.download_file("outputs/model", "mlflow_xgb_model")
# 注册MLflow格式模型
mlflow.register_model(f"runs:/{best_run.id}/outputs/model", "mlflow-xgb-batch-model")

部署时使用MLflow默认的评分脚本,无需手动处理模型加载,依赖会自动匹配训练环境。


内容的提问来源于stack exchange,提问作者Alberto Bertoncini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 04:42:15