在混合多雲裡實踐MLOps
日前,在人工智慧協會舉辦的AI Talk活動中,我講了《在混合多雲裡實踐MLOps》這個題目。為了紀念這次經驗,特地自己整理了重點摘要如下。
What is MLOps?
MLOps,是一種旨在結合 ML 系統開發與 ML 系統運營的 ML 工程文化與實踐。
熟悉軟體工程的朋友會發現,這個定義和 DevOps 非常接近。的確,MLOps 是從 DevOps 衍生出來,目的都是結合開發與運營,但 MLOps 確有其特別之處,這個差別,就在於 Data。
Why MLOps?
人們以為,AI專案就是「收集數據」、「訓練模型」、「部署生產環境」,特別是訓練模型,似乎只要訓練出模型,AI專案就大功告成了。
但是實情真是如此嗎?
根據調查,資料科學家有三分之二的時間花在「非資料科學」的事情上,像是設定Kubernetes、伺服器、網路、儲存與雲端平台,像是資源管理,只有三分之一的時間在「資料科學」,更不用說,模型訓練還只是這三分之一裡的一部份而已。
您花了高薪聘請了資料科學家,資料科學家卻沒有去做他們真正擅長的事,因為實情是:
現實世界中只有一小部分系統由ML程式組成,而周圍所需要的基礎設施,是龐大而複雜的。
快速部署基建、團隊共享協作
基礎建設,就應該是要人人都可以使用,團隊可以共享的。如果GPU資源僅有少數人能使用而不易協作,就會讓資源利用不均,各自為政,生產力低落,未來就不易擴展更多專案了。
能夠支撐MLOps/DevOps的團隊協作環境,簡化工作流程,GPU/CPU的資源共享利用最佳化,提升資源利用率,未來就更容易地推動更多AI專案了。
混合多雲裡的MLOps
說到基礎建設,很多人都會猶豫成本或時間的問題。其實,公有雲與私有雲是各有所長,因此混合起來彈性搭配是國外多數AI專案的選擇,有許多經濟實惠的SaaS服務,都能利用來快速打造合適的基礎建設。以下有幾支影片,示範了一套混合多雲的MLOps:
- 創建新專案: https://fb.watch/4ORvUzXbG7/
- 創建一個TensorFlow容器: https://fb.watch/4OTecX9I6V/
- 訓練模型 MLOps: https://fb.watch/4OREDFumhQ/
機器學習的生命週期
如果MLOps結合了ML系統開發和ML系統維運為一體,它的生命周期應該可以分成四個階段:
- 實驗與開發
- 持續訓練
- 模型的持續整合、持續交付與部署
- 持續監控
這裡的關鍵字,正是持續(Continuous),既然要能持續,因此這個生命周期會是一個循環,而且自動化是必須考慮的。
結語
MLOps 融合了機器學習、DevOps、軟體工程的生命週期與基礎架構,理想是讓模型與程式碼被自動地整合、測試、部署、再次測試、進而發布。發布之後更有持續地數據收集與觀察凖確性,回饋至實驗、開發、與訓練,讓團隊提供極高的信心來提供客戶滿意度。
地端 (On-prem) 與雲端各有所長,如果猶豫不決,或許你該考慮混合多雲 (hybrid multiclouds)!!
如果您想要看看這次演講的完整簡報檔,請點擊以下連結。
如果您想要進一步了解,MLOps和DevOps有什麼差異,可以看看 Patrick Fu 所撰寫的《DevOps與MLOps的比較》。