代码之家  ›  专栏  ›  技术社区  ›  Davide Fiocco

为什么我在Azure容器实例中的ML模型部署仍然失败?

  •  0
  • Davide Fiocco  · 技术社区  · 5 年前

    registered a model 现在想将其部署为ACI web服务,如中所示 the guide .

    为此,我定义

    from azureml.core.webservice import Webservice, AciWebservice
    from azureml.core.image import ContainerImage
    
    aciconfig = AciWebservice.deploy_configuration(cpu_cores=4, 
                          memory_gb=32, 
                          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
                          )
    

    为图像创建图像的操作已完成 记分员-图片:5,操作“成功”

    另外,通过在带有

    sudo docker run -p 8002:5001 myscorer0588419434.azurecr.io/scorer-image:5
    

    允许我对成功运行(本地)查询 http://localhost:8002/score .

    但是,部署

    service_name = 'scorer-svc'
    service = Webservice.deploy_from_image(deployment_config = aciconfig,
                                            image = image,
                                            name = service_name,
                                            workspace = ws)
    

    失败于

    创建服务
    跑步。

    服务创建轮询已达到终端状态,当前服务状态:正在转换
    服务创建轮询达到终端状态,收到意外响应。过渡

    aciconfig 更慷慨 memory_gb ,但无济于事:部署停留在 状态(如下图所示,如果在Azure门户上监视): enter image description here

    service.get_logs() 给了我

    WebserviceException:收到来自模型管理的错误响应

    什么可能是罪魁祸首?

    0 回复  |  直到 4 年前
        1
  •  3
  •   Davide Fiocco    5 年前

    如果ACI部署失败,一种解决方案是尝试分配 较少的

    aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, 
                      memory_gb=8, 
                      tags={"data": "text",  "method" : "NB"}, 
                      description='Predict something')
    

    虽然抛出的错误消息并不是特别有用,但在 documentation :

    使用较低的资源设置部署实例[…]

    memory_gb=32 可能会因为资源不足而在所有地区失败)。

    在需要较少的资源时,部署应该成功地

    创建服务
    运行中。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    “成功”健康

    推荐文章