In questa pagina viene descritto come inviare richieste API a Vertex AI Vizier utilizzando Python. Per informazioni su come funziona Vertex AI Vizier, consulta Panoramica di Vertex AI Vizier.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Attiva Vertex AI API.
-
Crea un account di servizio:
-
Nella console Google Cloud, vai alla pagina Crea account di servizio.
Vai a Crea account di servizio - Seleziona il progetto.
-
Nel campo Nome account di servizio, inserisci un nome. La console Google Cloud compila il campo ID account di servizio in base a questo nome.
Nel campo Descrizione account di servizio, inserisci una descrizione. Ad esempio,
Service account for quickstart
. - Fai clic su Crea e continua.
-
Concedi il ruolo Project > Owner all'account di servizio.
Per concedere il ruolo, trova l'elenco Seleziona un ruolo e scegli Project > Owner.
- Fai clic su Continua.
-
Fai clic su Fine per completare la creazione dell'account di servizio.
Non chiudere la finestra del browser. La utilizzerai nel passaggio successivo.
-
-
Crea una chiave dell'account di servizio:
- Nella console Google Cloud, fai clic sull'indirizzo email dell'account di servizio che hai creato.
- Fai clic su Chiavi.
- Fai clic su Aggiungi chiave, quindi su Crea nuova chiave.
- Fai clic su Crea. Un file della chiave JSON viene scaricato sul computer.
- Fai clic su Chiudi.
-
Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
sul percorso del file JSON contenente la chiave dell'account di servizio. Questa variabile si applica solo alla sessione di Shell corrente, quindi se apri una nuova sessione, impostala di nuovo. -
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Attiva Vertex AI API.
-
Crea un account di servizio:
-
Nella console Google Cloud, vai alla pagina Crea account di servizio.
Vai a Crea account di servizio - Seleziona il progetto.
-
Nel campo Nome account di servizio, inserisci un nome. La console Google Cloud compila il campo ID account di servizio in base a questo nome.
Nel campo Descrizione account di servizio, inserisci una descrizione. Ad esempio,
Service account for quickstart
. - Fai clic su Crea e continua.
-
Concedi il ruolo Project > Owner all'account di servizio.
Per concedere il ruolo, trova l'elenco Seleziona un ruolo e scegli Project > Owner.
- Fai clic su Continua.
-
Fai clic su Fine per completare la creazione dell'account di servizio.
Non chiudere la finestra del browser. La utilizzerai nel passaggio successivo.
-
-
Crea una chiave dell'account di servizio:
- Nella console Google Cloud, fai clic sull'indirizzo email dell'account di servizio che hai creato.
- Fai clic su Chiavi.
- Fai clic su Aggiungi chiave, quindi su Crea nuova chiave.
- Fai clic su Crea. Un file della chiave JSON viene scaricato sul computer.
- Fai clic su Chiudi.
-
Imposta la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALS
sul percorso del file JSON contenente la chiave dell'account di servizio. Questa variabile si applica solo alla sessione di Shell corrente, quindi se apri una nuova sessione, impostala di nuovo. - Installa l'SDK Vertex AI per Python.
Definisci costanti
Per definire le costanti, esegui questi comandi, sostituendo REGION
e PROJECT_ID
con l'ID regione e il progetto ID.
Crea il nome dello studio o utilizza i valori suggeriti.
import json
import datetime
from google.cloud import aiplatform
REGION = "REGION"
PROJECT_ID = "PROJECT_ID"
# The following placeholder variables are automatically filled in.
STUDY_DISPLAY_NAME = '{}_study_{}'.format(PROJECT_ID.replace('-', ''), datetime.datetime.now().strftime('%Y%m%d_%H%M%S')) #@param {type: 'string'}
ENDPOINT = REGION + '-aiplatform.googleapis.com'
PARENT = 'projects/{}/locations/{}'.format(PROJECT_ID, REGION)
Creare richieste API
Le seguenti richieste API a riga di comando sono scritte in Python.
Crea uno studio
Uno studio è una serie di esperimenti, o prove, che ti aiutano a ottimizzare gli iperparametri o i parametri.
Nel seguente esempio, l'obiettivo è massimizzare y = x^2
con x
nell'intervallo [-10]. 10] Questo esempio ha un solo
parametro e utilizza una funzione calcolata facilmente per aiutare
a dimostrare come utilizzare Vertex AI Vizier.
param_x = {
'parameter_id': 'x',
'double_value_spec': {
'min_value': -10.0,
'max_value': 10.0
}
}
metric_y = {
'metric_id': 'y',
'goal': 'MAXIMIZE'
}
study = {
'display_name': STUDY_DISPLAY_NAME,
'study_spec': {
'algorithm': 'RANDOM_SEARCH',
'parameters': [param_x],
'metrics': [metric_y],
}
}
Per creare lo studio utilizzando la configurazione dello studio, invia la seguente richiesta tramite VizierServiceClient
. Utilizza il metodo STUDY_NAME
restituito per eseguire una query sullo studio.
vizier_client = aiplatform.gapic.VizierServiceClient(client_options=dict(api_endpoint=ENDPOINT))
study = vizier_client.create_study(parent=PARENT, study=study)
STUDY_NAME = study.name
Visualizza il tuo studio
Dopo aver creato lo studio, puoi trovarlo in Google Cloud Console, nella sezione Vertex AI, alla pagina Esperimenti.
Ottieni uno studio
Per ottenere uno studio, invia la seguente richiesta.
vizier_client.get_study({'name': STUDY_NAME})
Elenca studi
Per elencare gli studi in un progetto e una regione specifici, invia la seguente richiesta:
vizier_client.list_studies({'parent': PARENT})
Ricevi prove suggerite
Per ricevere un suggerimento di prova da Vertex AI Vizier, crea una richiesta contenente un SUGGEST_COUNT
e un CLIENT_ID
. Invia queste informazioni a Vertex AI Vizier inviando la richiesta.
Crea la richiesta utilizzando i seguenti comandi. Modifica
SUGGEST_COUNT
il numero di suggerimenti
che vuoi ricevere da ogni richiesta.
suggest_response = vizier_client.suggest_trials({
'parent': STUDY_NAME,
'suggestion_count': SUGGEST_COUNT,
'client_id': CLIENT_ID
})
suggest_trials
avvia un'operazione a lunga esecuzione per generare la prova.
La risposta ti fa sapere che Vertex AI Vizier sta lavorando ai suggerimenti di prova.
Per attendere il risultato restituito, utilizza la funzione result()
.
suggest_response.result().trials
Il seguente formato mostra un esempio di prova. Questa prova suggerisce di utilizzare il valore 0.1
per il parametro x
.
name: "TRIAL_ID"
state: ACTIVE
parameters {
parameter_id: "x"
value {
number_value: 0.1
}
}
start_time {
seconds: 1618011215
}
Usa il TRIAL_ID
della risposta precedente per ottenere la prova:
vizier_client.get_trial({
'name': TRIAL_ID
})
Valutare i risultati
Dopo aver ricevuto i suggerimenti di prova, valuta ogni prova e registra ogni risultato come una misurazione.
Ad esempio, se la funzione che stai cercando di ottimizzare è y = x^2
, la valuti utilizzando il valore suggerito di x
per la prova.
Utilizzando un valore suggerito di 0.1
, la funzione restituisce y = 0.1 * 0.1
,
di conseguenza, 0.01
.
Aggiungere una misurazione
Dopo aver valutato il suggerimento della prova per ottenere una misurazione, aggiungi questa misurazione alla prova.
Utilizza i comandi seguenti per memorizzare la misurazione e inviare la richiesta.
In questo esempio, sostituisci RESULT
con la misurazione. Se la funzione che stai ottimizzando è y = x^2
e il valore suggerito di x
è 0.1
, il risultato è 0.01
.
vizier_client.add_trial_measurement({
'trial_name': TRIAL_ID,
'measurement': {