Configura un ambiente prima di lanciare un esperimento Vertex AI Neural Architecture Search seguendo le sezioni riportate di seguito.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Update and install
gcloud
components:gcloud components update
gcloud components install beta - Per concedere a tutti gli utenti di Neural Architecture Search la funzione
Utente Vertex AI
(
roles/aiplatform.user
), contatta l'amministratore del progetto. - Installa Docker.
Se utilizzi un sistema operativo basato su Linux, come Ubuntu o Debian, aggiungi il tuo nome utente gruppo
docker
in modo da poter eseguire Docker senza utilizzaresudo
:sudo usermod -a -G docker ${USER}
Potresti dover riavviare il sistema dopo aver aggiunto te stesso al gruppo
docker
. - Apri Docker. Per assicurarti che Docker sia in esecuzione, esegui questo comando Docker,
che restituisce la data e l'ora correnti:
docker run busybox date
- Utilizza
gcloud
come assistente per le credenziali per Docker:gcloud auth configure-docker
-
(Facoltativo) Se vuoi eseguire il container utilizzando la GPU in locale, installa
nvidia-docker
.
Configura il bucket Cloud Storage
Questa sezione illustra come creare un nuovo bucket. Puoi utilizzare un bucket esistente, ma deve trovarsi nella stessa regione in cui stai eseguendo i job di AI Platform. Inoltre, se non fa parte del progetto che stai utilizzando per eseguire Neural Architecture Search, devi esplicitamente concedere l'accesso agli account di servizio Neural Architecture Search.
-
Specifica un nome per il nuovo bucket. Il nome deve essere univoco in tutti in Cloud Storage.
BUCKET_NAME="YOUR_BUCKET_NAME"
Ad esempio, utilizza il nome del progetto con
-vertexai-nas
aggiunto:PROJECT_ID="YOUR_PROJECT_ID" BUCKET_NAME=${PROJECT_ID}-vertexai-nas
-
Controlla il nome del bucket che hai creato.
echo $BUCKET_NAME
-
Seleziona una regione per il bucket e imposta una variabile di ambiente
REGION
.Utilizza la stessa regione in cui prevedi di eseguire i job di Neural Architecture Search.
Ad esempio, il seguente codice crea
REGION
e lo imposta suus-central1
:REGION=us-central1
-
Crea il nuovo bucket:
gcloud storage buckets create gs://$BUCKET_NAME --location=$REGION
Richiedi una quota aggiuntiva per i dispositivi per il progetto
I tutorial utilizzano circa cinque CPU e non richiedono e non c'è una quota aggiuntiva. Dopo aver eseguito i tutorial, esegui del tuo job di Neural Architecture Search.
Il job Neural Architecture Search addestra un gruppo di modelli
in parallelo. Ogni modello addestrato corrisponde a un esperimento.
Leggi la sezione sull'impostazione di number-of-parallel-trials
per stimare la quantità di CPU e GPU necessarie per un job di ricerca.
Ad esempio, se ogni prova utilizza 2 GPU T4 e imposti
Da number-of-parallel-trials
a 20, allora ti servono
una quota totale di 40 GPU T4 per un job di ricerca. Inoltre, se ogni prova utilizza una CPU highmem-16
, sono necessarie 16 unità di CPU per prova, ovvero 320 unità di CPU per 20 prove parallele.
Tuttavia chiediamo un minimo di 10 quote di prova in parallelo
(o 20 GPU).
La quota iniziale predefinita per le GPU varia in base alla regione e al tipo di GPU
e in genere è 0, 6 o 12 per Tesla_T4
e 0 o 6 per Tesla_V100. La quota iniziale predefinita per le CPU
varia da regione e di solito è 20, 450 o 2.200.
(Facoltativo) Se prevedi di eseguire più job di ricerca in parallelo, e poi scalare il requisito di quota. La richiesta di una quota non comporta alcun addebito immediato. Ti viene addebitato un costo quando esegui un job.
Se non disponi di quota sufficiente e prova ad avviare un job che richiede rispetto alla quota, il job non verrà avviato viene restituito un errore simile al seguente:
Exception: Starting job failed: {'code': 429, 'message': 'The following quota metrics exceed quota limits: aiplatform.googleapis.com/custom_model_training_cpus,aiplatform.googleapis.com/custom_model_training_nvidia_v100_gpus,aiplatform.googleapis.com/custom_model_training_pd_ssd', 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.DebugInfo', 'detail': '[ORIGINAL ERROR] generic::resource_exhausted: com.google.cloud.ai.platform.common.errors.AiPlatformException: code=RESOURCE_EXHAUSTED, message=The following quota metrics exceed quota limits: aiplatform.googleapis.com/custom_model_training_cpus,aiplatform.googleapis.com/custom_model_training_nvidia_v100_gpus,aiplatform.googleapis.com/custom_model_training_pd_ssd, cause=null [google.rpc.error_details_ext] { code: 8 message: "The following quota metrics exceed quota limits: aiplatform.googleapis.com/custom_model_training_cpus,aiplatform.googleapis.com/custom_model_training_nvidia_v100_gpus,aiplatform.googleapis.com/custom_model_training_pd_ssd" }'}]}
In alcuni casi, se sono stati avviati più job per lo stesso progetto contemporaneamente e la quota non è sufficiente per tutti, uno dei job rimane in stato in coda e non avvia l'addestramento. In questo caso, annulla il job in coda e richiedi più quota o attendi il termine del job precedente.
Puoi richiedere la quota aggiuntiva per i dispositivi dalla pagina Quote. Puoi applicare filtri per trovare la quota da modificare:
- Per Servizio, seleziona API Vertex AI.
- Per regione, seleziona la regione in base a cui vuoi filtrare.
- Per Quota, seleziona il nome di un acceleratore con prefisso
Addestramento di modelli personalizzati.
- Per le GPU V100, il valore è GPU Nvidia V100 per l'addestramento di modelli personalizzati per regione.
- Per le CPU, il valore può essere CPU di addestramento di modelli personalizzati per macchina N1/E2
tipi per regione. Il numero della CPU rappresenta l'unità di CPU. Se
vuoi 8 CPU
highmem-16
, quindi effettua la richiesta di quota 8 * 16 = 128 unità CPU. Inserisci anche il valore desiderato region.
Dopo aver creato una richiesta di quota, riceverai un Case number
e segui
sullo stato della richiesta. Approvazione di una quota GPU
potrebbero essere necessari da due a cinque giorni lavorativi per l'approvazione. In generale,
l'approvazione di una quota di circa 20-30 GPU dovrebbe essere più rapida
in circa due o tre giorni, mentre l'approvazione di
circa 100 GPU potrebbe richiedere cinque giorni lavorativi. Una quota di CPU
l'approvazione potrebbe richiedere fino a due giorni lavorativi.
Tuttavia, se in una regione si sta verificando una grossa carenza di tipi di GPU,
non c'è alcuna garanzia nemmeno con una richiesta
di quota ridotta.
In questo caso, ti potrebbe essere chiesto di scegliere un'altra regione o un altro tipo di GPU. In generale, le GPU T4
più facile da ottenere rispetto alle V100. Le GPU T4 richiedono più tempo reale,
sono più convenienti.
Per ulteriori informazioni, consulta la sezione Richiesta di una quota superiore. di sicurezza.
Configura Artifact Registry per il tuo progetto
Devi configurare un registro di pacchetti per il tuo progetto e la regione in cui esegui il push delle immagini Docker.
Vai alla pagina Artifact Registry del tuo progetto. Se non è già abilitata, prima l'API Artifact Registry per il tuo progetto:
Una volta attivata, inizia a creare un nuovo repository facendo clic su CREA REPOSITORY:
Scegli Nome come nas, Formato come Docker e Tipo di località come Regione. In Regione, seleziona la località in cui esegui job e fai clic su CREA.
Dovrebbe essere creato il repository Docker desiderato, come mostrato di seguito:
Devi anche configurare l'autenticazione per spingere i docker in questo repository. La sezione per la configurazione dell'ambiente locale riportato di seguito contiene questo passaggio.
Configura il tuo ambiente locale
Puoi eseguire questi passaggi utilizzando la shell Bash nel tuo ambiente locale o in un'istanza di notebook gestiti dall'utente di Vertex AI Workbench.
Configura le variabili di ambiente di base:
gcloud config set project PROJECT_ID gcloud auth login gcloud auth application-default login
Configurare l'autenticazione Docker per il tuo Artifact Registry:
# example: REGION=europe-west4 gcloud auth configure-docker REGION-docker.pkg.dev
(Facoltativo) Configura un ambiente virtuale Python 3. L'utilizzo di Python 3 è consigliato, ma non obbligatorio:
sudo apt install python3-pip && \ pip3 install virtualenv && \ python3 -m venv --system-site-packages ~/./nas_venv && \ source ~/./nas_venv/bin/activate
Installa librerie aggiuntive:
pip install google-cloud-storage==2.6.0 pip install pyglove==0.1.0
Configurare un account di servizio
È necessario configurare un account di servizio prima di eseguire i job NAS. Puoi eseguire questi passaggi utilizzando alla shell Bash nel tuo ambiente locale oppure eseguile in Vertex AI Workbench di blocchi note gestiti dall'utente.
Crea un account di servizio:
gcloud iam service-accounts create NAME \ --description=DESCRIPTION \ --display-name=DISPLAY_NAME
Concedi i ruoli
aiplatform.user
estorage.objectAdmin
all'account di servizio:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/aiplatform.user gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/storage.objectAdmin
Ad esempio, i comandi seguenti creano un account di servizio denominato my-nas-sa
nel progetto my-nas-project
con i ruoli aiplatform.user
e storage.objectAdmin
:
gcloud iam service-accounts create my-nas-sa \
--description="Service account for NAS" \
--display-name="NAS service account"
gcloud projects add-iam-policy-binding my-nas-project \
--member=serviceAccount:my-nas-sa@my-nas-project.iam.gserviceaccount.com \
--role=roles/aiplatform.user
gcloud projects add-iam-policy-binding my-nas-project \
--member=serviceAccount:my-nas-sa@my-nas-project.iam.gserviceaccount.com \
--role=roles/storage.objectAdmin
Scarica codice
Per avviare un esperimento di Neural Architecture Search, devi scaricare il codice Python di esempio che include trainer predefiniti, definizioni dello spazio di ricerca, e le librerie client associate.
Esegui questi passaggi per scaricare il codice sorgente.
Apri un nuovo terminale Shell.
Esegui il comando Git clone:
git clone https://github.com/google/vertex-ai-nas.git