从ACI迁移到AKS部署的最简单方法是什么?

时间:2019-05-09 09:02:28

标签: python azure azure-aks azure-machine-learning-service azure-container-instances

解决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(即从测试到生产)是一项常规操作。尽管如此,它似乎需要对代码进行比我想象的更多更改:

  • AKS似乎需要一个InferenceConfig对象(?)
  • 使用AKS,没有像deploy_from_image这样的方法可以从我现有的Docker image(?)进行部署

是否可以通过对ACI代码进行最少的更改来在AKS上完成部署?

1 个答案:

答案 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映像进行部署。