MLOps對比DevOps:有什么區別?

語言: CN / TW / HK

本站內容均來自興趣收集,如不慎侵害的您的相關權益,請留言告知,我們將盡快刪除.謝謝.

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

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

什么是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的關鍵趨勢。我希望這將有助於您在新的、令人興奮的開發生態系統中發現自己的位置。