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.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan AI Platform Training and Prediction API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan 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 Anda
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, buat konfigurasi studi dalam format JSON, lalu
kirim 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 and 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 menggunakan AI Platform Vizier 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}"
Studi listingan
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 uji coba yang disarankan
Untuk mendapatkan saran uji coba dari AI Platform Vizier, buat
file JSON yang berisi suggestionCount
dan client ID Anda.
Lalu, Anda mengirim permintaan POST
yang meneruskan informasi ini
ke AI Platform Vizier.
Buat file JSON menggunakan perintah berikut. Ubah
suggestionCount
menjadi jumlah saran
yang Anda inginkan dari setiap permintaan.
cat > /tmp/suggest_trial.json <<EOF
{
"suggestionCount": 1,
"clientId": "${CLIENT_ID}"
}
EOF
Untuk mendapatkan saran atau 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 memberi tahu Anda bahwa AI Platform Vizier
sedang memproses saran uji coba. Respons ini akan menggunakan
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 memeriksa 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.
Responsnya 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 untuk mendapatkan pengukuran, tambahkan pengukuran ini ke uji coba Anda. Pertama, buat file JSON yang berisi metrik yang Anda ukur dan hasilnya.
Lalu, 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 Anda menambahkan semua pengukuran untuk uji coba, selesaikan uji coba menggunakan
perintah berikut. Jika ingin, 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 Anda terlebih dahulu dan buat file JSON menggunakan perintah berikut, dengan mengganti 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"
Uji coba listingan
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 lebih lanjut dan mengulangi proses evaluasi uji coba.
Langkah selanjutnya
Untuk contoh cara menggunakan API, lihat referensi berikut: