Maschinenkonfiguration für einen Pipelineschritt angeben

Kubeflow-Pipeline-Komponenten sind Factory-Funktionen, die Pipelineschritte erstellen. Jede Komponente beschreibt die Eingaben, Ausgaben und die Implementierung der Komponente. Im folgenden Codebeispiel ist train_op beispielsweise eine Komponente.

Eine Trainingskomponente könnte beispielsweise eine CSV-Datei als Eingabe nehmen und zum Trainieren eines Modells verwenden. Durch Festlegen der Maschinentypparameter für den Pipelineschritt können Sie die Anforderungen jedes Schritts in Ihrer Pipeline verwalten. Wenn Sie zwei Trainingsschritte haben und ein Schritt mit einer großen Datendatei trainiert wird und der zweite Schritt mit einer kleinen Datendatei trainiert wird, können Sie der ersten Aufgabe mehr Arbeitsspeicher und CPU zuweisen und der zweiten Aufgabe weniger Ressourcen.

Standardmäßig wird die Komponente als Vertex AI-CustomJob mit einer e2-standard-4-Maschine mit 4 Kern-CPUs ausgeführt und 16 GB Speicher Weitere Informationen zur Auswahl einer der Google Cloud-spezifischen Maschinenressourcen, die unter Maschinentypen aufgeführt sind, finden Sie unter Google Cloud-Maschinenressourcen mit Vertex AI Pipelines anfordern.

Das folgende Beispiel zeigt, wie Sie die CPU-, Arbeitsspeicher- und GPU-Konfigurationseinstellungen für einen Schritt festlegen:

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))

Ersetzen Sie Folgendes:

  • CPU_LIMIT: Das maximale CPU-Limit für diesen Operator. Dieser Stringwert kann eine Zahl (Ganzzahlwert für die Anzahl der CPUs) oder eine Zahl gefolgt von "m" sein, d. h. 1/1.000. Sie können höchstens 96 CPUs angeben.

  • MEMORY_LIMIT: Das maximale Speicherlimit für diesen Operator. Dieser Stringwert kann eine Zahl sein oder eine Zahl gefolgt von "K" (Kilobyte), "M" (Megabyte) oder "G" (Gigabyte). Es werden maximal 624 GB unterstützt.

  • SELECTOR_CONSTRAINT: Jede Einschränkung ist ein Schlüssel/Wert-Paar-Label. Damit der Container auf einem Knoten ausgeführt werden kann, muss der Knoten jede Einschränkung als Label haben. Zum Beispiel: 'cloud.google.com/gke-accelerator', 'NVIDIA_TESLA_K80'

    Folgende Einschränkungen sind verfügbar:

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

    • TPU_V2
    • TPU_V3
  • ACCELERATOR_LIMIT: Das Beschleunigerlimit (GPU oder TPU) für den Operator. Sie können eine positive Ganzzahl angeben. Weitere Informationen zu den verfügbaren GPUs und deren Konfiguration finden Sie unter GPUs. Weitere Informationen zu den verfügbaren TPUs und zu ihrer Konfiguration finden Sie unter TPUs.

CustomJob unterstützt derzeit bestimmte Maschinentypen, die auf maximal 96 CPUs und 624 GB Arbeitsspeicher beschränkt sind. Basierend auf der von Ihnen angegebenen CPU-, Arbeitsspeicher- und Beschleunigerkonfiguration wählt Vertex AI Pipelines automatisch die nächste Übereinstimmung aus den unterstützten Maschinentypen aus.