영구 리소스에서 실행되는 파이프라인 구성

Vertex AI 영구 리소스는 커스텀 학습 작업 및 파이프라인 실행을 실행하는 데 사용할 수 있는 장기 실행 클러스터입니다. 파이프라인 실행에 영구 리소스를 사용하면 컴퓨팅 리소스 가용성을 보장하고 파이프라인 작업 시작 시간을 줄일 수 있습니다. 영구 리소스는 커스텀 학습 작업에서 지원하는 모든 VM 및 GPU를 지원합니다. 영구 리소스에 대해 자세히 알아보기

이 페이지에서는 다음을 수행하는 방법을 보여줍니다.

시작하기 전에

영구 리소스로 파이프라인 실행을 만들려면 먼저 다음 기본 요건을 완료해야 합니다.

파이프라인 정의 및 컴파일

파이프라인을 정의한 다음 파이프라인 정의를 YAML 파일로 컴파일합니다. 파이프라인 정의 및 컴파일에 관한 자세한 내용은 파이프라인 빌드를 참고하세요.

필요한 IAM 역할

영구 리소스를 만드는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Vertex AI 관리자(roles/aiplatform.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 영구 리소스를 만드는 데 필요한 aiplatform.persistentResources.create 권한이 포함되어 있습니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

영구 리소스 만들기

다음 샘플을 사용하여 파이프라인 실행과 연결할 수 있는 영구 리소스를 만듭니다. 영구 리소스 만들기에 관한 자세한 내용은 영구 리소스 만들기를 참고하세요.

gcloud

파이프라인 실행과 연결할 수 있는 영구 리소스를 만들려면 --enable-custom-service-account 플래그와 함께 gcloud ai persistent-resources create 명령어를 사용합니다.

영구 리소스에 하나 이상의 리소스 풀이 포함될 수 있습니다. 영구 리소스에 여러 리소스 풀을 만들려면 여러 --resource-pool-spec 플래그를 지정합니다.

모든 리소스 풀 구성을 명령줄의 일부로 지정하거나 --config 플래그를 사용해서 구성이 포함된 YAML 파일에 대한 경로를 지정합니다.

아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 영구 리소스를 만들려는 Google Cloud 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 영구 리소스를 만들려는 리전입니다. 지원되는 리전 목록은 기능 가용성을 참조하세요.
  • PERSISTENT_RESOURCE_ID: 영구 리소스의 ID입니다.
  • DISPLAY_NAME: 선택사항. 영구 리소스의 표시 이름입니다.
  • MACHINE_TYPE: 사용할 가상 머신 (VM) 유형입니다. 지원되는 VM 목록은 머신 유형을 참고하세요. 이 필드는 ResourcePool API 메시지의 machineSpec.machineType 필드에 해당합니다.
  • REPLICA_COUNT: 선택사항. 자동 확장을 사용하지 않으려는 경우 리소스 풀에 생성할 복제본 수입니다. 이 필드는 ResourcePool API 메시지의 replicaCount 필드에 해당합니다. MIN_REPLICA_COUNTMAX_REPLICA_COUNT 필드를 지정하지 않으면 복제본 수를 지정해야 합니다.
  • MIN_REPLICA_COUNT: 선택사항. 리소스 풀에 자동 확장을 사용하는 경우 최소 복제본 수입니다. 자동 확장을 사용하려면 MIN_REPLICA_COUNTMAX_REPLICA_COUNT를 모두 지정해야 합니다.
  • MAX_REPLICA_COUNT: 선택사항. 리소스 풀에 자동 확장을 사용하는 경우 최대 복제본 수입니다. 자동 확장을 사용하려면 MIN_REPLICA_COUNTMAX_REPLICA_COUNT를 모두 지정해야 합니다.
  • CONFIG: ResourcePool 사양 목록이 포함된 영구 리소스 YAML 구성 파일의 경로입니다. 옵션이 구성 파일 및 명령줄 인수 모두에 지정된 경우 명령줄 인수가 구성 파일보다 우선 적용됩니다. 밑줄이 있는 키는 유효하지 않습니다.

    YAML 구성 파일 예시:

    resourcePoolSpecs:
      machineSpec:
        machineType: n1-standard-4
      replicaCount: 1
        

다음 명령어를 실행합니다.

Linux, macOS 또는 Cloud Shell

gcloud ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --display-name=DISPLAY_NAME \
    --project=PROJECT_ID \
    --region=LOCATION \
    --resource-pool-spec="replica-count=REPLICA_COUNT,machine-type=MACHINE_TYPE,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT" \
    --enable-custom-service-account

Windows(PowerShell)

gcloud ai persistent-resources create `
    --persistent-resource-id=PERSISTENT_RESOURCE_ID `
    --display-name=DISPLAY_NAME `
    --project=PROJECT_ID `
    --region=LOCATION `
    --resource-pool-spec="replica-count=REPLICA_COUNT,machine-type=MACHINE_TYPE,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT" `
    --enable-custom-service-account

Windows(cmd.exe)

gcloud ai persistent-resources create ^
    --persistent-resource-id=PERSISTENT_RESOURCE_ID ^
    --display-name=DISPLAY_NAME ^
    --project=PROJECT_ID ^
    --region=LOCATION ^
    --resource-pool-spec="replica-count=REPLICA_COUNT,machine-type=MACHINE_TYPE,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT" ^
    --enable-custom-service-account

다음과 비슷한 응답이 표시됩니다.

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
Operation to create PersistentResource [projects/PROJECT_NUMBER/locations/us-central1/persistentResources/mypersistentresource/operations/OPERATION_ID] is submitted successfully.

You can view the status of your PersistentResource create operation with the command

  $ gcloud ai operations describe projects/sample-project/locations/us-central1/operations/OPERATION_ID

gcloud 명령어 예시:

gcloud ai persistent-resources create \
    --persistent-resource-id=my-persistent-resource \
    --region=us-central1 \
    --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"
    --enable-custom-service-account

고급 gcloud 구성

앞의 예시에서 사용할 수 없는 구성 옵션을 지정하려면 --config 플래그를 사용하여 persistentResources 필드를 포함하는 로컬 환경의 config.yaml 파일에 경로를 지정합니다. 예를 들면 다음과 같습니다.

gcloud ai persistent-resources create \
    --persistent-resource-id=PERSISTENT_RESOURCE_ID \
    --project=PROJECT_ID \
    --region=LOCATION \
    --config=CONFIG
    --enable-custom-service-account

Python

이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 Vertex AI Python API 참고 문서를 참조하세요.

Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

파이프라인 실행과 함께 사용할 수 있는 영구 리소스를 만들려면 영구 리소스를 만들 때 ResourceRuntimeSpec 객체에서 enable_custom_service_account 매개변수를 True로 설정합니다.

my_example_resource = persistent_resource.PersistentResource.create(
    persistent_resource_id=PERSISTENT_RESOURCE_ID,
    display_name=DISPLAY_NAME,
    resource_pools=[
        resource_pool.ResourcePool(
            machine_spec=machine_spec.MachineSpec(
                machine_type=MACHINE_TYPE,
            ),
            replica_count=REPLICA_COUNT,
        )
    ],
    resource_runtime_spec=resource_runtime_spec.ResourceRuntimeSpec(
        enable_custom_service_account=True,
    ),
)

다음을 바꿉니다.

  • PERSISTENT_RESOURCE_ID: 영구 리소스의 ID입니다.
  • DISPLAY_NAME: 선택사항. 영구 리소스의 표시 이름입니다.
  • MACHINE_TYPE: 사용할 가상 머신 (VM) 유형입니다. 지원되는 VM 목록은 머신 유형을 참고하세요. 이 필드는 ResourcePool API 메시지의 machineSpec.machineType 필드에 해당합니다.
  • REPLICA_COUNT: 이 리소스 풀을 만들 때 만들 복제본 수입니다.

REST

파이프라인 실행과 연결할 수 있는 PersistentResource 리소스를 만들려면 요청 본문에서 enable_custom_service_account 매개변수를 true로 설정하고 persistentResources/create 메서드를 사용하여 POST 요청을 전송합니다.

영구 리소스에 하나 이상의 리소스 풀이 포함될 수 있습니다. 고정된 수의 복제본 또는 자동 확장을 사용하도록 각 리소스 풀을 구성할 수 있습니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 영구 리소스를 만들려는 Google Cloud 프로젝트의 프로젝트 ID입니다.
  • LOCATION: 영구 리소스를 만들려는 리전입니다. 지원되는 리전 목록은 기능 가용성을 참조하세요.
  • PERSISTENT_RESOURCE_ID: 영구 리소스의 ID입니다.
  • DISPLAY_NAME: 선택사항. 영구 리소스의 표시 이름입니다.
  • MACHINE_TYPE: 사용할 가상 머신 (VM) 유형입니다. 지원되는 VM 목록은 머신 유형을 참고하세요. 이 필드는 ResourcePool API 메시지의 machineSpec.machineType 필드에 해당합니다.
  • REPLICA_COUNT: 선택사항. 자동 확장을 사용하지 않으려는 경우 리소스 풀에 생성할 복제본 수입니다. 이 필드는 ResourcePool API 메시지의 replicaCount 필드에 해당합니다. MIN_REPLICA_COUNTMAX_REPLICA_COUNT 필드를 지정하지 않으면 복제본 수를 지정해야 합니다.
  • MIN_REPLICA_COUNT: 선택사항. 리소스 풀에 자동 확장을 사용하는 경우 최소 복제본 수입니다. 자동 확장을 사용하려면 MIN_REPLICA_COUNTMAX_REPLICA_COUNT를 모두 지정해야 합니다.
  • MAX_REPLICA_COUNT: 선택사항. 리소스 풀에 자동 확장을 사용하는 경우 최대 복제본 수입니다. 자동 확장을 사용하려면 MIN_REPLICA_COUNTMAX_REPLICA_COUNT를 모두 지정해야 합니다.

HTTP 메서드 및 URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/persistentResources?persistent_resource_id=PERSISTENT_RESOURCE_ID

JSON 요청 본문:

{
  "display_name": "DISPLAY_NAME",
  "resource_pools": [
    {
      "machine_spec": {
        "machine_type": "MACHINE_TYPE"
      },
      "replica_count": REPLICA_COUNT,
      "autoscaling_spec": {
        "min_replica_count": MIN_REPLICA_COUNT,
        "max_replica_count": MAX_REPLICA_COUNT
      }
    }
  ],
  "resource_runtime_spec": {
    "enable_custom_service_account: true
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/persistentResources/mypersistentresource/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreatePersistentResourceOperationMetadata",
    "genericMetadata": {
      "createTime": "2023-02-08T21:17:15.009668Z",
      "updateTime": "2023-02-08T21:17:15.009668Z"
    }
  }
}

영구 리소스를 사용하여 파이프라인 실행 만들기

다음 코드 샘플을 사용하여 영구 리소스를 사용하는 파이프라인 실행을 만듭니다.

  job = aiplatform.PipelineJob(display_name = 'DISPLAY_NAME',
  template_path = 'COMPILED_PIPELINE_PATH',
  pipeline_root = 'PIPELINE_ROOT',
  project = 'PROJECT_ID',
  location = 'LOCATION',
  default_runtime = {
    "persistentResourceRuntimeDetail": {
    "persistentResourceName": "PERSISTENT_RESOURCE_ID",
    "taskResourceUnavailableWaitTimeMs": WAIT_TIME,
    "taskResourceUnavailableTimeoutBehavior": TIMEOUT_BEHAVIOR,
    }
  }

다음을 바꿉니다.

  • DISPLAY_NAME: 파이프라인의 이름입니다. 이는 Google Cloud 콘솔에 표시됩니다.

  • COMPILED_PIPELINE_PATH: 컴파일된 파이프라인 YAML 파일의 경로입니다. 로컬 경로 또는 Cloud Storage URI일 수 있습니다.

  • PIPELINE_ROOT: 파이프라인 실행의 아티팩트를 저장할 Cloud Storage URI를 지정합니다.

  • PROJECT_ID: 이 파이프라인이 실행되는 Google Cloud 프로젝트입니다.

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

  • PERSISTENT_RESOURCE_ID: 만든 영구 리소스의 ID입니다.

  • WAIT_TIME: 영구 리소스를 사용할 수 없는 경우 대기할 시간(밀리초)입니다.

  • TIMEOUT_BEHAVIOR: WAIT_TIME가 초과된 경우 파이프라인 작업의 대체 동작을 지정합니다. 가능한 값은 다음과 같습니다.

    • FAIL 대기 시간이 초과되면 파이프라인 태스크가 실패합니다.

    • FALL_BACK_TO_ON_DEMAND 파이프라인 작업은 영구 리소스를 사용하지 않고 기본 Vertex AI 학습 리소스를 사용하여 계속 실행됩니다.

다음 단계