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 in Maschinentypen aufgeführten Google Cloud-spezifischen Maschinenressourcen 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, müssen für den Knoten alle Einschränkungen als Label angezeigt werden. 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 Limit für den Beschleuniger (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. Anhand der von Ihnen angegebenen CPU-, Arbeitsspeicher- und Beschleunigerkonfiguration wählt Vertex AI Pipelines automatisch den am besten passenden Maschinentyp aus den unterstützten Maschinentypen aus.