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
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan Vertex AI API.
-
Buat akun layanan:
-
Di konsol Google Cloud, buka halaman Buat akun layanan.
Buka Create service account - Pilih project Anda.
-
Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.
Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh,
Service account for quickstart
. - Klik Buat dan lanjutkan.
-
Berikan peran Project > Owner ke akun layanan.
Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Project > Owner.
- Klik Lanjutkan.
-
Klik Selesai untuk menyelesaikan pembuatan akun layanan.
Jangan tutup jendela browser Anda. Anda akan menggunakannya pada langkah berikutnya.
-
-
Membuat kunci akun layanan:
- Di konsol Google Cloud, klik alamat email untuk akun layanan yang telah dibuat.
- Klik Kunci.
- Klik Tambahkan kunci, lalu klik Buat kunci baru.
- Klik Create. File kunci JSON akan didownload ke komputer Anda.
- Klik Close.
-
Tetapkan variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
ke jalur file JSON yang berisi kredensial Anda. Variabel ini hanya berlaku untuk sesi shell Anda saat ini. Jadi, jika Anda membuka sesi baru, tetapkan variabel kembali. -
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan Vertex AI API.
-
Buat akun layanan:
-
Di konsol Google Cloud, buka halaman Buat akun layanan.
Buka Create service account - Pilih project Anda.
-
Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.
Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh,
Service account for quickstart
. - Klik Buat dan lanjutkan.
-
Berikan peran Project > Owner ke akun layanan.
Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Project > Owner.
- Klik Lanjutkan.
-
Klik Selesai untuk menyelesaikan pembuatan akun layanan.
Jangan tutup jendela browser Anda. Anda akan menggunakannya pada langkah berikutnya.
-
-
Membuat kunci akun layanan:
- Di konsol Google Cloud, klik alamat email untuk akun layanan yang telah dibuat.
- Klik Kunci.
- Klik Tambahkan kunci, lalu klik Buat kunci baru.
- Klik Create. File kunci JSON akan didownload ke komputer Anda.
- Klik Close.
-
Tetapkan variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
ke jalur file JSON yang berisi kredensial Anda. Variabel ini hanya berlaku untuk sesi shell Anda saat ini. Jadi, jika Anda membuka sesi baru, tetapkan variabel kembali. - 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 selanjutnya
- Lihat referensi REST untuk studi.