Membuat cluster Ray di Gemini Enterprise Agent Platform

Dokumen ini memberikan petunjuk untuk menyiapkan cluster Ray di Gemini Enterprise Agent Platform guna memenuhi berbagai kebutuhan. Misalnya, untuk mem-build image, lihat Image kustom. Beberapa perusahaan dapat menggunakan jaringan pribadi. Dokumen ini membahas antarmuka Private Service Connect untuk Ray di Vertex AI. Kasus penggunaan lainnya melibatkan akses ke file jarak jauh seolah-olah file tersebut bersifat lokal (lihat Sistem File Jaringan Ray di Agent Platform).

Ringkasan

Topik yang dibahas di sini mencakup:

Membuat cluster Ray

Anda dapat menggunakan Google Cloud konsol atau Agent Platform SDK untuk Python guna membuat cluster Ray. Cluster dapat memiliki hingga 2.000 node. Batas atas 1.000 node ada dalam satu kumpulan pekerja. Tidak ada batasan jumlah kumpulan pekerja, tetapi sejumlah besar kumpulan pekerja, seperti 1.000 kumpulan pekerja dengan satu node masing-masing, dapat memengaruhi performa cluster secara negatif.

Sebelum memulai, baca Ray on ringkasan Gemini Enterprise Agent Platform dan siapkan semua alat prasyarat yang Anda butuhkan.

Cluster Ray di Agent Platform mungkin memerlukan waktu 10-20 menit untuk memulai setelah Anda membuat cluster.

Konsol

Sesuai dengan rekomendasi praktik terbaik OSS Ray, menetapkan jumlah CPU logis ke 0 pada node head Ray diberlakukan untuk menghindari menjalankan workload apa pun di node head.

  1. Di Google Cloud konsol, buka halaman Ray di Agent Platform.

    Buka halaman Ray di Agent Platform

  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 Location untuk cluster Anda.

    2. Untuk Compute settings, tentukan konfigurasi node head cluster Ray di Gemini Enterprise Agent Platform, 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 Image kustom.

      Di bagian Advanced options, Anda dapat:

      • Menentukan kunci enkripsi Anda sendiri.
      • Menentukan akun layanan khusus
      • Menonaktifkan pengumpulan metrik, jika Anda tidak perlu memantau statistik resource workload selama pelatihan.
    3. (Opsional) Untuk men-deploy endpoint pribadi untuk cluster Anda, metode yang direkomendasikan adalah menggunakan Private Service Connect. Untuk mengetahui detail selengkapnya, lihat Antarmuka Private Service Connect untuk Ray di Vertex AI.

  4. Klik Create.

Ray di Agent Platform SDK

Sesuai dengan rekomendasi praktik terbaik OSS Ray, menetapkan jumlah CPU logis ke 0 pada node head Ray diberlakukan untuk menghindari menjalankan workload apa pun di node head.

Dari lingkungan Python interaktif, gunakan yang berikut untuk membuat cluster Ray di Gemini Enterprise Agent Platform:

import ray
import vertex_ray
from google.cloud import aiplatform
from vertex_ray import Resources
from vertex_ray.util.resources import NfsMount

# Define a default CPU cluster, machine_type is n1-standard-16, 1 head node and 1 worker node
head_node_type = Resources()
worker_node_types = [Resources()]

# Or define a GPU cluster.
head_node_type = Resources(
  machine_type="n1-standard-16",
  node_count=1,
  custom_image="us-docker.pkg.dev/my-project/ray-custom.2-9.py310:latest",  # Optional. When not specified, a prebuilt image is used.
)

worker_node_types = [Resources(
  machine_type="n1-standard-16",
  node_count=2,  # Must be >= 1
  accelerator_type="NVIDIA_TESLA_T4",
  accelerator_count=1,
  custom_image="us-docker.pkg.dev/my-project/ray-custom.2-9.py310:latest",  # When not specified, a prebuilt image is used.
)]
# Optional. Create cluster with Network File System (NFS) setup.
nfs_mount = NfsMount(
    server="10.10.10.10",
    path="nfs_path",
    mount_point="nfs_mount_point",
)
aiplatform.init()
# Initialize Agent Platform to retrieve projects for downstream operations.
# Create the Ray cluster on Agent Platform
CLUSTER_RESOURCE_NAME = vertex_ray.create_ray_cluster(
  head_node_type=head_node_type,
  network=NETWORK, #Optional
  worker_node_types=worker_node_types,
  python_version="3.10",  # Optional
  ray_version="2.47",  # Optional
  cluster_name=CLUSTER_NAME, # Optional
  service_account=SERVICE_ACCOUNT,  # Optional
  enable_metrics_collection=True,  # Optional. Enable metrics collection for monitoring.
  labels=LABELS,  # Optional.
  nfs_mounts=[nfs_mount],  # Optional.

)

Dengan:

  • CLUSTER_NAME: Nama untuk cluster Ray di Gemini Enterprise Agent Platform yang harus unik di seluruh project Anda.

  • NETWORK: (Opsional) Nama lengkap jaringan VPC Anda, dalam format projects/PROJECT_ID/global/networks/VPC_NAME. Untuk menetapkan endpoint pribadi, bukan endpoint publik untuk cluster Anda, tentukan jaringan VPC yang akan digunakan dengan Ray di Agent Platform. Untuk mengetahui informasi selengkapnya, lihat Konektivitas pribadi dan publik.

  • VPC_NAME: Opsional: VPC tempat VM beroperasi.

  • PROJECT_ID: Project ID Anda Google Cloud . Anda dapat menemukan project ID di Google Cloud halaman sambutan konsol.

  • SERVICE_ACCOUNT: Opsional: Akun layanan untuk menjalankan aplikasi Ray di cluster. Berikan peran yang diperlukan.

  • LABELS: (Opsional) Label dengan metadata yang ditentukan pengguna yang digunakan untuk mengatur cluster Ray. Kunci dan nilai label tidak boleh lebih dari 64 karakter (codepoint Unicode), dan hanya boleh berisi huruf kecil, karakter numerik, garis bawah, dan tanda hubung. Karakter internasional diizinkan. Lihat https://goo.gl/xmQnxf untuk mengetahui informasi selengkapnya dan contoh label.

Anda akan melihat output berikut sampai statusnya berubah menjadi RUNNING:

[Ray on Agent Platform]: Cluster State = State.PROVISIONING
Waiting for cluster provisioning; attempt 1; sleeping for 0:02:30 seconds
...
[Ray on Agent Platform]: Cluster State = State.RUNNING

Perhatikan hal berikut:

  • Node pertama adalah node head.

  • Jenis mesin TPU tidak didukung.

Pengelolaan siklus proses

Selama siklus proses cluster Ray di Gemini Enterprise Agent Platform, setiap tindakan dikaitkan dengan status. Tabel berikut merangkum status penagihan dan opsi pengelolaan untuk setiap status. Dokumentasi referensi memberikan definisi untuk setiap status ini.

Tindakan Status Ditagih? Tindakan penghapusan tersedia? Tindakan pembatalan tersedia?
Pengguna membuat cluster PENYEDIAAN Tidak Tidak Tidak
Pengguna menaikkan atau menurunkan skala secara manual MEMPERBARUI Ya, sesuai ukuran real-time Ya Tidak
Cluster berjalan BERJALAN Ya Ya Tidak berlaku - Anda dapat menghapus
Cluster melakukan penskalaan otomatis naik atau turun MEMPERBARUI Ya, sesuai ukuran real-time Ya Tidak
Pengguna menghapus cluster BERHENTI Tidak Tidak Tidak berlaku - sudah berhenti
Cluster memasuki status Error ERROR Tidak Ya Tidak berlaku - Anda dapat menghapus
Tidak berlaku STATE_UNSPECIFIED Tidak Ya Tidak berlaku

Image Kustom (Opsional)

Image bawaan selaras dengan sebagian besar kasus penggunaan. Jika ingin mem-build image, gunakan image bawaan Ray di Gemini Enterprise Agent Platform sebagai image dasar. Lihat dokumentasi Docker untuk mengetahui cara mem-build image dari image dasar.

Image dasar ini mencakup penginstalan Python, Ubuntu, dan Ray. Image ini juga mencakup dependensi seperti:

  • python-json-logger
  • google-cloud-resource-manager
  • ca-certificates-java
  • libatlas-base-dev
  • liblapack-dev
  • g++, libio-all-perl
  • libyaml-0-2.

Konektivitas pribadi dan publik

Secara default, Ray di Agent Platform membuat endpoint publik yang aman untuk pengembangan interaktif dengan Ray Client di cluster Ray di Gemini Enterprise Agent Platform. Gunakan konektivitas publik untuk kasus penggunaan pengembangan atau sementara. Endpoint publik ini dapat diakses melalui internet. Hanya pengguna resmi yang memiliki, minimal, izin peran pengguna Gemini Enterprise Agent Platform di project pengguna cluster Ray yang dapat mengakses cluster.

Jika Anda memerlukan koneksi pribadi ke cluster atau jika Anda menggunakan Kontrol Layanan VPC, peering VPC didukung untuk cluster Ray di Gemini Enterprise Agent Platform. Cluster dengan endpoint pribadi hanya dapat diakses dari klien dalam jaringan VPC yang di-peering dengan Gemini Enterprise Agent Platform.

Untuk menyiapkan konektivitas pribadi dengan Peering VPC untuk Ray di Agent Platform, pilih jaringan VPC saat Anda membuat cluster. Jaringan VPC memerlukan koneksi layanan pribadi antara jaringan VPC Anda dan Gemini Enterprise Agent Platform. Jika Anda menggunakan Ray di Agent Platform di konsol, Anda dapat menyiapkan koneksi akses layanan pribadi saat membuat cluster.

Jika Anda ingin menggunakan Kontrol Layanan VPC dan peering VPC dengan cluster Ray di Agent Platform, penyiapan tambahan diperlukan untuk menggunakan dasbor Ray dan shell interaktif. Ikuti petunjuk yang dibahas di Dasbor Ray dan Shell Interaktif dengan VPC-SC + Peering VPC untuk mengonfigurasi penyiapan shell interaktif dengan VPC-SC dan Peering VPC di project pengguna Anda.

Setelah membuat cluster Ray di Gemini Enterprise Agent Platform, Anda dapat terhubung ke node head menggunakan Agent Platform SDK untuk Python. Lingkungan penghubung, seperti VM Compute Engine atau instance Vertex AI Workbench, harus berada di jaringan VPC yang di-peering dengan Gemini Enterprise Agent Platform. Perhatikan bahwa koneksi layanan pribadi memiliki jumlah alamat IP yang terbatas, yang dapat mengakibatkan kehabisan alamat IP. Oleh karena itu, sebaiknya gunakan koneksi pribadi untuk cluster yang berjalan lama.

Antarmuka Private Service Connect untuk Ray di Gemini Enterprise Agent Platform

Egress antarmuka Private Service Connect dan ingress antarmuka Private Service Connect didukung di cluster Ray di Gemini Enterprise Agent Platform.

Untuk menggunakan egress antarmuka Private Service Connect, ikuti petunjuk di bagian berikut. Jika Kontrol Layanan VPC tidak diaktifkan, cluster dengan egress antarmuka Private Service Connect menggunakan endpoint publik yang aman untuk ingress dengan Ray Client.

Jika Kontrol Layanan VPC diaktifkan, ingress antarmuka Private Service Connect akan digunakan secara default dengan egress antarmuka Private Service Connect. Untuk terhubung dengan Ray Client atau mengirimkan tugas dari notebook untuk cluster dengan ingress antarmuka Private Service Connect, pastikan notebook berada dalam VPC dan subnetwork project pengguna. Untuk mengetahui detail selengkapnya tentang cara menyiapkan Kontrol Layanan VPC, lihat Kontrol Layanan VPC dengan Gemini Enterprise Agent Platform.

Diagram pengaktifan antarmuka Private Service Connect

Mengaktifkan antarmuka Private Service Connect

Ikuti panduan menyiapkan resource untuk menyiapkan antarmuka Private Service Connect. Setelah menyiapkan resource, Anda siap mengaktifkan antarmuka Private Service Connect di cluster Ray di Gemini Enterprise Agent Platform.

Konsol

  1. Saat membuat cluster dan setelah menentukan Name and region dan Compute settings, opsi Networking akan muncul.

    Menentukan jaringan konsol

  2. Siapkan lampiran jaringan dengan melakukan salah satu tindakan berikut:

    • Gunakan nama NETWORK_ATTACHMENT_NAME yang Anda tentukan saat menyiapkan resource untuk Private Service Connect.
    • Buat lampiran jaringan baru dengan mengklik tombol Create network attachment yang muncul di menu drop-down.

    Membuat jaringan baru di konsol

  3. Klik Create network attachment.

  4. Di sub-tugas yang muncul, tentukan nama, jaringan, dan subnetwork untuk lampiran jaringan baru.

    Lampiran jaringan

  5. Klik Create.

Ray di Agent Platform SDK

Ray di Agent Platform SDK adalah bagian dari Agent Platform SDK untuk Python. Untuk mempelajari cara menginstal atau mengupdate Agent Platform SDK untuk Python, lihat Menginstal Agent Platform SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Agent Platform SDK untuk Python.

from google.cloud import aiplatform
import vertex_ray

# Initialization
aiplatform.init()

# Create a default cluster with network attachment configuration

