Ce document explique comment configurer un cluster Ray sur Gemini Enterprise Agent Platform pour répondre à différents besoins. Par exemple, pour créer votre image, consultez Image personnalisée. Certaines entreprises peuvent utiliser la mise en réseau privée. Ce document traite de l'interface Private Service Connect pour Ray sur Vertex AI. Un autre cas d'utilisation consiste à accéder à des fichiers distants comme s'ils étaient locaux (voir Ray sur Agent Platform Network File System).
Présentation
Voici les sujets qui seront abordés :
- Créer un cluster Ray sur Gemini Enterprise Agent Platform
- Gérer le cycle de vie d'un cluster Ray
- Créer une image personnalisée
- Configurer la connectivité privée et publique (VPC)
- Utiliser l'interface Private Service Connect pour Ray sur Agent Platform
- Configurer Ray sur Agent Platform Network File System (NFS)
- Configurer un tableau de bord Ray et un shell interactif avec VPC-SC + appairage de VPC
Créer un cluster Ray
Vous pouvez utiliser la Google Cloud console ou le SDK Agent Platform pour Python pour créer un cluster Ray. Un cluster peut contenir jusqu'à 2 000 nœuds. Il existe une limite supérieure de 1 000 nœuds dans un pool de nœuds de calcul. Il n'y a pas de limite au nombre de pools de nœuds de calcul. Toutefois, en créer un grand nombre (par exemple, disposer de 1 000 pools de nœuds de calcul avec un nœud chacun) peut avoir un impact négatif sur les performances du cluster.
Avant de commencer, lisez la présentation de Ray on Gemini Enterprise Agent Platform et configurez tous les outils prérequis.
Une fois créé, un cluster Ray sur Agent Platform peut prendre entre 10 et 20 minutes pour démarrer.
Console
Conformément aux bonnes pratiques OSS Ray, le nombre de processeurs logiques est défini sur 0 sur le nœud principal de Ray afin d'éviter toute exécution de charge de travail sur ce nœud.
Dans la Google Cloud console, accédez à la page Ray sur Agent Platform.
Cliquez sur Créer un cluster pour ouvrir le panneau Créer un cluster.
Pour chaque étape du panneau Créer un cluster, vérifiez ou remplacez les informations du cluster par défaut. Cliquez sur Continuer à chaque étape :
Dans le champ Nom et région, spécifiez un Nom et choisissez un Emplacement pour votre cluster.
Pour les paramètres de calcul, spécifiez la configuration du cluster Ray sur le nœud principal de Gemini Enterprise Agent Platform, y compris le type de machine, le type et le nombre d'accélérateurs, le type et la taille du disque, et le nombre d'instances répliquées. Vous pouvez éventuellement ajouter un URI d'image personnalisée pour spécifier une image de conteneur personnalisée afin d'ajouter des dépendances Python non fournies par l'image de conteneur par défaut. Consultez la section Image personnalisée.
Sous Options avancées, vous pouvez :
- Spécifier votre propre clé de chiffrement.
- Spécifiez un compte de service personnalisé.
- Désactivez la collecte de métriques si vous n'avez pas besoin de surveiller les statistiques de ressources de votre charge de travail pendant l'entraînement.
(Facultatif) Pour déployer un point de terminaison privé pour votre cluster, la méthode recommandée consiste à utiliser Private Service Connect. Pour en savoir plus, consultez Interface Private Service Connect pour Ray sur Vertex AI.
Cliquez sur Créer.
SDK Ray sur Agent Platform
Conformément aux bonnes pratiques OSS Ray, le nombre de processeurs logiques est défini sur 0 sur le nœud principal de Ray afin d'éviter toute exécution de charge de travail sur ce nœud.
Dans un environnement Python interactif, utilisez les éléments suivants pour créer le cluster Ray sur 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. )
Où :
CLUSTER_NAME : nom du cluster Ray sur Gemini Enterprise Agent Platform qui doit être unique dans votre projet.
NETWORK : (facultatif) nom complet de votre réseau VPC, au format
projects/PROJECT_ID/global/networks/VPC_NAME. Pour définir un point de terminaison privé au lieu d'un point de terminaison public pour votre cluster, spécifiez un réseau VPC à utiliser avec Ray sur Agent Platform. Pour en savoir plus, consultez Connectivité privée et publique.VPC_NAME : (facultatif) VPC sur lequel la VM fonctionne.
PROJECT_ID: ID du projet Google Cloud . Vous pouvez trouver l'ID du projet sur la Google Cloud console page d'accueil.
SERVICE_ACCOUNT : (facultatif) compte de service permettant d'exécuter les applications Ray sur le cluster. Attribuez les rôles requis.
LABELS : (facultatif) libellés avec des métadonnées définies par l'utilisateur utilisées pour organiser les clusters Ray. Les clés et les valeurs des libellés ne peuvent pas dépasser 64 caractères (points de code Unicode) et ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Les caractères internationaux sont acceptés. Pour en savoir plus et obtenir des exemples de libellés, consultez https://goo.gl/xmQnxf.
Le résultat suivant doit s'afficher jusqu'à ce que l'état passe à 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
Veuillez noter les points suivants :
Le premier nœud est le nœud principal.
Les types de machines TPU ne sont pas compatibles.
Gestion du cycle de vie
Au cours du cycle de vie d'un cluster Ray sur Gemini Enterprise Agent Platform, chaque action est associée à un état. Le tableau suivant récapitule l'état de facturation et l'option de gestion pour chaque état. La documentation de référence fournit une définition pour chacun de ces états.
| Action | État | Facturé ? | Action "Supprimer" disponible ? | Action "Annuler" disponible ? |
|---|---|---|---|---|
| L'utilisateur crée un cluster | PROVISIONNEMENT | Non | Non | Non |
| L'utilisateur effectue un scaling à la hausse ou à la baisse manuellement | UPDATING | Oui, en fonction de la taille en temps réel | Oui | Non |
| Le cluster s'exécute | RUNNING | Oui | Oui | Non applicable : vous pouvez supprimer |
| Le cluster effectue un scaling automatique à la hausse ou à la baisse | UPDATING | Oui, en fonction de la taille en temps réel | Oui | Non |
| L'utilisateur supprime le cluster | ARRÊT… | Non | Non | Non applicable : l'arrêt est déjà en cours |
| Le cluster passe à l'état d'erreur | ERREUR | Non | Oui | Non applicable : vous pouvez supprimer |
| Non applicable | STATE_UNSPECIFIED | Non | Oui | Non applicable |
Image personnalisée (facultatif)
Les images prédéfinies correspondent à la plupart des cas d'utilisation. Si vous souhaitez créer votre image, utilisez les images prédéfinies Ray sur Gemini Enterprise Agent Platform comme image de base. Consultez la documentation Docker pour savoir comment créer vos images à partir d'une image de base.
Ces images de base incluent une installation de Python, Ubuntu et Ray. Elles incluent également des dépendances telles que :
- python-json-logger
- google-cloud-resource-manager
- ca-certificates-java
- libatlas-base-dev
- liblapack-dev
- g++, libio-all-perl
- libyaml-0-2.
Connectivité privée et publique
Par défaut, Ray sur Agent Platform crée un point de terminaison public sécurisé pour le développement interactif avec le client Ray sur les clusters Ray sur Gemini Enterprise Agent Platform. Utilisez la connectivité publique pour le développement ou les cas d'utilisation éphémères. Ce point de terminaison public est accessible via Internet. Seuls les utilisateurs autorisés qui disposent au minimum des autorisations de rôle utilisateur Gemini Enterprise Agent Platform sur le projet utilisateur du cluster Ray peuvent accéder au cluster.
Si vous avez besoin d'une connexion privée à votre cluster ou si vous utilisez VPC Service Controls, l'appairage de VPC est compatible avec les clusters Ray sur Gemini Enterprise Agent Platform. Les clusters avec un point de terminaison privé ne sont accessibles qu'à partir d'un client au sein d'un réseau VPC appairé avec Gemini Enterprise Agent Platform.
Pour configurer la connectivité privée avec l'appairage de VPC pour Ray sur Agent Platform, sélectionnez un réseau VPC lorsque vous créez votre cluster. Le réseau VPC nécessite une connexion de services privés entre votre réseau VPC et Gemini Enterprise Agent Platform. Si vous utilisez Ray sur Agent Platform dans la console, vous pouvez configurer votre connexion d'accès aux services privés lors de la création du cluster.
Si vous souhaitez utiliser VPC Service Controls et l'appairage de VPC avec des clusters Ray sur Agent Platform, une configuration supplémentaire est requise pour utiliser le tableau de bord Ray et le shell interactif. Suivez les instructions de la section Tableau de bord Ray et shell interactif avec VPC-SC et appairage de VPC pour configurer le shell interactif avec VPC-SC et l'appairage de VPC dans votre projet utilisateur.
Après avoir créé votre cluster Ray sur Gemini Enterprise Agent Platform, vous pouvez vous connecter au nœud principal à l'aide du SDK Agent Platform pour Python. L'environnement de connexion, tel qu'une VM Compute Engine ou une instance Vertex AI Workbench, doit se trouver dans le réseau VPC appairé avec Gemini Enterprise Agent Platform. Notez qu' une connexion de services privés dispose d'un nombre limité d'adresses IP, ce qui peut entraîner une pénurie d'adresses IP. Par conséquent, nous vous recommandons d'utiliser des connexions privées pour les clusters de longue durée.
Interface Private Service Connect pour Ray sur Gemini Enterprise Agent Platform
L'interface Private Service Connect en sortie et l'interface Private Service Connect en entrée sont compatibles avec les clusters Ray sur Gemini Enterprise Agent Platform.
Pour utiliser l'interface Private Service Connect en sortie, suivez les instructions de la section suivante. Si VPC Service Controls n'est pas activé, les clusters avec l'interface Private Service Connect en sortie utilisent le point de terminaison public sécurisé pour l'entrée avec le client Ray.
Si VPC Service Controls est activé, l'interface Private Service Connect en entrée est utilisée par défaut avec l'interface Private Service Connect en sortie. Pour vous connecter au client Ray ou envoyer des tâches à partir d'un notebook pour un cluster avec l'interface Private Service Connect en entrée, assurez-vous que le notebook se trouve dans le VPC et le sous-réseau du projet utilisateur. Pour en savoir plus sur la configuration de VPC Service Controls, consultez VPC Service Controls avec Gemini Enterprise Agent Platform.

