파이프라인 실행

Vertex AI Pipelines를 사용하면 서버리스 방식으로 Kubeflow Pipelines SDK 또는 TensorFlow Extended를 사용하여 빌드된 머신러닝(ML) 파이프라인을 실행할 수 있습니다. 이 문서에서는 ML 파이프라인을 실행하는 방법을 설명합니다.

템플릿 갤러리에서 사전 빌드된 템플릿을 사용하여 파이프라인 실행을 만들 수도 있습니다. 템플릿 갤러리에 관한 자세한 내용은 템플릿 갤러리의 사전 빌드된 템플릿 사용을 참조하세요.

시작하기 전에

Vertex AI Pipelines으로 파이프라인을 실행하기 전에 다음 안내에 따라 Google Cloud 프로젝트 및 개발 환경을 설정합니다.

  1. 파이프라인 구축

  2. Python용 Vertex AI SDK를 사용하여 파이프라인을 실행하려면 Vertex SDK를 설치합니다.

파이프라인 실행 만들기

다음 안내에 따라 Google Cloud 콘솔 또는 Python을 사용하여 ML 파이프라인을 실행하세요.

콘솔

다음 안내에 따라 Google Cloud 콘솔을 사용하여 ML 파이프라인을 실행하세요.

  1. Google Cloud 콘솔의 Vertex AI 섹션에서 파이프라인 페이지로 이동합니다.

    파이프라인으로 이동

  2. 리전 드롭다운 목록에서 파이프라인 실행을 만들 리전을 선택합니다.

  3. 실행 만들기를 클릭하여 파이프라인 실행 만들기 창을 엽니다.

  4. 실행 세부정보 섹션에서 다음을 수행합니다.

    1. 실행 소스를 클릭합니다. 사용할 수 있는 옵션은 다음과 같습니다.

      • 기존 파이프라인에서 선택: 기존 파이프라인 템플릿을 기반으로 파이프라인 실행을 만들려면 기존 파이프라인에서 선택을 클릭하고 다음 세부정보를 입력합니다.

        1. 파이프라인 또는 구성요소 정의 파일이 포함된 저장소를 선택합니다.

        2. 파이프라인 또는 구성요소버전을 선택합니다.

        3. 파이프라인 실행을 고유하게 식별하기 위해 실행 이름을 지정합니다.

      • 템플릿 갤러리 파이프라인 선택: 템플릿 갤러리로부터 Google에서 작성되는 파이프라인 템플릿을 기반으로 파이프라인 실행을 만들려면 템플릿 갤러리 파이프라인 선택을 클릭하고 다음 세부정보를 입력합니다.

        1. 템플릿 갤러리 파이프라인 목록에서 파이프라인 템플릿을 선택합니다.

        2. 선택사항: 파이프라인 실행을 고유하게 식별하는 기본 실행 이름을 수정합니다.

      • 파일 업로드: 컴파일된 파이프라인 정의를 업로드하려면 파일 업로드를 클릭하고 다음 세부정보를 입력합니다.

        1. 찾아보기를 클릭하여 파일 선택자를 엽니다. 실행하려는 컴파일된 파이프라인 YAML 파일로 이동하고, 파이프라인을 선택하고, 열기를 클릭합니다.

        2. 파이프라인 또는 구성요소 이름에 기본적으로 파이프라인 정의에 지정된 이름이 표시됩니다. 선택적으로 다른 파이프라인 이름을 지정합니다.

        3. 파이프라인 실행을 고유하게 식별하기 위해 실행 이름을 지정합니다.

      • Cloud Storage에서 가져오기: Cloud Storage에서 파이프라인 정의 파일을 가져오려면 Cloud Storage에서 가져오기를 클릭하고 다음 세부정보를 입력합니다.

        1. 찾아보기를 클릭하여 파이프라인 정의 객체가 포함된 Cloud Storage 버킷으로 이동하고, 파일을 선택한 후 선택을 클릭합니다.

        2. 파이프라인 또는 구성요소 이름을 지정합니다.

        3. 파이프라인 실행을 고유하게 식별하기 위해 실행 이름을 지정합니다.

    2. 선택사항: 반복되는 파이프라인 실행을 예약하려면 다음과 같이 실행 예약을 선택합니다.

      1. 반복을 선택합니다.

      2. 시작 시간에 예약이 활성화되는 시간을 지정합니다.

        • 예약을 만든 후 첫 번째 실행이 즉시 발생하도록 예약하려면 즉시를 선택합니다.

        • 특정 시간과 날짜에 첫 번째 실행을 예약하려면 사용을 선택합니다.

      3. 빈도 필드에서 예약 빈도를 지정하고 unix-cron 기반의 크론 예약 표현식을 사용해서 파이프라인 실행을 예약하고 실행합니다.

      4. 종료에서 예약이 종료되는 시간을 지정합니다.

        • 예약으로 파이프라인 실행이 무제한 생성되도록 하려면 안함을 선택합니다.

        • 특정 날짜와 시간에 일정이 종료되도록 하려면 사용을 선택하고 일정의 종료날짜 및 시간을 지정합니다.

      5. 선택사항: 파이프라인 실행에 커스텀 서비스 계정, 고객 관리 암호화 키(CMEK) 또는 피어링된 VPC 네트워크를 사용하도록 지정하려면 고급 옵션을 클릭한 후 다음 안내를 따릅니다.

        • 서비스 계정을 지정하려면 서비스 계정 드롭다운 목록에서 서비스 계정을 선택합니다.

          서비스 계정을 지정하지 않으면 Vertex AI Pipelines가 기본 Compute Engine 서비스 계정을 사용하여 파이프라인을 실행합니다.

          Vertex AI Pipelines에 사용할 서비스 계정 구성에 대해 자세히 알아보세요.

        • CMEK를 사용하려면 고객 관리 암호화 키 사용을 선택합니다. 고객 관리 키 선택 드롭다운 목록이 표시됩니다. 고객 관리 키 선택 드롭다운 목록에서 사용하려는 키를 선택합니다.

        • 이 파이프라인 실행에서 피어링된 VPC 네트워크를 사용하려면 피어링된 VPC 네트워크 상자에 VPC 네트워크 이름을 입력합니다.

    3. 계속을 클릭합니다.

  5. 런타임 구성 섹션에서 다음과 같이 파이프라인 실행을 구성합니다.

    1. Cloud Storage 위치에서 찾아보기를 클릭하여 파이프라인 출력 아티팩트를 저장할 Cloud Storage 버킷을 선택한 후 선택을 클릭합니다.

    2. 선택사항: 파이프라인 실행에 대한 실패 정책 및 캐시를 구성하려면 고급 옵션을 클릭한 후 다음 안내를 따릅니다.

      • 실패 정책에서 전체 파이프라인에 대한 실패 정책을 지정합니다. 파이프라인 오류 정책 을 자세히 알아봅니다.

        • 하나의 태스크가 실패한 후에도 태스크 예약을 계속하도록 파이프라인을 구성하려면 완료될 때까지 모든 단계 실행을 선택합니다. 이 옵션은 기본적으로 선택되어 있습니다.

        • 태스크 하나가 실패한 후 파이프라인이 실패하도록 구성하려면 한 단계가 실패하는 즉시 이 실행 실패를 선택합니다.

      • 캐싱 구성에서 전체 파이프라인에 대한 캐시 구성을 지정합니다.

        • 파이프라인에서 태스크에 대해 태스크 수준의 캐시 구성을 사용하려면 태스크 수준 캐시 구성을 재정의하지 않음을 선택합니다.

        • 파이프라인에서 모든 태스크에 대해 캐싱을 사용 설정하고 태스크 수준의 캐시 구성을 재정의하려면 모든 단계의 캐시에서 읽기 사용 설정(가장 빠름)을 선택합니다.

        • 파이프라인에서 모든 태스크에 대해 캐싱을 사용 중지하고 모든 태스크 수준의 캐시 구성을 재정의하려면 모든 단계의 캐시에서 읽기 사용 중지(가장 빠름)를 선택합니다.

    3. 선택사항: 파이프라인에 매개변수가 있으면 파이프라인 매개변수 아래에서 파이프라인 실행 매개변수를 지정합니다.

  6. 파이프라인 실행을 만들려면 제출을 클릭합니다.

Python용 Vertex AI SDK

다음 안내를 따라 Python용 Vertex AI SDK를 사용하여 ML 파이프라인을 실행하세요. 다음 코드 샘플을 실행하기 전에 인증을 설정해야 합니다.

인증 설정

인증을 설정하려면 서비스 계정 키를 만들고 서비스 계정 키 경로에 대한 환경 변수를 설정해야 합니다.

  1. 서비스 계정을 만듭니다.

    1. Google Cloud 콘솔에서 서비스 계정 만들기 페이지로 이동합니다.

      서비스 계정 만들기로 이동

    2. 서비스 계정 이름 필드에 이름을 입력합니다.
    3. 선택사항: 서비스 계정 설명 필드에 설명을 입력합니다.
    4. 만들기를 클릭합니다.
    5. 역할 선택 필드를 클릭합니다. 모든 역할에서 Vertex AI > Vertex AI 사용자를 선택합니다.
    6. 완료를 클릭하여 서비스 계정을 만듭니다.

      브라우저 창을 닫지 마세요. 다음 단계에서 사용합니다.

  2. 다음과 같이 인증을 위한 서비스 계정 키를 만듭니다.

    1. Google Cloud 콘솔에서 만든 서비스 계정의 이메일 주소를 클릭합니다.
    2. 를 클릭합니다.
    3. 키 추가를 클릭한 후 새 키 만들기를 클릭합니다.
    4. 만들기를 클릭합니다. JSON 키 파일이 컴퓨터에 다운로드됩니다.
    5. 닫기를 클릭합니다.
  3. 파이프라인 실행을 위해 사용하는 서비스 계정에 대한 액세스 권한을 새 서비스 계정에 부여합니다.
    1. 을 클릭하여 서비스 계정 목록으로 돌아갑니다.
    2. 파이프라인 실행을 위해 사용하는 서비스 계정의 이름을 클릭합니다. 서비스 계정 세부정보 페이지가 나타납니다.

      이 가이드의 안내에 따라 Vertex AI Pipelines에 맞게 프로젝트를 구성한 경우 세부 권한으로 서비스 계정 구성 섹션에서 만든 것과 동일한 서비스 계정입니다. 그렇지 않으면 파이프라인 실행을 위해 Vertex AI에서 Compute Engine 기본 서비스 계정이 사용됩니다. Compute Engine 기본 서비스 계정 이름은 PROJECT_NUMBER-compute@developer.gserviceaccount.com과 같이 지정됩니다.

    3. 권한 탭을 클릭합니다.
    4. 액세스 권한 부여를 클릭합니다. 주 구성원 추가 패널이 표시됩니다.
    5. 새 주 구성원 상자에 이전 단계에서 만든 서비스 계정의 이메일 주소를 입력합니다.
    6. 역할 드롭다운 목록에서 서비스 계정 > 서비스 계정 사용자를 선택합니다.
    7. 저장을 클릭합니다.
  4. 환경 변수 GOOGLE_APPLICATION_CREDENTIALS를 서비스 계정 키가 포함된 JSON 파일의 경로로 설정합니다. 이 변수는 현재 셸 세션에만 적용되므로 새 세션을 연 경우 변수를 다시 설정합니다.

    예: Linux 또는 macOS

    [PATH]를 서비스 계정 키가 포함된 JSON 파일의 경로로 바꿉니다.

    export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

    예를 들면 다음과 같습니다.

    export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

    예: Windows

    [PATH]를 서비스 계정 키가 포함된 JSON 파일의 경로로 바꾸고, [FILE_NAME]을 파일 이름으로 바꿉니다.

    PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

    예를 들면 다음과 같습니다.

    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"

    명령어 프롬프트:

    set GOOGLE_APPLICATION_CREDENTIALS=[PATH]

