La scelta della configurazione di archiviazione corretta è fondamentale per le prestazioni e la stabilità del cluster di addestramento. Il servizio si integra con due soluzioni di archiviazione distinte ad alte prestazioni:
- Filestore: un servizio di file gestito obbligatorio che fornisce le directory
/homecondivise per tutti i nodi del cluster. - Google Cloud Managed Lustre: un file system parallelo facoltativo progettato per prestazioni I/O estreme, ideale per l'addestramento su set di dati di grandi dimensioni.
Questa pagina fornisce una panoramica dei loro utilizzi principali e descrive i requisiti specifici di rete e deployment per un'integrazione riuscita con il cluster.
Integrazione dell'archiviazione per i cluster di addestramento
I cluster di addestramento della piattaforma agentica Gemini Enterprise si basano su soluzioni di archiviazione specifiche connesse in rete per il loro funzionamento. Filestore è obbligatorio per fornire le directory /home condivise per il cluster, mentre Managed Lustre è un file system ad alte prestazioni facoltativo per i carichi di lavoro impegnativi.
È fondamentale configurare correttamente la rete per questi servizi di archiviazione prima di eseguire il deployment del cluster.
Filestore per le home directory
Questo servizio utilizza un'istanza Filestore per fornire la directory /home condivisa per il cluster. Per garantire una connettività corretta, devi creare le risorse cloud in questo ordine specifico:
- Crea la rete VPC: innanzitutto, esegui il deployment di una rete VPC configurata con l'MTU consigliato (ad esempio, 8896).
- Crea l'istanza Filestore: poi, esegui il deployment dell'istanza Filestore nel VPC che hai appena creato.
- Crea il cluster di addestramento: infine, esegui il deployment del cluster, che potrà quindi connettersi all'istanza Filestore all'interno della stessa rete.
Google Cloud Managed Lustre per carichi di lavoro ad alte prestazioni
Per i carichi di lavoro che richiedono prestazioni I/O massime, puoi collegare un file system Managed Lustre. Questo servizio si connette al tuo VPC utilizzando l'accesso ai servizi privati.
Limitazione di rete critica: nessun peering transitivo
Una limitazione critica sia per Filestore sia per Google Cloud Managed Lustre è che non supportano il peering transitivo. Ciò significa che solo le risorse all'interno del VPC connesso direttamente possono accedere al servizio di archiviazione. Ad esempio, se il VPC del cluster (N1) è in peering con il servizio di archiviazione, un altro VPC (N2) in peering con N1 non avrà accesso.
Integrazione dell'archiviazione per i cluster di addestramento
I cluster di addestramento della piattaforma agentica Gemini Enterprise si basano su soluzioni di archiviazione specifiche connesse in rete per il loro funzionamento. Filestore è obbligatorio per fornire le directory /home condivise per il cluster, mentre Google Cloud Managed Lustre è un file system ad alte prestazioni facoltativo per i carichi di lavoro impegnativi.
È fondamentale configurare correttamente la rete per questi servizi di archiviazione prima di eseguire il deployment del cluster.
Filestore
Utilizzi principali di Filestore con i cluster di addestramento
Oltre al suo ruolo di home directory obbligatoria, Filestore offre un modo flessibile per condividere i dati con il cluster.
Spazio di archiviazione condiviso aggiuntivo: puoi collegare una o più istanze Filestore
aggiuntive a qualsiasi pool di nodi. Questa opzione è utile per fornire set di dati condivisi, file binari delle applicazioni,
o altri file comuni ai job di addestramento. Quando vengono specificati nella configurazione del pool di nodi,
i cluster di addestramento montano automaticamente queste istanze nella
/mnt/filestore directory su ogni nodo.
Requisiti di Filestore
Per un'integrazione riuscita di Filestore con i cluster di addestramento è necessaria la seguente configurazione:
- Abilita l'API: l'API Filestore deve essere abilitata nel tuo progetto Google Cloud prima di poter creare il cluster.
- Directory
/homeobbligatoria: ogni cluster di addestramento richiede un'istanza Filestore dedicata che funga da directory/homecondivisa. Questa istanza ha requisiti di configurazione specifici:- Rete: deve risiedere nella stessa rete VPC dei nodi di calcolo e di accesso del cluster.
- Località: deve trovarsi nella stessa regione o zona del cluster.
- Configurazione: devi specificare il nome completo della risorsa di questa istanza nel
campo quando crei il cluster tramite l'API.orchestrator_spec.slurm_spec.home_directory_storage
Configura lo spazio di archiviazione Filestore
Crea un'istanza Filestore a livello di zona o di regione nella zona in cui vuoi creare il cluster. L'API Vertex AI richiede che un'istanza Filestore sia collegata al cluster per fungere da directory /home.
Questa istanza Filestore deve trovarsi nella stessa zona o regione e nella stessa rete di tutti i nodi di calcolo e di accesso. Nell'esempio seguente, 172.16.10.0/24 viene utilizzato per il deployment di Filestore.
SERVICE_TIER=ZONAL # Can use BASIC_SSD # Create reserved IP address range gcloud compute addresses create CLUSTER_IDfs-ip-range \ --project=PROJECT_ID \ --global \ --purpose=VPC_PEERING \ --addresses=172.16.10.0 \ --prefix-length=24 \ --description="Filestore instance reserved IP range" \ --network=NETWORK # Get the CIDR range FS_IP_RANGE=$( gcloud compute addresses describe CLUSTER_IDfs-ip-range \ --global \ --format="value[separator=/](address, prefixLength)" ) # Create the Filestore instance gcloud filestore instances create FS_INSTANCE_ID \ --project=PROJECT_ID \ --location=ZONE \ --tier=ZONAL \ --file-share=name="nfsshare",capacity=1024 \ --network=name=NETWORK,connect-mode=DIRECT_PEERING,reserved-ip-range="${FS_IP_RANGE}"
Lustre
Google Cloud Managed Lustre offre un file system parallelo completamente gestito e ad alte prestazioni ottimizzato per le applicazioni AI e HPC. Con una capacità di più petabyte e una velocità effettiva fino a 1 TBps, Managed Lustre facilita la migrazione dei carichi di lavoro impegnativi al cloud.
Le istanze Managed Lustre risiedono nelle
zone all'interno delle regioni. Una regione rappresenta una posizione geografica specifica in cui puoi eseguire le tue risorse. Ogni regione è suddivisa in diverse zone. Ad esempio, la regione us-central1 negli Stati Uniti centrali ha le zone
us-central1-a, us-central1-b, us-central1-c e us-central1-f. Per ulteriori informazioni, consulta
Geografia e regioni.
Per ridurre la latenza di rete, ti consigliamo di creare un'istanza Managed Lustre in una regione e una zona vicine a dove prevedi di utilizzarla.
Quando crei un'istanza Managed Lustre, devi definire le seguenti proprietà:
- Il nome dell'istanza utilizzata da Google Cloud.
- Il nome del file system utilizzato dagli strumenti lato client, ad esempio
lfs. - La capacità di archiviazione in gibibyte (GiB). La capacità può variare da 9000 GiB a circa 8 PiB (7.632.000 GiB). La dimensione massima di un'istanza dipende dal suo livello di prestazioni.
- Managed Lustre offre livelli di prestazioni che vanno da 125 MBps per TiB a 1000 MBps per TiB.
- Per ottenere prestazioni ottimali, crea l'istanza nella stessa zona del tuo cluster di addestramento.
- La rete VPC per questa istanza deve essere la stessa utilizzata dal tuo cluster di addestramento.
Managed Lustre offre 4 livelli di prestazioni, ognuno con una velocità effettiva massima diversa per TiB. I livelli di prestazioni influiscono anche sulla dimensione minima e massima dell'istanza e sulla dimensione del passo tra i valori di capacità accettabili. Non puoi modificare il livello di prestazioni di un'istanza dopo la creazione.
Il deployment di Managed Lustre richiede l'accesso ai servizi privati, che stabilisce il peering VPC tra il VPC del cluster di addestramento e il VPC che ospita Managed Lustre, utilizzando una subnet /20 dedicata.
Configura l'istanza Managed Lustre (facoltativo)
Utilizza Google Cloud Managed Lustre solo se vuoi utilizzare Managed Lustre nel servizio di sviluppo di modelli.
Google Cloud Managed Lustre è un servizio di file system parallelo completamente gestito e ad alte prestazioni su Google Cloud. È progettato specificamente per accelerare i carichi di lavoro impegnativi in AI/machine learning e computing ad alte prestazioni (HPC).
Per prestazioni ottimali quando utilizzi i cluster di addestramento, Google Cloud Managed Lustre deve essere sottoposto a deployment dallo stesso VPC e dalla stessa zona del cluster di addestramento utilizzando il peering VPC per la rete di servizi.
Crea un'istanza Lustre
gcloud lustre instances create LUSTRE_INSTANCE_ID \
--project=PROJECT_ID \
--location=ZONE \
--filesystem=lustrefs \
--per-unit-storage-throughput=500 \
--capacity-gib=36000 \
--network=NETWORK_NAME
Montaggio di Cloud Storage
Come prerequisito, assicurati che il account di servizio VM abbia il ruolo Utente oggetti Storage.
Montaggio predefinito
I cluster di addestramento di Vertex AI utilizzano Cloud Storage FUSE per montare dinamicamente i bucket Cloud Storage su tutti i nodi di accesso e di calcolo, rendendoli accessibili nella directory /gcs. I bucket montati dinamicamente non possono essere elencati dal punto di montaggio principale /gcs. Puoi accedere ai bucket montati dinamicamente come sottodirectory:
user@testcluster:$ ls /gcs/your-bucket-name
user@testcluster:$ cd /gcs/your-bucket-name
Montaggio personalizzato
Per montare un bucket Cloud Storage specifico in una directory locale con opzioni personalizzate, utilizza la seguente struttura di comando passandola come parte dello script di avvio durante la creazione del cluster o eseguendola direttamente sul nodo dopo la creazione del cluster.
sudo mkdir -p $MOUNT_DIR
echo "$GCS_BUCKET $MOUNT_DIR gcsfuse $OPTION_1,$OPTION_2,..." | sudo tee -a /etc/fstab
sudo mount -a
Ad esempio, per montare il bucket mtdata nella directory /data, utilizza il seguente comando:
sudo mkdir -p /data
echo "mtdata /data gcsfuse defaults,_netdev,implicit_dirs,allow_other,dir_mode=777,file-mode=777,metadata_cache_negative_ttl_secs=0,metadata_cache_ttl_secs=-1,stat_cache_max_size_mb=-1,type_cache_max_size_mb=-1,enable_streaming_writes=true" | sudo tee -a /etc/fstab
sudo mount -a
Per una configurazione completamente automatizzata e coerente, includi gli script di montaggio personalizzati negli script di avvio del cluster. Questa pratica garantisce che i bucket Cloud Storage vengano montati automaticamente su tutti i nodi all'avvio, eliminando la necessità di una configurazione manuale.
Per ulteriori consigli di configurazione personalizzati per i carichi di lavoro AI/ML, consulta la guida alle best practice per l'ottimizzazione delle prestazioni. Fornisce indicazioni specifiche per l'ottimizzazione di Cloud Storage FUSE per l'addestramento, l'inferenza e il checkpoint.
Passaggi successivi
I passaggi successivi si concentrano sull'utilizzo efficace del cluster per l'addestramento su larga scala.
- Adatta il codice per l'addestramento distribuito: per sfruttare appieno un cluster multi-nodo e uno spazio di archiviazione ad alte prestazioni, adatta il codice di addestramento per un ambiente distribuito.
- Orchestra i job con Vertex AI Pipelines: per i workflow di produzione, automatizza il processo di preparazione dei dati, invio dei job e registrazione dei modelli utilizzando Vertex AI Pipelines.
- Monitora ed esegui il debug dei job di addestramento: monitora l'avanzamento e l'utilizzo delle risorse dei job di addestramento distribuito per identificare e risolvere i problemi.