0

解决了为什么我在 Azure 容器实例中部署 ML 模型仍然失败?在 ACI 上部署后,我正在使用 Azure 机器学习服务将 ML 模型部署为 AKS 上的 Web 服务。

我当前(工作)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 上完成部署?

4

1 回答 1

1

从您提供的代码中,当您使用Webservice.deploy_from_image带有参数deployment_config和容器映像的方法在 ACI 中部署应用程序时。deployment_config 由AciWebservice.deploy_configuration.

当您查看有关 AKS 的 ML 时,您也可以找到方法AksWebservice.deploy_configuration。因此,您只需将方法更改AciWebservice.deploy_configurationAksWebservice.deploy_configuration,即可将应用程序从 ACI 部署到 AKS。这是最小的变化。此外,它可以从 docker 映像部署。

于 2019-05-12T11:32:51.803 回答