L'uso dell'IP privato per la connessione ai job di addestramento offre maggiore sicurezza di rete e minore latenza di rete rispetto all'uso dell'IP pubblico. Per utilizzare l'IP privato, puoi utilizzare Virtual Private Cloud (VPC) per eseguire il peering della rete con qualsiasi tipo di job di addestramento personalizzato Vertex AI. In questo modo il codice di addestramento può accedere a indirizzi IP privati all'interno di Google Cloud o delle reti 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 rete
con una risorsa Vertex AI CustomJob
, HyperparameterTuningJob
o personalizzata
TrainingPipeline
.
Tieni presente che non puoi utilizzare indirizzi IP privati per l'addestramento personalizzato se stai utilizzando anche una VM TPU.
Panoramica
Prima di inviare un job di addestramento personalizzato utilizzando l'IP privato, devi configurare l'accesso privato ai servizi per creare connessioni in peering tra la tua rete e Vertex AI. Se l'hai già configurata, puoi usare le connessioni in peering esistenti.
Questa guida tratta le seguenti attività:
- Capire quali intervalli IP prenotare per l'addestramento personalizzato.
- Verifica lo stato delle tue connessioni in peering esistenti.
- Esegui l'addestramento personalizzato di Vertex AI sulla tua rete.
- Verifica se è in corso l'addestramento attivo su una rete prima di farlo su un'altra.
- Verifica che il tuo codice di addestramento possa accedere a IP privati nella tua rete.
Prenota intervalli IP per l'addestramento personalizzato
Quando prenoti un intervallo IP per i producer di servizi, l'intervallo può essere utilizzato da Vertex AI e altri servizi. Questa tabella mostra il numero massimo di job di addestramento parallelo che puoi eseguire con intervalli riservati compresi tra /16 e /19, supponendo che l'intervallo venga utilizzato quasi esclusivamente da Vertex AI. Se ti connetti con altri producer di servizi utilizzando lo stesso intervallo, alloca un intervallo più ampio per ospitarli, per evitare l'esaurimento degli indirizzi 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 replica nel terzo pool di worker (per fungere da server di 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 replica nel terzo pool di worker (per fungere da server di 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 replica nel terzo pool di worker (per fungere da server di 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 in peering esistenti
Se disponi di connessioni in peering esistenti 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 in peering è ACTIVE
.
Scopri di più sulle connessioni in peering attive.
Esegui 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 il campoCustomJob.jobSpec.network
.Se usi 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 usi gcloud CLI, puoi usare il flag
--config
nel comandogcloud ai hpt-tuning-jobs create
per specificare il camponetwork
.Scopri di più sulla creazione di una
HyperparameterTuningJob
.Se stai creando una
TrainingPipeline
senza ottimizzazione iperparametri, specifica il campoTrainingPipeline.trainingTaskInputs.network
.Scopri di più sulla creazione di una
TrainingPipeline
personalizzata.Se stai creando un
TrainingPipeline
con l'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 in peering e senza accesso agli IP privati nel tuo progetto.
Esempio: creazione di un elemento CustomJob
con gcloud CLI
L'esempio seguente mostra come specificare una rete quando utilizzi gcloud CLI per eseguire un CustomJob
che utilizza un container predefinito. Se
esegui l'addestramento personalizzato in modo diverso, aggiungi il campo network
come descritto per il tipo di job di addestramento personalizzato che stai utilizzando.
Crea un file
config.yaml
per specificare la rete. Se utilizzi un VPC condiviso, utilizza il numero di progetto host del 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
CustomJob
, trasmettendo 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 informazioni su come sostituire i segnaposto in questo comando, consulta Creazione di job di addestramento personalizzati.
Esecuzione di job su reti diverse
Non puoi eseguire l'addestramento personalizzato su una nuova rete mentre continui a eseguire 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.
Test dell'accesso al job di addestramento
Questa sezione spiega come verificare che una risorsa di addestramento personalizzato possa accedere agli IP privati nella tua rete.
- Crea un'istanza Compute Engine nella tua rete VPC.
- Controlla le regole firewall per assicurarti che non limitino il traffico in entrata dalla rete Vertex AI. In tal caso, aggiungi una regola per garantire che la rete Vertex AI possa accedere all'intervallo IP che hai prenotato per Vertex AI (e altri producer di servizi).
- Configura un server locale sull'istanza VM per creare un endpoint a cui accedere un
CustomJob
di Vertex AI. - Crea un'applicazione di addestramento Python da eseguire su Vertex AI. Anziché utilizzare il codice di addestramento del modello, crea il codice che accede 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 l'utilizzo della 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 eseguirlo su un'altra rete.
Assicurati di aver allocato un intervallo IP sufficiente per tutti i producer di servizi a cui si connette la rete, incluso Vertex AI.
Per ulteriori informazioni sulla risoluzione dei problemi, consulta la Guida alla risoluzione dei problemi di peering di rete VPC.
Passaggi successivi
- Scopri di più sul peering di rete VPC.
- Consulta le architetture e le best practice di riferimento per la progettazione dei VPC.