调试AML模型部署



我有一个python的ML模型(在本地训练)。在此之前,该模型已经部署到Windows IIS服务器上,并且运行良好。

现在,我正试图将其部署为Azure容器实例(ACI)上的服务,具有1核和1gb内存。我参考了一两个微软文档。文档使用SDK完成所有步骤,但是我使用来自Azure门户的GUI特性.

注册模型后,我创建了一个入口脚本和一个conda环境YAML文件(见下文),并将两者上传到"自定义部署资产";(在部署模型区域)。

不幸的是,在点击部署之后,部署状态停留在过渡状态。即使在4小时后,状态保持不变,也没有部署日志,所以我无法找到我在这里做错了什么。

注:以下只是条目脚本的摘录

import pandas as pd
import pickle
import re, json
import numpy as np
import sklearn
def init():
global model 
global classes
model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'), 'randomForest50.pkl')
model = pickle.load(open(model_path, "rb"))
classes = lambda x : ["F", "M"][x]
def run(data):
try:
namesList = json.loads(data)["data"]["names"]
pred = list(map(classes, model.predict(preprocessing(namesList))))
return str(pred[0])
except Exception as e:
error = str(e)
return error
name: gender_prediction
dependencies:
- python
- numpy
- scikit-learn
- pip:
- pandas
- pickle
- re
- json

问题在YAML文件中。YAML中的依赖项/库应该根据conda环境。所以,我相应地改变了一切,它起作用了。

修改的YAML文件:

name: gender_prediction
dependencies:
- python=3.7
- numpy
- scikit-learn
- pip:
- azureml-defaults
- pandas
- pickle4
- regex
- inference-schema[numpy-support]   

最新更新