iT邦幫忙

0

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

  • 分享至 

  • xImage
  •  

本系列最後一篇文章!
在前面建立了一條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)

https://ithelp.ithome.com.tw/upload/images/20230119/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:
https://ithelp.ithome.com.tw/upload/images/20230119/20154404ArzQvfgUw6.png

輸入commit message後(我這裡是填入my commit,最好寫一個自己看得懂的),點選commit:
https://ithelp.ithome.com.tw/upload/images/20230119/20154404YlipMg62Av.png

push到Azure DevOps Repo:
https://ithelp.ithome.com.tw/upload/images/20230119/20154404GMrEz7gani.png

Azure DevOps Repo更新了:
https://ithelp.ithome.com.tw/upload/images/20230119/20154404ZNXhoqzW8T.png

2.Azure DevOps Repo更新了訓練模型(添加了commit),會自動開始進行CI pipeline流程

點選pipeline,可以看到CI pipeline【MLOps-WorkShop-1-CI】正在運作(藍色轉圈圈):
https://ithelp.ithome.com.tw/upload/images/20230119/20154404fX2mZq4YHp.png

執行步驟檢視:
https://ithelp.ithome.com.tw/upload/images/20230119/20154404BYsEL4glrX.png

3.CI pipeline執行上傳訓練資料至Azure Machine Learning data assets、在Azure Machine Learning訓練模型、註冊模型

Azure Machine Learning workspace上,點選job可以看到本次執行的實驗:
https://ithelp.ithome.com.tw/upload/images/20230119/20154404vKGO3yyAE4.png

Azure Machine Learning workspace上,點選左欄Models可以看到本次執行被註冊的模型,如下圖示範已經到version 5,這就是模型的版本控管了:
https://ithelp.ithome.com.tw/upload/images/20230119/201544045M83och8OS.png

4.產出模型後,會自動開始進行CD pipeline流程

CI pipeline完成後,自動進行CD pipeline第一部份:部署到測試環境
https://ithelp.ithome.com.tw/upload/images/20230119/20154404iw8OvO9nCy.png

CD pipeline第二部份:部署到正式環境,等待核准:
(備註:上一篇有說明,因為試用帳戶限制,所以先部署到ACI)
https://ithelp.ithome.com.tw/upload/images/20230119/201544040zDJT2chqA.png

核准者收到核准信,點選view approval:
https://ithelp.ithome.com.tw/upload/images/20230119/201544042johN7wFGI.png

點選核准後:
https://ithelp.ithome.com.tw/upload/images/20230119/20154404ZXsvGAHoow.png

執行CD pipeline【第二部份:部署到正式環境】:
https://ithelp.ithome.com.tw/upload/images/20230119/20154404HVyusRC1wt.png

最後,我們就可以在Azure Machine Learning workspace endpoint上,看到新版的web service endpoint更新成新版的了 (箭頭處可以看到這個api endpoint更新時間):
https://ithelp.ithome.com.tw/upload/images/20230119/201544049DM2kcb431.png

一旦建立好CI/CD流程,資料科學家push新版本的訓練程式碼到Azure DevOps Repo,所有步驟會自己完成,管理模型真的好輕鬆!
/images/emoticon/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


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言