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_COUNT 및 MAX_REPLICA_COUNT 필드를 지정하지 않으면 복제본 수를 지정해야 합니다. - MIN_REPLICA_COUNT: 선택사항. 리소스 풀에 자동 확장을 사용하는 경우 최소 복제본 수입니다. 자동 확장을 사용하려면 MIN_REPLICA_COUNT 및 MAX_REPLICA_COUNT를 모두 지정해야 합니다.
- MAX_REPLICA_COUNT: 선택사항. 리소스 풀에 자동 확장을 사용하는 경우 최대 복제본 수입니다. 자동 확장을 사용하려면 MIN_REPLICA_COUNT 및 MAX_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_COUNT 및 MAX_REPLICA_COUNT 필드를 지정하지 않으면 복제본 수를 지정해야 합니다. - MIN_REPLICA_COUNT: 선택사항. 리소스 풀에 자동 확장을 사용하는 경우 최소 복제본 수입니다. 자동 확장을 사용하려면 MIN_REPLICA_COUNT 및 MAX_REPLICA_COUNT를 모두 지정해야 합니다.
- MAX_REPLICA_COUNT: 선택사항. 리소스 풀에 자동 확장을 사용하는 경우 최대 복제본 수입니다. 자동 확장을 사용하려면 MIN_REPLICA_COUNT 및 MAX_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 학습 리소스를 사용하여 계속 실행됩니다.
다음 단계
- 파이프라인 실행 방법 알아보기