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

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

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

  • 使用內建 Apache Beam 和 Dataflow 執行器整合功能的調度架構,例如 TensorFlow Extended (TFX) 或 Kubeflow Pipelines (KFP)。這個選項最簡單。
  • Dataflow 範本中建構自訂元件,然後從 ML 管道呼叫範本。此呼叫包含您的 Apache Beam 程式碼。
  • 建構要在機器學習管線中使用的自訂元件,並將 Python 程式碼直接放在元件中。您定義自訂 Apache Beam 管道,並在自訂元件中使用 Dataflow 執行器。這個選項最為複雜,需要您管理管道依附元件。

建立機器學習管道後,您可以使用協調器將元件串連在一起,建立端對端機器學習工作流程。如要調度管理元件,可以使用代管服務,例如 Vertex AI Pipelines

以下各節將說明工作流程協調使用案例。

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。因此,您可以使用 Apache Beam 和 Dataflow 搭配 TFX 管道,不必進行額外的設定工作。如要搭配 Dataflow 使用 TFX,請在建構 TFX 管道時使用 Dataflow 執行器。詳情請參閱下列資源: