首頁  >  文章  >  科技週邊  >  MLOps比較DevOps:有什麼差別?

MLOps比較DevOps:有什麼差別?

WBOY
WBOY轉載
2023-04-11 20:37:192884瀏覽

機器學習操作(簡稱MLOps)是機器學習(ML)工程的關鍵方面,專注於簡化和加速將ML模型交付到生產以及維護和監控它們的過程。 MLOps涉及不同團隊之間的協作,包括資料科學家、DevOps工程師、IT專家等。

MLOps可以幫助組織創建和提高其AI和機器學習解決方案的品質。採用MLOps允許機器學習工程師和資料科學家透過實施持續整合和持續部署(CI/CD)實踐來協作提高模型效能。它透過整合ML模型的適當監控、治理和驗證來加速ML模型開發過程。

MLOps比較DevOps:有什麼差別?

什麼是DevOps?

DevOps結合了開發和營運的概念,描述了一種協作方法來執行通常與單獨的應用程式開發和IT營運團隊相關的任務。從最廣泛的意義上說,DevOps是一種哲學,它鼓勵組織內這些(和其他)團隊之間改善溝通與合作。

在最狹隘的意義上,DevOps是指採用能夠部署和維護迭代應用程式開發、自動化和可程式基礎架構的實踐。它還包括工作場所文化的變化,例如開發人員、系統管理員和其他團隊成員之間的信任建立和聯繫。 DevOps使技術與業務目標保持一致,可以改變軟體交付鏈、工作職能、服務、工具和最佳實踐。

MLOps比較DevOps:主要差異

以下是MLOps和傳統DevOps之間的一些主要差異。

開發

開發的概念是指每個模型中的不同事物,CI/CD管道略有不同。

開發維運:

  • #通常,程式碼會建立一個介面或應用程式。
  • 在使用一組檢查進行部署和測試之前,將程式碼包裝到執行檔或工件中。
  • 理想情況下,這個自動化循環將持續到最終產品準備好。

MLOps:

  • #該程式碼使團隊能夠建立或訓練機器學習模型。
  • 輸出工件包括可以接收資料輸入以產生推理的序列化檔案。
  • 驗證包括根據測試資料檢查訓練模型的效能。
  • 這個循環也應該持續到模型達到指定的效能閾值。

版本控制

開發運維:

  • 版本控制通常只追蹤程式碼和工件的更改。
  • 需要追蹤的指標很少。

MLOps:

  • #MLOps管道通常有更多要追蹤的因素。建構和訓練ML模型涉及一個迭代實驗週期,需要追蹤每個實驗的各種指標和組件(對於以後的審計至關重要)。
  • 要追蹤的其他元件包括訓練資料集、模型建立程式碼和模型工件。
  • 指標包括超參數和模型效能指標,例如錯誤率。

可重複使用性

#開發運維:

  • DevOps管道專注於可重複的流程。
  • 團隊可以混合和匹配流程,而無需遵循特定的工作流程。

MLOps:

  • #MLOps管道重複套用相同的工作流程。跨專案的通用框架有助於提高一致性並允許團隊更快地取得進展,因為他們從熟悉的流程開始。
  • 專案範本提供結構,支援客製化以滿足每個用例的獨特需求。
  • 使用集中式資料管理來整合組織的數據,以加速發現和培訓流程。集中化的常見方法包括單一事實來源和資料倉儲。

持續監控

監控對於DevOps和MLOps都是不可或缺的,但原因略有不同。

開發維運:

  • 網站可靠度工程(​​SRE)在過去幾年一直是趨勢,強調從開發到生產部署監控軟體的必要性。
  • 軟體不會像ML模型那樣退化。

MLOps:

  • #機器學習模型會快速退化,需要持續監控和更新。
  • 生產環境中的條件會影響模型的準確性。部署到生產環境後,模型開始根據來自現實世界的新數據產生預測。這些數據不斷變化和適應,降低了模型效能。
  • MLOps透過合併程序以促進持續監控和模型再培訓,確保演算法保持生產就緒。

基礎設施

DevOps和MLOps都嚴重依賴雲端技術,但有不同的操作需求。

DevOps依賴基礎設施,例如:

  • 基礎設施即程式碼(IaC)
  • 建置伺服器
  • CI/CD自動化工具

MLOps依賴以下基礎架構:

  • 深度學習和機器學習框架
  • 大型資料集的雲端儲存
  • 用於深度學習和計算密集型ML模型的GPU

DevOps和MLOps趨勢

以下是推動DevOps和MLOps發展的一些主要趨勢。

GitOps

作為DevOps工作流程的新演變,GitOps是一種用於控制和自動化基礎架構的新範例。面向Kubernetes的範例使開發人員和營運團隊能夠使用Git管理Kubernetes叢集並交付容器化應用程式。為營運和開發團隊實施Git工作流程允許開發人員利用Git拉取請求來管理軟體部署和基礎設施。

GitOps整合了現有的開發工具,透過CI/CD管理雲端原生和基於叢集的應用程式。它使用Git儲存庫作為單一事實來源,自動部署、監控和維護雲端原生應用程式。

GitOps是一種在Kubernetes中實作和維護叢集的方法。持續交付和部署允許開發人員透過增量發布更快地建置、測試和部署軟體。 Kubernetes持續整合和運行時管道必須能夠讀取和寫入檔案、更新容器儲存庫以及從Git載入容器。 GitOps透過版本控制、即時監控和配置變更警報來幫助企業管理其基礎架構。

綜合數據

合成數據是人工生成的任何信息,而不是從真實事件中收集的信息。演算法產生合成數據,用作操作和生產測試數據集的替代品。合成資料集也可用於驗證數學模型和訓練機器學習模型。

合成資料的好處包括:

  • #盡量減少與使用敏感和受監管資料相關的限制。
  • 根據實際資料中不可用的特定要求和條件自訂資料。
  • 為DevOps團隊產生用於測試軟體品質和效能的資料。

無程式碼機器學習和人工智慧

機器學習通常涉及電腦程式碼來設定和處理模型訓練,但情況並非總是如此。無程式碼機器學習是一種程式設計方法,它消除了ML應用程式通過耗時過程的需要。

CodelessML消除了專家開發系統軟體的需求。它的部署和實施也更簡單、更便宜。在機器學習過程中使用拖放輸入可以透過以下方式簡化訓練工作:

  • 評估結果。
  • 拖放訓練資料。
  • 建立預測報告。
  • 使用純文字查詢。

Codeless ML使開發人員可以輕鬆存取機器學習應用程序,但它不能取代高級、細緻入微的專案。這種方法適用於缺乏資金來維持內部數據科學團隊的小型企業。

TinyML

TinyML是一種機器學習和人工智慧模型開發的新方法。它涉及在具有硬體限制的設備上運行模型,例如為智慧汽車、冰箱和電錶供電的微控制器。這種策略最適合這些用例,因為它加快了演算法的速度——資料不需要在伺服器上來回傳輸。它在大型伺服器上尤其重要,可以加快整個ML開發過程。

在物聯網邊緣設備上運行TinyML程式有很多好處:

  • #更低的能源消耗。
  • 減少延遲。
  • 用戶隱私保證。
  • 降低頻寬要求。

使用TinyML提供了更大的隱私,因為計算過程完全是本地的。它消耗更少的功率和頻寬,從而降低延遲,因為它不需要將資料發送到中央位置進行處理。正在利用這項創新的行業包括農業和醫療保健。他們通常使用嵌入了TinyML演算法的物聯網設備,使用收集到的數據來監控和預測現實世界的事件。

結論

本文介紹了MLOps與DevOps之間的主要差異:

  • 開發-DevOps管道專注於開發新版本的軟體產品,而MLOps則專注於提供有效的機器學習模型。
  • 版本控制-DevOps主要關注追蹤二進位檔案和軟體工件,而MLOps追蹤其他因素,如超參數和模型效能。
  • 可重用性-DevOps和MLOps都努力創建可重複使用的流程和管道,但使用不同的策略來實現可重複性。
  • 持續監控-監控對DevOps很重要,但在MLOps中更為重要,因為模型和資料漂移會導致模型效能下降。

最後介紹了一些將在不久的將來改變DevOps和MLOps的關鍵趨勢。我希望這將有助於您在新的、令人興奮的開發生態系統中發現自己的位置。

#

以上是MLOps比較DevOps:有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除