本地部署Azure AutoML模型遇两类报错问题求助
Azure AutoML模型本地部署及Azure端点部署问题排查
背景
使用Azure ML v1 API基于CSV数据集训练了多个表现良好的Azure AutoML模型,计划部署到本地环境。已下载训练好的模型,使用微软提供的评分脚本和.yml文件配置运行环境,但过程中遇到两类本地问题,同时部署至Azure实时端点后测试也报错。
遇到的问题
1. 本地运行触发ModuleNotFoundError
错误信息:
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[1], line 12 9 import pandas as pd 10 import joblib ---> 12 import azureml.automl.core 13 from azureml.automl.core.shared import logging_utilities, log_server 14 from azureml.telemetry import INSTRUMENTATION_KEY ModuleNotFoundError: No module named 'azureml'
2. VS中执行run函数时输入数据类型不匹配
错误信息:
Invalid input data type to parse. Expected: <class 'dict'> but got <class 'inference_schema.parameter_types.pandas_parameter_type.PandasParameterType'> Stapelüberwachung: > File "C:\Users\weightedfinalmodel\scoring_file_v_2_0_0.py", line 59, in <module> (Current frame) > run(data_sample) "inference_schema.schema_decorators" geladen "__main__" geladen "runpy" geladen Das Programm "python.exe" wurde mit Code 4294967295 (0xffffffff) beendet.
3. Azure实时端点测试报错
部署至Azure实时端点后,通过测试页测试时出现报错,推测遗漏了部分配置。
解决方案
针对问题1:缺失azureml模块
- 原因:本地环境未安装Azure ML相关依赖包
- 解决步骤:
- 激活目标虚拟环境/conda环境,执行以下命令安装依赖:
pip install azureml-automl-core azureml-telemetry azureml-core - 若使用.yml配置文件,需确保文件包含这些依赖,示例配置:
dependencies: - python=3.8 # 需匹配模型训练时的Python版本 - pip: - azureml-automl-core - azureml-telemetry - azureml-core - pandas - numpy - joblib - inference-schema - 执行
pip list | grep azureml验证相关包是否安装成功
- 激活目标虚拟环境/conda环境,执行以下命令安装依赖:
针对问题2:输入数据类型不匹配
- 原因:直接将
PandasParameterType对象传入run函数,而函数期望接收符合Schema定义的字典格式数据 - 解决步骤:
- 修改测试代码,将数据包装成符合要求的字典结构:
# 替换原错误调用run(data_sample),改用以下代码 test_data = pd.DataFrame({ "SIO2": [0.0], "AL2O3": [0.0], "B2O3": [0.0], "CAO": [0.0], "K2O": [0.0], "NA2O": [0.0], "PBO": [0.0], "Li2O": [0.0], "MgO": [0.0], "SRO": [0.0], "BAO": [0.0], "ZNO": [0.0], "P2O5": [0.0], "ZRO2": [0.0], "TIO2": [0.0], "Bi2O3": [0.0] }) run({"data": test_data}) - 或使用Schema对象生成标准测试样本:
test_input = input_sample.generate_sample() run(test_input) - 注意:
PandasParameterType仅用于定义输入Schema,不能直接作为输入数据传入run函数
- 修改测试代码,将数据包装成符合要求的字典结构:
针对Azure实时端点测试报错
- 检查环境配置:确保部署端点时使用的环境包含所有必要依赖(与本地运行环境一致)
- 规范测试数据格式:测试页需传入符合Schema的JSON数据,示例:
{ "Inputs": { "data": [ {"SIO2": 0.0, "AL2O3": 0.0, "B2O3": 0.0, "CAO": 0.0, "K2O": 0.0, "NA2O": 0.0, "PBO": 0.0, "Li2O": 0.0, "MgO": 0.0, "SRO": 0.0, "BAO": 0.0, "ZNO": 0.0, "P2O5": 0.0, "ZRO2": 0.0, "TIO2": 0.0, "Bi2O3": 0.0} ] }, "GlobalParameters": 1.0 } - 查看端点日志:在Azure ML Studio中查看端点的详细日志,定位具体错误(如依赖缺失、模型加载失败等)
内容的提问来源于stack exchange,提问作者Emanuel
相关产品推荐
相关产品推荐

