Membuat permintaan API ke AI Platform Vizier
Halaman ini menjelaskan cara membuat permintaan API ke AI Platform Vizier menggunakan
curl
.
Sebelum memulai
- Baca ringkasan AI Platform Vizier untuk mempelajari cara kerja AI Platform Vizier.
- 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
Login ke akun Penagihan Cloud
Gunakan perintah berikut untuk login ke akun Google Cloud Anda:
gcloud auth application-default login
gcloud auth login
Menentukan konstanta
Jalankan perintah berikut, dengan mengganti USERNAME dan PROJECT_ID dengan nama pengguna dan informasi project ID Anda. Buat nama studi dan client ID Anda sendiri atau gunakan nilai yang disarankan.
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
Membuat permintaan API
Berikut ini penjelasan cara membuat permintaan API command line ke
AI Platform Vizier, menggunakan curl
.
Membuat studi
Studi adalah serangkaian eksperimen, atau uji coba, yang membantu Anda mengoptimalkan hyperparameter atau parameter Anda.
Untuk membuat studi, Anda membuat konfigurasi studi dalam format JSON, lalu mengirim permintaan POST
yang meneruskan konfigurasi Anda ke AI Platform Vizier.
Konfigurasi studi mungkin terlihat seperti berikut. Pelajari lebih lanjut opsi algoritma, jenis sasaran, dan opsi lainnya dalam dokumentasi AI Platform Training dan Prediction API.
Dalam contoh berikut, sasarannya adalah memaksimalkan y = x^2
dengan x
dalam rentang [-10. 10]. Contoh ini hanya memiliki satu parameter dan menggunakan fungsi yang mudah dihitung untuk membantu menunjukkan cara menggunakan AI Platform Vizier.
Anda dapat mempelajari lebih lanjut cara AI Platform Vizier dapat digunakan untuk masalah pengoptimalan yang kompleks, dan cara mengoptimalkan beberapa fungsi sekaligus.
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
Untuk membuat studi menggunakan konfigurasi studi Anda, kirim permintaan POST
berikut.
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}"
Mendapatkan studi
Untuk mendapatkan studi, kirim permintaan berikut.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}"
Mencantumkan studi
Untuk mencantumkan studi dalam project dan region tertentu, kirim permintaan berikut.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/"
Mendapatkan saran uji coba
Untuk mendapatkan saran uji coba dari AI Platform Vizier, Anda harus membuat file JSON yang berisi suggestionCount
dan client ID Anda.
Kemudian, Anda mengirim permintaan POST
yang meneruskan informasi ini
ke AI Platform Vizier.
Buat file JSON menggunakan perintah berikut. Ubah
suggestionCount
ke jumlah saran
yang Anda inginkan dari setiap permintaan.
cat > /tmp/suggest_trial.json <<EOF
{
"suggestionCount": 1,
"clientId": "${CLIENT_ID}"
}
EOF
Untuk mendapatkan saran, kirim permintaan POST
berikut.
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
memulai operasi yang berjalan lama yang berfungsi untuk menghasilkan
uji coba. Responsnya memungkinkan Anda mengetahui bahwa AI Platform Vizier sedang memproses saran uji coba. Respons ini akan dalam
format berikut:
{
"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>
}
}
Anda dapat menggunakan ID operasi dalam respons sebelumnya untuk melakukan polling operasi saran dan mendapatkan saran uji coba. Gunakan perintah berikut:
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}"
Jika Anda tidak mendapatkan respons, permintaan
suggestTrial
mungkin belum selesai. Ulangi perintah sebelumnya jika perlu.
Respons memberikan saran uji coba, dalam format ini:
{
"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
}
],
...
}
],
...
}
}
Pada contoh di atas, uji coba ini menyarankan penggunaan nilai 0.1
untuk parameter x
.
Dengan menggunakan ID uji coba dari respons sebelumnya, Anda bisa mendapatkan uji coba menggunakan perintah berikut:
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}"
Mengevaluasi hasil
Setelah menerima saran uji coba, Anda mengevaluasi setiap uji coba dan mencatat setiap hasil sebagai pengukuran.
Misalnya, jika fungsi yang ingin Anda optimalkan adalah y = x^2
, Anda perlu mengevaluasi fungsi menggunakan nilai x
yang disarankan dalam uji coba.
Dengan menggunakan nilai 0.1
yang disarankan, fungsi tersebut dievaluasi menjadi y = 0.1 * 0.1
, yang menghasilkan 0.01
.
Menambahkan pengukuran
Setelah mengevaluasi saran uji coba Anda untuk mendapatkan pengukuran, tambahkan pengukuran ini ke uji coba Anda. Pertama, Anda membuat file JSON yang berisi metrik yang diukur dan hasilnya.
Kemudian, Anda mengirim permintaan POST
yang meneruskan informasi ini
ke AI Platform Vizier.
Simpan pengukuran Anda dan buat file JSON menggunakan perintah berikut. Dalam contoh ini, Anda mengganti RESULT dengan pengukuran. Jika fungsi yang Anda optimalkan adalah y = x^2
, dan nilai x
yang disarankan adalah 0.1
, hasilnya adalah 0.01
.
METRIC_VALUE=RESULT
cat > /tmp/add_measurement.json <<EOF
{
"measurement": {
"stepCount": 1,
"metrics": [
{
"metric": "y",
"value": ${METRIC_VALUE}
}
]
}
}
EOF
Untuk menambahkan pengukuran ini ke uji coba Anda, kirim permintaan POST
berikut.
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"
Menyelesaikan uji coba
Setelah menambahkan semua pengukuran untuk uji coba, selesaikan uji coba menggunakan perintah berikut. Secara opsional, Anda dapat menambahkan pengukuran akhir saat memanggil
completeTrial
.
Tanpa pengukuran akhir
Untuk menyelesaikan uji coba tanpa menambahkan pengukuran akhir,
kirim permintaan POST
berikut.
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"
Dengan pengukuran akhir
Untuk menyertakan pengukuran akhir saat Anda menyelesaikan uji coba, simpan pengukuran akhir terlebih dahulu dan buat file JSON menggunakan perintah berikut, yang menggantikan RESULT dengan pengukuran akhir.
FINAL_METRIC_VALUE=RESULT
cat > /tmp/complete_trial.json <<EOF
{
"finalMeasurement": {
"stepCount": 1,
"metrics": [
{
"metric": "y",
"value": ${FINAL_METRIC_VALUE}
}
]
}
}
EOF
Kirim permintaan POST
berikut.
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"
Mencantumkan uji coba
Untuk mencantumkan uji coba dalam studi tertentu, kirim permintaan berikut.
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" \
"${ENDPOINT}/projects/${PROJECT_ID}/locations/${REGION}/studies/${STUDY_NAME}/trials/"
Setelah menyelesaikan semua uji coba yang tertunda, Anda dapat memanggil suggestTrial
untuk mendapatkan saran lainnya dan mengulangi proses evaluasi uji coba.
Langkah selanjutnya
Untuk contoh cara menggunakan API, lihat hal berikut: