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 Anda ke Cloud Storage
- Men-deploy BQML terlatih Anda 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: Prediction 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 Notebook
Kita akan menggunakan Notebook untuk mendapatkan prediksi setelah men-deploy model. Dari bagian Vertex AI di Konsol Cloud Anda, klik Notebook:

Dari sana, pilih Instance Baru. Kemudian, pilih jenis instance TensorFlow Enterprise 2.3 tanpa GPU:

Gunakan opsi default, lalu klik Buat. Setelah instance dibuat, pilih Open JupyterLab:

4. Latih model BigQuery ML
Dengan BigQuery ML, Anda dapat 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 untuk memprediksi kemungkinan gagal bayar pada pembayaran kartu kredit.
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 sebelah kiri, lalu pilih Create Dataset:

Di kolom Dataset ID, masukkan cc_default. Biarkan kolom lainnya seperti apa adanya, lalu klik Create dataset.
Langkah 2: Jalankan kueri CREATE MODEL
Di Editor kueri BigQuery, jalankan kueri CREATE MODEL berikut untuk membuat dan melatih model BigQuery ML 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 dalam rentang 0 hingga 1, yang menunjukkan bahwa proses ini akan memerlukan waktu sekitar satu menit untuk dijalankan. Setelah selesai, Anda akan melihat model di bawah set data Anda:

Anda dapat mengklik model untuk melihat metrik pelatihan dan evaluasinya.
5. Mengekspor model BigQuery ML
Dengan model BQML yang 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 agar dapat men-deploy-nya ke Vertex AI untuk menyajikan model dan mendapatkan prediksi secara terukur.
Langkah 1: Buat Bucket Cloud Storage untuk model Anda
Di detail model, klik Ekspor Model:

Anda akan diminta untuk memasukkan lokasi Google Cloud Storage (GCS) tempat aset model Anda akan diekspor. Jika Anda belum memiliki bucket GCS, jangan khawatir. Kita akan membuatnya. Pertama, klik Jelajahi:

Kemudian, klik ikon + untuk membuat bucket baru:

Beri nama yang unik (Nama bucket Storage harus unik secara global). Klik Lanjutkan. Pada langkah berikutnya, di bagian Jenis lokasi, pilih Region, lalu pilih salah satu region dari dropdown:

Gunakan kelas penyimpanan default, dan di bagian kontrol akses, pastikan Seragam dipilih:

Klik lanjutkan dan gunakan opsi default untuk opsi lainnya. Lalu klik Buat.
Langkah 2: Ekspor model BQML
Setelah bucket baru Anda dibuat, masukkan model-assets (atau apa pun yang Anda inginkan) di kolom Nama, lalu klik Pilih:

Kemudian, klik Ekspor. Tindakan ini akan membuat tugas di BigQuery untuk mengekspor model Anda dalam format SavedModel TensorFlow ke bucket GCS yang baru dibuat dan Anda tentukan. Proses ekspor ini akan memerlukan waktu sekitar satu menit.
Saat model Anda diekspor, buka bagian Storage di konsol Cloud Anda. Setelah tugas selesai, Anda akan melihat aset model diekspor ke bucket yang baru saja Anda buat di bawah subdirektori model-assets:

6. Mengimpor 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 model Anda nama predict_default. Pilih region yang sama dengan tempat Anda membuat bucket (us-central1, europe-west4, atau asia-east1). Kemudian, klik Lanjutkan. Di Setelan model, biarkan "Impor artefak model ke container baru yang telah dibuat sebelumnya" tetap dipilih.
Di dropdown Model framework, pilih TensorFlow. Kemudian, pilih 2.3 sebagai versi framework.
Di kolom Model artifact location, klik Browse, klik bucket GCS yang baru saja Anda buat, lalu klik direktori model-assets:

Kemudian, klik Impor. Proses impor model Anda akan memakan waktu beberapa menit. Setelah dibuat, Anda akan melihatnya di bagian model di Konsol Cloud:

7. Men-deploy model ke endpoint
Setelah mengupload model, langkah selanjutnya adalah membuat Endpoint di Vertex. Resource Model di Vertex dapat memiliki beberapa endpoint yang terkait dengannya, dan Anda dapat membagi traffic antar-endpoint.
Langkah 1: Membuat endpoint
Di halaman model Anda, 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 apa pun yang Anda inginkan.
Kemudian pilih Selesai dan klik Lanjutkan. Biarkan setelan lokasi yang dipilih apa adanya, lalu klik Deploy. Endpoint Anda akan memerlukan waktu beberapa menit untuk di-deploy. Setelah selesai, Anda akan melihat tanda centang hijau di sampingnya:

Anda hampir selesai. Sekarang Anda siap untuk mendapatkan prediksi pada model yang Anda 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: Dapatkan 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, lalu buka notebook Python 3 dari Peluncur:

Di notebook Anda, jalankan perintah berikut di sel untuk menulis contoh pengujian ke file JSON bernama default-pred.json. Kita akan mengirim contoh ini ke model untuk mendapatkan 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 UI Vertex, klik Sample Request untuk endpoint yang baru saja Anda deploy:

Salin kode dari Langkah 4 di tab REST ke notebook Anda, lalu jalankan sel:

Kemudian, tambahkan variabel untuk region tempat Anda membuat bucket dan model. Ganti your-region dalam string di bawah:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
Terakhir, buat permintaan prediksi ke endpoint Anda dengan 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 bahwa ada peluang sebesar 81% bahwa orang ini tidak akan gagal bayar pada pembayaran berikutnya. Nilai .819 sesuai dengan class 0 (bukan default).
🎉 Selamat! 🎉
Anda telah mempelajari cara:
- Melatih model di BQML
- Mengekspor model BQML Anda ke Cloud Storage
- Mengimpor model BQML ke Vertex AI untuk prediksi
- Buat model Vertex AI dan deploy model ke endpoint
- Mendapatkan prediksi di endpoint yang di-deploy melalui Vertex Notebooks dan curl
Untuk mempelajari lebih lanjut berbagai bagian Vertex AI, lihat dokumentasinya.
9. Pembersihan
Jika Anda ingin terus menggunakan notebook yang Anda buat di lab ini, sebaiknya nonaktifkan notebook tersebut saat tidak digunakan. Dari UI Notebook di Konsol Cloud Anda, pilih notebook, lalu pilih Stop:

Jika Anda ingin menghapus notebook secara keseluruhan, cukup klik tombol Hapus di kanan atas.
Untuk menghapus endpoint yang Anda deploy, buka bagian Endpoints 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:
