1. 程式人生 > >MLOps+DevOps,解決機器學習在應用效能生產運維中的困境

MLOps+DevOps,解決機器學習在應用效能生產運維中的困境

比起建立機器學習模型來說,模型部署需要更先進的IT技能。如果大資料專家和開發者們沒能跟上節奏,未來堪憂。

在開發機器學習AI演算法和投入生產時,企業面臨更高挑戰。機器學習開發的過程是實驗性和探索性的過程,而部署則需要安全且易於管理的一致結果。

開發階段的目標是優化演算法準確性,屬於實驗性研究階段,偶爾失敗是正常的。然而在生產部署階段,機器學習模型應用到客戶的系統上就會有很多限制因素,例如成本計算、資源消耗以及資料模型等,這些因素在研究初期並沒有考慮在內。原因是在研發中無法評估到所有可能性。而且同時要求具備更高的效能和準確性。實施的成本高,規模難度大。

看懂非結構化資料

將機器學習投入生產的最大挑戰之一就是充分理解非結構化資料。因為在生產環境中,模型可能會有很多非結構化資料,結構化資料等大量不規則資料,而不是在類似“實驗室”中恆定條件下的資料種類。

例如,當使用機器學習演算法標記影象時,使用某個影象標記程序確定影象是什麼,系統執行一段時間後,新進來的資訊又修正演算法引導其修正識別結果。這就需要有人在訓練集中標記影象。為了能使影象標記樣例更加精細化,使用者必須在應用上標記好影象標籤,這樣演算法才可進行自我學習,將畫素識別成類似的影象。

在這裡插入圖片描述

很多機器學習程序遵循此流程

但對於機器學習模型的許多常見應用來說,流程更復雜。例如挖掘類似改善IT管理的支援請求資料,大資料專家需要找到一種方法來獲取支援請求事件,並將每個資料點與內部應用資料相關聯,以便優化演算法,方便部署。這非常具有挑戰性,即使將程式部署在合適的資料集上也是非常困難的。

資料漂移

另一個挑戰是跟蹤和響應投入生產的機器學習模型的效能變化。機器學習應用可能會存在資料漂移,這一點跟其他型別的應用不同。

與其他開發系統和產品不同,今天開發的機器學習產品可能明天就失敗了。這是因為資料主導機器學習,資料模型具有潮汐性且變化多端。這就需要定期對新的真實資料進行重新訓練,這類事情永遠也做不完。

企業管理者應該把重點放在機器學習生命週期管理上,但實現難度很大。因為與模型管理相關的規則以及案例難以驗證。這就使得將資料模型投入生產變得格外複雜。

提高資料監控準確率 優化資料重複訓練方案

有一種解決方案叫開發機器學習部署流程,簡稱MLOps。它補充了與DevOps相關的流程管理。雖然DevOps專注於減少意外系統故障中斷和降低系統訪問率,但MLOps解決了機器學習模型的不可逆的衰減能力問題。

該流程首先需要建立一個最小可用產品或MVP,以便快速分辨出研發和部署之間的問題。一旦證明產品解決了使用者問題並且測試資料與實際資料之間沒有脫節,就有機會改進模型並提高準確性。

企業應當將模型系統在生產環境中執行幾個週期,然後再嘗試部署自動化生命週期管理。為了與資料漂移同步,模型建立者會設定資料訓練頻率,規劃同步。儘管如此,仍無法保證模型中重複訓練之間的最佳間隔保持不變,這可能意味著模型要麼沒有充分的重複訓練,導致預測不準確;要麼必須經常訓練,這導致計算成本增高。

更好的做法是通過評估模型的瞬時準確性來跟蹤AI機器學習模型的輸入和輸出的統計特徵。這需要為機器學習團隊新增資料監控工具並招聘資料分析師。

改善溝通

DevOps的出現是為了解決企業意識到開發人員和運營團隊之間的溝通問題。MLOps可以解決構建機器學習模型的大資料專家與運營團隊之間的問題。這更像是一種文化,而不是技術問題。

將機器學習投入生產時,大資料專家和運營團隊之間由於在專業知識和經驗方面存在差距,。而且兩個團隊通常都負責機器學習運營,但都不太會為對方著想。大多數企業都誤認為資料團隊可以解決所有問題,並持續始終,但結果往往相反。

將機器學習模型投入生產的成功必然需要運營從開始就與資料專家協作,這才可確保最終的模型產生良好效果,並且易於管理和升級產品。兩種角色一起制定和優化機器學習部署,管理和擴充套件自動化運維。

原文出自:TechTarget

原文連結:點選左下角閱讀原文可檢視

原文作者:George Lawton

翻譯:馬強 在這裡插入圖片描述