Invia richieste API ad AI Platform Vizier
Questa pagina descrive come effettuare richieste API ad AI Platform Vizier utilizzando
curl
.
Prima di iniziare
- Leggi la panoramica di AI Platform Vizier per scoprire come funziona.
- 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 AI Platform Training and Prediction API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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 AI Platform Training and Prediction API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Accedere all'account di fatturazione Cloud
Utilizza i seguenti comandi per accedere al tuo account Google Cloud:
gcloud auth application-default login
gcloud auth login
Definizione delle costanti
Esegui i comandi seguenti, sostituendo USERNAME e PROJECT_ID con il tuo nome utente e le informazioni sull'ID progetto. Crea il nome e l'ID client del tuo studio o utilizza i valori suggeriti.
export USER=USERNAME
export PROJECT_ID=PROJECT_ID{"</var>"}}
export REGION=us-central1
export STUDY_NAME=${USER}_vizier_study_$(date +%Y%m%d%H%M%S)
export CLIENT_ID=${USER}_client_1
export ENDPOINT=https://$REGION-ml.googleapis.com/v1
Creazione di richieste API
Di seguito viene descritto come creare richieste API a riga di comando per
AI Platform Vizier utilizzando curl
.
Creazione di uno studio
Uno studio è una serie di esperimenti o prove che ti aiutano a ottimizzare i tuoi iperparametri o parametri.
Per creare uno studio, devi creare una configurazione di studio in formato JSON, quindi inviare una richiesta POST
che trasmetta la configurazione ad AI Platform Vizier.
La configurazione di studio potrebbe avere il seguente aspetto. Scopri di più sulle opzioni dell'algoritmo, sui tipi di obiettivi e su altre opzioni nella documentazione dell'API Prediction AI Platform Training and Prediction.
Nell'esempio seguente, l'obiettivo è massimizzare y = x^2
con x
nell'intervallo [-10. 10]. Questo esempio ha un solo parametro e utilizza una funzione facilmente calcolabile per dimostrare come utilizzare AI Platform Vizier.
Scopri di più su come AI Platform Vizier può essere utilizzato per problemi di ottimizzazione complessi e su come ottimizzare più funzioni contemporaneamente.
cat > /tmp/create_study.json <<EOF
{
"studyConfig": {
"algorithm": 0,
"metrics": [
{
"goal": "MAXIMIZE",
"metric": "y"
}
],
"parameters": [
{
"doubleValueSpec": {
"maxValue": 10.0,
"minValue": -10.0
},
"parameter": "x",
"type": "DOUBLE"
}
]
}
}
EOF
Per creare lo studio utilizzando la configurazione dello studio, invia
la seguente richiesta POST
.
curl -X POST -H "Content-Type: application/json" \
-d @/tmp/create_study.json \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies?study_id=${STUDY_NAME}"
Partecipare a uno studio
Per partecipare a uno studio, invia la seguente richiesta.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}"
Studi sulle schede
Per elencare gli studi in un progetto e una regione specifici, invia la seguente richiesta.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/"
Ricevere prove suggerite
Per ricevere un suggerimento per la prova da AI Platform Vizier, crea un file JSON contenente un suggestionCount
e il tuo ID client.
Poi invii una richiesta POST
che trasmette queste informazioni
a AI Platform Vizier.
Crea il file JSON utilizzando i seguenti comandi. Modifica suggestionCount
in base al numero di suggerimenti che vuoi ricevere da ogni richiesta.
cat > /tmp/suggest_trial.json <<EOF
{
"suggestionCount": 1,
"clientId": "${CLIENT_ID}"
}
EOF
Per ricevere il suggerimento o i suggerimenti, invia la seguente richiesta POST
.
curl -X POST -H "Content-Type: application/json" \
-d @/tmp/suggest_trial.json \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}/trials:suggest"
suggestTrial
avvia un'operazione a lunga esecuzione che genera la prova. La risposta ti informa che AI Platform Vizier
è al lavoro sui suggerimenti per le prove. Questa risposta avrà il seguente formato:
{
"name": "projects/<project>/locations/<region>/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.ml.v1.SuggestTrialsMetadata",
"study": <study-name>,
"createTime": <create-time>,
"suggestionCount": <suggestion-count>
}
}
Puoi utilizzare l'ID operazione nella risposta precedente per eseguire il polling dell'operazione di suggerimento e ricevere i suggerimenti di prova. Utilizza il seguente comando:
SUGGEST_OPERATION_ID=OPERATION_ID
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/operations/${SUGGEST_OPERATION_ID}"
Se non ricevi una risposta, la
suggestTrial
richiesta potrebbe non essere stata completata. Ripeti il comando precedente, se necessario.
La risposta fornisce suggerimenti per la prova, nel seguente formato:
{
"name": "projects/<project>/locations/<region>/operations/<operation-id>",
"metadata": {...},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.ml.v1.SuggestTrialsResponse",
"trials": [
{
"name": "projects/<project>/locations/<region>/studies/<study-id>/trials/TRIAL_ID",
"state": "ACTIVE",
"parameters": [
{
"parameter": "x",
"floatValue": 0.1
}
],
...
}
],
...
}
}
Nell'esempio precedente, questo esperimento suggerisce di utilizzare il valore 0.1
per il parametro x
.
Utilizzando l'ID prova della risposta precedente, puoi ottenere la prova utilizzando il seguente comando:
TRIAL_ID=TRIAL_ID
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}/trials/${TRIAL_ID}"
Valutazione dei risultati
Dopo aver ricevuto i suggerimenti per le prove, valuta ogni prova e registra ogni risultato come misurazione.
Ad esempio, se la funzione che stai cercando di ottimizzare è y = x^2
, la valuti utilizzando il valore suggerito dalla prova di x
.
Utilizzando un valore suggerito di 0.1
, la funzione restituisce y = 0.1 * 0.1
,
che corrisponde a 0.01
.
Aggiunta di una misurazione
Dopo aver valutato il suggerimento di prova per ottenere una misurazione, aggiungi
questa misurazione alla prova. Innanzitutto, crea un file JSON contenente la metrica misurata e il risultato.
Poi invii una richiesta POST
che trasmette queste informazioni
a AI Platform Vizier.
Memorizza la misurazione e crea il file JSON utilizzando i seguenti comandi. 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
.
METRIC_VALUE=RESULT
cat > /tmp/add_measurement.json <<EOF
{
"measurement": {
"stepCount": 1,
"metrics": [
{
"metric": "y",
"value": ${METRIC_VALUE}
}
]
}
}
EOF
Per aggiungere questa misurazione alla prova, invia la seguente richiesta POST
.
curl -X POST -H "Content-Type: application/json" \
-d @/tmp/add_measurement.json \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}/trials/${TRIAL_ID}:addMeasurement"
Completare una prova
Dopo aver aggiunto tutte le misurazioni per una prova, completala utilizzando
il seguente comando. Se vuoi, puoi aggiungere una misurazione finale quando chiami
completeTrial
.
Senza misurazione finale
Per completare la prova senza aggiungere una misurazione finale,
invia la seguente richiesta POST
.
curl -X POST -H "Content-Type: application/json" \
-d "" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}/trials/${TRIAL_ID}:complete"
Con la misurazione finale
Per includere una misurazione finale al termine della prova, memorizzala e crea un file JSON utilizzando i seguenti comandi, sostituendo RESULT con la misurazione finale.
FINAL_METRIC_VALUE=RESULT
cat > /tmp/complete_trial.json <<EOF
{
"finalMeasurement": {
"stepCount": 1,
"metrics": [
{
"metric": "y",
"value": ${FINAL_METRIC_VALUE}
}
]
}
}
EOF
Invia la seguente richiesta POST
.
curl -X POST -H "Content-Type: application/json" \
-d @/tmp/complete_trial.json \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}/trials/${TRIAL_ID}:complete"
Prove delle schede
Per elencare i trial in uno studio specifico, invia la seguente richiesta.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}/trials/"
Una volta completate tutte le prove in attesa, puoi chiamare
suggestTrial
per ricevere altri suggerimenti e ripetere la procedura di valutazione della prova.
Passaggi successivi
Per esempi su come utilizzare l'API, consulta quanto segue: