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. Penskalaan 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 praktik terbaik OSS Ray, rekomendasi untuk menyetel jumlah CPU logis ke 0 di node head Ray diterapkan untuk menghindari menjalankan beban kerja apa pun di 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 gabungan worker 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 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.

Praktik terbaik alokasi subnet

Saat men-deploy Ray on Vertex AI menggunakan akses layanan pribadi (PSA), Anda harus memastikan bahwa rentang alamat IP yang dialokasikan cukup besar dan berdekatan untuk mengakomodasi jumlah maksimum node yang dapat diskalakan oleh cluster Anda. Kelelahan IP dapat terjadi jika rentang IP yang dicadangkan untuk koneksi PSA Anda terlalu kecil atau terfragmentasi, sehingga menyebabkan kegagalan deployment.

Sebagai alternatif, sebaiknya deploy Ray di Vertex AI dengan Antarmuka Private Service Connect, yang mengurangi penggunaan IP ke subnet /28.

Pemantauan Akses Layanan Pribadi

Sebagai praktik terbaik, gunakan Network Analyzer alat diagnostik dalam Network Intelligence Center Google Cloud yang secara otomatis memantau konfigurasi jaringan Virtual Private Cloud (VPC) Anda untuk mendeteksi kesalahan konfigurasi dan setelan yang kurang optimal. Network Analyzer beroperasi secara berkelanjutan, yang secara proaktif menjalankan pengujian dan menghasilkan insight untuk membantu Anda mengidentifikasi, mendiagnosis, dan menyelesaikan masalah jaringan sebelum memengaruhi ketersediaan layanan.

Network Analyzer memiliki kemampuan untuk memantau subnet yang digunakan untuk Akses Layanan Pribadi (PSA) dan memberikan insight spesifik terkait subnet tersebut. Ini adalah fungsi penting untuk mengelola layanan seperti Cloud SQL, Memorystore, dan Vertex AI, yang menggunakan PSA.

Cara utama Network Analyzer memantau subnet PSA adalah dengan memberikan insight pemanfaatan alamat IP untuk rentang yang dialokasikan.

  • Penggunaan Rentang PSA: Network Analyzer secara aktif melacak persentase alokasi alamat IP dalam blok CIDR khusus yang telah Anda alokasikan untuk PSA. Hal ini penting karena saat Anda membuat layanan terkelola (seperti Vertex AI), Google akan membuat VPC produsen layanan dan subnet di dalamnya, dengan mengambil rentang IP dari blok yang dialokasikan.

  • Peringatan Proaktif: Jika pemanfaatan alamat IP untuk rentang yang dialokasikan PSA melebihi batas tertentu (misalnya, 75%), Network Analyzer akan membuat insight peringatan. Hal ini secara proaktif memberi tahu Anda tentang potensi masalah kapasitas, sehingga memberi Anda waktu untuk memperluas rentang IP yang dialokasikan sebelum Anda kehabisan alamat yang tersedia untuk resource layanan baru.

Pembaruan subnet Akses Layanan Pribadi

Untuk deployment Ray on Vertex AI, Google merekomendasikan pengalokasian blok CIDR /16 atau /17 untuk koneksi PSA Anda. Hal ini memberikan blok alamat IP yang berdekatan dan cukup besar untuk mendukung penskalaan yang signifikan, yang mengakomodasi hingga 65.536 atau 32.768 alamat IP unik. Hal ini membantu mencegah kehabisan IP meskipun dengan cluster Ray yang besar.

Jika ruang alamat IP yang dialokasikan habis, Google Cloud akan menampilkan error ini:

Gagal membuat subnetwork. Tidak dapat menemukan blok gratis dalam rentang IP yang dialokasikan.

Sebaiknya Anda memperluas rentang subnet saat ini atau mengalokasikan rentang yang mengakomodasi pertumbuhan di masa mendatang.

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.