【Azure MLOps - 最终篇】END TO END CI/CD MLOPS

本系列最后一篇文章!
在前面建立了一条CI pipeline和一条CD pipeline:
(1) CI pipeline流程,负责上传、注册训练资料到Azure Machine Learning data assets;在Azure Machine Learning训练模型、注册模型
(2) CD pipeline流程,负责藉由Azure Machine Learning服务把模型部署到测试环境(Azure compute instance,ACI)与正式环境(AKS),产出endpoint web service (API)

http://img2.58codes.com/2024/20154404VzvbKPxRR2.png

在第一篇文章有提到MLOPS精神为
(1)【程式码、模型、资料】版本控管
(2) 训练模型/模型部署自动化

情境步骤MLOPS精神1.资料科学家产出了一版新的训练程式码(例如:修改train_aml.py),想要训练出模型后部署到测试环境,使用git push把新的版本程式码推送到Azure DevOps Repo实现程式码的版本控管2.Azure DevOps Repo更新了训练模型的程式码(添加了commit),触发CI pipeline流程实现自动化3.CI pipeline执行上传训练资料至Azure Machine Learning worksapce、使用Azure Machine Learning workspace compute训练模型、注册模型实现资料与模型的版本控管 (AML可以做versioning)4.产出模型后,触发CD pipeline流程,使用Azure Machine Learning workspace的endpoint功能进行部署实现自动化

实现MLOPS的流程和方法有许多种方式,也有分等级;也会因为专案执行方式不同,有各种不同pipeline建立方式。本篇就来测试一次整个情境吧!

1. 资料科学家产出了一版新的训练程式码,想要训练出模型后部署到测试环境,使用git push把新的版本程式码推送到Azure DevOps

在IDE上进行修改演算法,新版演算法修改完成。利用git进行版控,点选git:
http://img2.58codes.com/2024/20154404ArzQvfgUw6.png

输入commit message后(我这里是填入my commit,最好写一个自己看得懂的),点选commit:
http://img2.58codes.com/2024/20154404YlipMg62Av.png

push到Azure DevOps Repo:
http://img2.58codes.com/2024/20154404GMrEz7gani.png

Azure DevOps Repo更新了:
http://img2.58codes.com/2024/20154404ZNXhoqzW8T.png

2.Azure DevOps Repo更新了训练模型(添加了commit),会自动开始进行CI pipeline流程

点选pipeline,可以看到CI pipeline【MLOps-WorkShop-1-CI】正在运作(蓝色转圈圈):
http://img2.58codes.com/2024/20154404fX2mZq4YHp.png

执行步骤检视:
http://img2.58codes.com/2024/20154404BYsEL4glrX.png

3.CI pipeline执行上传训练资料至Azure Machine Learning data assets、在Azure Machine Learning训练模型、注册模型

Azure Machine Learning workspace上,点选job可以看到本次执行的实验:
http://img2.58codes.com/2024/20154404vKGO3yyAE4.png

Azure Machine Learning workspace上,点选左栏Models可以看到本次执行被注册的模型,如下图示範已经到version 5,这就是模型的版本控管了:
http://img2.58codes.com/2024/201544045M83och8OS.png

4.产出模型后,会自动开始进行CD pipeline流程

CI pipeline完成后,自动进行CD pipeline第一部份:部署到测试环境
http://img2.58codes.com/2024/20154404iw8OvO9nCy.png

CD pipeline第二部份:部署到正式环境,等待核准:
(备注:上一篇有说明,因为试用帐户限制,所以先部署到ACI)
http://img2.58codes.com/2024/201544040zDJT2chqA.png

核准者收到核准信,点选view approval:
http://img2.58codes.com/2024/201544042johN7wFGI.png

点选核准后:
http://img2.58codes.com/2024/20154404ZXsvGAHoow.png

执行CD pipeline【第二部份:部署到正式环境】:
http://img2.58codes.com/2024/20154404HVyusRC1wt.png

最后,我们就可以在Azure Machine Learning workspace endpoint上,看到新版的web service endpoint更新成新版的了 (箭头处可以看到这个api endpoint更新时间):
http://img2.58codes.com/2024/201544049DM2kcb431.png

一旦建立好CI/CD流程,资料科学家push新版本的训练程式码到Azure DevOps Repo,所有步骤会自己完成,管理模型真的好轻鬆!
http://img2.58codes.com/2024/emoticon34.gif

【心得发表】

最后感谢大家的收看我的练习笔记,教学内容是来自MG老师的示範影片。

这个笔记原本是只想要公开给我的同事们,但是后来想想,决定公开到网路上,可以让更多人一起学习,然后又可以让更多高手分享MLOPS作法,大家又可以从中获得更多。
所以如果有任何前辈,发现系列文中有错误的地方,欢迎讨论指正。

感谢大家!下次再见~
前几篇文章参考:
【Azure MLOps - 1】使用Azure DevOps建立AML pipelines
【Azure MLOps - 2】使用Azure DevOps建立专案与连线设定
【Azure MLOps - 3】使用Azure DevOps建立训练模型的CI pipeline(上)
【Azure MLOps - 4】使用Azure DevOps建立训练模型的CI pipeline(下)
【Azure MLOps - 5】执行Azure DevOps CI pipeline
【Azure MLOps - 6】建立CD pipeline:把机器学习模型部署到staging area
【Azure MLOps - 7】建立CD pipeline:把机器学习模型部署到production area


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章