将模型部署为在线服务

模型训练完之后,当您想要在其他应用中访问时,可以使用EAS将模型部署为在线服务。本文为您介绍如何部署模型。

了解PAI-EAS

模型在线服务EAS(Elastic Algorithm Service)是PAI提供的模型在线服务平台,可支持您一键部署模型为在线推理服务或AI-Web应用。它提供了的弹性扩缩容、资源组管理、版本控制、资源监控等功能,可以支撑您以较低的资源成本获取高并发且稳定的在线算法模型服务。更多内容请参见EAS模型服务概述

模型部署

在使用EAS部署模型时可以采用控制台部署、EASCMD客户端部署、python SDK部署三种方式,初次部署时建议您先使用EAS控制台的方式部署,操作更加简单。

使用EAS控制台自定义部署(推荐)

使用控制台部署模型的操作步骤如下:

  1. 登录PAI控制台,在页面上方选择目标地域,并选择目标工作空间,然后单击进入EAS,在推理服务页签,单击部署服务 > 自定义部署

  2. 参数配置,以下介绍服务部署页的关键参数配置,完整的配置参数请参见服务部署:控制台

    • 部署方式:选择镜像部署

    • 镜像配置:镜像提供模型运行的环境,您可以选择官方镜像、自定义镜像或输入镜像地址。如果您是在DSW开发的模型,可以直接使用DSW的镜像制作功能,将镜像上传至ACR中并在EAS中使用,操作步骤如下:

      DSW制作镜像并上传

      DSW实例列表页面,单击制作镜像,填写镜像名称并选择ACR镜像仓库。如果您没有ACR镜像仓库,可以单击创建,个人版ACR目前公测限额使用,详情请参见容器镜像服务ACR。在镜像制作成功后,EAS配置页面的自定义镜像会自动更新。

      image

      image

    • 代码配置运行命令:您可以将应用启动文件放在OSS中并配置挂载地址,然后在启动命令处填写相应命令。本文使用如下简单案例进行测试。

      示例应用代码 web.py

      from bottle import Bottle, run
      
      # 创建一个实例
      app = Bottle()
      
      # 定义一个路由,返回“Hello, World”
      @app.route('/hello', method=['GET', 'POST'])
      def hello():
          # 此处实际使用时替换为如参解析和模型调用
          
          return 'Hello, World!'
      
      # 运行服务器
      if __name__ == '__main__':
          run(app, host='0.0.0.0', port=9000)
      

      image

    • 三方库配置:在三方库配置处,您可以添加镜像中缺失的三方库,示例如下:

      image

使用EASCMD部署

如果您使用官方DSW镜像,则已预置EASCMD客户端(路径:/home/pai/bin)。具体操作,请参见服务部署:EASCMD

使用Python SDK部署

您也可以在DSW中安装EAS Python SDK,通过此SDK代码将模型部署为EAS在线服务。具体操作,请参见使用EAS Python SDK部署模型

服务调用测试

在模型部署成功后,可以使用EAS在线调试功能测试服务接口。操作如下:

  1. EAS实例列表页,单击实例名称进入实例信息页,然后再单击选择在线调试

  2. 以上文的web.py应用为例,输入请求地址 ,然后单击发送请求,如果返回“hello World!”则请求成功。

  3. 如果您想要使用公网地址调用,或者VPC地址调用,请参见服务调用方式

image

相关文档

  • 服务部署完成后,您可以到模型在线服务 (EAS)页面查看模型部署情况,并管理模型服务,详情请参见服务部署:控制台

  • EAS在线服务支持多种部署方式,您可以根据不同的使用场景选择合适的部署方式,详情请参见服务部署概述

  • EAS在线服务提供了公网地址调用、VPC地址调用的方式,详情请参见服务调用方式

  • 服务部署完成后,您可以通过自动压测工具对部署的服务进行压测,从而了解EAS服务的使用性能。详情请参见服务自动压测