Puedes volver a ejecutar tareas específicas de ejecuciones de canalizaciones de aprendizaje automático (AA) completadas, canceladas o con errores. Cuando inicias una nueva ejecución, puedes modificar la configuración 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 completó correctamente en una ejecución anterior, Vertex AI Pipelines reutiliza los resultados almacenados en caché para esa tarea. De lo contrario, si el paso falló, Vertex AI Pipelines lo ejecuta durante la nueva ejecución de la canalización.
Esto te permite abordar de manera eficiente las fallas de la canalización de AA realizando ajustes en ella sin tener que reiniciarla por completo. Puedes ajustar una tarea fallida, comparar los 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 resulta útil:
Cómo controlar 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 ejecución de la canalización. Por ejemplo, si falla una canalización de datos para una de cada 100 tareas, puedes omitirla.
Cómo volver a ejecutar una tarea con datos de entrada actualizados: Si una sola tarea debe volver a ejecutarse con datos actualizados, puedes volver a ejecutar esa tarea específica.
Depuración de problemas de producción sin necesidad de cambiar el 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.
Cómo volver a ejecutar una canalización
Para volver a ejecutar una canalización, usa el SDK de Vertex AI para Python.
Python
Usa el siguiente ejemplo para volver a ejecutar una canalización omitiendo una tarea con errores y volviendo a ejecutar otra tarea con parámetros actualizados usando 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 Vertex AI Pipelines, consulta la guía de ubicaciones de Vertex AI.
PIPELINE_RUN_RESOURCE_NAME: Es el nombre de recurso completamente calificado de la ejecución de canalización completada, con errores o cancelada que deseas volver a ejecutar. Ingresa el nombre del recurso en el formato
projects/PROJECT_NUMBER/locations/LOCATION/pipelineJobs/PIPELINE_RUN_ID
, en el que:- PROJECT_NUMBER: Es el número de tu proyecto. Puedes encontrar este número de proyecto en la consola de Google Cloud . Para obtener más información, consulta Cómo encontrar el nombre, el número y el ID del proyecto.
- PIPELINE_RUN_ID con el ID único de la ejecución de canalización que deseas volver a ejecutar. El ID se muestra en la pestaña Ejecuciones de la página Canalizaciones en la consola de Google Cloud .
- 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 repetición de la canalización.
- TASK_PARAMETER_1_VALUE y TASK_PARAMETER_2_VALUE: 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 los parámetros a nivel de la ejecución de la canalización actualizados que se usarán para volver a ejecutar la canalización.
- RERUN_PIPELINE_JOB_ID: Opcional Es un ID único que se asignará al nuevo trabajo de nueva ejecución de la canalización.