Halaman ini menjelaskan cara membuat permintaan API ke Vertex AI Vizier menggunakan Python. Untuk mengetahui informasi tentang cara kerja Vertex AI Vizier, lihat ringkasan Vertex AI Vizier.
Sebelum memulai
- 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.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Instal Vertex AI SDK untuk Python.
Menentukan konstanta
Untuk menentukan konstanta, jalankan perintah berikut, dengan mengganti REGION
dan PROJECT_ID
dengan region dan project ID Anda.
Buat nama studi Anda sendiri atau gunakan nilai yang disarankan.
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)
Membuat permintaan API
Permintaan API command line berikut ditulis dalam Python.
Membuat studi
Studi adalah serangkaian eksperimen, atau uji coba, yang membantu Anda mengoptimalkan hyperparameter atau parameter Anda.
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 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],
}
}
Untuk membuat studi menggunakan konfigurasi studi Anda, kirim permintaan berikut melalui VizierServiceClient
. Gunakan STUDY_NAME
yang ditampilkan untuk mengkueri studi.
vizier_client = aiplatform.gapic.VizierServiceClient(client_options=dict(api_endpoint=ENDPOINT))
study = vizier_client.create_study(parent=PARENT, study=study)
STUDY_NAME = study.name
Melihat studi
Setelah studi dibuat, Anda dapat menemukan studi tersebut di Konsol Google Cloud, di bagian Vertex AI, di halaman Experiments.
Mendapatkan studi
Untuk mendapatkan studi, kirim permintaan berikut.
vizier_client.get_study({'name': STUDY_NAME})
Mencantumkan studi
Untuk mencantumkan studi dalam project dan region tertentu, kirim permintaan berikut:
vizier_client.list_studies({'parent': PARENT})
Mendapatkan saran uji coba
Untuk mendapatkan saran uji coba dari Vertex AI Vizier, buat permintaan yang berisi SUGGEST_COUNT
dan CLIENT_ID
. Teruskan informasi ini ke Vertex AI Vizier dengan mengirim permintaan.
Buat permintaan menggunakan perintah berikut. Ubah SUGGEST_COUNT
ke jumlah saran yang Anda inginkan dari setiap permintaan.
suggest_response = vizier_client.suggest_trials({
'parent': STUDY_NAME,
'suggestion_count': SUGGEST_COUNT,
'client_id': CLIENT_ID
})
suggest_trials
memulai operasi yang berjalan lama untuk menghasilkan uji coba.
Responsnya memungkinkan Anda mengetahui bahwa Vertex AI Vizier sedang memproses saran uji coba.
Untuk menunggu hasil yang ditampilkan, gunakan fungsi result()
.
suggest_response.result().trials
Format berikut menunjukkan contoh uji coba. Uji coba ini menyarankan penggunaan nilai 0.1
untuk parameter x
.
name: "TRIAL_ID"
state: ACTIVE
parameters {
parameter_id: "x"
value {
number_value: 0.1
}
}
start_time {
seconds: 1618011215
}
Gunakan TRIAL_ID
dari respons sebelumnya untuk mendapatkan uji coba:
vizier_client.get_trial({
'name': TRIAL_ID
})
Mengevaluasi hasil
Setelah menerima saran uji coba, evaluasi setiap uji coba dan catat 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.
Gunakan perintah berikut untuk menyimpan pengukuran Anda dan mengirim permintaan.
Dalam contoh ini, ganti RESULT
dengan pengukuran. Jika fungsi yang Anda optimalkan adalah y = x^2
, dan nilai x
yang disarankan adalah 0.1
, hasilnya adalah 0.01
.
vizier_client.add_trial_measurement({
'trial_name': TRIAL_ID,
'measurement': {
'metrics': [{'metric_id': 'y', 'value':RESULT }]
}
})
Menyelesaikan uji coba
Setelah menambahkan semua pengukuran untuk uji coba, Anda harus menyelesaikan uji coba dengan mengirimkan perintah.
Saat menyelesaikan uji coba, Anda dapat mengirim perintah untuk hanya menyelesaikan uji coba atau mengirim perintah untuk menambahkan pengukuran akhir dan menyelesaikan uji coba.
Tanpa pengukuran akhir
Untuk menyelesaikan uji coba tanpa menambahkan pengukuran akhir, kirim permintaan berikut:
vizier_client.complete_trial({
'name': TRIAL_ID
})
Dengan pengukuran akhir
Untuk menyelesaikan uji coba dan menyertakan pengukuran akhir, gunakan perintah berikut, yang menggantikan RESULT
dengan pengukuran akhir.
vizier_client.complete_trial({
'name': TRIAL_ID
'final_measurement': {
'metrics': [{'metric_id': 'y', 'value': RESULT}]
}
})
Mencantumkan uji coba
Untuk mencantumkan uji coba dalam studi tertentu, kirim permintaan berikut:
vizier_client.list_trials({
'parent': STUDY_NAME
})
Setelah menyelesaikan semua uji coba yang tertunda, Anda dapat memanggil suggestTrials
untuk mendapatkan saran lainnya, dan mengulangi proses evaluasi uji coba.
Mencantumkan uji coba optimal
Contoh berikut menunjukkan list_optimal_trials
, yang menampilkan uji coba optimal pareto untuk studi dengan multi-tujuan atau uji coba optimal untuk studi dengan satu tujuan:
vizier_client.list_optimal_trials({
'parent': STUDY_NAME
})
Langkah berikutnya
- Lihat referensi REST untuk studi.