Sie können bestimmte Aufgaben aus abgeschlossenen, abgebrochenen oder fehlgeschlagenen ML-Pipeline-Ausführungen (Machine Learning) noch einmal ausführen. Wenn Sie einen erneuten Lauf starten, können Sie Konfigurationen auf Aufgabenebene ändern oder Aufgaben überspringen und dann einen Lauf basierend auf der aktualisierten Konfiguration erstellen. Die neue Pipeline-Ausführung behält einen Verweis auf die ursprüngliche Pipeline-Ausführung bei, um die Nachverfolgung zu ermöglichen. Wenn eine Aufgabe in einem vorherigen Lauf erfolgreich war, verwendet Vertex AI Pipelines die zwischengespeicherten Ergebnisse für diese Aufgabe wieder. Andernfalls, wenn der Schritt fehlgeschlagen ist, wird er bei der Pipeline-Wiederholung von Vertex AI Pipelines ausgeführt.
So können Sie ML-Pipeline-Fehler effizient beheben, indem Sie Anpassungen an Ihrer ML-Pipeline vornehmen, ohne die gesamte ML-Pipeline neu zu starten. Sie können eine fehlgeschlagene Aufgabe anpassen, Ergebnisse mit verschiedenen Parametersätzen vergleichen oder eine nicht unbedingt erforderliche Aufgabe überspringen, die fehlschlägt.
Das erneute Ausführen einer Pipeline ist für MLOps-Experten nützlich, die komplexe ML-Pipelines in der Produktion verwalten. Beispiele für Szenarien, in denen das nützlich ist:
Teilausfälle in parallelen Prozessen behandeln: Wenn ein Teil eines großen parallelen Prozesses fehlschlägt, können Sie die fehlgeschlagene Aufgabe überspringen und den Rest der Pipeline weiter ausführen lassen. Wenn beispielsweise eine Datenpipeline für eine von 100 Aufgaben fehlschlägt, können Sie sie überspringen.
Aufgabe mit aktualisierten Eingabedaten noch einmal ausführen: Wenn eine einzelne Aufgabe mit aktualisierten Daten noch einmal ausgeführt werden muss, können Sie diese Aufgabe noch einmal ausführen.
Produktionsprobleme ohne Codeänderungen beheben: Sie können eine bestimmte Aufgabe und alle Aufgaben, von denen sie abhängt, noch einmal ausführen, ohne dass der Autor des Pipeline-Codes beteiligt sein muss.
Pipeline noch einmal ausführen
Verwenden Sie das Vertex AI SDK für Python, um eine Pipeline noch einmal auszuführen.
Python
Im folgenden Beispiel wird eine Pipeline noch einmal ausgeführt. Dabei wird eine fehlgeschlagene Aufgabe übersprungen und eine andere Aufgabe mit aktualisierten Parametern noch einmal ausgeführt. Dazu wird die Methode PipelineJob.rerun()
verwendet:
from google.cloud import aiplatform from google.cloud.aiplatform.preview.pipelinejob.pipeline_jobs import ( _PipelineJob as PipelineJob ) from google.cloud.aiplatform_v1beta1.types.ui_pipeline_spec import RuntimeArtifact from google.protobuf.struct_pb2 import Value from google.cloud.aiplatform_v1beta1.types import PipelineTaskRerunConfig aiplatform.init(project="PROJECT_ID", location="LOCATION") job = aiplatform.PipelineJob.get(resource_name="PIPELINE_RUN_RESOURCE_NAME") original_job_name = job.resource_name rerun_task_id = None skip_failed_task_id = None task_inputs_override = PipelineTaskRerunConfig.Inputs( parameter_values={ "TASK_PARAMETER_1": Value(TASK_PARAMETER_1_VALUE), "TASK_PARAMETER_2": Value(TASK_PARAMETER_2_VALUE) } ) for task in job.task_details: if task.task_name == RERUN_TASK_NAME: rerun_task_id = task.task_id if task.task_name == SKIP_FAILED_TASK_NAME: skip_failed_task_id = task.task_id pipeline_job.rerun(original_pipelinejob_name=original_job_name, pipeline_task_rerun_configs=[ PipelineTaskRerunConfig(task_id = rerun_task_id, skip_task = False, inputs = PipelineTaskRerunConfig.Inputs(task_inputs_override) ), PipelineTaskRerunConfig(task_id = skip_failed_task_id, skip_task = True ) ], parameter_values=PIPELINE_PARAMETER_VALUES, job_id=RERUN_PIPELINE_JOB_ID)
Ersetzen Sie Folgendes:
- PROJECT_ID: Das Google Cloud Projekt, das den Pipelineausführung enthält.
- LOCATION: Die Region, in der sich die Pipeline-Ausführung befindet. Weitere Informationen zu den Regionen, in denen Vertex AI Pipelines verfügbar ist, finden Sie in der Anleitung zu Vertex AI-Standorten.
PIPELINE_RUN_RESOURCE_NAME: Der vollständig qualifizierte Ressourcenname des abgeschlossenen, fehlgeschlagenen oder abgebrochenen Pipeline-Laufs, den Sie noch einmal ausführen möchten. Geben Sie den Ressourcennamen im Format
projects/PROJECT_NUMBER/locations/LOCATION/pipelineJobs/PIPELINE_RUN_ID
ein. Dabei gilt:- PROJECT_NUMBER: Die Projektnummer für Ihr Projekt. Sie finden diese Projektnummer in der Google Cloud Console. Weitere Informationen finden Sie unter Projektname, ‑nummer und ‑ID ermitteln.
- PIPELINE_RUN_ID durch die eindeutige ID des Pipeline-Laufs, den Sie noch einmal ausführen möchten. Die ID wird in der Google Cloud Console auf der Seite Pipelines auf dem Tab Ausführungen angezeigt.
- RERUN_TASK_NAME: Der Name des Tasks, der mit aktualisierten Parametern noch einmal ausgeführt werden soll.
- SKIP_FAILED_TASK_NAME: Der Name der fehlgeschlagenen Aufgabe, die beim erneuten Ausführen übersprungen werden soll.
- TASK_PARAMETER_1 und TASK_PARAMETER_2: Die Namen der Parameter für die Aufgabe, die Sie beim erneuten Ausführen der Pipeline überschreiben möchten.
- TASK_PARAMETER_1_VALUE und TASK_PARAMETER_2_VALUE: Die neuen Werte von TASK_PARAMETER_1 und TASK_PARAMETER_2 im Pipeline-Wiederholungslauf.
- PIPELINE_PARAMETER_VALUES: Optional. Die aktualisierten Parameterwerte auf Pipelineausführungsebene, die für die Pipelinewiederholung verwendet werden sollen.
- RERUN_PIPELINE_JOB_ID: Optional. Eine eindeutige ID, die dem neuen Pipeline-Wiederholungsjob zugewiesen werden soll.