Membuat resource yang persisten

Saat Anda membuat resource persisten, layanan pelatihan terlebih dahulu akan menemukan resource dari kumpulan resource Compute Engine berdasarkan spesifikasi yang Anda berikan, lalu menyediakan cluster yang berjalan lama untuk Anda. Halaman ini menunjukkan Anda cara untuk membuat resource persisten guna menjalankan tugas pelatihan tanpa server menggunakan Google Cloud konsol, Google Cloud CLI, dan REST API.

Peran yang diperlukan

Guna mendapatkan izin yang Anda perlukan untuk membuat resource persisten, minta administrator Anda untuk memberi Anda peran IAM Vertex AI Administrator (roles/aiplatform.admin) pada 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

Pilih salah satu tab berikut ini untuk mengetahui petunjuk cara membuat resource persisten.

Konsol

Untuk membuat resource persisten menggunakan Google Cloud konsol, lakukan hal berikut:

  1. Di Google Cloud konsol, buka halaman Persistent resources.

    Buka Persistent resources

  2. Klik Create cluster.

  3. Konfigurasikan cluster sebagai berikut:

    • Name: Masukkan nama untuk cluster.
    • Description: (Opsional) Masukkan deskripsi cluster.
    • Region: Pilih region tempat Anda ingin membuat cluster.
  4. Klik Continue.

  5. Konfigurasikan resource komputasi untuk cluster sebagai berikut:

    1. Klik Worker pool 1.
    2. Pilih tab kelompok mesin yang ingin Anda gunakan dan konfigurasikan kumpulan pekerja sebagai berikut:

      Tujuan umum

      VM tujuan umum menawarkan rasio harga-performa terbaik untuk berbagai workload.

      • Series: Pilih seri mesin.
      • Machine type: Pilih jenis mesin.
      • Disk type: Pilih Standard disk atau SSD disk.
      • Disk size: Masukkan ukuran disk yang Anda inginkan.
      • Minimum replica count: Masukkan jumlah minimum replika yang akan ada di kumpulan pekerja.
      • Maximum replica count: (Opsional) Masukkan jumlah maksimum replika yang diizinkan di kumpulan pekerja. Jika ditentukan, kumpulan pekerja akan otomatis menskalakan jumlah replika hingga jumlah replika maksimum yang dikonfigurasi sesuai kebutuhan.

      Dioptimalkan untuk komputasi

      VM yang dioptimalkan untuk komputasi menawarkan performa tertinggi per core dan dioptimalkan untuk workload yang membutuhkan komputasi intensif.

      • Series: Pilih seri mesin.
      • Machine type: Pilih jenis mesin.
      • Disk type: Pilih Standard disk atau SSD disk.
      • Disk size: Masukkan ukuran disk yang Anda inginkan.
      • Minimum replica count: Masukkan jumlah minimum replika yang akan ada di kumpulan pekerja.
      • Maximum replica count: (Opsional) Masukkan jumlah maksimum replika yang diizinkan di kumpulan pekerja. Jika ditentukan, kumpulan pekerja akan otomatis menskalakan jumlah replika hingga jumlah replika maksimum yang dikonfigurasi sesuai kebutuhan.

      Dioptimalkan untuk memori

      VM yang dioptimalkan untuk memori ideal untuk workload yang membutuhkan memori intensif, menawarkan lebih banyak memori per core daripada kelompok mesin lainnya, dengan memori hingga 12 TB.

      • Series: Pilih seri mesin.
      • Machine type: Pilih jenis mesin.
      • Disk type: Pilih Standard disk atau SSD disk.
      • Disk size: Masukkan ukuran disk yang Anda inginkan.
      • Minimum replica count: Masukkan jumlah minimum replika yang akan ada di kumpulan pekerja.
      • Maximum replica count: (Opsional) Masukkan jumlah maksimum replika yang diizinkan di kumpulan pekerja. Jika ditentukan, kumpulan pekerja akan otomatis menskalakan jumlah replika hingga jumlah replika maksimum yang dikonfigurasi sesuai kebutuhan.

      GPU

      VM yang dioptimalkan untuk akselerator ini ideal untuk workload komputasi Compute Unified Device Architecture (CUDA) yang diparalelkan secara masif, seperti machine learning (ML) dan komputasi berperforma tinggi (HPC). Kelompok ini adalah opsi terbaik untuk workload yang memerlukan GPU.

      • GPU type: Pilih jenis GPU yang ingin Anda gunakan.
      • Number of GPUs: Masukkan jumlah GPU yang ingin Anda gunakan.
      • Series: Pilih seri mesin.
      • Machine type: Pilih jenis mesin.
      • Disk type: Pilih Standard disk atau SSD disk.
      • Disk size: Masukkan ukuran disk yang Anda inginkan.
      • Minimum replica count: Masukkan jumlah minimum replika yang akan ada di kumpulan pekerja.
      • Maximum replica count: (Opsional) Masukkan jumlah maksimum replika yang diizinkan di kumpulan pekerja. Jika ditentukan, kumpulan pekerja akan otomatis menskalakan jumlah replika hingga jumlah replika maksimum yang dikonfigurasi sesuai kebutuhan.
    3. Klik Done.

    4. (Opsional) Untuk menambahkan kumpulan pekerja tambahan, klik Add worker pool.

  6. Klik Create.

gcloud

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

Setiap kumpulan resource dapat mengaktifkan atau menonaktifkan penskalaan otomatis. Untuk mengaktifkan penskalaan otomatis, tentukan min_replica_count dan max_replica_count.

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 Google Cloud project 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 VM yang akan digunakan. Untuk daftar VM yang didukung, lihat Jenis mesin. Kolom ini sesuai dengan kolom machineSpec.machineType di dalam pesan API ResourcePool.
  • ACCELERATOR_TYPE: (Opsional) Jenis GPU yang akan dipasang ke setiap VM di dalam kumpulan resource. Untuk daftar GPU yang didukung, lihat GPU. Kolom ini sesuai dengan kolom machineSpec.acceleratorType di alam pesan API ResourcePool.
  • ACCELERATOR_COUNT: (Opsional) Jumlah GPU yang akan ditambahkan ke setiap VM di dalam kumpulan resource. Nilai default-nya adalah 1. Kolom ini berkaitan dengan kolom machineSpec.acceleratorCount di dalam pesan API ResourcePool.
  • REPLICA_COUNT: Jumlah replika yang akan dibuat saat membuat kumpulan resource ini. Kolom ini sesuai dengan kolom replicaCount di dalam pesan API ResourcePool. Kolom ini wajib diisi jika Anda tidak menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT: (Opsional) Jumlah minimum replika yang dapat diperkecil skalanya secara otomatis untuk kumpulan resource ini. MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT diperlukan untuk mengaktifkan penskalaan otomatis pada kumpulan resource ini.
  • MAX_REPLICA_COUNT: (Opsional) Jumlah maksimum replika yang dapat diperkecil skalanya secara otomatis untuk kumpulan resource ini. MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT diperlukan untuk mengaktifkan penskalaan otomatis pada kumpulan resource ini.
  • BOOT_DISK_TYPE: (Opsional) Jenis disk yang akan digunakan sebagai boot disk dari setiap VM di dalam kumpulan resource. Kolom ini sesuai dengan kolom diskSpec.bootDiskType di dalam pesan API ResourcePool. Nilai yang dapat diterima mencakup hal berikut ini:
    • pd-standard (default)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (Opsional) Ukuran disk di dalam GiB untuk boot disk setiap VM di dalam kumpulan resource. Nilai yang dapat diterima adalah 100 (default) hingga 64000. Kolom ini sesuai dengan kolom diskSpec.bootDiskSizeGb di dalam pesan API ResourcePool.
  • CONFIG: Jalur ke file konfigurasi YAML resource persisten. File ini harus berisi daftar ResourcePool. Jika sebuah opsi telah ditentukan di dalam file konfigurasi dan argumen command line, argumen command line akan menggantikan file konfigurasi tersebut. Perhatikan bahwa kunci dengan garis bawah 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,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

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,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

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,min-replica-count=MIN_REPLICA_COUNT,max-replica-count=MAX_REPLICA_COUNT,machine-type=MACHINE_TYPE,accelerator-type=ACCELERATOR_TYPE,accelerator-count=ACCELERATOR_COUNT,disk-type=BOOT_DISK_TYPE,disk-size=BOOT_DISK_SIZE_GB"

Anda akan melihat respons seperti berikut:

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

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

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

Contoh perintah gcloud:

gcloud ai persistent-resources create \
    --persistent-resource-id=my-persistent-resource \
    --region=us-central1 \
    --resource-pool-spec="min-replica-count=4,max-replica-count=12,machine-type=n1-highmem-2,accelerator-type=NVIDIA_TESLA_T4,accelerator-count=1,disk-type=pd-standard,disk-size=200" \
    --resource-pool-spec="replica-count=4,machine-type=n1-standard-4"

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

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, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

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

from google.cloud.aiplatform.preview import persistent_resource
from google.cloud.aiplatform_v1beta1.types.persistent_resource import ResourcePool
from google.cloud.aiplatform_v1beta1.types.machine_resources import MachineSpec

# Create the persistent resource. This method returns the created resource.

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

# Setting `sync` to `False` makes the method is non-blocking and the resource
# object returned syncs when the method completes.

SYNC=False

if not SYNC:
    my_example_resource.wait()

Ganti kode berikut:

  • PERSISTENT_RESOURCE_ID: ID unik yang ditentukan pengguna untuk resource persisten. ID harus diawali dengan huruf, diakhiri dengan huruf atau angka, dan hanya berisi huruf kecil, angka, dan tanda hubung (-).
  • DISPLAY_NAME: Opsional. Nama tampilan resource persisten.
  • MACHINE_TYPE: Jenis mesin virtual (VM) yang akan digunakan. Untuk daftar VM yang didukung, lihat Jenis mesin. Kolom ini sesuai dengan kolom machineSpec.machineType di dalam
  • REPLICA_COUNT: Jumlah replika yang akan dibuat saat membuat kumpulan resource ini.

REST

Resource persisten dapat memiliki satu atau beberapa kumpulan resource (machine_spec), dan setiap kumpulan resource dapat memiliki penskalaan otomatis yang diaktifkan, atau dinonaktifkan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID dari Google Cloud project 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 VM yang akan digunakan. Untuk daftar VM yang didukung, lihat Jenis mesin. Kolom ini sesuai dengan kolom machineSpec.machineType di dalam pesan API ResourcePool.
  • ACCELERATOR_TYPE: (Opsional) Jenis GPU yang akan dipasang ke setiap VM di dalam kumpulan resource. Untuk daftar GPU yang didukung, lihat GPU. Kolom ini sesuai dengan kolom machineSpec.acceleratorType di alam pesan API ResourcePool.
  • ACCELERATOR_COUNT: (Opsional) Jumlah GPU yang akan ditambahkan ke setiap VM di dalam kumpulan resource. Nilai default-nya adalah 1. Kolom ini berkaitan dengan kolom machineSpec.acceleratorCount di dalam pesan API ResourcePool.
  • REPLICA_COUNT: Jumlah replika yang akan dibuat saat membuat kumpulan resource ini. Kolom ini sesuai dengan kolom replicaCount di dalam pesan API ResourcePool. Kolom ini wajib diisi jika Anda tidak menentukan MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT.
  • MIN_REPLICA_COUNT: (Opsional) Jumlah minimum replika yang dapat diperkecil skalanya secara otomatis untuk kumpulan resource ini. MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT diperlukan untuk mengaktifkan penskalaan otomatis pada kumpulan resource ini.
  • MAX_REPLICA_COUNT: (Opsional) Jumlah maksimum replika yang dapat diperkecil skalanya secara otomatis untuk kumpulan resource ini. MIN_REPLICA_COUNT dan MAX_REPLICA_COUNT diperlukan untuk mengaktifkan penskalaan otomatis pada kumpulan resource ini.
  • BOOT_DISK_TYPE: (Opsional) Jenis disk yang akan digunakan sebagai boot disk dari setiap VM di dalam kumpulan resource. Kolom ini sesuai dengan kolom diskSpec.bootDiskType di dalam pesan API ResourcePool. Nilai yang dapat diterima mencakup hal berikut ini:
    • pd-standard (default)
    • pd-ssd
  • BOOT_DISK_SIZE_GB: (Opsional) Ukuran disk di dalam GiB untuk boot disk setiap VM di dalam kumpulan resource. Nilai yang dapat diterima adalah 100 (default) hingga 64000. Kolom ini sesuai dengan kolom diskSpec.bootDiskSizeGb di dalam pesan API ResourcePool.

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",
        "accelerator_type": "ACCELERATOR_TYPE",
        "accelerator_count": ACCELERATOR_COUNT
      },
      "replica_count": REPLICA_COUNT,
      "autoscaling_spec": {
        "min_replica_count": MIN_REPLICA_COUNT,
        "max_replica_count": MAX_REPLICA_COUNT
      },
      "disk_spec": {
        "boot_disk_type": "BOOT_DISK_TYPE",
        "boot_disk_size_gb": BOOT_DISK_SIZE_GB
      }
    }
  ]
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang sama seperti respons berikut ini:

{
  "name": "projects/123456789012/locations/us-central1/persistentResources/mypersistentresource/operations/1234567890123456789",
  "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"
    }
  }
}

Kehabisan sumber daya

Kemungkinan ada kehabisan stok untuk resource yang langka seperti GPU A100, yang dapat menyebabkan kegagalan pembuatan resource persisten jika tidak ada resource yang tersedia di dalam region yang telah Anda tentukan. Dalam hal ini, Anda dapat mencoba untuk mengurangi jumlah replika, berganti ke jenis akselerator yang berbeda, mencoba lagi di luar jam sibuk, atau mencoba region lain.

Tanggung Jawab Bersama

Mengamankan workload Anda di Vertex AI merupakan tanggung jawab bersama. Meskipun Vertex AI secara rutin mengupgrade konfigurasi infrastruktur untuk mengatasi kerentanan keamanan, Vertex AI tidak otomatis mengupgrade cluster Ray on Vertex AI dan resource persisten yang ada untuk menghindari penghentian workload yang sedang berjalan. Oleh karena itu, Anda bertanggung jawab atas tugas-tugas seperti berikut:

  1. Menghapus dan membuat ulang cluster Ray on Vertex AI dan resource persisten secara berkala untuk menggunakan versi infrastruktur terbaru. Vertex AI merekomendasikan untuk membuat ulang cluster dan resource persisten Anda setidaknya sekali setiap 30 hari.
  2. Mengonfigurasi image kustom yang Anda gunakan dengan benar.

Untuk informasi selengkapnya, lihat Tanggung jawab bersama.

Langkah berikutnya