华为云AI开发平台ModelArts纳管Atlas 500,将模型部署为边缘服务_云淘科技
Atlas人工智能计算平台,是基于华为昇腾系列AI处理器,打造面向“端、边、云”的全场景AI基础设施方案。配合Atlas系列边缘设备,华为云智能边缘服务(IEF)和AI开发平台(ModelArts)结合,将构建的AI模型快速部署至Atlas设备中,满足在安防、交通、社区、园区、 商场、超市等复杂环境区域的应用需求。
本案例以Atlas 500作为边缘设备,若使用其他边缘设备部署服务,请确认边缘节点是否满足IEF约束与限制。
步骤一:模型准备
步骤二:在IEF中注册并纳管Atlas 500
步骤三:将AI应用部署为边缘服务
步骤四:查看推理结果
图1 纳管Atlas 500并将模型部署至边缘服务
步骤一:模型准备
在部署边缘服务前,您需要准备配套的模型。针对本示例,指导用户使用ModelArts预置算法训练模型。
在AI Gallery中,下载dataset_mask_detection_500数据集。
在数据集详情页,单击“下载”,根据页面指导,将数据集下载至OBS路径下。其中,目标区域与ModelArts所在区域一致。
数据集启动下载后,需要一段时间,请耐心等待,您也可以前往“我的Gallery > 我的资产 > 数据 > 我的下载”,查看下载进度。
图2 下载数据集至OBS桶
创建并发布数据集。
进入ModelArts管理控制台,选择“数据管理 > 数据集(旧版)”,单击“创建数据集”,标注类型选择“物体检测”,使用上一步中的OBS路径作为“数据集输入位置”,“数据集输出位置”需指定为一个空目录存储输出。
图3 创建数据集
数据集创建完成后,当数据集详情中显示500张图片已标注后,执行发布数据集的操作。注意一点,需开启数据切分功能,并将训练集比例设置为“0.8”。
图4 发布数据集
订阅算法。
在AI Gallery中,订阅物体检测YOLOv3_ResNet18算法,根据界面提示订阅此算法。
使用订阅算法和数据集创建训练作业。
在ModelArts管理控制台,选择“训练管理 > 训练作业”。
在训练作业列表页面,单击“创建训练作业”。
在创建训练作业页面,“创建方式”选择“我的订阅”,在订阅列表中查看3中订阅算法的详情,选中一个算法版本,参考如下说明填写关键参数。
“输入”:选择“数据集”,然后从弹出框中选择2中创建好的数据集。数据集一定要选择切分训练集比例的版本,否则将会导致训练失败。
“输出”:选择一个OBS空目录存储训练输出的模型。
“超参”:建议采用默认值。如需进行调优,可参考运行参数说明。
“资源类型”:建议选择GPU规格的资源类型,训练效率会更高一些。
“作业日志路径”:选择一个OBS空目录存储训练输出的日志。
参数填写完成后,单击“下一步”,确认规格参数,单击“确定”,完成训练作业创建。
模型转换和创建AI应用。
如果您需要导入您自己开发的AI应用,请参考如下要求,将满足要求的AI应用导入ModelArts。
需保证您的AI应用支持使用Ascend芯片推理。且AI应用使用的驱动版本与Atlas设备一致。
如果您的AI应用需要使用Ascend芯片推理,但是模型并不是.om格式(即不满足推理要求),可使用ModelArts模型转换功能,先将模型格式进行转换。转换操作可参见模型转换。
针对转换完成的模型,可使用模型模板将模型导入至ModelArts中创建AI应用。为了方便Ascend用户,ModelArts预置了模型模板,建议选择从模板中选择元模型的方式导入模型,减少了模型配置文件编写工作。选择模板时,请选择ARM-Ascend模板,只有按此模板导入的模型,才可直接部署至Atlas 500设备中。
训练后得到的模型并不符合Atlas 500要求,需转换成om格式后再导入ModelArts。
在ModelArts管理控制台,选择“AI应用管理 > 模型转换”。
在模型转换列表页面,单击“创建任务”。
在创建转换任务页面中,参考如下说明填写关键参数。
“输入框架”:选择“TensorFlow”。
“转换输入目录”:请选择训练作业输出路径下的“/V00X/frozen_gragh”目录。其中“/V00X”请根据实际参数填写,“/frozen_gragh”为训练作业自动生成的文件夹。
“输出框架”:选择“MindSpore”。
“转换输出目录”:请选择训练作业输出路径下的“/V00X/om/model”目录。其中“/V00X”请根据实际参数填写,“/om/model”为训练作业自动生成的文件夹。
“转换模板”:请选择“TF-FrozenGraph-To-Ascend-C32”模板。更多转换模板及其高级参数介绍请参见转换模板。
“高级选项”:本示例可直接使用参数值如下所示。如果需要修改,请参见转换模板了解参数说明。
“L2动态优化”:“true”
“生成高精度模型”:“0”
“输入数据格式”:“NHWC”
“输入张量形状”:“images:1,224,224,3”
“优选数据格式”:“5D”
“转换输出节点”:“logits:0”
“网络输出类型”:“FP32”
图5 转换模型
转换模型的参数填写完成后,单击“立即创建”,页面自动跳转至“模型转换”列表。
当模型转换的“任务状态”变为“成功”时,表示模型已被转换成“om”格式。转换过程预计6分钟左右。
图6 模型转换成功
模型转换为om格式后,可采用“从模板中选择”的方式,导入模型部署为AI应用。
在ModelArts管理控制台,选择“A应用管理 > AI应用 > 我的AI应用”。
在我的AI应用列表页面,单击“创建”。进入创建AI应用页面,参考如下说明填写关键参数。
“元模型来源”:选择“从模板中选择”。
“模型模板”:本示例的模型需部署在Ascend芯片上,因此需选择“ARM-Ascend模板”,“MindSpore”引擎。然后在“模型目录”中选择c. 在创建转换任务页面中,参考如下说明填写关键…步骤中“转换输出目录”下的“model”目录,即“/model”。
“输入输出模式”:由于“ResNet_v1_50”算法的模型为“图像分类”类型的,因此此处需选择预置图像处理模式。
“部署类型”:勾选“边缘服务”。
图7 从模板中选择模型
参数填写完成后,单击立即创建。页面自动跳转至AI应用列表页面,等待AI应用创建结果。
当AI应用的状态变为“正常”时,表示创建成功。预计3分钟左右。
执行模型转换和创建AI应用时,请参考“物体检测YOLOv3_ResNet18”算法详情页的描述,根据“Ascend推理”的内容选择模型和参数设置。
步骤二:在IEF中注册并纳管Atlas 500
将您的Atlas 500设备注册并纳管至华为云IEF服务中,纳管后,可直接在ModelArts中完成模型部署。
注册边缘节点。
登录智能边缘平台(IEF),请先同意授权,进入管理控制台。
选择左侧导航栏的“边缘资源 > 边缘节点”,单击页面右上角的“注册边缘节点”。
配置边缘节点基本信息。
名称:边缘节点的名称。
标签
标签可用于对资源进行标记,方便分类管理。
如果您需要使用同一标签标识多种云资源,即所有服务均可在标签输入框下拉选择同一标签,建议在TMS服务中创建预定义标签。
AI加速卡:选择“昇腾AI加速卡 > Snt3”。
绑定设备:为边缘节点绑定边缘设备。设备在注册边缘节点后仍然可以绑定。
是否启用docker:启用后可以支持部署容器应用。
监听地址:
配置边缘节点上MQTT Broker的监听地址,可以选择网卡或IP。
当前支持配置边缘节点的系统日志和应用日志。
系统日志:边缘节点上IEF软件(如edge-core、edge-logger和edge-monitor等)产生的日志。
应用日志:边缘节点上部署的应用所产生的日志。
系统日志和应用日志需要配置如下几个参数:
日志文件大小:日志文件大小限制,单位MB,默认50,取值范围10-1000。某个日志文件如果达到大小限制,则会转储。
系统日志保存在边缘节点“/var/IEF/sys/log/”目录下,然后转储到AOM;
应用日志会将容器的标准输出和挂载到边缘节点“/var/IEF/app/log”的日志转储到AOM。
滚动日志周期:日志转储周期,可选项:每天,每周,每月,每年。日志文件大小和滚动日志周期是同时生效的,满足任何一个条件都会进行日志转储。
滚动日志数量:日志文件转储个数,默认5,取值范围1-10。边缘节点保存的转储日志数量如果达到限制,则会删除最老的那个转储文件。
是否开启云端日志:
您可以通过开关控制是否上传日志到AOM服务,开启之后您可以在AOM中查看日志,具体请参见在AOM查看日志。
云端日志级别:
系统日志的可选项为:Error,Warning,Info,Debug。日志级别配置不同,上传的日志内容也不相同,Error,Warning,Info,Debug表示上传不同的日志级别。
单击页面右下角的“注册”,下载配置文件,在后续2.d时将用到这些。
图8 下载配置文件
单击“完成”。
您可以看到边缘节点的状态为“未纳管”,这是因为还未纳管边缘节点,请参见2纳管节点。
纳管Atlas 500智能小站。
以admin用户登录智能小站后台,检查DNS服务器域名解析是否正常。
切换至develop模式,输入root用户的密码。
尝试ping华为云IEF的服务地址,观察域名是否能够解析。
ping ief-edgeaccess.cn-south-1.myhuaweicloud.com
如果显示如下,则说明无法解析。
执行如下命令,将公网的DNS服务器IP地址(例如114.114.114.114)加入resolv.conf。
vi /etc/resolv.conf
如果显示如下,则说明能解析,请执行下一步。
登录智能小站的WebUI,WebUI地址为https://{hostIP}。
hostIP为智能小站的IP地址。
选择顶侧导航栏“维护”,单击页面左侧的“网管注册”。
选择网管模式为“华为云智能边缘平台IEF管理”,并上传1.d下载的配置文件。
图9 上传IEF节点证书
单击“保存”,等待智能小站被纳管到IEF平台。
在IEF控制台查看节点详情中的当前状态。当前状态为“运行中”表示纳管成功。
步骤三:将AI应用部署为边缘服务
登录ModelArts管理控制台,在左侧菜单栏中选择“部署上线>边缘服务”,在边缘服务列表中,单击“部署”进入“部署”页面。
在“部署”页面中,选择对应的AI应用及其版本。选择“计算节点规格”和“边缘节点”。
“计算节点规格”:选择“Ascend: 1* snt3 (8GB) | ARM: 3 核 3GB”。
“边缘节点”:单击“添加”,在弹出的“添加节点”对话框中,选择在IEF中纳管的Atlas 500节点,然后单击“确定”。
图10 部署为边缘服务(Atlas 500)
若“计算节点规格”无法选择“snt3”,请参考为什么选择不了snt3资源?解决。
若添加节点后,提示“请先完成:升级C32固件”,请参考(可选)升级Atlas 500固件升级固件。
单击“立即创建”,完成边缘服务的部署操作。
系统自动进入“边缘服务”列表,新部署的边缘服务将展现在列表中。服务部署需要耗费一些时间,本示例选用的Atlas 500部署时需耗费十分钟左右,请耐心等待。当服务状态变为“运行中”时,表示边缘服务已部署完成,您可以单击服务名称进入服务详情页。
如图11所示,“运行中”的服务,可以在“节点信息”中获得一个URL,该URL为模型访问、推理、预测接口。同时,此边缘服务处于“运行中”时,表示您的Atlas 500已具备此模型的AI能力。
图11 边缘服务详情
步骤四:查看推理结果
通过postman发送http请求,查看推理结果。
下载Postman软件并安装,您可以直接在Chrome浏览器添加Postman扩展程序(也可使用其它支持发送post请求的软件)。
打开Postman。
图12 Postman软件界面
在Postman界面填写参数,以图像分类举例说明。
选择POST任务,将边缘节点的调用地址(即步骤三:将AI应用部署为边缘服务步骤完成后获得的URL)复制到POST后面的方框。
图13 POST参数填写
在Body页签,根据模型的输入参数不同,可分为2种类型:文件输入、文本输入。本示例的图像分类模型为文件输入。
选择“form-data”。在“KEY”值填写模型的入参,比如本例中预测图片的参数为“images”。然后在“VALUE”值,选择文件,上传一张待预测图片(当前仅支持单张图片预测)。
图14 填写Body配置
参数填写完成,单击“Send”发送请求,结果会在Response下的对话框里显示。
文件输入形式的预测结果如下图所示,返回结果的字段值根据不同模型可能有所不同。
图15 边缘服务文件输入预测结果
为避免资源浪费,在试用完成后,建议停止边缘服务,同时可前往ModelArts和OBS清理不必要的数据。例如创建的AI应用、模型转换任务、训练作业、数据集、存储在OBS的数据集及模型文件等。
(可选)升级Atlas 500固件
在本案例中,使用的是ModelArts预置算法训练模型,其模型匹配的固件版本为C32,而Atlas 500设备默认固件为C30。如需要将此类模型部署至Atlas 500,则需要升级Atlas 500设置。如果您的模型与设备的固件版本匹配,则无需执行此操作。
判断Atlas 500固件版本。
当部署边缘服务时,在选择Atlas 500节点后,如果出现如下图所示提示,表示您的设备与模型不匹配,需升级C32固件。
图16 部署为边缘服务(Atlas 500)
升级Atlas 500固件。
在节点列表下方单击“升级C32固件”,在弹出的对话框中,仔细阅读升级说明,勾选“我已阅读并同意以上内容”,然后单击“下载”,将固件版本及升级指导下载至本地。文件名称为“atlas500_C32_Firmware.zip”。
解压“atlas500_C32_Firmware.zip”文件,打开Atlas500产品C32固件升级操作指导.doc文件,根据指导完成Atlas 500的固件升级操作。
父主题: 推理部署
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家