瞭解 TFX 管線

MLOps 是一種應用 DevOps 做法的實務,旨在協助自動化、管理及稽核機器學習 (ML) 工作流程。ML 工作流程包含以下步驟:

  • 準備、分析及轉換資料。
  • 訓練及評估模型。
  • 將已訓練模型部署至生產環境。
  • 追蹤 ML 構件並瞭解其依附元件。

以臨時方式管理這些步驟可能既困難又耗時。

TFX 提供工具組,協助您在各種協調器 (例如 Apache Airflow、Apache Beam 和 Kubeflow Pipelines) 上協調 ML 流程,進而簡化 MLOps 的導入作業。透過將工作流程實作為 TFX 管線,您可以

  • 自動化 ML 流程,以便定期重新訓練、評估及部署模型。
  • 運用分散式運算資源來處理大型資料集和工作負載。
  • 透過使用不同的超參數集執行管線,加快實驗速度。

本指南說明瞭解 TFX 管線所需的核心概念。

構件

TFX 管線中各步驟的輸出稱為 構件。工作流程中的後續步驟可能會使用這些構件做為輸入。透過這種方式,TFX 可讓您在工作流程步驟之間傳輸資料。

例如,ExampleGen 標準元件會發出序列化範例,而 StatisticsGen 標準元件等元件則會使用這些範例做為輸入。

構件必須使用在 ML Metadata 存放區中註冊的 構件類型 進行強型別處理。進一步瞭解 ML Metadata 中使用的概念

構件類型具有名稱,並定義其屬性的結構定義。構件類型名稱在 ML Metadata 存放區中必須是唯一的。TFX 提供多種標準構件類型,用於描述複雜資料類型和值類型,例如:字串、整數和浮點數。您可以重複使用這些構件類型,或定義衍生自 Artifact 的自訂構件類型。

參數

參數是管線的輸入,會在管線執行前得知。參數可讓您透過設定而非程式碼來變更管線或管線一部分的行為。

例如,您可以使用參數,以不同的超參數集執行管線,而無需變更管線的程式碼。

使用參數可讓您更輕鬆地以不同的參數集執行管線,進而加快實驗速度。

進一步瞭解 RuntimeParameter 類別

元件

元件是 ML 工作的實作項目,可用於做為 TFX 管線中的步驟。元件包含:

  • 元件規格,用於定義元件的輸入和輸出構件,以及元件的必要參數。
  • 執行器,用於實作程式碼,以執行 ML 工作流程中的步驟,例如擷取和轉換資料,或是訓練及評估模型。
  • 元件介面,用於封裝元件規格和執行器,以便在管線中使用。

TFX 提供多種標準元件,可用於您的管線中。如果這些元件不符合您的需求,您可以建構自訂元件。進一步瞭解自訂元件

管線

TFX 管線是 ML 工作流程的可攜式實作項目,可在各種協調器 (例如 Apache Airflow、Apache Beam 和 Kubeflow Pipelines) 上執行。管線包含元件執行個體和輸入參數。

元件執行個體會產生構件做為輸出,且通常依附於上游元件執行個體產生的構件做為輸入。元件執行個體的執行順序是透過建立構件依附元件的定向非循環圖來決定。

例如,假設有一個管線會執行下列操作:

  • 使用自訂元件直接從專有系統擷取資料。
  • 使用 StatisticsGen 標準元件計算訓練資料的統計資料。
  • 使用 SchemaGen 標準元件建立資料結構定義。
  • 使用 ExampleValidator 標準元件檢查訓練資料中是否有異常。
  • 使用 Transform 標準元件對資料集執行特徵工程。
  • 使用 Trainer 標準元件訓練模型。
  • 使用 Evaluator 元件評估已訓練的模型。
  • 如果模型通過評估,管線會使用自訂元件將已訓練的模型加入專有部署系統的佇列。

為了判斷元件執行個體的執行順序,TFX 會分析構件依附元件。

  • 資料擷取元件沒有任何構件依附元件,因此可以是圖表中的第一個節點。
  • StatisticsGen 依附於資料擷取產生的範例,因此必須在資料擷取之後執行。
  • SchemaGen 依附於 StatisticsGen 建立的統計資料,因此必須在 StatisticsGen 之後執行。
  • ExampleValidator 依附於 StatisticsGen 建立的統計資料和 SchemaGen 建立的結構定義,因此必須在 StatisticsGen 和 SchemaGen 之後執行。
  • Transform 依附於資料擷取產生的範例和 SchemaGen 建立的結構定義,因此必須在資料擷取和 SchemaGen 之後執行。
  • Trainer 依附於資料擷取產生的範例、SchemaGen 建立的結構定義,以及 Transform 產生的已儲存模型。Trainer 只能在資料擷取、SchemaGen 和 Transform 之後執行。
  • Evaluator 依附於資料擷取產生的範例和 Trainer 產生的已儲存模型,因此必須在資料擷取和 Trainer 之後執行。
  • 自訂部署器依附於 Trainer 產生的已儲存模型和 Evaluator 建立的分析結果,因此部署器必須在 Trainer 和 Evaluator 之後執行。

根據這項分析,協調器會執行:

  • 資料擷取、StatisticsGen、SchemaGen 元件執行個體 (依序執行)。
  • ExampleValidator 和 Transform 元件可以平行執行,因為它們共用輸入構件依附元件,且彼此的輸出互不依附。
  • 在 Transform 元件完成後,Trainer、Evaluator 和自訂部署器元件執行個體會依序執行。

進一步瞭解如何建構 TFX 管線

TFX 管線範本

TFX 管線範本提供預先建構的管線,讓您能針對用途進行自訂,進而簡化管線開發的入門程序。

進一步瞭解如何自訂 TFX 管線範本

管線執行

執行是指管線的單次執行。

協調器

協調器是您可在其中執行管線執行的系統。TFX 支援多種協調器,例如:Apache AirflowApache BeamKubeflow Pipelines。TFX 也使用 DagRunner 一詞來指稱支援協調器的實作項目。