未來趨勢:談 DataOps, MLOps 和 AIOps
圖片來源:https://www.xenonstack.com/blog/mlops
“ DevOps 最重要的目的是,考量軟體開發者(Dev)與維運者(Ops)間如何相互合作的流程、習慣和文化。”
DevOps 已經是現代化軟體公司非常重要的合作原則與企業文化。傳統的軟體公司會像生產線一樣,將軟體開發部門與負責維運的部門分到辦公室的不同樓層。開發者只要專注打造新功能、維運人員負責監測軟體的運作狀況。
但隨著軟體開發的流程越來越複雜,更新的頻率益加頻繁,為了避免讓開發與維運團隊的工作產生衝突。研究如何在這兩者之間建立共識、運用工具使流程更加自動化、讓開發者和維運人員間的溝通更為流暢,這就是 DevOps 的精神。
不只要 DevOps,最好還能導入 MLOps
現代化的敏捷開發 VS. 傳統瀑布式開發
傳統的瀑布式開發方式,發布更新可能會讓開發者失眠一整個晚上。開發者可能要好幾個月甚至是一年,才發佈一次更新。但現代化的軟體開發流程,更強調敏捷(Agile Development)式、持續交付(Continuous delivery)的開發方式,開發者可以在幾次的大型更新之間,每隔幾天安插一次小型更新,排除比較細節的問題。
這種開發方式,能夠降低大規模修改程式碼,不慎破壞程式核心功能的風險。也能夠更快速地回復使用者的需求,跟上市場的變化。
實際上每個團隊執行 DevOps 的方式各有不同。團隊可以聘請 PM 擔任協調人;或是運用各種數位工具,提升開發者和維運人員的溝通效率與自動化程度。DataOps, MLOps 和 AIOps,正是應用不同工具來協助團隊自動化執行 DevOps 的不同方法:
DataOps
開發團隊可以藉由收集各種使用資料,來作為軟體更新的參考。雖然收集資料並進行分析,主要是數據科學家的工作,但 DataOps 所倡導的概念就是希望團隊每一個會產出、使用資料的成員,都應該養成良好的習慣,提升資料的可信度與可用性,這樣才有好的數據能夠輔助決策。過去軟體的使用資料可能分散在各個資料庫中,需要手動處理,如何建立自動化的流程,也就是 MLOps 中很重要的一環。
圖片來源:https://chowdera.com/2020/12/20201229134405530p.html
MLOps (甚至是 AIOps)
有了高品質的使用數據,MLOps 才有被實現的可能。MLOps 也就是 Machine Learning + DEV+OPS 三個名詞的合併。MLOps 讓資料科學家建構的模型能夠跨團隊運作,甚至導入 AI,成為 AIOps,使自動化的程度更為深入。
MLOps ( 甚至是AIOps) 要能成功實行,選擇一個實用的 MLOps 平台非常重要。有三點非常的關鍵:
- Model 的執行環境一致:MLOps 雲端平台能夠確保在不同的裝置上,都能在一樣的環境中執行開發者的 Model,除了方便團隊一同使用之外,也更能確保執行結果的一致性,不會換台電腦就跑出不同結果。
- 容易控管訓練成本:機器學習在訓練 model 時可能會需要消耗大量運算資源,對很多想要導入MLOps的團隊來說,能夠自由增加或減少運算資源(例如GPU 數量、記憶體大小等),自動化節約成本,將錢花在最重要的地方,是很關鍵的。
- 連結常用的工具或服務:一個方便使用的 MLOps 平臺,應該要能夠串接各種常見的工具。以 MLOps 雲端平台「AI-Stack」為例,可以讓開發者在三分鐘內,設定容器規格與 image,使用 Jupiter Notebook 與 TensorBoard 等工具環境進行開發。
MLOps 最重要的精神,就是讓機器學習不再只是處理數據的工具,而是能夠讓團隊建立與時俱進、緊密合作的團隊文化。讓開發團隊和維運團隊彼此都能更加瞭解彼此的工作,相互優化。實現 MLOps 與 AIOPs, 將是現代化軟體開發團隊未來的重要趨勢。
想了解如何應用「AI-Stack」在團隊中導入 MLOps 提升團隊解決問題的能力、加速開發流程,請參考數位無限官網:https://www.infinitiessoft.com/