1. Ringkasan
Di lab ini, Anda akan melatih model dengan BigQuery Machine Learning, lalu mengekspor dan men-deploy model tersebut ke Vertex AI. Ini adalah penawaran produk AI terbaru di Google Cloud.
Yang Anda pelajari
Anda akan mempelajari cara:
- Melatih model dengan BigQuery Machine Learning (BQML)
- Mengekspor model BQML ke Cloud Storage
- Men-deploy BQML terlatih ke Vertex AI
- Mendapatkan prediksi pada model yang di-deploy
Total biaya untuk menjalankan lab ini di Google Cloud adalah sekitar $2.
2. Pengantar Vertex AI
Lab ini menggunakan penawaran produk AI terbaru yang tersedia di Google Cloud. Vertex AI mengintegrasikan penawaran ML di Google Cloud ke dalam pengalaman pengembangan yang lancar. Sebelumnya, model yang dilatih dengan AutoML dan model kustom dapat diakses melalui layanan terpisah. Penawaran baru ini menggabungkan kedua model ini menjadi satu API, beserta produk baru lainnya. Anda juga dapat memigrasikan project yang sudah ada ke Vertex AI. Jika Anda memiliki masukan, harap lihat halaman dukungan.
Vertex AI mencakup banyak produk yang berbeda untuk mendukung alur kerja ML secara menyeluruh. Lab ini akan berfokus pada produk yang disorot di bawah: Prediksi dan Notebooks.
3. Menyiapkan lingkungan Anda
Anda memerlukan project Google Cloud Platform dengan penagihan yang diaktifkan untuk menjalankan codelab ini. Untuk membuat project, ikuti petunjuk di sini.
Langkah 1: Aktifkan Compute Engine API
Buka Compute Engine dan pilih Aktifkan jika belum diaktifkan. Anda akan memerlukan ini untuk membuat instance notebook.
Langkah 2: Aktifkan Vertex AI API
Buka bagian Vertex AI di Cloud Console Anda, lalu klik Aktifkan Vertex AI API.
Langkah 3: Buat instance Notebooks
Kita akan menggunakan Notebooks untuk mendapatkan prediksi setelah men-deploy model. Dari bagian Vertex AI di Konsol Cloud Anda, klik Notebooks:
Dari sana, pilih New Instance. Kemudian, pilih jenis instance TensorFlow Enterprise 2.3 tanpa GPU:
Gunakan opsi default, lalu klik Create. Setelah instance dibuat, pilih Open JupyterLab:
4. Latih model BigQuery ML
BigQuery ML memungkinkan Anda melatih model machine learning kustom menggunakan data yang disimpan di BigQuery. Anda dapat melatih dan mendapatkan prediksi dari model, semuanya di SQL. Untuk lab ini, kita akan menggunakan set data yang tersedia untuk publik di BigQuery guna memprediksi kemungkinan pembayaran kartu kredit akan menjadi default.
Langkah 1: Buat set data BigQuery di project Anda
Untuk melatih model di BigQuery ML, Anda harus membuat set data dalam project untuk menyimpan model ini. Klik project Anda di panel menu kiri, lalu pilih Create Dataset:
Di kolom ID set data, masukkan cc_default
. Biarkan kolom lainnya apa adanya dan klik Create dataset.
Langkah 2: Jalankan kueri CREATE MODEL
Di Query editor BigQuery, jalankan kueri CREATE MODEL
berikut untuk membuat dan melatih model ML BigQuery pada set data publik yang akan kita gunakan. Pastikan untuk mengganti your-project
dengan nama project Cloud Anda:
CREATE OR REPLACE MODEL
`your-project.cc_default.logistic_model` OPTIONS(model_type='LOGISTIC_REG',
input_label_cols=['default_payment_next_month']) AS
SELECT
limit_balance,
sex,
education_level,
marital_status,
age,
pay_0,
pay_2,
pay_3,
pay_4,
pay_5,
pay_6,
bill_amt_1,
bill_amt_2,
bill_amt_3,
bill_amt_4,
bill_amt_5,
bill_amt_6,
pay_amt_1,
pay_amt_2,
pay_amt_3,
pay_amt_4,
pay_amt_5,
pay_amt_6,
default_payment_next_month
FROM
`bigquery-public-data.ml_datasets.credit_card_default`
Tindakan ini akan membuat model regresi logistik yang menghasilkan nilai numerik mulai dari 0 hingga 1, yang menunjukkan proses yang memakan waktu sekitar satu menit. Setelah selesai, Anda akan melihat model di bawah set data Anda:
Anda dapat mengklik model tersebut untuk melihat metrik pelatihan dan evaluasinya.
5. Mengekspor model BigQuery ML Anda
Dengan model BQML terlatih, kita dapat menggunakan sintaksis SQL BQML untuk mendapatkan prediksi atau mengekspor model untuk men-deploy-nya di tempat lain. Di sini kita akan mengekspor model sehingga kita dapat men-deploy-nya ke Vertex AI untuk menyalurkan model secara skalabel dan mendapatkan prediksi.
Langkah 1: Buat Bucket Cloud Storage untuk model Anda
Di detail model, klik Ekspor Model:
Setelah itu, Anda akan diminta untuk memasukkan lokasi Google Cloud Storage (GCS) tempat aset model ingin diekspor. Jika Anda belum memiliki bucket GCS, jangan khawatir. Kita akan membuatnya. Pertama, klik Jelajahi:
Lalu klik ikon + untuk membuat bucket baru:
Berikan nama yang unik (Nama bucket Storage harus unik secara global). Klik Lanjutkan. Pada langkah berikutnya, di bagian Location type, pilih Region, lalu pilih salah satu wilayah dari dropdown:
Gunakan kelas penyimpanan default, dan di bagian kontrol akses, pastikan Uniform dipilih di bawah kontrol akses:
Klik lanjutkan dan gunakan opsi default untuk opsi lainnya. Lalu klik Buat.
Langkah 2: Ekspor model BQML
Setelah bucket baru dibuat, masukkan model-assets
(atau apa pun yang Anda inginkan) di kolom Name, lalu klik Select:
Kemudian, klik Export. Tindakan ini akan membuat tugas di BigQuery untuk mengekspor model Anda dalam format TersimpanModel TensorFlow ke bucket GCS yang baru dibuat yang Anda tentukan. Perlu waktu sekitar satu menit untuk mengekspor.
Selagi model Anda diekspor, buka bagian Storage di Konsol Cloud. Setelah tugas selesai, Anda akan melihat aset model diekspor ke bucket yang baru saja dibuat di subdirektori model-assets
:
6. Impor model ke Vertex AI
Pada langkah ini, kita akan mereferensikan lokasi penyimpanan GCS tempat kita baru saja mengekspor aset model untuk membuat dan mengimpor model ke Vertex AI.
Langkah 1: Impor model
Di Konsol Cloud, buka bagian Model Vertex AI. Dari sana, pilih Impor:
Pada langkah pertama, beri nama model Anda predict_default
. Pilih region yang sama tempat Anda membuat bucket (us-central1, europe-west4, atau asia-east1. Kemudian, klik Continue. Di Setelan model, simpan "Impor artefak model ke penampung baru yang telah dibangun sebelumnya" dipilih.
Di menu dropdown Model framework, pilih TensorFlow. Kemudian, pilih 2.3 sebagai versi framework.
Di kolom Lokasi artefak model, klik Jelajahi, klik bucket GCS yang baru saja Anda buat, lalu klik direktori model-assets:
Lalu klik Impor. Perlu waktu beberapa menit untuk mengimpor model Anda. Setelah dibuat, Anda akan melihatnya di bagian model di Konsol Cloud:
7. Men-deploy model ke endpoint
Setelah mengupload model, langkah berikutnya adalah membuat Endpoint di Vertex. Resource Model di Vertex dapat memiliki beberapa endpoint yang terkait dengannya, dan Anda dapat membagi traffic di antara endpoint.
Langkah 1: Membuat endpoint
Di halaman model, buka tab Deploy and test lalu klik Deploy to endpoint:
Beri nama endpoint Anda, seperti default_pred_v1
, biarkan setelan pemisahan traffic apa adanya, lalu pilih jenis mesin untuk deployment model Anda. Kita menggunakan n1-highcpu-2
di sini, tetapi Anda dapat memilih jenis mesin mana pun yang diinginkan.
Kemudian, pilih Selesai, lalu klik Lanjutkan. Biarkan setelan lokasi yang dipilih apa adanya, lalu klik Deploy. Deployment endpoint Anda akan memerlukan waktu beberapa menit. Jika sudah selesai, Anda akan melihat tanda centang hijau di sampingnya:
Anda semakin dekat! Sekarang Anda siap untuk mendapatkan prediksi tentang model yang di-deploy.
8. Mendapatkan prediksi pada model yang di-deploy
Ada beberapa opsi untuk mendapatkan prediksi model:
- UI Vertex AI
- Vertex AI API
Di sini kami akan menunjukkan cara mendapatkan prediksi melalui API
Langkah 1: Mendapatkan prediksi model dengan Vertex AI API
Untuk menunjukkan cara mendapatkan prediksi model di sini, kita akan menggunakan instance Vertex Notebook yang Anda buat di awal lab ini.
Selanjutnya, buka instance notebook yang Anda buat, dan buka notebook Python 3 dari Peluncur:
Di notebook Anda, jalankan perintah berikut dalam sel untuk menulis contoh pengujian ke file JSON bernama default-pred.json
. Kita akan mengirim contoh ini ke model untuk prediksi:
%%writefile default-pred.json
{
"instances": [
{"age": 39,
"bill_amt_1": 47174,
"bill_amt_2": 47974,
"bill_amt_3": 48630,
"bill_amt_4": 50803,
"bill_amt_5": 30789,
"bill_amt_6": 15874,
"education_level": "1",
"limit_balance": 50000,
"marital_status": "2",
"pay_0": 0,
"pay_2":0,
"pay_3": 0,
"pay_4": 0,
"pay_5": "0",
"pay_6": "0",
"pay_amt_1": 1800,
"pay_amt_2": 2000,
"pay_amt_3": 3000,
"pay_amt_4": 2000,
"pay_amt_5": 2000,
"pay_amt_6": 2000,
"sex": "1"}
]
}
Selanjutnya, di Vertex UI, klik Sample Request untuk endpoint yang baru saja Anda deploy:
Salin kode dari Langkah 4 di tab REST ke notebook Anda dan jalankan sel:
Kemudian, tambahkan variabel untuk region tempat Anda membuat bucket dan model. Ganti your-region
pada string di bawah ini:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
Terakhir, buat permintaan prediksi ke endpoint menggunakan curl
dengan menyalin kode berikut ke notebook Anda:
!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"
Anda akan melihat sesuatu seperti berikut (nilai prediksi yang tepat akan sedikit berbeda):
{
"predictions": [
{
"default_payment_next_month_values": [
"1",
"0"
],
"default_payment_next_month_probs": [
0.180815295299778,
0.819184704700222
],
"predicted_default_payment_next_month": [
"0"
]
}
],
"deployedModelId": "your-model-id"
}
Nilai dalam default_payment_next_month_probs
menunjukkan probabilitas untuk setiap class. Untuk contoh ini, model kami memprediksi ada 81% kemungkinan bahwa orang ini tidak akan default pada pembayaran berikutnya. Nilai .819
sesuai dengan class 0
(bukan default).
🎉 Selamat! 🎉
Anda telah mempelajari cara:
- Melatih model di BQML
- Mengekspor model BQML ke Cloud Storage
- Mengimpor model BQML ke Vertex AI untuk prediksi
- Membuat model Vertex AI dan men-deploy model tersebut ke endpoint
- Dapatkan prediksi tentang endpoint yang di-deploy melalui Vertex Notebooks dan curl
Untuk mempelajari lebih lanjut berbagai bagian Vertex AI, lihat dokumentasinya.
9. Pembersihan
Jika ingin terus menggunakan notebook yang Anda buat di lab ini, sebaiknya nonaktifkan notebook tersebut saat tidak digunakan. Dari UI Notebooks di Konsol Cloud, pilih notebook, lalu pilih Stop:
Jika Anda ingin menghapus notebook secara keseluruhan, cukup klik tombol Hapus di kanan atas.
Untuk menghapus endpoint yang di-deploy, buka bagian Endpoint di konsol Vertex AI, lalu klik ikon hapus:
Untuk menghapus Bucket Penyimpanan menggunakan menu Navigasi di Cloud Console, jelajahi Penyimpanan, pilih bucket Anda, lalu klik Hapus: