MLOps 與 DevOps


經常會發生這種情況:開發團隊已經轉向一個新的專案,而運維團隊則對之前的專案提供反饋。這導致整個軟體開發生命週期或機器學習模型開發生命週期的截止日期被推遲。出於這個原因,IT 採用了新的工作方式來準備軟體和機器學習模型,它們分別是 MLOps 和 DevOps。在本篇博文中,您將瞭解這些術語以及它們之間的區別。

什麼是 DevOps?

DevOps 術語代表Development(開發)+ OperationS(運維)。它是一種人們協作以儘可能快地構建和交付軟體的方法。DevOps 使軟體開發(Dev)和運維(Ops)團隊能夠協作並迭代地加速軟體交付。DevOps 方法有助於改善在專案上工作的開發人員和運維人員之間的溝通。它不僅僅是一個可以完成工作的工具或方法;相反,它是一種策略,在進行操作調整時提供更大的靈活性。

什麼是 MLOps?

MLOps 術語代表Machine Learning(機器學習)+ OperationS(運維)。它是機器學習公司建立的一種商業模式。MLOps 是一種概念,它消除了企業中傳統的垂直筒倉,使它們能夠跨部門共享資源和專業知識。MLOps 是一個協作和溝通平臺,供資料科學家和運維專家管理生產 ML 生命週期。除非企業能夠自動化機器學習模型在生產環境中的部署,並使用專門的和自動化的功能來監控、管理和治理這些模型,否則它們無法從 AI 中獲得真正的價值。

MLOps 和 DevOps 之間的相似之處

以下是 MLOps 和 DevOps 之間的相似之處:

  • DevOps 和 MLOps 都與簡化流程有關。DevOps 將軟體開發的開發、測試和操作元件整合在一起。另一方面,MLOps 是用於簡化機器學習生命週期(從頭到尾)的方法。它旨在透過彌合設計、模型開發和操作之間的差距來縮短 ML 開發週轉時間。

  • 開發人員、資料科學家和資料工程師都在同一個程式碼庫上協作。他們進行持續整合和開發。MLOps 和 DevOps 都遵循此 CI/CD 流程。

  • 溝通是 DevOps 和 MLOps 的核心。DevOps 依賴於各個部門和一組有助於直觀促進流程的技術,因此清晰的溝通對於流程自動化、持續交付和持續反饋至關重要。類似地,在 MLOps 中,溝通為系統管理員、資料科學家和其他部門之間的協作奠定了基礎,從而導致對如何構建和維護生產模型的共享知識。

MLOps 和 DevOps 之間的主要區別

以下是 MLOps 和 DevOps 之間的主要區別:

  • 在機器學習中處理資料本身就是一個挑戰。例如,神經網路需要大量的資料集,這涉及到長時間執行的作業。在 DevOps 中,情況並非如此。

  • 軟體開發人員和 DevOps 工程師通常參與 DevOps,而資料科學家和機器學習工程師主要在 MLOps 中被需要。

  • 從事機器學習專案的資料科學家嘗試一種技術來解決問題,然後幾天後嘗試另一種技術,這很常見。在幾周或幾個月內,您可能會嘗試許多不同的方法。傳統的軟體工程也需要一些實驗,但通常是短暫的,並且與主要專案分開進行。

  • MLOps 管道中包含了額外的用於構建/訓練機器學習模型的資料和模型階段。DevOps 中不需要額外的資料庫和模型。

  • DevOps 側重於開發通用應用程式,併為某些使用場景採用標準庫集。另一方面,MLOps 建立一個提供推理的模型,並涵蓋各種語言、工具、庫和框架。

  • DevOps 使用程式碼版本控制來確保對正在建立的產品所做的任何更改或更新都得到清晰記錄。另一方面,程式碼並不是機器學習中唯一的變數。資料以及引數、元資料、日誌和模型都是必須管理的關鍵輸入。

  • MLOps 中有一個在 DevOps 中不存在的第三個概念:持續訓練 (CT)。此步驟完全是關於自動檢測需要重新訓練和重新部署模型到生產環境中的場景/事件,這是由於現有部署的機器學習模型/系統中的效能下降造成的。

  • 在 DevOps 中,程式碼生成應用程式,然後在使用大量測試用例進行驗證後將其轉換為可執行檔案並進行部署。然而,在 MLOps 中,程式碼用於建立或訓練機器學習模型。驗證用於確定模型的正確性,或其在測試資料上的表現如何。重複此步驟,直到模型獲得一定程度的良好效能。

結論

如今,沒有一家成功的軟體公司能夠在不使用 DevOps 的理念和工具的情況下運作。同樣,在未來,如果沒有一些共享的 MLOps 原則和工具,將無法管理機器學習模型的開發和產品化。這兩個術語多年來一直在推動 IT 行業發展,為許多行業提供高效的軟體和模型,並且在未來也將繼續發展。

更新於: 2022年8月26日

221 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告