MLOps也就是ML+Dev+Ops的概念,在ML階段,需要運用不同資料設計初始模型;在開發(Dev)階段,需要進行模型開發與測試,並持續整合、部署上線;在維運階段(Ops)則需要持續交付,並透過監控系統來獲得品質回饋。圖片來源/Neal Analytics

根據iThome在2020年初所做的企業AI成熟度調查,臺灣已經擁抱AI的企業中,約有一半的AI採用者,還在摸索走出試驗階段,但也有五分之一的企業開始擴大採用AI,或是要培養數據驅動的決策文化,來深化AI應用。隨著越來越多企業AI先行者走到擴大採用的階段,開發AI不再問Why或How,如何提升AI開發的速度與品質,成為企業面臨的新挑戰。

為了加速AI模型開發,市面上早已出現許多AutoML工具,來實現AI開發各階段的自動化,不只能減少重複性的開發任務,還能簡化AI開發流程。不過,隨著模型進入持續交付、模型監控與迭代更新的階段,要串起整個模型從開發到維運的生命周期循環,光靠自動化還不夠,更需要AI團隊與IT團隊緊密協作,來加速AI應用落地。

國外近兩年興起了一股「MLOps」風潮,取自ML結合DevOps的意涵,提倡ML開發也應該納入DevOps文化,讓AI團隊內的分工合作以及與IT工程師之間的協作都更緊密,要達到這個目標,就需要建立一套標準化且自動化的AI開發流程,建立起系統性AI協作新方法。

MLOps之所以受到重視,源自企業用過去開發方法來擴大AI應用規模時,開始面臨瓶頸。Google雲端AI平臺的產品經理Nate Keating就指出,當前企業的AI開發流程,不僅耗時,還高度仰賴手動操作,且因開發過程的知識經驗,通常只限該專案開發者能理解,導致開發流程難以被他人複製,或重複利用到新專案中。在這個情況下,AI開發也容易出錯,比如發生訓練與部署階段模型表現不一的問題,出現錯誤後,更難以除錯或找出問題所在。

Deloitte在一份報告中點出,AI團隊通常仰賴少數或資深資料科學家來開發模型,但老手的開發經驗會與個人求學背景、喜好相關聯,導致這些高度手動、自行定義的開發流程難被複製或擴張,儘管這些流程很聰明,但彈性不大,還會限縮AI開發的創造力。

這些挑戰,使得DevOps方法開始走進資料科學家和資料工程師的視野,Deloitte更指出,透過MLOps塑造的標準化、自動化開發流程,能讓AI開發從過去自成一格的特製化開發方式(Exceptionalism),走向快速擴張且有效率的專業化開發(Professionalism)。

除了AI開發本身遇到的階段性瓶頸,來勢洶洶的COVID-19疫情,更進一步凸顯了MLOps的重要性。

臺灣AI學校校長孔祥重,就在2020年的臺灣AI年會上指出,儘管AI能在疫情中派上用場,但在部分應用中,AI開發速度仍跟不上需求的變化,最主要的原因,正是AI開發的工作流太長,尤其在前期資料取得與後期模型部署的環節,通常耗費許多時間,AI團隊必須將更多手動流程自動化、最佳化,才能加速模型上線。

不只如此,COVID-19也加劇了AI維運的挑戰。Deloitte指出,COVID-19流行期間出現的「新常態」,導致許多供應鏈需求預測AI過去所依賴的數據和假設,幾乎在一夜之間不堪使用,在AI模型更新頻率不足的情況下,模型表現就會快速劣化。導入MLOps的企業,已經有一套標準化的AI維運流程,透過滾動蒐集企業與用戶資料,隨時追蹤模型表現,就能在必要時重新訓練模型。

MLOps如何促成ML端與工程端人員協作?

顧名思義,MLOps是一種結合了ML、Dev、Ops的協作方法。若以階段任務來解釋,在ML階段,需要運用不同資料來設計初始模型;在開發階段,需要進行模型開發與測試,並持續整合、部署上線;在維運階段,則需要持續交付模型,並透過監控系統來獲得品質回饋。

對於MLOps的定義,Google則有更直白的解讀。Nate Keating描述,企業要落地一個AI應用,需做的事情遠比訓練一個模型多更多,甚至可以說,整個ML開發系統只有非常少部分的程式碼,是訓練模型所使用,在這之外,還需要執行非常多的技術與流程,「而這些流程的整合與管理,就稱為MLOps。」

