什麼是 Kubeflow?

Kubeflow 是開放原始碼機器學習 (ML) 平台,可簡化 Kubernetes 中的機器學習工作流程部署與管理作業。Kubeflow 結合了 Kubernetes 的強大功能與機器學習專用工具和程式庫,有助於輕鬆導入穩健的機器學習運作 (MLOps) 做法。Kubeflow 也能讓 Google Kubernetes Engine (GKE) 使用者更輕鬆地建構機器學習工作流程,作為 AI 超級電腦部署作業的一部分。

Kubeflow 可協助機器學習工程師和數據資料學家充分運用 Kubernetes 的可擴充性和可攜性。使用者不必煩惱容器化技術的複雜性,可以專心建構、訓練及部署機器學習模型。

Kubeflow 的用途為何?

Kubeflow 通常可用於各種機器學習工作,包括:

  • 建構可攜式又可擴充的機器學習工作流程:使用者可以將機器學習工作流程定義為 pipeline,方便在不同環境中分享及部署,進而提升機器學習程序的一致性和可重現性。
  • 大規模訓練機器學習模型:Kubeflow 可協助將訓練工作負載分散至 Kubernetes 叢集,讓使用者能更有效率地在大型資料集上訓練模型。這種可擴充性可能有助於處理現代機器學習應用中日益增加的資料量。
  • 部署用於正式環境的機器學習模型: 您可以使用 Kubeflow,將訓練好的機器學習模型部署為可擴充且可靠的服務,並輕鬆銜接模型開發與部署作業。這有助於將實驗階段的機器學習模型轉換為可用於正式環境的模型。
  • 管理機器學習生命週期:Kubeflow 通常會提供追蹤實驗、管理模型版本和監控模型效能的功能,可簡化整個機器學習生命週期。這項全面的管理機制符合 MLOps 原則,即持續監控並改善機器學習模型。

Kubeflow 元件

Kubeflow 由多個元件組成,這些元件可協同運作,提供完善的平台。以下列舉幾個關鍵元件:

pipeline

Kubeflow Pipeline 運用 Docker 容器,提供一個可建立及部署機器學習工作流程的平台,具可攜性且可擴充。每個 pipeline 都像是藍圖,詳細說明機器學習工作流程的步驟及其互連關係。Kubeflow Pipeline 提供簡單易用的介面,方便您有效管理及追蹤實驗、以視覺化方式呈現 pipeline 執行情形,以及深入檢查記錄和效能指標。

Katib

Katib 是機器學習模型的超參數調整系統。找出最適合模型的超參數組合可能會耗費許多時間,但 Katib 可自動執行這項工作。Katib 支援各種搜尋演算法,例如網格搜尋、隨機搜尋和貝式最佳化,可讓使用者更有效率地最佳化模型效能。

KFServing

KFServing 提供無伺服器推論平台,可用來部署經過訓練的機器學習模型。這簡化了經過訓練的模型的部署和擴充作業。KFServing 支援 TensorFlow、PyTorch 和 scikit-learn 等各種機器學習架構,因此不受架構限制,也能適應各種機器學習生態系統。

中繼資料

Kubeflow 的中繼資料元件可提供歷程和構件追蹤功能。這個元件可協助數據資料學家追蹤實驗、資料集和模型,讓他們更輕鬆地管理及重現工作。這項中繼資料追蹤功能可促進團隊成員合作,確保結果的可重現性。

Kubeflow 的優點

如要簡化並強化機器學習程序,機構可考慮採用 Kubeflow,因為這項服務具備許多優點:

可擴充性和可攜性

Kubeflow 可協助使用者視需要調整機器學習工作流程的規模,並可部署至各種基礎架構,包括 on-premises、雲端和混合式環境。此彈性功能可讓機構根據自身需求調整機器學習基礎架構,避免受限於特定廠商。

可重現性和實驗追蹤

使用 Kubeflow 的主要好處之一,是其元件式架構可讓您更輕鬆地重現實驗和模型。它提供版本管理工具及追蹤資料集、程式碼和模型參數的工具。這種可重現性可確保機器學習實驗的一致性,並促進數據資料學家之間的合作。

擴充功能與整合

Kubeflow 具備擴充性,可與其他各種工具和服務整合,包括雲端式機器學習平台。您也可以使用其他元件自訂這項功能。機構可以運用現有的工具和工作流程,將 Kubeflow 順利整合至機器學習生態系統。

減少操作上的複雜度

Kubeflow 會將與部署及管理機器學習工作流程相關的多項任務自動化,讓數據資料學家和工程師能空出更多時間,專心處理更有價值的工作,例如開發及最佳化模型。營運負擔減輕後,工作效率和生產力可能會大幅提升。

資源使用率提升

Kubeflow 與 Kubernetes 緊密整合,因此資源使用效率可能更高。機構可以將硬體資源配置最佳化,並降低執行機器學習工作負載的相關費用。

開始使用 Kubeflow

使用者可以根據個人需求和資歷,透過幾種方式開始使用 Kubeflow:

  • 將 Kubeflow 部署至 Google Kubernetes Engine (GKE):這個選項可讓您靈活地控管 Kubeflow 部署作業。使用者可以自訂安裝程序來滿足特定需求,並享有基礎 Kubernetes 叢集的完整存取權。不過,這項做法可能需要更多 Kubernetes 專業知識,且可能更複雜。
  • 使用 Vertex AI Pipelines:這個選項是全代管服務,可讓您在 Google Cloud 中更輕鬆地部署及執行 Kubeflow 管道。Vertex AI Pipelines 會處理所有基礎架構管理作業,使用者可以專心建構及執行機器學習工作流程。如果您想尋找可快速簡單設定的代管解決方案,這項做法可能會是理想選擇。
  • 在其他平台上探索 Kubeflow:Kubeflow 也能部署至其他 Kubernetes 環境。如要查看這些平台的安裝說明和說明文件,請前往 Kubeflow 網站
使用者在決定最佳做法時,應考量自己對 Kubernetes 的熟悉程度、希望對基礎架構的控制程度,以及預算。如果您是 Kubernetes 新手,或希望採用更完善的代管解決方案,Vertex AI Pipelines 可能會是個不錯的起點。如果使用者需要更靈活的彈性,或想在 on-premises 執行 Kubeflow,則可能更適合部署至 GKE 或其他 Kubernetes 平台。

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。