Component¶
Kubeflow Pipelines 中組件的概念概述
管道組件是一組獨立的代碼,執行 ML 工作流(管道)中的一個步驟,例如數據預處理、數據轉換、模型訓練等。組件類似於函數,因為它具有名稱、參數、返回值和主體。
Component code¶
每個組件的代碼包括以下內容:
- Client code: 與端點通信以提交作業的代碼。例如,與 Google Dataproc API 通信以提交 Spark 作業的代碼。
- Runtime code: 執行實際工作並通常在集群中運行的代碼。例如,將原始數據轉換為預處理數據的 Spark 代碼。
請注意客戶端代碼和運行時代碼的命名約定--對於名為 “mytask” 的任務:
mytask.py
程序包含客戶端代碼。mytask
目錄包含所有運行時代碼。
Component 定義¶
YAML 格式的組件規範描述了 Kubeflow Pipelines 系統的組件。組件定義包含以下部分:
- Metadata:名稱、描述等。
- Interface:輸入/輸出規範(名稱、類型、描述、默認值等)。
- Implementation:給定組件輸入的一組參數值時如何運行組件的規範。實現部分還描述瞭如何在組件完成運行後從組件獲取輸出值。
有關組件的完整定義,請參閱組件規範。
容器化組件¶
您必須將組件打包為容器映像。組件代表容器內的特定程序或入口點。
管道中的每個組件獨立執行。這些組件不在同一個進程中運行,不能直接共享內存數據。您必須序列化(到字符串或文件)您在組件之間傳遞的所有數據片段,以便數據可以通過分佈式網絡傳輸。然後,您必須反序列化數據以供下游組件使用。