Specifica la configurazione della macchina per un passaggio della pipeline

I componenti della pipeline kubeflow sono funzioni di fabbrica che creano i passaggi della pipeline. Ogni componente descrive input, output e implementazione del componente. Ad esempio, train_op è un componente nel seguente esempio di codice.

Ad esempio, un componente di addestramento potrebbe prendere un file CSV come input e utilizzarlo per addestrare un modello. Se imposti i parametri del tipo di macchina nel passaggio della pipeline, puoi gestire i requisiti di ogni passaggio. Se disponi di due passaggi di addestramento e di un passaggio su un enorme file di dati e il secondo passaggio addestra su un file di dati di piccole dimensioni, puoi allocare più memoria e CPU alla prima attività e meno risorse alla seconda.

Per impostazione predefinita, il componente verrà eseguito come Vertex AI CustomJob utilizzando una macchina e2-standard-4, con CPU a 4 core e 16 GB di memoria. Per saperne di più sulla selezione di una delle risorse macchina specifiche di Google Cloud elencate in Tipi di macchina, consulta Richiedere risorse di macchine Google Cloud con Vertex AI Pipelines.

Il seguente esempio mostra come impostare le impostazioni di configurazione di CPU, memoria e GPU per un passaggio:

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_limit(ACCELERATOR_LIMIT))

Sostituisci quanto segue:

  • CPU_LIMIT: il limite massimo di CPU per questo operatore. Questo valore di stringa può essere un numero (valore intero per il numero di CPU) o un numero seguito da "m", che indica 1/1000. Puoi specificare al massimo 96 CPU.

  • MEMORY_LIMIT: il limite massimo di memoria per questo operatore. Questo valore di stringa può essere un numero o un numero seguito da "K" (kilobyte), "M" (megabyte) o "G" (gigabyte). Sono supportati al massimo 624 GB.

  • SELECTOR_CONSTRAINT: ogni vincolo è un'etichetta di coppia chiave-valore. Affinché il container sia idoneo all'esecuzione su un nodo, quest'ultimo deve avere ciascun vincolo come etichetta. Ad esempio: 'cloud.go888ogle.com.fqhub.com/gke-accelerator', 'NVIDIA_TESLA_T4'

    Sono disponibili i seguenti vincoli:

    • NVIDIA_H100_80GB
    • NVIDIA_A100_80GB
    • NVIDIA_TESLA_A100 (NVIDIA A100 da 40 GB)
    • NVIDIA_TESLA_P4
    • NVIDIA_TESLA_P100
    • NVIDIA_TESLA_T4
    • NVIDIA_TESLA_V100
    • NVIDIA_L4

    • TPU_V2
    • TPU_V3
  • ACCELERATOR_LIMIT: il limite dell'acceleratore (GPU o TPU) per l'operatore. Puoi specificare un numero intero positivo. Per ulteriori informazioni sulle GPU disponibili e su come configurarle, consulta la pagina dedicata alle GPU. Per ulteriori informazioni sulle TPU disponibili e su come configurarle, consulta la pagina TPU.

CustomJob supporta tipi di macchina specifici che consentono un massimo di 96 CPU e 624 GB di memoria. In base alla configurazione di CPU, memoria e acceleratore specificata, Vertex AI Pipelines seleziona automaticamente la corrispondenza più vicina tra i tipi di macchina supportati.