Nate Keating更將結合了MLOps的AI開發流程,比擬為生產線(Assembly Line),因為生產線的原理,正是透過一連串標準化的技術與流程,來進行持續且高品質的生產與交付。

Google也大致描繪了這條ML開發的端到端生產線,來說明ML端的開發者與工程端IT人員在各開發環節中的協作任務。首先在模型試驗與發展階段,資料分析人員會進行資料處理、開發模型的任務,IT人員則需同步將程式碼存到對應的儲存位置,來管理資料來源;接著,ML工程師會運用CI/CD的方法,將這些試驗得到的模型部署到合適的環境中,並建立起模型訓練工作流,IT人員則需要將每一段過程的半成品(Artifacts)妥善儲存到對應位置,以便未來有需要時重新檢視。

在訓練模型的階段,ML開發者會以一段時間為單位來重複訓練模型,或是由新蒐集的資料來觸發模型重新訓練,這個階段,IT人員需要把不同版本的模型及其執行結果存下來,提供模型部署時使用;進入模型部署的CI/CD階段,ML工程師會經過一連串測試、階段式模型管理的流程,來確保模型能交付上線,IT人員也需要管理硬體基礎設施資源,來確保模型上線後能確實執行。

最後,在模型實際投入生產後,會由IT維運人員存下模型執行過程中的Log,並由ML端監控模型表現是否劣化或漂移(Model Drift),一旦發現問題,就必須回到先前的步驟來重新訓練、測試、部署模型。

Nate Keating指出,這個端到端AI開發流程的工作量非常大,光是在試驗階段,就可能需要數以千計的實驗次數,來找出合適的模型,在測試階段也可能要執行數十種模型才能交付上線。因此,透過設定完整的MLOps工作流與一個集中式ML儲存資料庫,來管理關鍵步驟與處理後的ML訓練半成品,才能讓AI團隊、IT團隊與資料治理團隊,擁有系統性的紀錄,來進行分析、稽核或追蹤無數的自動化ML流程或步驟。

MLOps吹進臺灣,助企業規模化落地AI

看見MLOps興起的趨勢,公有雲大廠也從2019年開始接連發布了MLOps解決方案,比如微軟就在2019年的Build大會上,宣布了Azure ML服務中的MLOps功能,Google也在2020年發布了雲端AI平臺Pipelines,AWS則提出了MLOps框架,不只要讓開發者能透過平臺工具快速建立ML工作流,更著力於ML生命周期的管理與監控,來加速ML產品化。

IDC在2020年發布的全球AI採用度調查也發現,根據受調查的2,000多位IT或相關主管回覆,仍有約有28%的專案因缺乏專家、生產數據與整合的開發環境,最終以失敗收尾。IDC因此鼓吹,企業必須擁抱MLOps,才能更大規模的實現AI。

Deloitte更在2021年趨勢預測報告中指出,透過一連串自動化且標準化的開發與維運準則,MLOps能加速AI開發流程,進而擴大企業AI的應用規模,促成AI開發的工業化(Industrialized AI)。

不只在國外引發關注,臺灣也有金融業者及搶攻零售電商市場的企業,開始採用MLOps來加速發展AI。玉山銀行就在2020年表示,已經運用MLOps協作方法,讓數據模型或新上線的服務,都能即時、彈性回應使用者需求,而這個協作文化,更打破了AI團隊既有的職務內容框架,讓開發者能從產品端反過來思考ML應用。

Line臺灣也採用了自家總部以MLOps打造的ML協作平臺,平臺中整合了從模型開發、訓練、部署上線到維運監控等各階段的常用開發工具,讓資料端與工程端人員能運用平臺有效協作,快速開發或迭代AI模型。比如說,過去需要工程人員協助建立起ML工作流,但現在,透過平臺整合的工作流編輯工具,ML開發者能直接透過視覺化拖拉設定的方式,將工作流的每個步驟串連起來,降低與工程人員的協作成本。

MLOps這股企業AI開發新風潮已經吹進臺灣,臺灣開始出現積極導入MLOps的AI領先企業,要透過一套系統性AI協作新方法,加速朝向規模化落地AI的目標邁進。

熱門新聞


Advertisement