Mengonfigurasi pipeline yang berjalan di resource persisten

Resource persisten Vertex AI adalah cluster yang berjalan lama, yang dapat Anda gunakan untuk menjalankan tugas pelatihan kustom dan menjalankan pipeline. Dengan menggunakan resource persisten untuk menjalankan pipeline, Anda dapat membantu memastikan ketersediaan resource komputasi dan mengurangi waktu startup tugas pipeline. Resource persisten mendukung semua VM dan GPU yang didukung oleh tugas pelatihan kustom. Pelajari resource persisten lebih lanjut.

Halaman ini menunjukkan cara melakukan hal berikut:

Sebelum memulai

Sebelum dapat membuat pipeline yang berjalan dengan resource persisten, Anda harus menyelesaikan prasyarat berikut terlebih dahulu.

Menentukan dan mengompilasi pipeline

Tentukan pipeline Anda, lalu kompilasi definisi pipeline menjadi file YAML. Untuk informasi selengkapnya tentang cara menentukan dan mengompilasi pipeline, lihat Mem-build pipeline.

Peran IAM yang diperlukan

Untuk mendapatkan izin yang diperlukan guna membuat resource persisten, minta administrator untuk memberi Anda peran IAM Vertex AI Administrator (roles/aiplatform.admin) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin aiplatform.persistentResources.create, yang diperlukan untuk membuat resource persisten.

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Membuat resource yang persisten

Gunakan contoh berikut untuk membuat resource persisten yang dapat Anda kaitkan dengan proses pipeline. Untuk informasi selengkapnya tentang cara membuat resource persisten, lihat Membuat resource persisten.

gcloud

Untuk membuat resource persisten yang dapat Anda kaitkan dengan operasi pipeline, gunakan perintah gcloud ai persistent-resources create bersama dengan flag --enable-custom-service-account.

Resource persisten dapat memiliki satu atau beberapa kumpulan resource. Untuk membuat beberapa kumpulan resource dalam resource persisten, tentukan beberapa flag --resource-pool-spec.

Anda dapat menetapkan semua konfigurasi kumpulan resource sebagai bagian dari command line, atau menggunakan flag --config untuk menentukan jalur ke file YAML yang berisi konfigurasi tersebut.

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • PROJECT_ID: Project ID dari project Google Cloud tempat Anda ingin membuat resource persisten.
  • LOCATION: Region tempat Anda ingin membuat resource persisten. Untuk mengetahui daftar wilayah yang didukung, lihat Ketersediaan fitur.
  • PERSISTENT_RESOURCE_ID: ID resource persisten.
  • DISPLAY_NAME: Opsional. Nama tampilan resource persisten.
  • MACHINE_TYPE: Jenis virtual machine (VM) yang akan digunakan. Untuk daftar VM yang didukung, lihat Jenis mesin. Kolom ini sesuai dengan kolom machineSpec.machineType di dalam pesan API ResourcePool.
  • REPLICA_COUNT: Opsional. Jumlah replika yang akan dibuat untuk kumpulan resource, jika Anda tidak ingin menggunakan penskalaan otomatis. Kolom ini sesuai dengan kolom replicaCount di dalam pesan API ResourcePool. Anda harus menentukan jumlah replika jika tidak menentukan kolom MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT: Opsional. Jumlah minimum replika jika Anda menggunakan penskalaan otomatis untuk kumpulan resource. Anda harus menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT untuk menggunakan penskalaan otomatis.
  • MAX_REPLICA_COUNT: Opsional. Jumlah replika maksimum jika Anda menggunakan penskalaan otomatis untuk kumpulan resource. Anda harus menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT untuk menggunakan penskalaan otomatis.
  • CONFIG: Jalur ke file konfigurasi YAML resource persisten, yang berisi daftar spesifikasi ResourcePool. Jika opsi ditentukan dalam file konfigurasi dan argumen command line, argumen command line akan menggantikan file konfigurasi. Perhatikan bahwa kunci dengan garis bawah dianggap tidak valid.

    Contoh file konfigurasi YAML:

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

Jalankan perintah berikut:

Linux, macOS, atau 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

Anda akan melihat respons seperti berikut:

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

Contoh perintah 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

Konfigurasi gcloud lanjutan

Jika ingin menentukan opsi konfigurasi yang tidak tersedia di contoh sebelumnya, Anda dapat menggunakan flag --config untuk menentukan jalur ke file config.yaml di dalam lingkungan lokal Anda, yang berisi kolom dari persistentResources. Contoh:

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

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

Untuk membuat resource persisten yang dapat Anda gunakan dengan operasi pipeline, tetapkan parameter enable_custom_service_account ke True dalam objek ResourceRuntimeSpec saat membuat resource persisten.

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,
    ),
)

Ganti kode berikut:

  • PERSISTENT_RESOURCE_ID: ID resource persisten.
  • DISPLAY_NAME: Opsional. Nama tampilan resource persisten.
  • MACHINE_TYPE: Jenis virtual machine (VM) yang akan digunakan. Untuk daftar VM yang didukung, lihat Jenis mesin. Kolom ini sesuai dengan kolom machineSpec.machineType dalam pesan API ResourcePool.
  • REPLICA_COUNT: Jumlah replika yang akan dibuat saat membuat kumpulan resource ini.

REST

Untuk membuat resource PersistentResource yang dapat Anda kaitkan dengan proses pipeline, kirim permintaan POST menggunakan metode persistentResources/create dengan parameter enable_custom_service_account yang ditetapkan ke true dalam isi permintaan.

Resource persisten dapat memiliki satu atau beberapa kumpulan resource. Anda dapat mengonfigurasi setiap kumpulan resource untuk menggunakan jumlah replika tetap atau penskalaan otomatis.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID dari project Google Cloud tempat Anda ingin membuat resource persisten.
  • LOCATION: Region tempat Anda ingin membuat resource persisten. Untuk mengetahui daftar wilayah yang didukung, lihat Ketersediaan fitur.
  • PERSISTENT_RESOURCE_ID: ID resource persisten.
  • DISPLAY_NAME: Opsional. Nama tampilan resource persisten.
  • MACHINE_TYPE: Jenis virtual machine (VM) yang akan digunakan. Untuk daftar VM yang didukung, lihat Jenis mesin. Kolom ini sesuai dengan kolom machineSpec.machineType di dalam pesan API ResourcePool.
  • REPLICA_COUNT: Opsional. Jumlah replika yang akan dibuat untuk kumpulan resource, jika Anda tidak ingin menggunakan penskalaan otomatis. Kolom ini sesuai dengan kolom replicaCount di dalam pesan API ResourcePool. Anda harus menentukan jumlah replika jika tidak menentukan kolom MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT: Opsional. Jumlah minimum replika jika Anda menggunakan penskalaan otomatis untuk kumpulan resource. Anda harus menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT untuk menggunakan penskalaan otomatis.
  • MAX_REPLICA_COUNT: Opsional. Jumlah replika maksimum jika Anda menggunakan penskalaan otomatis untuk kumpulan resource. Anda harus menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT untuk menggunakan penskalaan otomatis.

Metode HTTP dan URL:

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

Meminta isi 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
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "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"
    }
  }
}

Membuat proses pipeline menggunakan resource persisten

Gunakan contoh kode berikut untuk membuat operasi pipeline yang menggunakan resource persisten:

  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,
    }
  }

Ganti kode berikut:

  • DISPLAY_NAME: Nama pipeline. Nama ini akan muncul di konsol Google Cloud.

  • COMPILED_PIPELINE_PATH: Jalur ke file YAML pipeline yang dikompilasi. Ini dapat berupa jalur lokal atau Cloud Storage URI.

  • PIPELINE_ROOT: Tentukan Cloud Storage URI untuk menyimpan artefak dari operasi pipeline Anda.

  • PROJECT_ID: Project Google Cloud tempat pipeline ini berjalan.

  • LOCATION: Region tempat proses pipeline dijalankan. Untuk mengetahui informasi selengkapnya tentang region tempat Vertex AI Pipelines tersedia, lihat panduan lokasi Vertex AI. Jika Anda tidak menetapkan parameter ini, Vertex AI Pipelines akan menggunakan lokasi default yang ditetapkan di aiplatform.init.

  • PERSISTENT_RESOURCE_ID: ID resource persisten yang Anda buat.

  • WAIT_TIME: Waktu dalam milidetik untuk menunggu jika resource persisten tidak tersedia.

  • TIMEOUT_BEHAVIOR: Menentukan perilaku penggantian tugas pipeline jika WAIT_TIME terlampaui. Nilai yang memungkinkan mencakup:

    • FAIL Tugas pipeline gagal setelah melebihi waktu tunggu.

    • FALL_BACK_TO_ON_DEMAND Tugas pipeline terus berjalan menggunakan resource pelatihan Vertex AI default, tanpa menggunakan resource persisten.

Langkah berikutnya