파이프라인 다시 실행

완료, 취소 또는 실패한 머신러닝 (ML) 파이프라인 실행에서 특정 작업을 다시 실행할 수 있습니다. 다시 실행을 시작할 때 태스크 수준 구성을 수정하거나 태스크를 건너뛰도록 선택한 다음 업데이트된 구성을 기반으로 실행을 만들 수 있습니다. 새 파이프라인 실행은 추적 가능성을 위해 원래 파이프라인 실행에 대한 참조를 유지합니다. 이전 실행에서 작업이 성공한 경우 Vertex AI Pipelines는 해당 작업의 캐시된 결과를 재사용합니다. 그렇지 않고 단계가 실패한 경우 Vertex AI Pipelines는 파이프라인 재실행 중에 단계를 실행합니다.

이렇게 하면 전체 ML 파이프라인을 다시 시작하지 않고 ML 파이프라인을 조정하여 ML 파이프라인 실패를 효율적으로 해결할 수 있습니다. 실패한 작업을 조정하거나, 다양한 매개변수 세트로 결과를 비교하거나, 실패하는 중요하지 않은 작업을 건너뛸 수 있습니다.

파이프라인을 다시 실행하는 것은 프로덕션에서 복잡한 ML 파이프라인을 관리하는 MLOps 실무자에게 유용합니다. 이 기능이 유용한 시나리오의 예는 다음과 같습니다.

  • 병렬 프로세스에서 부분적 실패 처리: 대규모 병렬 프로세스의 한 부분이 실패하면 실패한 작업을 건너뛰고 파이프라인의 나머지 부분을 계속 실행할 수 있습니다. 예를 들어 100개 작업 중 하나의 데이터 파이프라인이 실패하면 이를 건너뛸 수 있습니다.

  • 업데이트된 입력 데이터로 작업 다시 실행: 업데이트된 데이터로 단일 작업을 다시 실행해야 하는 경우 해당 작업을 다시 실행할 수 있습니다.

  • 코드 변경 없이 프로덕션 문제 디버깅: 파이프라인 코드 작성자를 포함하지 않고 특정 작업과 해당 작업에 종속된 모든 작업을 다시 실행합니다.

파이프라인 다시 실행

파이프라인을 다시 실행하려면 Python용 Vertex AI SDK를 사용하세요.

Python

다음 샘플을 사용하여 실패한 작업을 건너뛰고 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)

다음을 바꿉니다.

  • PROJECT_ID: 파이프라인 실행이 포함된 Google Cloud 프로젝트입니다.
  • LOCATION: 파이프라인 실행이 있는 리전입니다. Vertex AI Pipelines을 사용할 수 있는 리전에 대한 자세한 내용은 Vertex AI 위치 가이드를 참조하세요.
  • PIPELINE_RUN_RESOURCE_NAME: 다시 실행하려는 완료, 실패 또는 취소된 파이프라인 실행의 정규화된 리소스 이름입니다. projects/PROJECT_NUMBER/locations/LOCATION/pipelineJobs/PIPELINE_RUN_ID 형식으로 리소스 이름을 입력합니다. 각 항목의 의미는 다음과 같습니다.

    • PROJECT_NUMBER: 프로젝트의 프로젝트 번호입니다. 이 프로젝트 번호는 Google Cloud 콘솔에서 찾을 수 있습니다. 자세한 내용은 프로젝트 이름, 번호, ID 찾기를 참고하세요.
    • PIPELINE_RUN_ID을 다시 실행하려는 파이프라인 실행의 고유 ID로 바꿉니다. ID는 Google Cloud 콘솔의 파이프라인 페이지에 있는 실행 탭에 표시됩니다.
  • RERUN_TASK_NAME: 업데이트된 매개변수로 다시 실행할 작업의 이름입니다.
  • SKIP_FAILED_TASK_NAME: 다시 실행하는 동안 건너뛸 실패한 작업의 이름입니다.
  • TASK_PARAMETER_1TASK_PARAMETER_2: 파이프라인 재실행에서 재정의하려는 작업의 매개변수 이름입니다.
  • TASK_PARAMETER_1_VALUETASK_PARAMETER_2_VALUE: 파이프라인 재실행에서 각각 TASK_PARAMETER_1TASK_PARAMETER_2의 새 값입니다.
  • PIPELINE_PARAMETER_VALUES: 선택사항. 파이프라인 재실행에 사용할 업데이트된 파이프라인 실행 수준 매개변수 값입니다.
  • RERUN_PIPELINE_JOB_ID: 선택사항. 새 파이프라인 재실행 작업에 할당할 고유 ID입니다.