Kubeflow-Pipeline-Komponenten sind Factory-Funktionen, die Pipelineschritte erstellen. Jede Komponente beschreibt die Eingaben, Ausgaben und die Implementierung der Komponente. Beispielsweise ist train_op
eine Komponente im folgenden Codebeispiel.
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_T4'
Folgende Einschränkungen sind verfügbar:
NVIDIA_H100_80GB
NVIDIA_A100_80GB
NVIDIA_TESLA_A100
(NVIDIA A100 40 GB)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ächstgelegene Übereinstimmung aus den unterstützten Maschinentypen aus.