Cómo volver a ejecutar una canalización

Puedes volver a ejecutar tareas específicas de ejecuciones de canalizaciones de aprendizaje automático (AA) completadas, canceladas o fallidas. Cuando inicias una nueva ejecución, puedes modificar las configuraciones a nivel de la tarea o elegir omitir tareas y, luego, crear una ejecución basada en la configuración actualizada. La nueva ejecución de canalización mantiene una referencia a la ejecución de canalización original para la trazabilidad. Si una tarea se realizó correctamente en una ejecución anterior, las canalizaciones de Gemini Enterprise Agent Platform reutilizan los resultados almacenados en caché para esa tarea. De lo contrario, si el paso falló, las canalizaciones de Agent Platform ejecutan el paso durante la nueva ejecución de la canalización.

Esto te permite abordar de manera eficiente las fallas de la canalización de AA. Para ello, realiza ajustes en la canalización de AA sin reiniciar toda la canalización de AA. Puedes ajustar una tarea fallida, comparar resultados con diferentes conjuntos de parámetros o omitir una tarea no esencial que falla.

Volver a ejecutar una canalización es útil para los profesionales de MLOps que administran canalizaciones de AA complejas en producción. Estos son algunos ejemplos de situaciones en las que es útil:

  • Manejo de fallas parciales en procesos paralelos: Cuando falla una parte de un proceso paralelo grande, puedes omitir la tarea fallida y permitir que continúe el resto de la canalización. Por ejemplo, si falla una canalización de datos para una de 100 tareas, puedes omitirla.

  • Volver a ejecutar una tarea con datos de entrada actualizados: Si es necesario volver a ejecutar una sola tarea con datos actualizados, puedes volver a ejecutar esa tarea específica.

  • Depuración de problemas de producción sin requerir cambios de código: Vuelve a ejecutar una tarea específica y todas las tareas que dependen de ella sin involucrar al autor del código de la canalización.

Vuelve a ejecutar una canalización

Para volver a ejecutar una canalización, usa el SDK de Agent Platform para Python.

Python

Usa el siguiente ejemplo para volver a ejecutar una canalización. Para ello, omite una tarea fallida y vuelve a ejecutar otra tarea con parámetros actualizados mediante el 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)

Reemplaza lo siguiente:

  • PROJECT_ID: Es el Google Cloud proyecto que contiene la ejecución de la canalización.
  • LOCATION: Es la región en la que se encuentra la ejecución de la canalización. Para obtener más información sobre las regiones en las que está disponible Agent Platform Pipelines, consulta la guía de ubicaciones de Gemini Enterprise Agent Platform.
  • PIPELINE_RUN_RESOURCE_NAME: Es el nombre de recurso completamente calificado de la ejecución de la canalización completada, fallida o cancelada que deseas volver a ejecutar. Ingresa el nombre del recurso en el formato projects/PROJECT_NUMBER/locations/LOCATION/pipelineJobs/PIPELINE_RUN_ID, donde:

    • PROJECT_NUMBER: Es el número de tu proyecto. Puedes encontrar este número de proyecto en la Google Cloud console. Para obtener más información, consulta Encuentra el nombre, el número y el ID del proyecto.
    • PIPELINE_RUN_ID con el ID único de la ejecución de la canalización que deseas volver a ejecutar. El ID se muestra en la pestaña Ejecuciones de la página Canalizaciones en la Google Cloud console.
  • RERUN_TASK_NAME: Es el nombre de la tarea que se volverá a ejecutar con parámetros actualizados.
  • SKIP_FAILED_TASK_NAME: Es el nombre de la tarea fallida que se omitirá durante la nueva ejecución.
  • TASK_PARAMETER_1 y TASK_PARAMETER_2: Son los nombres de los parámetros de la tarea que deseas anular en la nueva ejecución de la canalización.
  • TASK_PARAMETER_1_VALUE y TASK_PARAMETER_2_VALUE: Son los valores nuevos de TASK_PARAMETER_1 y TASK_PARAMETER_2 respectivamente en la nueva ejecución de la canalización.
  • PIPELINE_PARAMETER_VALUES: Opcional Son los valores de parámetros actualizados a nivel de la ejecución de la canalización que se usarán para la nueva ejecución de la canalización.
  • RERUN_PIPELINE_JOB_ID: Opcional Es un ID único para asignar al nuevo trabajo de nueva ejecución de la canalización.