如要調度管理複雜的機器學習工作流程,可以建立包含資料預先處理和後續處理步驟的架構。您可能需要先預先處理資料,才能用於訓練模型,或後續處理資料來轉換模型輸出內容。
機器學習工作流程通常包含許多步驟,共同組成管道。如要建構機器學習管道,可以使用下列其中一種方法。
- 使用內建 Apache Beam 和 Dataflow 執行器整合功能的調度架構,例如 TensorFlow Extended (TFX) 或 Kubeflow Pipelines (KFP)。這個選項最簡單。
- 在 Dataflow 範本中建構自訂元件,然後從 ML 管道呼叫範本。此呼叫包含您的 Apache Beam 程式碼。
- 建構要在機器學習管線中使用的自訂元件,並直接在元件中加入 Python 程式碼。您定義自訂 Apache Beam 管道,並在自訂元件中使用 Dataflow 執行器。這個選項最為複雜,需要您管理管道依附元件。
建立機器學習管道後,您可以使用協調器將元件串連在一起,建立端對端機器學習工作流程。如要調度管理元件,可以使用代管服務,例如 Vertex AI Pipelines。
使用機器學習加速器
對於需要大量運算資源的資料處理機器學習工作流程 (例如使用大型模型進行推論),您可以搭配 Dataflow 工作人員使用加速器。Dataflow 支援使用 GPU 和 TPU。
GPU
您可以在 Dataflow 工作中使用 NVIDIA GPU,加快處理速度。Dataflow 支援各種 NVIDIA GPU 類型,包括 T4、L4、A100、H100 和 V100。如要使用 GPU,您需要使用已安裝必要 GPU 驅動程式和程式庫的自訂容器映像檔,設定管道。
如要進一步瞭解如何在 Dataflow 中使用 GPU,請參閱 Dataflow 對 GPU 的支援。
TPU
Dataflow 也支援 Cloud TPU,這是 Google 專為大型 AI 模型設計的 AI 加速器。TPU 是加速處理 PyTorch、JAX 和 TensorFlow 等架構推論工作負載的理想選擇。Dataflow 支援單一主機 TPU 設定,每個工作站會管理一或多個 TPU 裝置。
詳情請參閱「Dataflow 支援 TPU」。
工作流程自動化調度管理
以下各節將說明工作流程自動化調度管理的使用案例。
TFX 和 Kubeflow Pipelines (KFP) 都使用 Apache Beam 元件。
我想搭配 Vertex AI Pipelines 使用 Dataflow
Vertex AI Pipelines 可讓您以無伺服器的方式自動化調度管理機器學習工作流程,以便自動化處理、監控及管理機器學習系統。您可以使用 Vertex AI Pipelines 自動化調度管理 TFX 或 KFP 定義的工作流程有向非循環圖 (DAG),並使用 Vertex 機器學習中繼資料自動追蹤機器學習構件。如要瞭解如何將 Dataflow 與 TFX 和 KFP 整合,請參閱下列各節的資訊。
我想搭配 Kubeflow Pipelines 使用 Dataflow
Kubeflow 是一套機器學習工具包,專門用於簡化 Kubernetes 上的機器學習工作流程部署作業,並提高可攜性與可擴充性。Kubeflow Pipelines 是可重複使用的端對端機器學習工作流程,使用 Kubeflow Pipelines SDK 建構而成。
Kubeflow Pipelines 服務的目標是提供端對端自動化調度管理,並促進實驗和重複使用。您可以使用 KFP 實驗編排技術、管理測試,以及重複使用元件和管道,建立多個端對端解決方案,不必每次都從頭開始。
搭配 KFP 使用 Dataflow 時,您可以使用 DataflowPythonJobOP
或 DataflowFlexTemplateJobOp
運算子。您也可以建構完全自訂的元件。建議使用 DataflowPythonJobOP
運算子。
如要建構完全自訂的元件,請參閱 Vertex AI 說明文件中的「Dataflow 元件」頁面。
我想搭配 TFX 使用 Dataflow
TFX 管道元件是以 TFX 程式庫為基礎建構而成,資料處理程式庫則直接使用 Apache Beam。舉例來說,TensorFlow Transform 會將使用者的呼叫轉換為 Apache Beam。因此,您可以在 TFX 管道中使用 Apache Beam 和 Dataflow,不必進行額外的設定工作。如要搭配 Dataflow 使用 TFX,請在建構 TFX 管道時使用 Dataflow 執行器。詳情請參閱下列資源: