本文为您介绍如何进行模型服务定时部署。
背景信息
目前支持使用以下任意一种方式来定时部署EAS服务。
-
方案一:使用Designer-更新EAS服务组件
在Designer中通过更新EAS服务组件,来更新已部署的EAS服务。
-
方案二:手动在DataWorks中进行部署
搭配使用EAS和DataWorks来定时部署EAS服务。
前提条件
-
使用方案一部署EAS服务
待更新的模型已存储在OSS Bucket中。
-
使用方案二部署EAS服务
-
购买DataWorks独享调度资源组,详情请参见新增和使用独享调度资源组。
-
购买PAI,详情请参见开通并创建默认工作空间。
-
完成定时训练,并将模型保存至固定地址,详情请参见使用DataWorks离线调度Designer工作流。
-
如果RAM用户进行定时自动模型部署,则需要对其赋予DataWorks相关权限及EAS模型部署权限,详情请参见RAM用户登录并使用DataWorks和云产品依赖与授权:EAS。
-
使用限制
使用方案二部署EAS服务:
仅支持使用DataWorks独享调度资源组,不支持使用公共资源组。
方案一:使用Designer-更新EAS服务组件
步骤一:创建Designer工作流
-
如果您的模型是基于Designer工作流训练得到的,可以直接在训练组件下游连接更新EAS服务组件,详情请参见在线模型服务定时自动更新。
-
如果您的模型不是在Designer中训练得到的,但是存储在OSS Bucket中,也可以新建一个空白工作流,详情请参见新建自定义工作流。并参照下图拖入读OSS数据组件和更新EAS服务组件连接使用。在读OSS数据组件中配置OSS数据路径为模型存储的路径即可。
-
如果您的模型是从一个自己规划的OSS目录中按时间读取的,可以在工作流中配置全局变量。
并在读OSS数据组件中引入全局变量进行模型路径配置,例如:
oss://examplebucket.oss-cn-shanghai-internal.aliyuncs.com/${date}/heart.pmml
。说明
您可以先使用页面的OSS路径选择器选到一个有效模型文件路径,再将路径中和时间变量相关的部分用全局变量进行替换,可以减少手动进行endpoint等配置输入的复杂度。
步骤二:部署上述工作流至DataWorks
参考使用DataWorks离线调度Designer工作流,将上述工作流一键部署至DataWorks作为定时调度节点。
如果您在步骤一中引入了Designer全局变量,请参考示例2:定时调度参数替换,在节点调度配置中将全局变量的配置替换成所需的系统变量。
步骤三:部署后查看定时更新的服务版本
查看定时部署的模型服务版本,具体操作步骤如下。
-
登录PAI控制台。
-
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击周期性更新的模型服务所处的工作空间名称,进入对应工作空间内。
-
按照下图操作指引,查看模型服务自动更新的所有历史版本。
方案二:手动在DataWorks中进行部署
步骤一:创建独享调度资源组
-
登录DataWorks控制台。
-
单击左侧导航栏资源组列表,在独享资源组页签下单击创建调度资源组,在购买页面根据业务需要配置相应的参数,配置要点如下。
参数
描述
地域和可用区
选择后续需要使用此独享资源组的地域。
说明
独享调度资源组不支持跨地域使用。例如,华东2(上海)地域的独享资源,只能给华东2(上海)地域的工作空间使用。
独享资源类型
选择为独享调度资源。
资源组名称
设置资源组的名称,此名称需在租户内唯一,请避免重复,否则会导致在后续进行确定操作时报错。
说明
租户即主账号,一个租户(主账号)下可以有多个用户(子账号)。
资源组备注
对资源组进行简单描述。
计费周期
独享资源组为包年包月服务,为保障服务不中断,建议您勾选到期自动续费,资源组创建完后,您也可以前往阿里云续费管理页面,开启或取消自动续费服务。详情请参见通用参考:取消包年包月产品的自动续费。
其他配置项,例如计费周期等参数,可根据业务规划自行配置即可。
-
单击立即购买,根据界面提示进行付款等操作后即可完成购买独享调度资源组。
购买后,DataWorks即开始初始化此独享资源组,当资源组状态为运行中后,独享资源组即已添加至控制台。
说明
独享资源组的初始化需要约20分钟,请您耐心等待其状态更新为运行中。
步骤二:绑定归属的工作空间
独享调度资源组需要绑定归属的工作空间,才可以在对应的工作空间下选择该资源组。
-
在资源组列表的独享资源组页签下,单击相应资源组后的修改归属工作空间。
-
在修改归属工作空间单击对应工作空间后的绑定,即可将独享资源组绑定至此工作空间。
步骤三:创建业务流程
-
登录DataWorks控制台,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发。
-
在数据开发页面,鼠标悬停至
图标,单击新建业务流程。
-
在新建业务流程对话框中,输入业务名称和描述。
-
单击新建。
-
在业务流程页面,拖拽通用Shell节点至右侧画布。
-
在新建节点页面的名称文本框,输入部署节点。
-
单击确认。
步骤四:部署初始模型
因为定时自动部署是在初始模型服务基础上,增加一个模型服务版本,作为线上运行服务。所以定时自动部署之前,需要先部署初始模型。如果已经存在初始模型服务,则直接执行步骤五。
-
编辑部署脚本。
-
在业务流程页面,双击已创建的Shell节点(部署节点)。
-
在Shell节点页面,输入如下命令。
# 编写服务部署描述文件。 cat < 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 -k -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-south-1.aliyuncs.com
印度尼西亚(雅加达)
pai-eas.ap-southeast-5.aliyuncs.com
德国(法兰克福)
pai-eas.eu-central-1.aliyuncs.com
-
-
-
运行脚本。
-
在Shell节点页面,单击页面上方的
图标。
-
在警告对话框,单击继续运行。
-
在运行参数页面,选择调度资源组为已创建的独享资源组。
-
单击确定。
运行完成后,即可生成一个线上的模型服务。您可以参见以下步骤,在PAI控制台查看该模型服务。
-
-
(可选)查看部署的模型服务。
-
登录PAI控制台。
-
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
-
按照下图操作指引,查看已部署的模型服务。
后续步骤中,将不断对该模型服务增加服务版本,从而实现模型定时部署。
-
步骤五:编辑定时自动部署脚本
-
编辑步骤四中的Shell节点脚本,示例如下(如果已执行步骤四,则前14行代码无需修改。如果未执行步骤四,则需要根据实际情况修改前14行代码中的参数值)。
# 编写服务部署描述文件。 cat < 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 -k -e pai-eas.cn-shanghai.aliyuncs.com modify -s echo.json # 此处可以编写服务的测试逻辑。 # 如果测试服务发生异常,则使用下述命令回滚模型服务。 #/home/admin/usertools/tools/eascmd64 -i -k -e pai-eas.cn-shanghai.aliyuncs.com version -f 1
重要
如果您使用的独享调度资源组是在2022年8月10日之前创建的,则上述脚本的第16行和第19行代码,需要将
/home/admin/usertools/tools/eascmd64 ***
修改为/home/admin/usertools/tools/eascmd ***
。其中的参数解释请参见步骤四:部署初始模型。
步骤六:执行定时调度
-
执行调度任务。
-
在Shell节点页面,单击页面右侧的调度配置。
-
在调度配置页面的时间属性区域,选择调度周期。
-
在调度依赖区域,单击依赖的上游节点后的使用工作空间根节点。
-
配置依赖关系,详情请参见配置同周期调度依赖。
-
单击Shell节点页面上方的
图标,保存配置。
-
单击Shell节点页面上方的
图标,提交调度任务。
-
-
查看定时调度的运行实例。
-
在Shell节点页面,单击右上方的运维。
-
在运维中心页面,选择周期任务运维>周期实例。
-
在实例详情页面,查看模型自动部署的定时时间。
-
选择操作列下的更多>查看运行日志,查看每次定时部署的运行日志。
-
-
查看定时部署的模型服务。
-
登录PAI控制台。
-
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
-
按照下图操作指引,查看模型服务自动更新的所有历史版本。
-
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/164039.html