什麼是機器學習MLOps? - kdnuggets

banq發表於2020-12-20

MLOps是ML的DevOps。資料科學家構建的機器學習(ML)模型需要與其他多個團隊緊密合作,例如業務、工程和運營。這意味著了在溝通、協作和協調方面的存在挑戰。MLOps的目標是通過完善的實踐來簡化此類挑戰。此外,MLOps帶來了敏捷性和速度,這是當今數字世界的基石。

ML模型操作化的挑戰與DevOps證明自己的軟體生產化有很多共同點。

因此,採用DevOps的 最佳實踐 是一種謹慎的方法,可以幫助資料科學家克服軟體生產中常見的挑戰。例如,與瀑布方法相比,DevOps提倡的敏捷方法的使用可提高效率。

 

DevOps與MlOps比較

DevOps:

  • 使用持續整合和持續交付 CI / CD框架 來構建,測試和部署軟體。它具有可重現性,安全性和程式碼版本控制的優點。
  • 敏捷方法論通過強制執行在初始階段本身建立的端到端管道來解決此協調問題。敏捷方法論將專案分為衝刺Sprint階段。在每個sprint中,開發人員都提供了可供部署的增量功能。在專案的早期階段,每個成員都可以看到每個sprint的輸出(使用管道)。因此,減少了最後一刻的意外風險 ,並且 提早反饋已 成為一種慣例。用業界的話來說,這確實“前移”了協調問題。

MLOps:

  • 持續整合和持續交付(CI / CD):
  • 設定流水線,以便不斷構建更新並準備準確,安全和無縫地進行生產。
  • 更長的開發到部署生命週期:資料科學家開發模型/演算法,並將其移交給運營部門以部署到生產中。雙方之間缺乏協調和不正確的交接會導致延誤和錯誤。
  • 團隊之間的無效溝通會導致最終解決方案的延遲: 機器學習解決方案的評估通常在專案生命週期的末尾進行。由於開發團隊通常在孤島上工作,因此解決方案成為其他利益相關者的黑匣子。缺乏中間反饋使情況更加惡化。這些在時間,精力和資源方面構成了重大挑戰。

 

MLOps挑戰不同於DevOps

MLOps平臺需要解決ML所面臨的典型挑戰。

這種挑戰的一個例子是資料的作用。在傳統軟體工程(即軟體1.0)中,開發人員編寫了在程式空間中定義良好的邏輯和規則(作為程式碼)。但是,在機器學習(即軟體2.0)中,資料科學家編寫的程式碼定義瞭如何使用引數來解決業務問題。使用資料(使用諸如梯度下降等技術)可以找到引數值。這些值可能會隨資料的不同版本而改變,從而改變程式碼的行為。換句話說,資料在定義輸出時起著與書面程式碼同等重要的作用。而且兩者可以彼此獨立地改變。除了模型程式碼作為需要定義和跟蹤的軟體的固有部分之外,這還增加了一層資料複雜性。

MLOps平臺需要解決的各種挑戰:

  • 資料和超引數版本控制

在傳統的軟體應用程式中,使用程式碼版本控制工具來跟蹤更改。版本控制是任何持續整合(CI)解決方案的先決條件,因為它能夠以完全自動化的方式實現可重複性。原始碼中的任何更改都會觸發CI / CD管道來構建,測試和交付可用於生產的程式碼。在機器學習中,如果演算法程式碼或超引數或資料發生更改,則輸出模型可能會更改。儘管程式碼和超引數由開發人員控制,但資料更改可能不受限制。除了演算法程式碼,這還保證了資料和超引數版本控制的概念。請注意,資料版本控制對於非結構化資料(例如影像和音訊)是一個挑戰,並且MLOps平臺採用了獨特的方法來應對這一挑戰。

  • 迭代開發和實驗

ML演算法和模型開發是 迭代和實驗的。它需要大量的引數調整和功能設計。ML管道可用於資料版本,演算法程式碼版本和/或超引數。這些工件的任何更改(獨立地)都會觸發新的可部署模型版本,從而保證進行實驗和度量計算。MLOps平臺會跟蹤這些工件的完整沿襲。

  • 測試

機器學習需要資料和模型測試 ,以儘早在ML管道中發現問題。

  1. 資料驗證- 檢查資料是否乾淨無異常且新資料是否符合先前的分佈。
  2. 資料預處理-檢查資料是否有效且可擴充套件地進行了預處理,並避免了任何訓練服務上的偏差[ 3 ]。
  3. 演算法驗證- 根據業務問題跟蹤分類/迴歸指標,並確保演算法公平。

  • 安全性

生產中的ML模型通常是較大系統的一部分,該系統的輸出由可能未知的應用程式消耗。這暴露了多種安全風險。MLOps需要提供 安全性和訪問控制 ,以確保ML模型的輸出僅由已知使用者使用。

  • 生產監控 

生產中的模型需要持續監控 ,以確保模型在處理新資料時按預期執行。監控具有多個維度,例如協變數移位,先前移位等

  • 基礎設施要求

ML應用程式需要 擴充套件 到複雜基礎架構的規模和計算能力。例如,在實驗期間可能需要GPU,而動態地進行生產擴充套件則可能是必需的。

 

MLOps元件

 憑藉MLOps的背景及其與DevOps的相似之處和不同之處,以下內容描述了組成MLOps框架的不同元件,如圖3所示。它們背後的工作流程是通過敏捷方法實現的,

什麼是機器學習MLOps? - kdnuggets

  1. 用例發現: 此階段涉及業務與資料科學家之間的協作,以定義業務問題並將其轉化為ML和相關的相關KPI(關鍵績效指標)可以解決的問題陳述和目標。
  2. 資料工程: 這一階段涉及一個資料工程師和來自各種來源的資料科學家採集資料和準備建模的資料(處理/驗證)之間的協作。
  3. 機器學習管道: 這個階段的設計和部署一個管道與CI / CD整合。資料科學家使用管道進行多次實驗和測試。該平臺跟蹤整個實驗中的資料和模型沿襲以及相關的KPI。
  4. 生產部署: 此階段負責安全,無縫地部署到所選的生產伺服器,無論是公共雲,本地部署還是混合部署。
  5. 生產監控: 此階段包括模型監控和基礎架構監控。使用已配置的KPI(例如輸入資料分佈的更改或模型效能的更改)連續監視模型。設定觸發器以進行更多實驗,以使用新演算法,資料和超引數來生成ML管道的新版本。根據記憶體和計算要求監控基礎架構,並根據需要進行擴充套件。

相關文章