Volte a executar um pipeline

Pode executar novamente tarefas específicas de execuções de pipelines de aprendizagem automática (AA) concluídas, canceladas ou com falhas. Quando inicia uma nova execução, pode modificar as configurações ao nível da tarefa ou optar por ignorar tarefas e, em seguida, criar uma execução com base na configuração atualizada. A nova execução do pipeline mantém uma referência à execução do pipeline original para fins de rastreabilidade. Se uma tarefa tiver sido bem-sucedida numa execução anterior, o Vertex AI Pipelines reutiliza os resultados em cache dessa tarefa. Caso contrário, se o passo tiver falhado, o Vertex AI Pipelines executa o passo durante a nova execução do pipeline.

Isto permite-lhe resolver de forma eficiente as falhas do pipeline de ML fazendo ajustes ao pipeline de ML sem reiniciar todo o pipeline de ML. Pode ajustar uma tarefa com falhas, comparar resultados com diferentes conjuntos de parâmetros ou ignorar uma tarefa não essencial que esteja a falhar.

A nova execução de um pipeline é útil para os profissionais de MLOps que gerem pipelines de ML complexos em produção. Seguem-se alguns exemplos de cenários em que é útil:

  • Processamento de falhas parciais em processos paralelos: quando uma parte de um processo paralelo grande falha, pode ignorar a tarefa com falha e permitir que o resto do pipeline continue a ser executado. Por exemplo, se um pipeline de dados para uma em 100 tarefas falhar, pode ignorá-lo.

  • Voltar a executar uma tarefa com dados de entrada atualizados: se for necessário voltar a executar uma única tarefa com dados atualizados, pode voltar a executar essa tarefa específica.

  • Depurar problemas de produção sem exigir alterações ao código: execute novamente uma tarefa específica e todas as tarefas que dependem dela sem envolver o autor do código do pipeline.

Volte a executar um pipeline

Para executar novamente um pipeline, use o SDK Vertex AI para Python.

Python

Use o exemplo seguinte para executar novamente um pipeline ignorando uma tarefa com falhas e executando novamente outra tarefa com parâmetros atualizados através do método 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)

Substitua o seguinte:

  • PROJECT_ID: o Google Cloud projeto que contém a execução do pipeline.
  • LOCATION: a região onde a execução do pipeline está localizada. Para mais informações acerca das regiões onde o Vertex AI Pipelines está disponível, consulte o guia de localizações da Vertex AI.
  • PIPELINE_RUN_RESOURCE_NAME: O nome completo do recurso da execução do pipeline concluída, falhada ou cancelada que quer executar novamente. Introduza o nome do recurso no formato projects/PROJECT_NUMBER/locations/LOCATION/pipelineJobs/PIPELINE_RUN_ID, onde:

    • PROJECT_NUMBER: o número do projeto. Pode localizar este número do projeto na Google Cloud consola. Para mais informações, consulte o artigo Encontre o nome, o número e o ID do projeto.
    • PIPELINE_RUN_ID com o ID exclusivo da execução do pipeline que quer executar novamente. O ID é apresentado no separador Execuções da página Pipelines na Google Cloud consola.
  • RERUN_TASK_NAME: o nome da tarefa a executar novamente com parâmetros atualizados.
  • SKIP_FAILED_TASK_NAME: o nome da tarefa com falha a ignorar durante a nova execução.
  • TASK_PARAMETER_1 e TASK_PARAMETER_2: os nomes dos parâmetros da tarefa que quer substituir na nova execução da pipeline.
  • TASK_PARAMETER_1_VALUE e TASK_PARAMETER_2_VALUE: Os novos valores de TASK_PARAMETER_1 e TASK_PARAMETER_2 respetivamente na nova execução da pipeline.
  • PIPELINE_PARAMETER_VALUES: opcional. Os valores dos parâmetros ao nível da execução do pipeline atualizados a usar para a nova execução do pipeline.
  • RERUN_PIPELINE_JOB_ID: opcional. Um ID exclusivo a atribuir à nova tarefa de repetição da pipeline.