物体检测MLOps Workflow
1 准备数据
本次实验,我们使用口罩检测数据集,总共291张图,PASCAL数据标注格式。
该数据集已分享在华为云AI Gallery,从AI Gallery订阅数据集至ModelArts,就可以在ModelArts中使用了。
点击进入该数据集主页,点击“下载”,选择云服务区域:华北-北京四,点击确认,进入下载详情,按照如下提示填写下载详情:
下载方式:选择ModelArts数据集
目标区域:华北-北京四
数据集输出位置:选择一个OBS路径,存放ModelArts平台输出的标注信息等文件
数据集输入位置:选择一个OBS路径,存放原始图片和原始标签文件
名称:自定义
填写好参数后,点击“下一步”按钮,然后点击“确定”按钮,将进入“我的下载”页面:
大约1分钟左右,等待数据集状态变为推送成功,即可在ModelArts数据集列表中查看到下载的数据集。
2 订阅物体检测-YOLOv5工作流
在右侧打开新的标签页,复制以下地址:
进入YOLOv5工作流描述页面,点击“订阅”按钮(如已订阅,无需重复订阅),再点击“运行”按钮,将会跳转到“导入工作流”页面,如下图所示:
点击“导入”后进入到工作流配置页面,如下图所示,红框部分就是工作流的内容,总共有5个步骤节点,依次点击每个步骤节点可以查看其运行状况。
这5个步骤串起来,成了一个单向的工作流,含义就是从左往右依次执行数据标注、数据集版本发布、物体检测训练、模型注册和服务部署这5个步骤,最终就会得到一个YOLOv5物体检测的在线服务。
3 MLOps理念介绍
MLOps(Machine Learning Operation)是“机器学习”(Machine Learning)和“DevOps”(Development and Operations)的组合实践。
在学术研究中,一个AI算法的开发是面向固定的数据集(公共数据集或者某个特定场景固定数据集),基于这单个数据集上,不断做算法的迭代与优化,面向场景的AI系统化开发的过程中,除了模型的开发,还有整套系统的开发,于是软件系统开发中成功经验“DevOps”被自然地引入进来。
机器学习开发流程主要可以定义为四个步骤:项目设计、数据工程、模型构建、部署落地。AI开发并不是一个单向的流水线作业,在开发的过程中,会根据数据和模型结果进行多轮的实验迭代。算法工程师会根据数据特征以及数据的标签做多样化的数据处理以及多种模型优化,以获得在已有的数据集上更好的模型效果。传统的AI应用交付会直接在实验迭代结束后以输出的模型为终点。当应用上线后,随着时间的推移,会出现模型漂移的问题。新的数据和新的特征在已有的模型上表现会越来越差。在MLOps中,实验迭代的产物将会是一条固化下来的流水线,这条流水线将会包含数据工程,模型算法,训练配置等。用户将会使用这条流水线在持续产生的数据中持续迭代训练,确保这条流水线生产出来的模型的AI应用始终维持在一个较好的状态。MLOps的整条链路需要有一个工具去承载,去打通算法开发到交付运维的全流程,ModelArts Workflow就是这样一种工具。
上述YOLOv5工作流是一个很简单的工作流,只有一次模型训练和一个模型部署。但是,在某些真实的业务场景下,需要多次模型训练和多个模型同时部署才可以完成一项AI落地应用,AI开发和部署的流程都较为复杂,这时MLOps就显得更加重要了。使用Workflow工具把AI开发和部署的流程固化为一个工作流,后续需要重新训练、部署模型时,直接按照Workflow的顺序一步步操作就行了。总之,通过Workflow来管理AI开发和部署流程,相比传统的手工管理,具备以下优势:
(1)数据版本可管理,数据更新与模型重训练自动化无需手动操作
(2)模型效果可复现,代码可重用,提升开发效率,减少手动操作
(3)自动定时重新训练和发布模型,减少手动干预,有效防止模型腐化,提升开发效率
(4)模型性能及效果实时监控,防止出错
4 配置工作流
接下来,我们将对YOLOv5工作流进行一些配置,使其运行起来,感受一下工作流的AI开发与部署体验。
点击右上角的“配置”按钮,将进入配置页面。
各配置项含义说明如下:
(1) Workflow配置
① 运行配置:该参数为输出根目录配置,整个工作流的输出均会被保存在该目录下
② 资源配置:训练资源规格配置,建议选用GPU规格
(2) 节点配置
③ 数据标注节点配置:labeling_input 选择预先创建的数据集即可,版本可以不用选择;task_name 填写需要创建的标注任务名称即可(第一次运行需要填写,后续建议不修改,一直使用该标注任务)
④ 训练相关参数配置:算法超参相关的配置,每个参数的含义已在输入框下面进行说明,可直接使用默认值,也可以手动修改。本实验的训练数据集较小,为保证检测效果,需将train_model_name改成x,表示使用YOLOv5-x模型
⑤ 模型名称参数配置:模型注册和服务部署将共享同一个名称,工作流第一次运行建议填写新的名称,后续运行会自动在该模型上新增版本
(3) 服务配置
⑥ 定时执行:启用定时任务后,系统将按照配置的周期定时启动该工作流。如不启用定时任务,手动点击启动工作流时将立即执行。本实验不启动定时任务。
⑦ 消息通知:在事件列表中选择需要监控的节点/Workflow状态,在事件发生时将使用华为云消息通知服务SMN发送手机短信通知。本实验不启用订阅消息。
5 运行工作流
按照如上说明配置完成后,点击右上角的“保存配置”按钮,然后点击“启动”,workflow将进入运行态:
(1)人工确认数据标注
数据标注状态是否完成,需要人工确认。点击“数据标注”节点,如下图所示,可以看到状态为“等待操作”,且提示“请前往 实例详情 页面进行标注”。
点击“实例详情”,进入到数据标注预览页面,需人工检查每张图的标注是否正确。如果标注不准确,可以点击图片,进入在线标注模式,直接在网页端修改标注。在线标注方法可查看此文档。
本实验提供的数据集均已完成准确标注,无需在线修改标注。
(2)数据集版本发布
返回到workflow运行页面,标注已确认完毕,点击“继续运行”按钮,将会自动进入“数据集版本发布”步骤,等待15秒左右可运行成功
(3)物体检测训练
“数据集版本发布”运行成功后,会自动进入“物体检测训练”步骤,可点击该节点查看运行状况,也可进一步点击“实例详情”查看训练日志。耗时约15分钟,训练运行完成。
(4)模型注册
“模型注册”步骤会自动把上一步骤“物体检测训练”输出的模型打包成一个容器镜像,以便做下一步的服务部署。
(5)人工确认服务部署
模型打包成镜像后,需要人工确认使用什么样的计算节点规格来部署该服务,比如使用P4或T4 GPU,还是使用CPU来部署。点击“服务部署”节点,参考下图选择 CPU:2核 8GB,且开启1小时后自动停止
确认配置完后,点击“继续运行”按钮,大约等待5分钟后,“服务部署”节点运行成功。点击“实例详情”,进入到在线服务详情页面。
6 在线服务测试
在线服务本质上是一个RESTful API,可以通过HTTP请求访问,也可以在网页上直接上传图片进行测试。
测试图片URL:
https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com:443/20221024/mask.jpg
您可下载此图片或其他图片进行预测。
然后在服务详情页面,点击 预测 -> 上传,选择刚下载的图片进行上传,然后再点“预测”按钮,将看到预测结果,如下图所示:
至此,您已经完成了使用ModelArts YOLOv5 Workflow从数据标注开始到在线服务部署的端到端AI开发部署过程。
如需了解更详细的Workflow使用方法,请点此文档进行查看。
除了YOLOv5 Workflow之外,ModelArts还提供更多Wrokflow,请前往AI Gallery Workflow 页面查看.
- 点赞
- 收藏
- 关注作者
评论(0)