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