Menskalakan cluster Ray di Vertex AI

Cluster Ray di Vertex AI menawarkan dua opsi penskalaan: penskalaan otomatis dan penskalaan manual. Penskalaan otomatis memungkinkan cluster menyesuaikan jumlah node pekerja secara otomatis berdasarkan resource yang diperlukan tugas dan aktor Ray. Jika Anda menjalankan workload berat dan tidak yakin dengan resource yang diperlukan, sebaiknya gunakan penskalaan otomatis. Penskalakan manual memberi pengguna kontrol yang lebih terperinci atas node.

Penskalaan otomatis dapat mengurangi biaya workload, tetapi menambah overhead peluncuran node dan sulit dikonfigurasi. Jika Anda baru menggunakan Ray, mulailah dengan cluster non-penskalaan otomatis, dan gunakan fitur penskalaan manual.

Penskalaan otomatis

Aktifkan fitur penskalaan otomatis cluster Ray dengan menentukan jumlah replika minimum (min_replica_count) dan jumlah replika maksimum (max_replica_count) dari kumpulan pekerja.

Perhatikan hal berikut:

  • Konfigurasi spesifikasi penskalaan otomatis semua worker pool.
  • Kecepatan peningkatan dan penurunan skala kustom tidak didukung. Untuk nilai default, lihat Kecepatan peningkatan dan penurunan skala dalam dokumentasi Ray.

Menetapkan spesifikasi penskalaan otomatis kumpulan pekerja

Gunakan konsol Google Cloud atau Vertex AI SDK untuk Python guna mengaktifkan fitur penskalaan otomatis cluster Ray.

Ray on Vertex AI SDK

from google.cloud import aiplatform
import vertex_ray
from vertex_ray import AutoscalingSpec

autoscaling_spec = AutoscalingSpec(
 min_replica_count=1,
 max_replica_count=3,
)

head_node_type = Resources(
 machine_type="n1-standard-16",
 node_count=1,
)

worker_node_types = [Resources(
 machine_type="n1-standard-16",
 accelerator_type="NVIDIA_TESLA_T4",
 accelerator_count=1,
 autoscaling_spec=autoscaling_spec,
)]

# Create the Ray cluster on Vertex AI
CLUSTER_RESOURCE_NAME = vertex_ray.create_ray_cluster(
head_node_type=head_node_type,
worker_node_types=worker_node_types,
...
)

Konsol

Sesuai dengan rekomendasi praktik terbaik OSS Ray, jumlah CPU logis pada node head Ray ditetapkan ke 0 untuk menghindari menjalankan beban kerja apa pun pada node head.

  1. Di Google Cloud konsol, buka halaman Ray on Vertex AI.

    Buka halaman Ray on Vertex AI

  2. Klik Create cluster untuk membuka panel Create cluster.

  3. Untuk setiap langkah di panel Create cluster, tinjau atau ganti informasi cluster default. Klik Continue untuk menyelesaikan setiap langkah:

    1. Untuk Name and region, tentukan Name, lalu pilih lokasi untuk cluster Anda.
    2. Untuk Compute settings, tentukan konfigurasi cluster Ray di node head, termasuk jenis mesin, jenis dan jumlah akselerator, jenis dan ukuran disk, serta jumlah replika. Secara opsional, tambahkan URI image kustom untuk menentukan image container kustom guna menambahkan dependensi Python yang tidak disediakan oleh image container default. Lihat Gambar kustom.

      Di bagian Opsi lanjutan, Anda dapat:

      • Tentukan kunci enkripsi Anda sendiri.
      • Tentukan akun layanan khusus
      • Jika Anda tidak perlu memantau statistik resource workload selama pelatihan, nonaktifkan pengumpulan metrik.
    3. Untuk membuat cluster dengan kumpulan pekerja penskalaan otomatis, berikan nilai untuk jumlah replika maksimum kumpulan pekerja. Setelan komputasi untuk penskalaan otomatis

  4. Klik Buat.

Penskalaan manual

Saat beban kerja Anda meningkat atau menurun di cluster Ray di Vertex AI, skala jumlah replika secara manual agar sesuai dengan permintaan. Misalnya, jika Anda memiliki kapasitas berlebih, turunkan skala kumpulan pekerja untuk menghemat biaya.

Batasan Peering VPC

Saat menskalakan cluster, Anda hanya dapat mengubah jumlah replika di worker pool yang ada. Misalnya, Anda tidak dapat menambahkan atau menghapus kumpulan pekerja dari cluster atau mengubah jenis mesin kumpulan pekerja. Selain itu, jumlah replika untuk kumpulan pekerja Anda tidak boleh kurang dari satu.

Jika Anda menggunakan koneksi peering VPC untuk terhubung ke cluster, ada batasan pada jumlah maksimum node. Jumlah maksimum node bergantung pada jumlah node yang dimiliki cluster saat Anda membuat cluster. Untuk mengetahui informasi selengkapnya, lihat Penghitungan jumlah maksimum node. Jumlah maksimum ini tidak hanya mencakup worker pool, tetapi juga node head. Jika Anda menggunakan konfigurasi jaringan default, jumlah node tidak boleh melebihi batas atas seperti yang dijelaskan dalam dokumentasi membuat cluster.

Perhitungan jumlah node maksimum

Jika Anda menggunakan akses layanan pribadi (peering VPC) untuk terhubung ke node, gunakan formula berikut untuk memastikan Anda tidak melebihi jumlah maksimum node (M), dengan asumsi f(x) = min(29, (32 - ceiling(log2(x))):

  • f(2 * M) = f(2 * N)
  • f(64 * M) = f(64 * N)
  • f(max(32, 16 + M)) = f(max(32, 16 + N))

Jumlah total maksimum node dalam cluster Ray on Vertex AI yang dapat Anda lakukan penskalaan (M) bergantung pada jumlah total awal node yang Anda siapkan (N). Setelah membuat cluster Ray on Vertex AI, Anda dapat menskalakan jumlah total node ke jumlah apa pun antara P dan M inklusif, dengan P adalah jumlah pool di cluster Anda.

Jumlah total awal node dalam cluster dan jumlah target penskalaan harus berada dalam blok warna yang sama.

Diagram yang menunjukkan hubungan antara jumlah node awal dan yang diskalakan

Memperbarui jumlah replika

Gunakan konsol Google Cloud atau Vertex AI SDK untuk Python guna memperbarui jumlah replika kumpulan pekerja. Jika cluster Anda menyertakan beberapa worker pool, Anda dapat mengubah jumlah replika masing-masing dalam satu permintaan.

Ray on Vertex AI SDK

import vertexai
import vertex_ray

vertexai.init()
cluster = vertex_ray.get_ray_cluster("CLUSTER_NAME")

# Get the resource name.
cluster_resource_name = cluster.cluster_resource_name

# Create the new worker pools
new_worker_node_types = []
for worker_node_type in cluster.worker_node_types:
 worker_node_type.node_count = REPLICA_COUNT # new worker pool size
 new_worker_node_types.append(worker_node_type)

# Make update call
updated_cluster_resource_name = vertex_ray.update_ray_cluster(
 cluster_resource_name=cluster_resource_name,
 worker_node_types=new_worker_node_types,
)

Konsol

  1. Di Google Cloud konsol, buka halaman Ray on Vertex AI.

    Buka halaman Ray on Vertex AI

  2. Dari daftar cluster, klik cluster yang akan diubah.

  3. Di halaman Cluster details, klik Edit cluster.

  4. Di panel Edit cluster, pilih kumpulan pekerja yang akan diperbarui, lalu ubah jumlah replika.

  5. Klik Perbarui.

    Tunggu beberapa menit hingga cluster Anda diperbarui. Setelah update selesai, Anda dapat melihat jumlah replika yang diperbarui di halaman Detail cluster.

  6. Klik Buat.