Menskalakan cluster Ray di Vertex AI

Ada dua opsi untuk menskalakan cluster Ray di Vertex AI: Penskalaan otomatis dan penskalaan manual. Penskalaan otomatis memungkinkan cluster secara otomatis menyesuaikan jumlah node pekerja berdasarkan resource yang diperlukan oleh, misalnya, tugas dan aktor Ray. Penskalaan otomatis direkomendasikan jika Anda menjalankan beban kerja yang berat dan tidak yakin dengan resource yang diperlukan. Penskalaan manual memberi pengguna kontrol yang lebih terperinci atas node.

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

Penskalaan otomatis

Anda dapat mengaktifkan fitur penskalaan otomatis cluster Ray dengan menentukan jumlah replika minimum (min_replica_count) dan jumlah replika maksimum (max_replica_count) kumpulan pekerja.

Perhatikan bahwa:

  • Anda harus mengonfigurasi spesifikasi penskalaan otomatis dari semua kumpulan pekerja.
  • Kecepatan penskalaan ke atas dan ke bawah kustom tidak didukung. Untuk nilai default, lihat Kecepatan penskalaan dan penskalaan ke bawah dalam dokumentasi Ray.

Menetapkan spesifikasi penskalaan otomatis kumpulan pekerja

Anda dapat menggunakan konsol Google Cloud atau Vertex AI SDK untuk Python untuk 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, menetapkan jumlah CPU logis ke 0 di node head Ray diterapkan untuk menghindari menjalankan beban kerja apa pun di node head.

  1. Di Konsol Google Cloud, 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. Jika perlu, Anda dapat menambahkan URI image kustom untuk menentukan image container kustom guna menambahkan dependensi Python yang tidak disediakan oleh image container default. Lihat Image kustom.

      Di bagian Advanced options, Anda dapat:

      • Tentukan kunci enkripsi Anda sendiri.
      • Tentukan akun layanan khusus
      • Nonaktifkan pengumpulan metrik, jika Anda tidak perlu memantau statistik resource workload selama pelatihan.
    3. Untuk membuat cluster dengan kumpulan pekerja penskalaan otomatis, berikan nilai untuk jumlah replika maksimum kumpulan pekerja. autoscaling-compute-settings

  4. Klik Buat.

Penskalaan manual

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

Batasan dengan Peering VPC

Saat menskalakan cluster, Anda hanya dapat mengubah jumlah replika dalam kumpulan pekerja 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 lebih rendah dari satu.

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

Penghitungan jumlah node maksimum

Jika Anda menggunakan akses layanan pribadi (peering VPC) untuk terhubung ke node, gunakan formula berikut untuk memeriksa apakah 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 di cluster Ray on Vertex AI yang dapat Anda skalakan hingga (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 berapa pun antara P dan M inklusif, dengan P adalah jumlah kumpulan di cluster Anda.

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

jumlah-node

Memperbarui jumlah replika

Anda dapat menggunakan konsol Google Cloud atau Vertex AI SDK untuk Python guna memperbarui jumlah replika kumpulan pekerja. Jika cluster Anda menyertakan beberapa kumpulan pekerja, Anda dapat mengubah setiap jumlah replikanya satu per satu 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 Konsol Google Cloud, 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 Cluster details.

  6. Klik Buat.