機器學習工作流程中的 Dataflow ML

如要調度管理複雜的機器學習工作流程,可以建立包含資料預先處理和後續處理步驟的架構。您可能需要先預先處理資料,才能用於訓練模型,或後續處理資料來轉換模型輸出內容。

機器學習工作流程通常包含許多步驟,共同組成管道。如要建構機器學習管道,可以使用下列其中一種方法。

  • 使用內建 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」。

工作流程自動化調度管理

以下各節將說明工作流程自動化調度管理的使用案例。

TFXKubeflow 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 時,您可以使用 DataflowPythonJobOPDataflowFlexTemplateJobOp 運算子。您也可以建構完全自訂的元件。建議使用 DataflowPythonJobOP 運算子。

如要建構完全自訂的元件,請參閱 Vertex AI 說明文件中的「Dataflow 元件」頁面。

我想搭配 TFX 使用 Dataflow

TFX 管道元件是以 TFX 程式庫為基礎建構而成,資料處理程式庫則直接使用 Apache Beam。舉例來說,TensorFlow Transform 會將使用者的呼叫轉換為 Apache Beam。因此,您可以在 TFX 管道中使用 Apache Beam 和 Dataflow,不必進行額外的設定工作。如要搭配 Dataflow 使用 TFX,請在建構 TFX 管道時使用 Dataflow 執行器。詳情請參閱下列資源: