Kubeflow 管道元件是工廠函式,可建立管道步驟。每個元件都會說明元件的輸入內容、輸出內容和實作方式。舉例來說,train_op
是下列程式碼範例中的元件。
舉例來說,訓練元件可以將 CSV 檔案做為輸入內容,並用來訓練模型。在管道步驟中設定機器類型參數,即可管理管道中每個步驟的需求。假設您有兩個訓練步驟,其中一個步驟會訓練大型資料檔案,另一個步驟則會訓練小型資料檔案,您可以為第一個工作分配更多記憶體和 CPU,為第二個工作分配較少資源。
根據預設,這個元件會以 Vertex AI CustomJob
形式執行,使用 e2-standard-4 機器,具備 4 個 CPU 核心和 16 GB 記憶體。如要進一步瞭解如何選取「機器類型」中列出的其中一種 Google Cloud專用機器資源,請參閱「透過 Vertex AI Pipelines 要求 Google Cloud 機器資源」。
以下範例說明如何為步驟設定 CPU、記憶體和 GPU 設定:
from kfp import dsl
@dsl.pipeline(name='custom-container-pipeline')
def pipeline():
generate = generate_op()
train = (
train_op(
training_data=generate.outputs['training_data'],
test_data=generate.outputs['test_data'],
config_file=generate.outputs['config_file'])
.set_cpu_limit('CPU_LIMIT')
.set_memory_limit('MEMORY_LIMIT')
.add_node_selector_constraint(SELECTOR_CONSTRAINT)
.set_accelerator_type(ACCELERATOR_TYPE)
.set_accelerator_limit(ACCELERATOR_LIMIT))
更改下列內容:
CPU_LIMIT:這個運算子的 CPU 上限。這個字串值可以是數字 (CPU 數量的整數值),也可以是數字後接「m」,表示 1/1000。最多可指定 96 個 CPU。
MEMORY_LIMIT:這個運算子的記憶體上限。這個字串值可以是數字,也可以是數字後接「K」(KB)、「M」(MB) 或「G」(GB)。最多支援 624 GB。
SELECTOR_CONSTRAINT:每個限制都是鍵/值組合標籤。 如要讓容器在節點上執行,節點必須將每個限制條件設為標籤。例如:
'cloud.google.com/gke-accelerator', 'NVIDIA_TESLA_T4'
可用的限制如下:
NVIDIA_GB200
+ (包括 GPUDirect-RDMA)NVIDIA_B200
* (包括 GPUDirect-RDMA)NVIDIA_H100_MEGA_80GB
* (包括 GPUDirect-TCPXO)NVIDIA_H100_80GB
NVIDIA_H200_141GB
* (包括 GPUDirect-RDMA)NVIDIA_A100_80GB
NVIDIA_TESLA_A100
(NVIDIA A100 40GB)NVIDIA_TESLA_P4
NVIDIA_TESLA_P100
NVIDIA_TESLA_T4
NVIDIA_TESLA_V100
NVIDIA_L4
TPU_V2
TPU_V3
ACCELERATOR_TYPE:加速器類型。如要進一步瞭解可用的 GPU 和設定方式,請參閱「GPU」。如要進一步瞭解可用的 TPU 類型及設定方式,請參閱 TPU。詳情請參閱
accelerator_type
參數參考資料。ACCELERATOR_LIMIT:運算子的加速器 (GPU 或 TPU) 限制。您可以指定正整數。如要進一步瞭解可用的 GPU 和設定方式,請參閱「GPU」。如要進一步瞭解可用的 TPU 和設定方式,請參閱「TPU」。
CustomJob
支援特定機器類型,最多可使用 96 個 CPU 和 624 GB 記憶體。Vertex AI Pipelines 會根據您指定的 CPU、記憶體和加速器設定,從支援的機器類型中自動選取最接近的類型。