Crea un cluster Ray su Vertex AI

Puoi usare la console Google Cloud o l'SDK Vertex AI per Python per creare un cluster Ray. Un cluster può avere fino a 2000 nodi. Esiste un limite massimo di 1000 nodi in un pool di worker. Non esiste un limite al numero di pool di worker, ma avere un numero elevato di pool di worker, ad esempio 1000 pool di worker con un nodo ciascuno, può influire negativamente sulle prestazioni del cluster.

Prima di iniziare, assicurati di leggere la panoramica di Ray on Vertex AI e di configurare tutti gli strumenti prerequisiti di cui hai bisogno.

L'avvio di un cluster Ray su Vertex AI potrebbe richiedere 10-20 minuti dopo la creazione.

Console

  1. Nella console Google Cloud, vai alla pagina Ray on Vertex AI.

    Vai alla pagina Ray su Vertex AI

  2. Fai clic su Crea cluster per aprire il riquadro Crea cluster.

  3. Per ogni passaggio nel riquadro Crea cluster, rivedi o sostituisci le informazioni predefinite del cluster. Fai clic su Continua per completare ciascun passaggio:

    1. In Nome e regione, specifica un Nome e scegli una Località per il tuo cluster.

    2. In Impostazioni di calcolo, specifica la configurazione del cluster Ray sul nodo head di Vertex AI, inclusi tipo di macchina, tipo e conteggio dell'acceleratore, tipo e dimensione del disco e numero di repliche. Se vuoi, puoi aggiungere un URI immagine personalizzato per specificare un'immagine container personalizzata e aggiungere dipendenze Python non fornite dall'immagine del container predefinito. Vedi Immagine personalizzata.

      In Opzioni avanzate, puoi:

      • Specifica la tua chiave di crittografia.
      • Specifica un account di servizio personalizzato.
      • Disabilita la raccolta delle metriche, se non utilizzerai il monitoraggio dei modelli.
    3. (Facoltativo) Per impostare un endpoint privato anziché un endpoint pubblico per il cluster, specifica una rete VPC da utilizzare con Ray on Vertex AI. Per maggiori informazioni, consulta Connettività pubblica e privata.

      Se non hai configurato una connessione per la rete VPC, fai clic su Configura connessione. Nel riquadro Crea una connessione di accesso privato ai servizi, completa e fai clic su Continua per ciascuno dei seguenti passaggi:

      1. Attiva l'API Service Networking.

      2. Per Assegna un intervallo IP, puoi selezionare, creare o consentire a Google di allocare automaticamente un intervallo IP.

      3. In Crea una connessione, rivedi le informazioni Rete e Intervallo IP allocato.

      4. Fai clic su Crea connessione.

  4. Fai clic su Crea.

SDK Ray su Vertex AI

Da un ambiente Python interattivo, utilizza quanto segue per creare il cluster Ray su Vertex AI:

import ray
import vertex_ray
from google.cloud import aiplatform
from vertex_ray import Resources

# 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.
)]

aiplatform.init()
# Initialize Vertex AI to retrieve projects for downstream operations.
# Create the Ray cluster on Vertex AI
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.9",  # Optional
  cluster_name=CLUSTER_NAME, # Optional
  service_account=SERVICE_ACCOUNT,  # Optional
  enable_metrics_collection=True,  # Optional. Enable metrics collection for monitoring.
  labels=LABELS,  # Optional.

)

Dove:

  • CLUSTER_NAME: un nome univoco per il cluster Ray su Vertex AI in tutto il progetto.

  • NETWORK: (facoltativo) il nome completo della rete VPC nel formato projects/PROJECT_ID/global/networks/VPC_NAME. Per impostare un endpoint privato anziché un endpoint pubblico per il cluster, specifica una rete VPC da utilizzare con Ray on Vertex AI. Per ulteriori informazioni, vedi Connettività pubblica e privata.

  • VPC_NAME: (facoltativo) il VPC su cui opera la VM.

  • PROJECT_ID: l'ID del tuo progetto Google Cloud. Puoi trovare l'ID progetto nella pagina di benvenuto della console Google Cloud.

  • SERVICE_ACCOUNT: (facoltativo) l'account di servizio per eseguire applicazioni Ray sul cluster. Devono essere concessi i ruoli obbligatori.

  • LABELS: (facoltativo) le etichette con metadati definiti dall'utente utilizzate per organizzare i cluster Ray. Le chiavi e i valori delle etichette non possono contenere più di 64 caratteri (punti di codice Unicode) e possono contenere solo lettere minuscole, caratteri numerici, trattini bassi e trattini. Sono consentiti caratteri internazionali. Visita la pagina http://goo.gl/xmQnxf per ulteriori informazioni ed esempi di etichette.

Dovresti vedere il seguente output fino a quando lo stato non cambia in RUNNING:

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

Tieni presente quanto segue:

  • Il primo nodo viene utilizzato come nodo head.

  • I tipi di macchina TPU non sono supportati.

Immagine personalizzata (facoltativa)

Le immagini predefinite si adattano alla maggior parte dei casi d'uso. Se vuoi creare un'immagine personalizzata, usa le immagini predefinite Ray on Vertex come immagine di base. Consulta la documentazione di Docker per informazioni su come creare immagini da un'immagine di base.

Queste immagini di base includono un'installazione di Python, Ubuntu e Ray. Includono anche dipendenze come:

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

Se vuoi creare la tua immagine senza la nostra immagine di base (avanzata), assicurati che l'immagine includa:

  • Raggio 2.9.3
  • Python 3.10
  • python-json-logger==2.0.7

Connettività pubblica e privata

Per impostazione predefinita, Ray su Vertex AI crea un endpoint pubblico e sicuro per lo sviluppo interattivo con i cluster Ray Client su Vertex AI. Ti consigliamo di utilizzare la connettività pubblica per casi d'uso temporanei o di sviluppo. Questo endpoint pubblico è accessibile tramite internet. Solo gli utenti autorizzati che dispongono almeno di autorizzazioni del ruolo utente Vertex AI nel progetto utente del cluster Ray possono accedere al cluster.

Se hai bisogno di una connessione privata al cluster o se utilizzi Controlli di servizio VPC, il peering VPC è supportato per i cluster Ray su Vertex AI. I cluster con un endpoint privato sono accessibili solo da un client all'interno di una rete VPC in peering con Vertex AI.

Per configurare la connettività privata con peering VPC per Ray su Vertex AI, seleziona una rete VPC quando crei il cluster. La rete VPC richiede una connessione privata ai servizi tra la rete VPC e Vertex AI. Se utilizzi Ray su Vertex AI nella console, puoi configurare la connessione di accesso privato ai servizi durante la creazione del cluster.

Dopo aver creato il cluster Ray su Vertex AI, puoi connetterti al nodo head utilizzando l'SDK Vertex AI per Python. L'ambiente di connessione, ad esempio una VM di Compute Engine o un'istanza di Vertex AI Workbench, deve trovarsi nella rete VPC in peering con Vertex AI. Tieni presente che una connessione privata ai servizi ha un numero limitato di indirizzi IP, il che potrebbe comportare l'esaurimento degli indirizzi IP. Si consiglia di usare connessioni private per i cluster a lunga esecuzione.

Tutorial sul blocco note

Passaggi successivi