評估 MLOps 平臺
MLOps 平臺的目標是自動化與開發支援機器學習的系統相關的任務,並簡化利用機器學習的過程。構建機器學習模型並從中獲取價值需要多個階段,例如調查和清理資料、執行長時間的訓練過程以及部署和監控模型。MLOps 平臺可以被認為是一組用於執行從機器學習中獲益所需任務的工具。
並非所有從機器學習中受益的企業都使用 MLOps 平臺。在沒有平臺的情況下,完全可以將模型投入生產。為特定專案選擇和引入平臺有時可能是多餘的支出。在有多個專案的情況下,平臺往往最有用,因為這使得共享技能和知識變得更容易。
如何評估這些平臺?
絕大多數將自身作為端到端 MLOps 平臺進行營銷的工具(包括 ClearML、Censius、neptune.ai、Dataiku、Datarobot、Iguazio、Sagemaker、Valohai 等)涵蓋了跟蹤、版本控制、機器學習管道和模型部署這三個領域。雖然 MLflow、Flyte、Metaflow 和 Seldon 各專注於模型生命週期的特定階段,但端到端 MLOps 平臺將模型生命週期的大部分內容整合到一個過程中。
比較功能是比較 MLOps 平臺的一種方法。雖然許多這些平臺的頂級功能幾乎相同,但這些功能的實際實現方式差異很大。因此,可以根據平臺的呈現方式進行對比。另一種方法是確定是否應該從頭開始構建或購買現有的 MLOps 平臺。最佳答案將取決於您的用例和團隊。
MLOPs 平臺比較因素
以下是 MLOPs 平臺比較的各種因素
基於傳統機器學習和深度學習
專注於傳統機器學習的產品是為結構化資料建立的。另一方面,深度學習的 MLOps 平臺旨在處理海量非結構化資料,例如照片、影片或音訊。我們有像 Metaflow 這樣的解決方案,它擅長處理表格資料,以及 Valohai,一個以機器編排為重點的深度學習平臺。
基於支援的庫
為了建立機器學習模型,資料科學家使用各種計算機語言、庫和框架。因此,我們需要一個與專案庫相容的 MLOps 平臺。讓我們選擇機器學習的頂級庫,然後列出與該庫相容的平臺。
Jupyter − Dataiku、KubeFlow、Valohai
Scikit-learn − Dataiku、DataRobot、KubeFlow
Tensorflow − Dataiku、H2O、DataRobot、KubeFlow、Valohai
Keras − Dataiku、DataRobot、Valohai
Pytorch − H2O、DataRobot、KubeFlow、Valohai
XGBoost − Dataiku、H2O、DataRobot、KubeFlow
基於產品化和探索
更側重於探索的平臺更重視資料分析、實驗跟蹤和在筆記本中工作,而更側重於產品化的平臺則優先考慮機器學習管道、自動化和模型部署。Seldon、Flyte 和 Metaflow 都是面向生產的。
Flyte 和 Metaflow 專注於建立生產管道,但 Seldon 僅用於模型部署和版本控制,而不是模型訓練。雖然 Dataiku 在資料分析方面有很多值得稱道的地方,但 MLFlow 主要專注於實驗跟蹤。
基於 CLI(命令列介面)和 GUI(圖形使用者介面)
一些 MLOps 平臺專注於需要較少工程知識來開發和部署機器學習模型的功能。它們專注於 GUI,這是一種可透過 Web 客戶端訪問的視覺化工具。其他平臺則迎合具有工程背景的資深資料科學家。在將這些平臺與預先存在的工具連線時,它們通常使用命令列介面 (CLI) 或 API;對於熟練使用者來說,Web 使用者介面 (UI) 可能並不重要。
以下是部分以 GUI 或 CLI 為導向的 MLOps 平臺列表:
GUI − Dataiku、H2O、DataRobot、Iguazio
CLI − Kubeflow、Valohai
基於端到端平臺和專門平臺
本文中提到的大多數 MLOps 平臺都採用端到端的方法來處理 MLOps,這意味著使用者應該能夠在一個平臺上自動訓練、測試和部署模型。
在此比較中,Seldon、Flyte 和 Metaflow 因其在管道或部署方面的更高專業化而脫穎而出。除 AutoML 用例外,Datarobot 並非真正的端到端,而 MLFlow 才剛剛開始向端到端方法過渡。
結論
有許多平臺可用於建立、訓練、使用和管理機器學習模型。雖然大多數平臺共享許多方面並且彼此密切相關,但存在重大差異。
對於初學者來說,一些平臺非常簡單。每個平臺都有優點和缺點。這是一個個人選擇,因為無論您使用哪個平臺,您的模型準確性都將相似。雖然有多種工作流程,但您可以匯入您的演算法。價格在這裡是一個關鍵問題,因為它們中的大多數都提供按需付費選項,讓您只需為實際使用的功能付費。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP