建構 TFX 管線

使用 Pipeline 類別

TFX 管線是使用 Pipeline 類別定義。下列範例示範如何使用 Pipeline 類別。

pipeline.Pipeline(
    pipeline_name=pipeline-name,
    pipeline_root=pipeline-root,
    components=components,
    enable_cache=enable-cache,
    metadata_connection_config=metadata-connection-config,
)

取代下列項目

  • pipeline-name:此管線的名稱。管線名稱必須是唯一的。

    TFX 會在查詢 ML Metadata 以取得元件輸入成品時使用管線名稱。重複使用管線名稱可能會導致非預期的行為。

  • pipeline-root:此管線輸出的根路徑。根路徑必須是您的協調器具有讀取和寫入權限之目錄的完整路徑。在執行階段,TFX 會使用管線根目錄來產生元件成品的輸出路徑。此目錄可以是本機目錄,或位於支援的分散式檔案系統上,例如 Google Cloud Storage 或 HDFS。

  • components:組成此管線工作流程的元件執行個體清單。

  • enable-cache:(選用)布林值,指出此管線是否使用快取來加速管線執行。

  • metadata-connection-config:(選用)ML Metadata 的連線設定。

定義元件執行圖

元件執行個體會產生成品作為輸出,並且通常取決於上游元件執行個體產生的成品作為輸入。元件執行個體的執行順序取決於建立成品依附性的有向非循環圖 (DAG)。

例如,ExampleGen 標準元件可以從 CSV 檔案擷取資料,並輸出序列化範例記錄。StatisticsGen 標準元件會接受這些範例記錄作為輸入,並產生資料集統計資料。在此範例中,StatisticsGen 的執行個體必須遵循 ExampleGen,因為 SchemaGen 依附於 ExampleGen 的輸出。

以工作為基礎的依附性

您也可以使用元件的 add_upstream_nodeadd_downstream_node 方法來定義以工作為基礎的依附性。add_upstream_node 可讓您指定目前的元件必須在指定的元件之後執行。add_downstream_node 可讓您指定目前的元件必須在指定的元件之前執行。

管線範本

快速設定管線並瞭解所有部分如何組合在一起的最簡單方式,是使用範本。「在本機建構 TFX 管線」中涵蓋範本的使用方式。

快取

TFX 管線快取可讓您的管線略過先前管線執行中已使用相同輸入集執行的元件。如果啟用快取,管線會嘗試將每個元件的簽名、元件和輸入集,與此管線先前元件執行之一相符。如果相符,管線會使用先前執行的元件輸出。如果不相符,則會執行元件。

如果您的管線使用非決定性元件,請勿使用快取。例如,如果您建立元件來為管線建立隨機數字,則啟用快取會導致此元件執行一次。在此範例中,後續執行會使用第一次執行的隨機數字,而不是產生隨機數字。