如要調度管理複雜的機器學習工作流程,可以建立包含資料預先處理和後續處理步驟的架構。您可能需要預先處理資料,才能用於訓練模型,或後續處理資料來轉換模型輸出內容。
機器學習工作流程通常包含許多步驟,共同組成管道。如要建構機器學習管道,可以使用下列其中一種方法。
- 使用內建 Apache Beam 和 Dataflow 執行器整合功能的調度架構,例如 TensorFlow Extended (TFX) 或 Kubeflow Pipelines (KFP)。這個選項最簡單。
- 在 Dataflow 範本中建構自訂元件,然後從 ML 管道呼叫範本。此呼叫包含您的 Apache Beam 程式碼。
- 建構要在機器學習管線中使用的自訂元件,並將 Python 程式碼直接放在元件中。您定義自訂 Apache Beam 管道,並在自訂元件中使用 Dataflow 執行器。這個選項最為複雜,需要您管理管道依附元件。
建立機器學習管道後,您可以使用協調器將元件串連在一起,建立端對端機器學習工作流程。如要調度管理元件,可以使用代管服務,例如 Vertex AI Pipelines。
以下各節將說明工作流程協調使用案例。
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。因此,您可以使用 Apache Beam 和 Dataflow 搭配 TFX 管道,不必進行額外的設定工作。如要搭配 Dataflow 使用 TFX,請在建構 TFX 管道時使用 Dataflow 執行器。詳情請參閱下列資源: