API-Anfragen an AI Platform Vizier senden
Auf dieser Seite wird beschrieben, wie Sie mit curl
API-Anfragen an AI Platform Vizier stellen.
Hinweis
- Lesen Sie die Übersicht zu AI Platform Vizier, um mehr über die Funktionsweise von AI Platform Vizier zu erfahren.
- 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.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
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.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Enable the AI Platform Training and Prediction API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Im Cloud-Rechnungskonto anmelden
Melden Sie sich mit den folgenden Befehlen in Ihrem Google Cloud-Konto an:
gcloud auth application-default login
gcloud auth login
Konstanten definieren
Führen Sie die folgenden Befehle aus und ersetzen Sie dabei USERNAME und PROJECT_ID durch Ihren Nutzernamen und die Projekt-ID. Den Studiennamen und die Client-ID können Sie selbst vergeben oder die vorgeschlagenen Werte verwenden.
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
API-Anfragen erstellen
Im Folgenden wird beschrieben, wie API-Anfragen über die Befehlszeile mit curl
in AI Platform Viziererstellt werden.
Studie erstellen
Eine Studie ist eine Reihe von experimentellen oder anderen Tests, mit denen Sie Ihre Hyperparameter oder Parameter optimieren können.
Erstellen Sie zum Erstellen einer Studie eine Studienkonfiguration im JSON-Format und senden Sie anschließend eine POST
-Anfrage, die Ihre Konfiguration an AI Platform Vizier weiterleitet.
Die Konfiguration der Studie könnte so aussehen: Weitere Informationen zu Algorithmusoptionen, Zieltypen und anderen Optionen finden Sie in der Dokumentation zur AI Platform Training and Prediction API.
Im folgenden Beispiel soll y = x^2
mit x
im Bereich von [-10. 10] maximiert werden. Dieses Beispiel hat nur einen Parameter und nutzt eine einfach berechnete Funktion, um die Verwendung von AI Platform Vizier zu demonstrieren.
Sie finden weitere Informationen dazu, wie AI Platform Vizier für komplexe Optimierungsprobleme verwendet werden kann und wie Sie mehrere Funktionen gleichzeitig optimieren.
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
Zur Erstellung der Studie mithilfe der Studienkonfiguration senden Sie die folgende POST
-Anfrage.
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}"
Studie abrufen
Senden Sie die folgende Anfrage, um eine Studie zu erhalten.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}"
Studien auflisten
Senden Sie die folgende Anfrage, wenn Sie die Studien in einem bestimmten Projekt und einer bestimmten Region auflisten möchten.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/"
Vorschläge für Tests abrufen
Wenn Sie einen Testvorschlag von AI Platform Vizier erhalten möchten, erstellen Sie eine JSON-Datei, die eine suggestionCount
und Ihre Client-ID enthält.
Anschließend senden Sie eine POST
-Anfrage, die diese Informationen an AI Platform Vizier weiterleitet.
Erstellen Sie die JSON-Datei mit den folgenden Befehlen. Ändern Sie suggestionCount
in die Anzahl der Vorschläge, die Sie von jeder Anfrage erhalten möchten.
cat > /tmp/suggest_trial.json <<EOF
{
"suggestionCount": 1,
"clientId": "${CLIENT_ID}"
}
EOF
Senden Sie die folgende POST
-Anfrage, um den oder die Vorschläge zu erhalten.
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
startet einen Vorgang mit langer Ausführungszeit, mit dem der Test generiert wird. Die Antwort weist darauf hin, dass AI Platform Vizier an Testvorschlägen arbeitet. Die Antwort hat folgendes Format:
{
"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>
}
}
Mit der Vorgangs-ID aus der vorherigen Antwort können Sie den Vorgang zu den Vorschlägen abfragen und erhalten so die Testvorschläge. Verwenden Sie den folgenden Befehl:
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}"
Wenn Sie keine Antwort erhalten, ist die Anfrage suggestTrial
eventuell noch nicht abgeschlossen. Wiederholen Sie gegebenenfalls den vorherigen Befehl.
Die Antwort enthält Vorschläge für Tests in folgendem Format:
{
"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
}
],
...
}
],
...
}
}
Im obigen Beispiel schlägt dieser Test vor, den Wert 0.1
für den Parameter x
zu verwenden.
Mit der Test-ID aus der vorherigen Antwort können Sie den Test mit dem folgenden Befehl abrufen:
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}"
Ergebnisse beurteilen
Nachdem Sie die Testvorschläge erhalten haben, bewerten Sie jeden Test und erfassen jedes Ergebnis als Messung.
Wenn die Funktion, die Sie optimieren möchten, beispielsweise y = x^2
ist, bewerten Sie die Funktion mit dem im Test vorgeschlagenen Wert von x
.
Bei Verwenden des vorgeschlagenen Werts 0.1
wird die Funktion mit y = 0.1 * 0.1
bewertet, und das Ergebnis ist 0.01
.
Messung hinzufügen
Nachdem Sie den Testvorschlag bewertet haben, um eine Messung zu erhalten, fügen Sie die Messung Ihrem Test hinzu. Zuerst erstellen Sie eine JSON-Datei, die den gemessenen Messwert und das Ergebnis enthält.
Anschließend senden Sie eine POST
-Anfrage, die diese Informationen an AI Platform Vizier weiterleitet.
Speichern Sie Ihre Messung und erstellen Sie die JSON-Datei mit den folgenden Befehlen. In diesem Beispiel ersetzen Sie RESULT durch die Messung. Wenn die zu optimierende Funktion y = x^2
lautet und der vorgeschlagene Wert von x
gleich 0.1
ist, ist das Ergebnis 0.01
.
METRIC_VALUE=RESULT
cat > /tmp/add_measurement.json <<EOF
{
"measurement": {
"stepCount": 1,
"metrics": [
{
"metric": "y",
"value": ${METRIC_VALUE}
}
]
}
}
EOF
Senden Sie die folgende POST
-Anfrage, um dem Test die Messung hinzuzufügen.
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"
Test abschließen
Nachdem Sie alle Messungen für einen Test hinzugefügt haben, schließen Sie den Test mit dem folgenden Befehl ab. Optional können Sie eine abschließende Messung hinzufügen. Rufen Sie dazu completeTrial
auf.
Ohne abschließende Messung
Senden Sie die folgende POST
-Anfrage, um den Test abzuschließen, ohne eine endgültige Messung hinzuzufügen.
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"
Mit abschließender Messung
Wenn Sie eine endgültige Messung nach Abschluss des Tests wünschen, speichern Sie zuerst die endgültige Messung und erstellen eine JSON-Datei mit den nachfolgenden Befehlen. Ersetzen Sie dabei RESULT durch die endgültige Messung.
FINAL_METRIC_VALUE=RESULT
cat > /tmp/complete_trial.json <<EOF
{
"finalMeasurement": {
"stepCount": 1,
"metrics": [
{
"metric": "y",
"value": ${FINAL_METRIC_VALUE}
}
]
}
}
EOF
Senden Sie die folgende POST
-Anfrage:
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"
Tests auflisten
Senden Sie die folgende Anfrage, um Tests in einer bestimmten Studie aufzulisten.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}/trials/"
Sobald Sie alle ausstehenden Tests abgeschlossen haben, können Sie suggestTrial
aufrufen, um weitere Vorschläge zu erhalten und den Testvorgang zu wiederholen.
Weitere Informationen
Beispiele für die Verwendung der API finden Sie hier: