本系列最后一篇文章!
在前面建立了一条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)
在第一篇文章有提到MLOPS精神为
(1)【程式码、模型、资料】版本控管
(2) 训练模型/模型部署自动化
实现MLOPS的流程和方法有许多种方式,也有分等级;也会因为专案执行方式不同,有各种不同pipeline建立方式。本篇就来测试一次整个情境吧!
1. 资料科学家产出了一版新的训练程式码,想要训练出模型后部署到测试环境,使用git push把新的版本程式码推送到Azure DevOps
在IDE上进行修改演算法,新版演算法修改完成。利用git进行版控,点选git:
输入commit message后(我这里是填入my commit,最好写一个自己看得懂的),点选commit:
push到Azure DevOps Repo:
Azure DevOps Repo更新了:
2.Azure DevOps Repo更新了训练模型(添加了commit),会自动开始进行CI pipeline流程
点选pipeline,可以看到CI pipeline【MLOps-WorkShop-1-CI】正在运作(蓝色转圈圈):
执行步骤检视:
3.CI pipeline执行上传训练资料至Azure Machine Learning data assets、在Azure Machine Learning训练模型、注册模型
Azure Machine Learning workspace上,点选job可以看到本次执行的实验:
Azure Machine Learning workspace上,点选左栏Models可以看到本次执行被注册的模型,如下图示範已经到version 5,这就是模型的版本控管了:
4.产出模型后,会自动开始进行CD pipeline流程
CI pipeline完成后,自动进行CD pipeline第一部份:部署到测试环境
CD pipeline第二部份:部署到正式环境,等待核准:
(备注:上一篇有说明,因为试用帐户限制,所以先部署到ACI)
核准者收到核准信,点选view approval:
点选核准后:
执行CD pipeline【第二部份:部署到正式环境】:
最后,我们就可以在Azure Machine Learning workspace endpoint上,看到新版的web service endpoint更新成新版的了 (箭头处可以看到这个api endpoint更新时间):
一旦建立好CI/CD流程,资料科学家push新版本的训练程式码到Azure DevOps Repo,所有步骤会自己完成,管理模型真的好轻鬆!
【心得发表】
最后感谢大家的收看我的练习笔记,教学内容是来自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