MLOps對比DevOps:有什么區(qū)別?
機器學習操作(簡稱MLOps)是機器學習(ML)工程的一個關(guān)鍵方面,專注于簡化和加速將ML模型交付到生產(chǎn)以及維護和監(jiān)控它們的過程。MLOps涉及不同團隊之間的協(xié)作,包括數(shù)據(jù)科學家、DevOps工程師、IT專家等。
MLOps可以幫助組織創(chuàng)建和提高其AI和機器學習解決方案的質(zhì)量。采用MLOps允許機器學習工程師和數(shù)據(jù)科學家通過實施持續(xù)集成和持續(xù)部署(CI/CD)實踐來協(xié)作提高模型性能。它通過整合ML模型的適當監(jiān)控、治理和驗證來加速ML模型開發(fā)過程。
什么是DevOps?
DevOps結(jié)合了開發(fā)和運營的概念,描述了一種協(xié)作方法來執(zhí)行通常與單獨的應(yīng)用程序開發(fā)和IT運營團隊相關(guān)的任務(wù)。從最廣泛的意義上說,DevOps是一種哲學,它鼓勵組織內(nèi)這些(和其他)團隊之間改進溝通與合作。
在最狹義的意義上,DevOps是指采用能夠部署和維護迭代應(yīng)用程序開發(fā)、自動化和可編程基礎(chǔ)架構(gòu)的實踐。它還包括工作場所文化的變化,例如開發(fā)人員、系統(tǒng)管理員和其他團隊成員之間的信任建立和聯(lián)系。DevOps使技術(shù)與業(yè)務(wù)目標保持一致,可以改變軟件交付鏈、工作職能、服務(wù)、工具和最佳實踐。
MLOps對比DevOps:主要差異
以下是MLOps和傳統(tǒng)DevOps之間的一些主要區(qū)別。
開發(fā)
開發(fā)的概念是指每個模型中的不同事物,CI/CD管道略有不同。
開發(fā)運維:
- 通常,代碼會創(chuàng)建一個接口或應(yīng)用程序。
- 在使用一組檢查進行部署和測試之前,將代碼包裝到可執(zhí)行文件或工件中。
- 理想情況下,這個自動化循環(huán)將一直持續(xù)到最終產(chǎn)品準備好。
MLOps:
- 該代碼使團隊能夠構(gòu)建或訓練機器學習模型。
- 輸出工件包括可以接收數(shù)據(jù)輸入以生成推理的序列化文件。
- 驗證包括根據(jù)測試數(shù)據(jù)檢查訓練模型的性能。
- 這個循環(huán)也應(yīng)該一直持續(xù)到模型達到指定的性能閾值。
版本控制
開發(fā)運維:
- 版本控制通常只跟蹤代碼和工件的更改。
- 需要跟蹤的指標很少。
MLOps:
- MLOps管道通常有更多要跟蹤的因素。構(gòu)建和訓練ML模型涉及一個迭代實驗周期,需要跟蹤每個實驗的各種指標和組件(對于以后的審計至關(guān)重要)。
- 要跟蹤的其他組件包括訓練數(shù)據(jù)集、模型構(gòu)建代碼和模型工件。
- 指標包括超參數(shù)和模型性能指標,例如錯誤率。
可重用性
開發(fā)運維:
- DevOps管道專注于可重復(fù)的流程。
- 團隊可以混合和匹配流程,而無需遵循特定的工作流程。
MLOps:
- MLOps管道重復(fù)應(yīng)用相同的工作流。跨項目的通用框架有助于提高一致性并允許團隊更快地取得進展,因為他們從熟悉的流程開始。
- 項目模板提供結(jié)構(gòu),支持定制以滿足每個用例的獨特需求。
- 使用集中式數(shù)據(jù)管理來整合組織的數(shù)據(jù),以加速發(fā)現(xiàn)和培訓過程。集中化的常見方法包括單一事實來源和數(shù)據(jù)倉庫。
持續(xù)監(jiān)控
監(jiān)控對于DevOps和MLOps都是必不可少的,但原因略有不同。
開發(fā)運維:
- 站點可靠性工程(SRE)在過去幾年一直是趨勢,強調(diào)從開發(fā)到生產(chǎn)部署監(jiān)控軟件的必要性。
- 軟件不會像ML模型那樣退化。
MLOps:
- 機器學習模型會迅速退化,需要持續(xù)監(jiān)控和更新。
- 生產(chǎn)環(huán)境中的條件會影響模型的準確性。部署到生產(chǎn)環(huán)境后,模型開始根據(jù)來自現(xiàn)實世界的新數(shù)據(jù)生成預(yù)測。這些數(shù)據(jù)不斷變化和適應(yīng),降低了模型性能。
- MLOps通過合并程序以促進持續(xù)監(jiān)控和模型再培訓,確保算法保持生產(chǎn)就緒。
基礎(chǔ)設(shè)施
DevOps和MLOps都嚴重依賴云技術(shù),但有不同的操作要求。
DevOps依賴于基礎(chǔ)設(shè)施,例如:
- 基礎(chǔ)設(shè)施即代碼(IaC)
- 構(gòu)建服務(wù)器
- CI/CD自動化工具
MLOps依賴于以下基礎(chǔ)設(shè)施:
- 深度學習和機器學習框架
- 大型數(shù)據(jù)集的云存儲
- 用于深度學習和計算密集型ML模型的GPU
DevOps和MLOps趨勢
以下是推動DevOps和MLOps發(fā)展的一些主要趨勢。
GitOps
作為DevOps工作流程的新演變,GitOps是一種用于控制和自動化基礎(chǔ)架構(gòu)的新范例。面向Kubernetes的范例使開發(fā)人員和運營團隊能夠使用Git管理Kubernetes集群并交付容器化應(yīng)用程序。為運營和開發(fā)團隊實施Git工作流程允許開發(fā)人員利用Git拉取請求來管理軟件部署和基礎(chǔ)設(shè)施。
GitOps整合了現(xiàn)有的開發(fā)工具,通過CI/CD管理云原生和基于集群的應(yīng)用程序。它使用Git存儲庫作為單一事實來源,自動部署、監(jiān)控和維護云原生應(yīng)用程序。
GitOps是一種在Kubernetes中實現(xiàn)和維護集群的方法。持續(xù)交付和部署允許開發(fā)人員通過增量發(fā)布更快地構(gòu)建、測試和部署軟件。Kubernetes持續(xù)集成和運行時管道必須能夠讀取和寫入文件、更新容器存儲庫以及從Git加載容器。GitOps通過版本控制、實時監(jiān)控和配置更改警報來幫助企業(yè)管理其基礎(chǔ)架構(gòu)。
綜合數(shù)據(jù)
合成數(shù)據(jù)是人工生成的任何信息,而不是從真實事件中收集的信息。算法生成合成數(shù)據(jù),用作操作和生產(chǎn)測試數(shù)據(jù)集的替代品。合成數(shù)據(jù)集也可用于驗證數(shù)學模型和訓練機器學習模型。
合成數(shù)據(jù)的好處包括:
- 盡量減少與使用敏感和受監(jiān)管數(shù)據(jù)相關(guān)的限制。
- 根據(jù)實際數(shù)據(jù)中不可用的特定要求和條件自定義數(shù)據(jù)。
- 為DevOps團隊生成用于測試軟件質(zhì)量和性能的數(shù)據(jù)。
無代碼機器學習和人工智能
機器學習通常涉及計算機代碼來設(shè)置和處理模型訓練,但情況并非總是如此。無代碼機器學習是一種編程方法,它消除了ML應(yīng)用程序通過耗時過程的需要。
CodelessML消除了專家開發(fā)系統(tǒng)軟件的需要。它的部署和實施也更簡單、更便宜。在機器學習過程中使用拖放輸入可以通過以下方式簡化培訓工作:
- 評估結(jié)果。
- 拖放訓練數(shù)據(jù)。
- 創(chuàng)建預(yù)測報告。
- 使用純文本查詢。
Codeless ML使開發(fā)人員可以輕松訪問機器學習應(yīng)用程序,但它不能替代高級、細致入微的項目。這種方法適用于缺乏資金來維持內(nèi)部數(shù)據(jù)科學團隊的小型企業(yè)。
TinyML
TinyML是一種機器學習和人工智能模型開發(fā)的新方法。它涉及在具有硬件限制的設(shè)備上運行模型,例如為智能汽車、冰箱和電表供電的微控制器。這種策略最適合這些用例,因為它加快了算法的速度——數(shù)據(jù)不需要在服務(wù)器上來回傳輸。它在大型服務(wù)器上尤為重要,可以加快整個ML開發(fā)過程。
在物聯(lián)網(wǎng)邊緣設(shè)備上運行TinyML程序有很多好處:
- 更低的能源消耗。
- 減少延遲。
- 用戶隱私保證。
- 降低帶寬要求。
使用TinyML提供了更大的隱私,因為計算過程完全是本地的。它消耗更少的功率和帶寬,從而降低延遲,因為它不需要將數(shù)據(jù)發(fā)送到中央位置進行處理。正在利用這一創(chuàng)新的行業(yè)包括農(nóng)業(yè)和醫(yī)療保健。他們通常使用嵌入了TinyML算法的物聯(lián)網(wǎng)設(shè)備,使用收集到的數(shù)據(jù)來監(jiān)控和預(yù)測現(xiàn)實世界的事件。
結(jié)論
本文介紹了MLOps和DevOps之間的主要區(qū)別:
- 開發(fā)——DevOps管道專注于開發(fā)新版本的軟件產(chǎn)品,而MLOps專注于提供有效的機器學習模型。
- 版本控制——DevOps主要關(guān)注跟蹤二進制文件和軟件工件,而MLOps跟蹤其他因素,如超參數(shù)和模型性能。
- 可重用性——DevOps和MLOps都努力創(chuàng)建可重用的流程和管道,但使用不同的策略來實現(xiàn)可重復(fù)性。
- 持續(xù)監(jiān)控——監(jiān)控對DevOps很重要,但在MLOps中更為重要,因為模型和數(shù)據(jù)漂移會導(dǎo)致模型性能下降。
最后介紹了一些將在不久的將來改變DevOps和MLOps的關(guān)鍵趨勢。我希望這將有助于您在新的、令人興奮的開發(fā)生態(tài)系統(tǒng)中發(fā)現(xiàn)自己的位置。