psc_config = vertex_ray.PscIConfig(network_attachment=NETWORK_ATTACHMENT_NAME)
cluster_resource_name = vertex_ray.create_ray_cluster(
   psc_interface_config=psc_config,
)

Dengan:

  • NETWORK_ATTACHMENT_NAME: Nama yang Anda tentukan saat menyiapkan resource untuk Private Service Connect di project pengguna.

Sistem File Jaringan (NFS) Ray di Agent Platform

Untuk menyediakan file jarak jauh ke cluster Anda, pasang berbagi Network File System (NFS). Tugas Anda kemudian dapat mengakses file jarak jauh seolah-olah file tersebut bersifat lokal, sehingga memungkinkan throughput tinggi dan latensi rendah.

Penyiapan VPC

Ada dua opsi untuk menyiapkan VPC:

  1. Buat Lampiran Jaringan antarmuka Private Service Connect. (Direkomendasikan)
  2. Siapkan Peering Jaringan VPC.

Menyiapkan instance NFS

Untuk mengetahui detail selengkapnya tentang cara membuat instance Filestore, lihat Membuat instance. Jika Anda menggunakan metode antarmuka Private Service Connect, Anda tidak perlu memilih mode akses layanan pribadi saat membuat filestore.

Menggunakan Network File System (NFS)

Untuk menggunakan Network File System, tentukan network atau network attachment (direkomendasikan).

Konsol

  1. Di langkah Networking pada halaman pembuatan, setelah menentukan network atau network attachment. Untuk melakukannya, klik Add NFS mount di bagian Network File System (NFS) dan tentukan pemasangan NFS (server, jalur, dan direktori pemasangan).

    Kolom Deskripsi
    server Alamat IP server NFS Anda. Alamat ini harus berupa alamat pribadi di VPC Anda.
    path Jalur berbagi secara NFS. Jalur ini harus berupa jalur absolut yang dimulai dengan /.
    mountPoint Lokasi titik pemasangan lokal. Titik ini harus berupa nama direktori UNIX yang valid. Misalnya, jika direktori pemasangan lokal adalah sourceData, tentukan jalur /mnt/nfs/ sourceData dari instance VM pelatihan Anda.

    Untuk mengetahui informasi selengkapnya, lihat Tempat menentukan resource komputasi.

  2. Tentukan server, jalur, dan direktori pemasangan. Sistem file NFS

  3. Klik Create. Tindakan ini akan membuat cluster Ray.

Dasbor Ray dan Shell Interaktif dengan VPC-SC + Peering VPC

  1. Konfigurasi peered-dns-domains.

    {
      VPC_NAME=NETWORK_NAME
      REGION=LOCATION
      gcloud services peered-dns-domains create training-cloud \
      --network=$VPC_NAME \
      --dns-suffix=$REGION.aiplatform-training.cloud.google.com.
    
      # Verify
      gcloud beta services peered-dns-domains list --network $VPC_NAME;
    }
        
    • NETWORK_NAME: Ubah ke jaringan yang di-peering.

    • LOCATION: Lokasi yang diinginkan (misalnya, us-central1).

  2. Konfigurasi DNS managed zone.

    {
      PROJECT_ID=PROJECT_ID
      ZONE_NAME=$PROJECT_ID-aiplatform-training-cloud-google-com
      DNS_NAME=aiplatform-training.cloud.google.com
      DESCRIPTION=aiplatform-training.cloud.google.com
    
      gcloud dns managed-zones create $ZONE_NAME  \
      --visibility=private  \
      --networks=https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/networks/$VPC_NAME  \
      --dns-name=$DNS_NAME  \
      --description="Training $DESCRIPTION"
    }
        
    • PROJECT_ID: Project ID Anda. Anda dapat menemukan ID ini di Google Cloud konsol sambutan halaman.

  3. Catat transaksi DNS.

    {
      gcloud dns record-sets transaction start --zone=$ZONE_NAME
    
      gcloud dns record-sets transaction add \
      --name=$DNS_NAME. \
      --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
      --zone=$ZONE_NAME \
      --ttl=300
    
      gcloud dns record-sets transaction add \
      --name=*.$DNS_NAME. \
      --type=CNAME $DNS_NAME. \
      --zone=$ZONE_NAME \
      --ttl=300
    
      gcloud dns record-sets transaction execute --zone=$ZONE_NAME
    }
        
  4. Kirimkan tugas pelatihan dengan shell interaktif + VPC-SC + Peering VPC diaktifkan.

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 di 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 di Vertex AI dan resource persisten resource 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