全部产品
Search
文档中心

人工智能平台 PAI:如何定时部署EAS服务

更新时间:Aug 28, 2024

本文为您介绍如何进行模型服务定时部署。

背景信息

目前支持使用以下任意一种方式来定时部署EAS服务。

前提条件

使用限制

使用方案二部署EAS服务:

仅支持使用DataWorks独享调度资源组,不支持使用公共资源组

方案一:使用Designer-更新EAS服务组件

步骤一:创建Designer工作流

  • 如果您的模型是基于Designer工作流训练得到的,可以直接在训练组件下游连接更新EAS服务组件,详情请参见在线模型服务定时自动更新image.png

  • 如果您的模型不是在Designer中训练得到的,但是存储在OSS Bucket中,也可以新建一个空白工作流,详情请参见新建自定义工作流。并参照下图拖入读OSS数据组件和更新EAS服务组件连接使用。在读OSS数据组件中配置OSS数据路径为模型存储的路径即可。image

  • 如果您的模型是从一个自己规划的OSS目录中按时间读取的,可以在工作流中配置全局变量e0593dcccb40d8cf3ec4d602893e682a.png并在读OSS数据组件中引入全局变量进行模型路径配置,例如:oss://examplebucket.oss-cn-shanghai-internal.aliyuncs.com/${date}/heart.pmml

    说明

    您可以先使用页面的OSS路径选择器选到一个有效模型文件路径,再将路径中和时间变量相关的部分用全局变量进行替换,可以减少手动进行endpoint等配置输入的复杂度。

步骤二:部署上述工作流至DataWorks

参考使用DataWorks离线调度Designer工作流,将上述工作流一键部署至DataWorks作为定时调度节点。

如果您在步骤一中引入了Designer全局变量,请参考示例2:定时调度参数替换,在节点调度配置中将全局变量的配置替换成所需的系统变量。image

步骤三:部署后查看定时更新的服务版本

查看定时部署的模型服务版本,具体操作步骤如下。

  1. 登录PAI控制台

  2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击周期性更新的模型服务所处的工作空间名称,进入对应工作空间内。

  3. 按照下图操作指引,查看模型服务自动更新的所有历史版本。ad4cd8feb8bb34f963f1f7fdc1c18cd8

方案二:手动在DataWorks中进行部署

步骤一:创建独享调度资源组

  1. 登录DataWorks控制台

  2. 单击左侧导航栏资源组列表,在独享资源组页签下单击创建调度资源组,在购买页面根据业务需要配置相应的参数,配置要点如下。

    参数

    描述

    地域

    选择后续需要使用此独享资源组的地域。

    说明

    独享调度资源组不支持跨地域使用。例如,华东2(上海)地域的独享资源,只能给华东2(上海)地域的工作空间使用。

    独享资源类型

    选择为独享调度资源

    独享调度资源

    选择独享调度资源组的规格大小,不同规格的费用及最大并发运行实例数存在差异。详情请参见独享调度资源组计费说明:包年包月

    资源数量

    资源组中的机器数量。为保证生产环境的高可用性,资源数量建议选择为2个及2个以上。

    计费周期

    独享资源组为包年包月服务,为保障服务不中断,建议您勾选到期自动续费。资源组创建完后,您也可以前往阿里云续费管理页面,开启或取消自动续费服务。详情请参见通用参考:停止使用DataWorks商品

    资源名称

    设置资源组的名称,此名称需在租户内唯一,请避免重复,否则会导致在后续进行确定操作时报错。

    说明

    租户即主账号,一个租户(主账号)下可以有多个用户(子账号)。

  3. 单击立即购买,根据界面提示进行付款等操作后即可完成购买独享调度资源组。

    购买后,DataWorks即开始初始化此独享资源组,当资源组状态为运行中后,独享资源组即已添加至控制台。

    说明

    独享资源组的初始化需要约20分钟,请您耐心等待其状态更新为运行中

步骤二:绑定归属的工作空间

独享调度资源组需要绑定归属的工作空间,才可以在对应的工作空间下选择该资源组。

  1. 资源组列表独享资源组页签下,单击相应资源组后的修改归属工作空间

  2. 修改归属工作空间单击对应工作空间后的绑定,即可将独享资源组绑定至此工作空间。

步骤三:创建业务流程

  1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 数据开发页面,鼠标悬停至新建图标,单击新建业务流程

  3. 新建业务流程对话框中,输入业务名称描述

  4. 单击新建

  5. 在业务流程页面,拖拽通用Shell节点至右侧画布。新增节点

  6. 新建节点页面的名称文本框,输入部署节点

  7. 单击确认

步骤四:部署初始模型

