Esegui di nuovo una pipeline

Puoi eseguire di nuovo attività specifiche dalle esecuzioni di pipeline di machine learning (ML) completate, annullate o non riuscite. Quando avvii una nuova esecuzione, puoi modificare le configurazioni a livello di attività o scegliere di saltare le attività, quindi creare un'esecuzione in base alla configurazione aggiornata. La nuova esecuzione della pipeline mantiene un riferimento all'esecuzione della pipeline originale per la tracciabilità. Se un'attività è stata completata correttamente in un'esecuzione precedente, Vertex AI Pipelines riutilizza i risultati memorizzati nella cache per quell'attività. In caso contrario, se il passaggio non è riuscito, Vertex AI Pipelines lo esegue durante la nuova esecuzione della pipeline.

In questo modo puoi risolvere in modo efficiente gli errori della pipeline ML apportando modifiche alla pipeline ML senza riavviarla completamente. Puoi modificare un'attività non riuscita, confrontare i risultati con diversi set di parametri o saltare un'attività non essenziale che non riesce.

La nuova esecuzione di una pipeline è utile per i professionisti MLOps che gestiscono pipeline ML complesse in produzione. Di seguito sono riportati alcuni esempi di scenari in cui è utile:

  • Gestione di errori parziali nei processi paralleli: quando una parte di un processo parallelo di grandi dimensioni non riesce, puoi saltare l'attività non riuscita e lasciare che il resto della pipeline continui a essere eseguito. Ad esempio, se una pipeline di dati per una delle 100 attività non riesce, puoi saltarla.

  • Nuova esecuzione di un'attività con dati di input aggiornati: se è necessario eseguire di nuovo una singola attività con dati aggiornati, puoi eseguire di nuovo l'attività specifica.

  • Debug dei problemi di produzione senza richiedere modifiche al codice: esegui di nuovo un' attività specifica e tutte le attività che dipendono da essa senza coinvolgere l'autore del codice della pipeline.

Eseguire di nuovo una pipeline

Per eseguire di nuovo una pipeline, utilizza l'SDK Vertex AI Python.

Python

Utilizza il seguente esempio per eseguire di nuovo una pipeline saltando un'attività non riuscita ed eseguendo di nuovo un'altra attività con parametri aggiornati utilizzando il metodo PipelineJob.rerun():

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)

Sostituisci quanto segue:

  • PROJECT_ID: il Google Cloud progetto contenente l'esecuzione della pipeline.
  • LOCATION: la regione in cui si trova l'esecuzione della pipeline. Per ulteriori informazioni sulle regioni in cui è disponibile Vertex AI Pipelines, consulta la guida Località di Vertex AI.
  • PIPELINE_RUN_RESOURCE_NAME: il nome completo della risorsa dell' esecuzione della pipeline completata, non riuscita o annullata che vuoi eseguire di nuovo. Inserisci il nome della risorsa nel formato projects/PROJECT_NUMBER/locations/LOCATION/pipelineJobs/PIPELINE_RUN_ID, dove:

    • PROJECT_NUMBER: il numero di progetto del tuo progetto. Puoi trovare questo numero di progetto nella Google Cloud console. Per ulteriori informazioni, consulta Trovare il nome, il numero e l'ID del progetto.
    • PIPELINE_RUN_ID con l'ID univoco dell'esecuzione della pipeline che vuoi eseguire di nuovo. L'ID viene visualizzato nella scheda Esecuzioni della pagina Pipeline nella Google Cloud console.
  • RERUN_TASK_NAME: il nome dell'attività da eseguire di nuovo con parametri aggiornati.
  • SKIP_FAILED_TASK_NAME: il nome dell'attività non riuscita da saltare durante la nuova esecuzione.
  • TASK_PARAMETER_1 e TASK_PARAMETER_2: i nomi dei parametri dell'attività che vuoi sostituire nella nuova esecuzione della pipeline.
  • TASK_PARAMETER_1_VALUE e TASK_PARAMETER_2_VALUE: i nuovi valori di TASK_PARAMETER_1 e TASK_PARAMETER_2 rispettivamente nella nuova esecuzione della pipeline.
  • PIPELINE_PARAMETER_VALUES: (facoltativo) I valori dei parametri a livello di esecuzione della pipeline aggiornati da utilizzare per la nuova esecuzione della pipeline.
  • RERUN_PIPELINE_JOB_ID: (facoltativo) Un ID univoco da assegnare al nuovo job di esecuzione della pipeline.