파이프라인 실행

Vertex AI PipelineJob을 실행하려면 PipelineJob 객체를 만든 다음 submit 메서드를 호출해야 합니다.

KFP에서 지원되는 특수 입력 유형

파이프라인 실행을 만드는 동안 KFP SDK에서 지원하는 다음 자리표시자를 입력으로 전달할 수도 있습니다.

  • {{$.pipeline_job_name_placeholder}}

  • {{$.pipeline_job_resource_name_placeholder}}

  • {{$.pipeline_job_id_placeholder}}

  • {{$.pipeline_task_name_placeholder}}

  • {{$.pipeline_task_id_placeholder}}

  • {{$.pipeline_job_create_time_utc_placeholder}}

  • {{$.pipeline_root_placeholder}}

자세한 내용은 Kubeflow Pipelines v2 문서특수 입력 유형을 참조하세요.

from google.cloud import aiplatform

job = aiplatform.PipelineJob(display_name = DISPLAY_NAME,
                             template_path = COMPILED_PIPELINE_PATH,
                             job_id = JOB_ID,
                             pipeline_root = PIPELINE_ROOT_PATH,
                             parameter_values = PIPELINE_PARAMETERS,
                             enable_caching = ENABLE_CACHING,
                             encryption_spec_key_name = CMEK,
                             labels = LABELS,
                             credentials = CREDENTIALS,
                             project = PROJECT_ID,
                             location = LOCATION,
                             failure_policy = FAILURE_POLICY)

job.submit(service_account=SERVICE_ACCOUNT,
           network=NETWORK)

