什麼是MLOps?
MLOps涵蓋了一系列方法、工具和流程,被認為是機器學習專案成功的關鍵。機器學習運維 (MLOps) 是一套方法,資料科學家和運維專家透過它進行協作和溝通。
它是DevOps的機器學習版本,經過調整以滿足各種機器學習元件的需求,例如變化的資料和新的開發角色的增加,例如機器學習工程師和資料科學家。它逐漸成為一種獨立的機器學習生命週期管理方法。
這其中包括資料收集、模型生成、持續整合/持續交付、編排、部署、診斷、模型服務和業務KPI。
MLOps解決了什麼問題?
MLOps是一套工具和策略,旨在簡化資料科學家和機器學習從業者的工作。它為個人、小型團隊甚至大型企業提供了一張路線圖,幫助他們在各種限制條件下(例如敏感資料、資源有限或預算有限)實現目標。
版本控制可以應用於模型訓練中使用的資料以及其他模型工件。對模型和資料進行版本控制,可以確保機器學習實驗的可重複性。
投入生產的模型可能會隨著時間的推移而效能下降,這是由於訓練資料和測試資料之間的差異造成的。這種現象稱為資料漂移。透過監控模型的效能,可以及時發現並解決這些問題。
新增功能是一個耗時且計算密集型的過程。當正確實施MLOps方法時,一次建立的功能可以重複使用多次。這使資料科學家能夠專注於模型的設計和測試。
MLOps的階段
MLOps由多個元件組成,這些元件協同工作以保持機器學習模型開發生命週期的順利執行。
資料和模型版本控制 - 版本控制是指對在機器學習開發的不同階段開發的多個模型迭代進行命名。它主要有助於在遇到問題時將模型回溯到之前的迭代。
模型登錄檔 - 模型登錄檔是一箇中央儲存庫,模型開發者可以輕鬆地提交可用於生產的模型。開發者可以使用登錄檔與其他團隊和利益相關者協作,管理公司中所有模型的生命週期。
模型服務 - 模型服務簡單來說就是託管機器學習模型(本地或雲端),並透過API提供其功能,以便應用程式可以將AI整合到其系統中。透過此操作,只需點選幾下即可使用機器學習模型。
模型監控 - 一旦模型投入生產,監控模型至關重要。它使您可以檢測和解決諸如預測能力低、引數更改和泛化不足等問題,從而產生具有卓越效能的高質量解決方案。
持續整合/持續交付 (CI/CD) - 在機器學習中,持續整合和持續交付可確保經常開發和釋出高質量的模型。持續交付確保程式碼經常合併到中央儲存庫中,並進行自動化構建和測試。
模型部署 - 將機器學習模型應用於實際使用中的任務稱為模型部署。這個詞經常與透過即時API提供模型的概念互換使用。
如何實施MLOps
MLOps 可以透過三種不同的方式實施。最佳選擇取決於公司規模及其需要執行的機器學習模型數量。
如下所示:
手動流程 (MLOps 級別 0) - 正如其名稱所示,這裡的機器學習工作流完全是手動的。對於最近開始使用機器學習的企業來說,這是一種常見的方法。這種採用MLOps的方法適用於非技術性企業,例如保險公司和銀行,他們每年或在金融危機期間升級一次模型。
機器學習管道自動化 (MLOps 級別 1) - 在此級別,機器學習管道被自動化以實現機器學習模型的持續訓練。此過程包括自動化新資料訓練、生產環境中的模型再訓練、資料和模型驗證自動化、管道觸發器以及機器學習模型元資料的儲存。
CI/CD管道自動化 (MLOps 級別 2) - 需要一個強大的自動化CI/CD管道,使資料科學家能夠探索與超引數調整、特徵工程和模型架構相關的新的想法,以便對機器學習管道進行快速和準確的更新。此級別適用於每天重新訓練模型並在多個伺服器上同時重新部署模型的企業。如果沒有使用MLOps,這些企業將難以蓬勃發展。
使用MLOps的好處
以下是使用MLOps的優勢:
MLOps使團隊能夠快速創新。
團隊可以更好地控制和管理機器學習資源。
使用MLOps可以有效地管理整個機器學習生命週期。
它使團隊能夠快速輕鬆地在任何位置部署高精度模型。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP