L'utilizzo dell'IP privato per connettersi ai job di addestramento offre maggiore sicurezza di rete e minore latenza di rete rispetto all'utilizzo dell'IP pubblico. Per utilizzare IPv4 privato, utilizza Virtual Private Cloud (VPC) per eseguire il peering della tua rete con qualsiasi tipo di job di addestramento personalizzato Vertex AI. In questo modo, il codice di addestramento può accedere agli indirizzi IP privati all'interno delle reti Google Cloud o on-premise.
Questa guida mostra come eseguire job di addestramento personalizzato nella tua rete dopo aver già configurato il peering di rete VPC per eseguire il peering della tua rete con una risorsa CustomJob
, HyperparameterTuningJob
o TrainingPipeline
personalizzata di Vertex AI.
Panoramica
Prima di inviare un job di addestramento personalizzato utilizzando un indirizzo IP privato, devi configurare l'accesso ai servizi privati per creare connessioni in peering tra la tua rete e Vertex AI. Se l'hai già configurato, puoi utilizzare le connessioni di peering esistenti.
Questa guida illustra le seguenti attività:
- Scopri quali intervalli IP prenotare per l'addestramento personalizzato.
- Verifica lo stato delle connessioni di peering esistenti.
- Esegui l'addestramento personalizzato di Vertex AI sulla tua rete.
- Verifica la presenza di un addestramento attivo su una rete prima di eseguire l'addestramento su un'altra rete.
- Verifica che il codice di addestramento possa accedere agli IP privati della tua rete.
Prenotare intervalli IP per l'addestramento personalizzato
Quando prenoti un intervallo IP per i produttori di servizi, l'intervallo può essere utilizzato da Vertex AI e da altri servizi. Questa tabella mostra il numero massimo di job di addestramento paralleli che puoi eseguire con intervalli riservati da /16 a /19, supponendo che l'intervallo sia utilizzato quasi esclusivamente da Vertex AI. Se ti colleghi ad altri produttori di servizi che utilizzano lo stesso intervallo, assegna un intervallo più ampio per accoglierli, in modo da evitare l'esaurimento degli IP.
Configurazione della macchina per il job di addestramento | Intervallo riservato | Numero massimo di job paralleli | |
---|---|---|---|
Fino a 8 nodi. Ad esempio: 1 replica principale nel primo pool di worker, 6 repliche nel secondo pool di worker e 1 worker nel terzo pool di worker (per fungere da server parametri) |
/16 | 63 | |
/17 | 31 | ||
/18 | 15 | ||
/19 | 7 | ||
Fino a 16 nodi. Ad esempio: 1 replica principale nel primo pool di worker, 14 repliche nel secondo pool di worker e 1 worker nel terzo pool di worker (per fungere da server parametri) |
/16 | 31 | |
/17 | 15 | ||
/18 | 7 | ||
/19 | 3 | ||
Fino a 32 nodi. Ad esempio: 1 replica principale nel primo pool di worker, 30 repliche nel secondo pool di worker e 1 worker nel terzo pool di worker (per fungere da server parametri) |
/16 | 15 | |
/17 | 7 | ||
/18 | 3 | ||
/19 | 1 |
Scopri di più sulla configurazione dei pool di worker per l'addestramento distribuito.
Controllare lo stato delle connessioni di peering esistenti
Se hai già connessioni di peering che utilizzi con Vertex AI, puoi elencarle per verificarne lo stato:
gcloud compute networks peerings list --network NETWORK_NAME
Dovresti vedere che lo stato delle connessioni peering è ACTIVE
.
Scopri di più sulle connessioni di peering attive.
Eseguire l'addestramento personalizzato
Quando esegui l'addestramento personalizzato, devi specificare il nome della rete a cui vuoi che Vertex AI abbia accesso.
A seconda di come esegui l'addestramento personalizzato, specifica la rete in uno dei seguenti campi dell'API:
Se stai creando un
CustomJob
, specifica ilCustomJob.jobSpec.network
campo.Se utilizzi Google Cloud CLI, puoi utilizzare il flag
--config
nel comandogcloud ai custom-jobs create
per specificare il camponetwork
.Scopri di più sulla creazione di un
CustomJob
.Se stai creando un
HyperparameterTuningJob
, specifica il campoHyperparameterTuningJob.trialJobSpec.network
.Se utilizzi gcloud CLI, puoi utilizzare il flag
--config
nel comandogcloud ai hpt-tuning-jobs create
per specificare ilnetwork
campo.Scopri di più sulla creazione di un
HyperparameterTuningJob
.Se stai creando un
TrainingPipeline
senza l'ottimizzazione degli iperparametri, specifica il campoTrainingPipeline.trainingTaskInputs.network
.Scopri di più sulla creazione di un
TrainingPipeline
personalizzato.Se stai creando un
TrainingPipeline
con ottimizzazione degli iperparametri, specifica il campoTrainingPipeline.trainingTaskInputs.trialJobSpec.network
.
Se non specifichi un nome di rete, Vertex AI esegue l'addestramento personalizzato senza una connessione di peering e senza accesso agli IP privati nel tuo progetto.
Esempio: creazione di un CustomJob
con gcloud CLI
Il seguente esempio mostra come specificare una rete quando utilizzi gcloud CLI per eseguire un CustomJob
che utilizza un contenitore predefinito. Se svolgi l'addestramento personalizzato in modo diverso, aggiungi il campo network
come descritto per il tipo di job di addestramento personalizzato che utilizzi.
Crea un file
config.yaml
per specificare la rete. Se utilizzi la Rete VPC condiviso, utilizza il numero del progetto host VPC.Assicurati che il nome della rete sia formattato correttamente:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") cat <<EOF > config.yaml network: projects/PROJECT_NUMBER/global/networks/NETWORK_NAME EOF
Crea un'applicazione di addestramento da eseguire su Vertex AI.
Crea il file
CustomJob
passando il fileconfig.yaml
:gcloud ai custom-jobs create \ --region=LOCATION \ --display-name=JOB_NAME \ --python-package-uris=PYTHON_PACKAGE_URIS \ --worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE \ --config=config.yaml
Per scoprire come sostituire i segnaposto in questo comando, consulta Creare job di addestramento personalizzati.
Eseguire job su reti diverse
Non puoi eseguire l'addestramento personalizzato su una nuova rete mentre esegui ancora l'addestramento personalizzato su un'altra rete. Prima di passare a un'altra rete, devi attendere il completamento di tutte le risorse CustomJob
, HyperparameterTuningJob
e TrainingPipeline
personalizzate inviate oppure devi annullarle.
Testa l'accesso ai job di addestramento
Questa sezione spiega come verificare che una risorsa di addestramento personalizzata possa accedere agli IP privati della tua rete.
- Crea un'istanza Compute Engine nella tua rete VPC.
- Controlla le regole del firewall per assicurarti che non limitino l'accesso dalla rete Vertex AI. In questo caso, aggiungi una regola per assicurarti che la rete Vertex AI possa accedere all'intervallo IP riservato a Vertex AI (e ad altri produttori di servizi).
- Configura un server locale sull'istanza VM per creare un endpoint a cui un
CustomJob
Vertex AI può accedere. - Crea un'applicazione di addestramento Python da eseguire su Vertex AI. Anziché il codice di addestramento del modello, crea un codice che acceda all'endpoint configurato nel passaggio precedente.
- Segui l'esempio precedente per creare un
CustomJob
.
Problemi comuni
Questa sezione elenca alcuni problemi comuni relativi alla configurazione del peering di rete VPC con Vertex AI.
Quando configuri Vertex AI per utilizzare la tua rete, specifica il nome completo della rete:
"projects/YOUR_PROJECT_NUMBER/global/networks/YOUR_NETWORK_NAME"
Assicurati di non eseguire l'addestramento personalizzato su una rete prima di eseguire l'addestramento personalizzato su un'altra rete.
Assicurati di aver allocato un intervallo IP sufficiente per tutti i produttori di servizi a cui si connette la tua rete, incluso Vertex AI.
Per ulteriori informazioni sulla risoluzione dei problemi, consulta la guida alla risoluzione dei problemi relativi al peering di rete VPC.
Passaggi successivi
- Scopri di più sul peering di rete VPC.
- Consulta le architetture di riferimento e le best practice per la progettazione di VPC.