因为定时自动部署是在初始模型服务基础上,增加一个模型服务版本,作为线上运行服务。所以定时自动部署之前,需要先部署初始模型。如果已经存在初始模型服务,则直接执行步骤五。

  1. 编辑部署脚本。

    1. 在业务流程页面,双击已创建的Shell节点(部署节点)。

    2. 在Shell节点页面,输入如下命令。

      # 编写服务部署描述文件。
      cat << EOF > echo.json
      {
        "name": "yourModelName",
        "generate_token": "true",
        "model_path": "yourModelAdress",
        "processor": "yourProcessorType",
        "metadata": {
          "instance": 1, #可以根据实际情况修改Instance数量。
          "cpu": 2, #可以根据实际情况修改CPU数量。
          "memory": 4000
        }
      }
      EOF
      # 执行部署命令。
      /home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret>  -e pai-eas.cn-shanghai.aliyuncs.com create echo.json
      重要

      如果您使用的独享调度资源组是在2022年8月10日之前创建的,则上述脚本的第16行代码,需要将/home/admin/usertools/tools/eascmd64 ***修改为/home/admin/usertools/tools/eascmd ***

      echo.json是描述服务相关信息(模型存储位置及使用资源等)的JSON文件,以下参数需要根据实际情况配置:

      • name:模型服务名称必须在同地域内唯一,是模型服务的唯一标识,可以结合业务含义命名。

      • model_path:训练模型的存储位置,支持HTTP和OSS地址。

        如果使用HTTP地址,则所需的文件必须为TAR、GZ、BZ2及ZIP等压缩包格式。如果使用OSS地址,则可以指定压缩包文件路径或目录路径。使用OSS地址时,需要指定Endpoint,即在上述服务部署描述文件中增加 "oss_endpoint":"oss-cn-beijing.aliyuncs.com",代码行(按照实际情况修改地域)。

        说明

        使用OSS存储模型时,需要为PAI赋予OSS访问权限,详情请参见OSS授权

      • processor:Processor类型。

      • metadata:服务的Meta信息,需要根据实际情况修改。详细的字段信息请参见命令使用说明

      • yourAccessKeyID:Access Key ID。如何获取AccessKey,详情请参见如何获取AccessKey

      • yourAccessKeySecret:Access Key Secret。如何获取AccessKey,详情请参见如何获取AccessKey

      • Endpoint:部署命令-e后的Endpoint参数与地域的对应关系如下。

        地域

        Endpoint

        华东2(上海)

        pai-eas.cn-shanghai.aliyuncs.com

        华北2(北京)

        pai-eas.cn-beijing.aliyuncs.com

        华东1(杭州)

        pai-eas.cn-hangzhou.aliyuncs.com

        华南1(深圳)

        pai-eas.cn-shenzhen.aliyuncs.com

        中国(香港)

        pai-eas.cn-hongkong.aliyuncs.com

        新加坡

        pai-eas.ap-southeast-1.aliyuncs.com

        印度尼西亚(雅加达)

        pai-eas.ap-southeast-5.aliyuncs.com

        德国(法兰克福)

        pai-eas.eu-central-1.aliyuncs.com

  2. 运行脚本。

    1. 在Shell节点页面,单击页面上方的2图标。

    2. 警告对话框,单击继续运行

    3. 运行参数页面,选择调度资源组为已创建的独享资源组。

    4. 单击确定

      运行完成后,即可生成一个线上的模型服务。您可以参见以下步骤,在PAI控制台查看该模型服务。

  3. (可选)查看部署的模型服务。

    1. 登录PAI控制台

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

    3. 按照下图操作指引,查看已部署的模型服务。image

      后续步骤中,将不断对该模型服务增加服务版本,从而实现模型定时部署。

步骤五:编辑定时自动部署脚本

  1. 编辑步骤四中的Shell节点脚本,示例如下(如果已执行步骤四,则前14行代码无需修改。如果未执行步骤四,则需要根据实际情况修改前14行代码中的参数值)。

    # 编写服务部署描述文件。
    cat << EOF > echo.json
    {
      "name": "yourModelName",
      "generate_token": "true",
      "model_path": "yourModelAdress",
      "processor": "yourProcessorType",
      "metadata": {
        "instance": 1,
        "cpu": 2,
        "memory": 4000
      }
    }
    EOF #第14行代码。
    # 执行模型更新部署。每执行一次定时部署调度,系统就会在原模型服务基础上,增加一个模型服务版本,作为最新的线上运行服务。
    /home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret> -e pai-eas.cn-shanghai.aliyuncs.com modify <yourModelName> -s echo.json
    # 此处可以编写服务的测试逻辑。
    # 如果测试服务发生异常,则使用下述命令回滚模型服务。
    #/home/admin/usertools/tools/eascmd64 -i <yourAccessKeyID> -k <yourAccessKeySecret> -e pai-eas.cn-shanghai.aliyuncs.com version -f <The name of the model to be rolled back> 1
    重要

    如果您使用的独享调度资源组是在2022年8月10日之前创建的,则上述脚本的第16行和第19行代码,需要将/home/admin/usertools/tools/eascmd64 ***修改为/home/admin/usertools/tools/eascmd ***

    其中的参数解释请参见步骤四:部署初始模型

步骤六:执行定时调度

  1. 执行调度任务。

    1. 在Shell节点页面,单击页面右侧的调度配置

    2. 调度配置页面的时间属性区域,选择调度周期

    3. 调度依赖区域,单击依赖的上游节点后的使用工作空间根节点

    4. 配置依赖关系,详情请参见配置同周期调度依赖

    5. 单击Shell节点页面上方的保存图标,保存配置。

    6. 单击Shell节点页面上方的提交图标,提交调度任务。

  2. 查看定时调度的运行实例。

    1. 在Shell节点页面,单击右上方的运维

    2. 运维中心页面,选择周期任务运维>周期实例

    3. 在实例详情页面,查看模型自动部署的定时时间

    4. 选择操作列下的更多>查看运行日志,查看每次定时部署的运行日志。

  3. 查看定时部署的模型服务。

    1. 登录PAI控制台

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

    3. 按照下图操作指引,查看模型服务自动更新的所有历史版本。ad4cd8feb8bb34f963f1f7fdc1c18cd8