다음을 바꿉니다.

  • DISPLAY_NAME: 파이프라인 이름으로. Google Cloud 콘솔에 표시됩니다.
  • COMPILED_PIPELINE_PATH: 컴파일된 파이프라인 YAML 파일의 경로입니다. 로컬 경로 또는 Cloud Storage URI일 수 있습니다.

    (선택사항) 컴파일된 파이프라인의 특정 버전을 지정하려면 다음 형식 중 하나의 형식으로 버전 태그를 포함합니다.

    • COMPILED_PIPELINE_PATH:TAG. 여기서 TAG는 버전 태그입니다.

    • COMPILED_PIPELINE_PATH@SHA256_TAG: 여기서 SHA256_TAG는 파이프라인 버전의 sha256 해시 값입니다.

  • JOB_ID: (선택사항) 이 파이프라인 실행의 고유 식별자. 작업 ID를 지정하지 않으면 Vertex AI Pipelines가 파이프라인 이름과 파이프라인 실행이 시작되었을 때의 타임스탬프를 사용하여 작업 ID를 만듭니다.

  • PIPELINE_ROOT_PATH: (선택사항) 파이프라인 정의에 지정된 파이프라인 루트 경로를 재정의하려면 Cloud Storage 버킷 URI와 같이 파이프라인 작업이 액세스할 수 있는 경로를 지정하세요.

  • PIPELINE_PARAMETERS: (선택사항) 이 실행에 전달할 파이프라인 매개변수. 예를 들어 사전 키로 매개변수 이름을, 사전 값으로 매개변수 값을 가지는 dict()를 만듭니다.

  • ENABLE_CACHING: (선택사항) 이 파이프라인 실행에서 실행 캐싱을 사용할지 여부를 지정. 실행 캐싱은 현재 입력 집합에 대해 출력이 알려진 파이프라인 태스크를 건너뛰어 비용을 줄여줍니다. 사용 설정 캐싱 인수가 지정되지 않으면 실행 캐싱이 이 파이프라인 실행에서 사용됩니다. 실행 캐싱 자세히 알아보세요.

  • CMEK: (선택사항) 이 파이프라인 실행에 사용할 고객 관리 암호화 키의 이름

  • LABELS: (선택사항) 이 PipelineJob을 구성하기 위한 사용자 정의 라벨 리소스 라벨에 대한 자세한 내용은 Resource Manager 문서라벨 만들기 및 관리를 참조하세요.

    Vertex AI Pipelines는 다음 라벨을 파이프라인 실행에 자동으로 연결합니다.

    vertex-ai-pipelines-run-billing-id: pipeline_run_id

    여기서 pipeline_run_id는 파이프라인 실행의 고유 ID입니다.

    이 라벨은 결제 보고서에서 파이프라인 실행으로 생성된 Google Cloud 리소스 사용량과 연결됩니다.

  • CREDENTIALS: (선택사항) 이 PipelineJob을 만드는 데 사용할 커스텀 사용자 인증 정보. aiplatform.init에 설정된 사용자 인증 정보보다 우선합니다.

  • PROJECT_ID: (선택사항) 파이프라인을 실행하려는 Google Cloud 프로젝트입니다. 이 파라미터를 설정하지 않으면 aiplatform.init에 설정된 프로젝트가 사용됩니다.

  • LOCATION: (선택사항) 파이프라인을 실행하려는 리전입니다. Vertex AI Pipelines를 사용할 수 있는 리전에 대한 자세한 내용은 Vertex AI 위치 가이드를 참조하세요. 이 매개변수를 설정하지 않으면 aiplatform.init에 설정된 기본 위치가 사용됩니다.

  • FAILURE_POLICY: (선택사항)전체 파이프라인의 실패 정책을 지정합니다. 사용 가능한 구성은 다음과 같습니다.

    • 태스크 하나가 실패한 후 파이프라인이 실패하도록 구성하려면 fast를 입력합니다.

    • 태스크 하나가 실패한 후에도 태스크를 계속 예약하도록 파이프라인을 구성하려면 slow를 입력합니다.

    이 매개변수를 설정하지 않으면 실패 정책 구성이 기본적으로 slow로 설정됩니다. 파이프라인 오류 정책 을 자세히 알아봅니다.

  • SERVICE_ACCOUNT: (선택사항) 이 파이프라인 실행에 사용할 서비스 계정의 이름. 서비스 계정을 지정하지 않으면 Vertex AI Pipelines가 기본 Compute Engine 서비스 계정을 사용하여 파이프라인을 실행합니다.

  • NETWORK: (선택사항) 이 파이프라인 실행에 사용할 VPC 피어링된 네트워크의 이름