在混合多雲裡實踐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:

機器學習的生命週期

如果MLOps結合了ML系統開發和ML系統維運為一體,它的生命周期應該可以分成四個階段:

  • 實驗與開發
  • 持續訓練
  • 模型的持續整合、持續交付與部署
  • 持續監控

這裡的關鍵字,正是持續(Continuous),既然要能持續,因此這個生命周期會是一個循環,而且自動化是必須考慮的。

結語

MLOps 融合了機器學習、DevOps、軟體工程的生命週期與基礎架構,理想是讓模型與程式碼被自動地整合、測試、部署、再次測試、進而發布。發布之後更有持續地數據收集與觀察凖確性,回饋至實驗、開發、與訓練,讓團隊提供極高的信心來提供客戶滿意度。

地端 (On-prem) 與雲端各有所長,如果猶豫不決,或許你該考慮混合多雲 (hybrid multiclouds)!!

如果您想要看看這次演講的完整簡報檔,請點擊以下連結。

如果您想要進一步了解,MLOps和DevOps有什麼差異,可以看看 Patrick Fu 所撰寫的《DevOps與MLOps的比較》。

--

--

Jonathan Chen
Gemini Open Cloud 雙子星雲端

Leadership in software product/project/program management. PM of Gemini Open Cloud. Volunteer of Agile Community Taiwan. jonathan.speaking@gmail.com