解决Why does my ML model deployment in Azure Container Instance still fail?并部署到ACI之后,我正在使用Azure机器学习服务将ML模型作为Web服务部署在AKS上。
我当前的(有效的)ACI部署代码为
from azureml.core.webservice import Webservice, AciWebservice
from azureml.core.image import ContainerImage
aciconfig = AciWebservice.deploy_configuration(cpu_cores=1,
memory_gb=8,
tags={"data": "text", "method" : "NB"},
description='Predict something')
image_config = ContainerImage.image_configuration(execution_script="score.py",
docker_file="Dockerfile",
runtime="python",
conda_file="myenv.yml")
image = ContainerImage.create(name = "scorer-image",
models = [model],
image_config = image_config,
workspace = ws
)
service_name = 'scorer-svc'
service = Webservice.deploy_from_image(deployment_config = aciconfig,
image = image,
name = service_name,
workspace = ws)
我想对其进行修改以便在AKS上进行部署,但看起来比我预期的要复杂得多,因为我以为从ACI迁移到AKS(即从测试到生产)是一项常规操作。尽管如此,它似乎需要对代码进行比我想象的更多更改:
InferenceConfig
对象(?)deploy_from_image
这样的方法可以从我现有的Docker image
(?)进行部署是否可以通过对ACI代码进行最少的更改来在AKS上完成部署?
答案 0 :(得分:1)
根据提供的代码,使用方法Webservice.deploy_from_image
和参数deployment_config
和容器映像在ACI中部署应用程序时。 Deployment_config由AciWebservice.deploy_configuration
完成。
查看有关AKS的ML时,您还可以找到方法AksWebservice.deploy_configuration
。因此,您只需要将方法AciWebservice.deploy_configuration
更改为AksWebservice.deploy_configuration
,就可以将应用程序从ACI部署到AKS中。这是最小的变化。另外,它可以从docker映像进行部署。