Activer l'interface Private Service Connect
Suivez le guide de configuration de vos ressources pour configurer votre interface Private Service Connect. Une fois vos ressources configurées, vous êtes prêt à activer l'interface Private Service Connect sur votre cluster Ray sur Gemini Enterprise Agent Platform.
Console
Lors de la création de votre cluster et après avoir spécifié Nom et région et Paramètres de calcul, l'option Mise en réseau s'affiche.

Configurez un rattachement de réseau en effectuant l'une des opérations suivantes :
- Utilisez le NETWORK_ATTACHMENT_NAME nom que vous avez spécifié lors de la configuration de vos ressources pour Private Service Connect.
- Créez un rattachement de réseau en cliquant sur le bouton Créer un rattachement de réseau qui s'affiche dans la liste déroulante.

Cliquez sur Créer un rattachement de réseau.
Dans la sous-tâche qui s'affiche, spécifiez un nom, un réseau et un sous-réseau pour le nouveau rattachement de réseau.

Cliquez sur Créer.
SDK Ray sur Agent Platform
Le SDK Ray sur Agent Platform fait partie du SDK Agent Platform pour Python. Pour savoir comment installer ou mettre à jour le SDK Agent Platform pour Python, consultez Installer le SDK Agent Platform pour Python. Pour en savoir plus, consultez la documentation de référence de l'API SDK Agent Platform pour 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, )
Où :
- NETWORK_ATTACHMENT_NAME : nom que vous avez spécifié lors de la configuration de vos ressources pour Private Service Connect sur votre projet utilisateur.
Ray sur Agent Platform Network File System (NFS)
Pour rendre les fichiers distants disponibles pour votre cluster, installez des partages NFS (Network File System). Vos tâches peuvent ensuite accéder à des fichiers distants comme s'ils étaient locaux, ce qui permet un débit élevé et une faible latence.
Configuration VPC
Deux options s'offrent à vous pour configurer un VPC :
- Créer un rattachement de réseau d'interface Private Service Connect. (Recommandé)
- Configurer l'appairage de réseaux VPC.
Configurer votre instance NFS
Pour en savoir plus sur la création d'une instance Filestore, consultez Créer une instance. Si vous utilisez la méthode d'interface Private Service Connect, vous n'avez pas besoin de sélectionner le mode d'accès privé aux services lors de la création du Filestore.
Utiliser le système de fichiers NFS (Network File System)
Pour utiliser le système de fichiers NFS, spécifiez un réseau ou un rattachement de réseau (recommandé).
Console
À l'étape "Mise en réseau" de la page de création, après avoir spécifié un réseau ou un rattachement de réseau. Pour ce faire, cliquez sur Ajouter une installation NFS dans la section "Système de fichiers NFS (Network File System)" et spécifiez une installation NFS (serveur, chemin d'accès et point d'installation).
Champ Description serverAdresse IP de votre serveur NFS. Il doit s'agir d'une adresse privée dans votre VPC. pathChemin d'accès au partage NFS. Il doit s'agir d'un chemin absolu commençant par /.mountPointPoint d'installation local. Il doit s'agir d'un nom de répertoire UNIX valide. Par exemple, si le point d'installation local est sourceData, spécifiez le chemin d'accès/mnt/nfs/ sourceDataà partir de votre instance de VM d'entraînement.Pour en savoir plus, consultez la section Où spécifier les ressources de calcul.
Spécifiez un serveur, un chemin d'accès et un point d'installation.

Cliquez sur Créer. Le cluster Ray est alors créé.
Tableau de bord Ray et shell interactif avec VPC-SC + appairage de VPC
-
configurer
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 : passer à un réseau appairé.
-
LOCATION : emplacement souhaité (par exemple,
us-central1).
-
-
configurer
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 : ID du projet. Vous pouvez trouver ces ID sur la page d'accueil de la console. Google Cloud
-
-
Transaction d'enregistrement 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 }
-
Envoyer une tâche d'entraînement avec l'interface système interactive, VPC-SC et l'appairage de VPC activés.
Responsabilité partagée
La sécurisation de vos charges de travail sur Vertex AI est une responsabilité partagée. Bien que Vertex AI mette régulièrement à niveau les configurations d'infrastructure pour résoudre les failles de sécurité, Vertex AI ne met pas automatiquement à niveau vos clusters Ray sur Vertex AI et vos ressources persistantes existants pour éviter de préempter les charges de travail en cours d'exécution. Vous êtes donc responsable des tâches suivantes, par exemple :
- Supprimez et recréez régulièrement vos clusters Ray sur Vertex AI et vos ressources persistantes ressources pour utiliser les dernières versions de l'infrastructure. Vertex AI recommande de recréer vos clusters et vos ressources persistantes au moins une fois tous les 30 jours.
- Configurez correctement toutes les images personnalisées que vous utilisez.
Pour en savoir plus, consultez la section Responsabilité partagée.