1. Ringkasan
Di lab ini, Anda akan menggunakan Vertex AI untuk melatih dan menyajikan model dengan data tabulasi. Ini adalah penawaran produk AI terbaru di Google Cloud, dan saat ini masih dalam tahap pratinjau.
Yang Anda pelajari
Anda akan mempelajari cara:
- Mengupload Set Data Terkelola ke Vertex AI
- Melatih model dengan AutoML
- Men-deploy model AutoML terlatih ke endpoint dan menggunakan endpoint tersebut untuk mendapatkan prediksi
Total biaya untuk menjalankan lab ini di Google Cloud adalah sekitar $22.
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: AutoML untuk data tabulasi, Prediction, dan Workbench.

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: Membuat instance Vertex AI Workbench
Dari bagian Vertex AI di Cloud Console Anda, klik Workbench:

Dari sana, di Notebook yang dikelola pengguna, klik Notebook Baru:

Kemudian, pilih jenis instance TensorFlow Enterprise (dengan LTS) versi terbaru tanpa GPU:

Gunakan opsi default, lalu klik Buat.
Langkah 5: Buka Notebook Anda
Setelah instance dibuat, pilih Open JupyterLab:

Data yang akan kita gunakan untuk melatih model berasal dari set data deteksi penipuan kartu kredit ini. Kita akan menggunakan versi set data ini yang tersedia untuk publik di BigQuery.
4. Membuat Set Data Terkelola
Di Vertex AI, Anda dapat membuat set data terkelola untuk berbagai jenis data. Kemudian, Anda dapat membuat statistik tentang set data ini dan menggunakannya untuk melatih model dengan AutoML atau kode model kustom Anda sendiri.
Langkah 1: Buat set data
Di menu Vertex di konsol Anda, pilih Set data:

Di lab ini, kita akan membangun model deteksi penipuan untuk menentukan apakah transaksi kartu kredit tertentu harus diklasifikasikan sebagai penipuan atau tidak.
Dari halaman Set data, beri nama set data, lalu pilih Tabular, dan Regresi/klasifikasi. Kemudian Buat set data:

Ada beberapa opsi untuk mengimpor data ke Set Data Terkelola di Vertex:
- Mengupload file lokal dari komputer Anda
- Memilih file dari Cloud Storage
- Memilih data dari BigQuery
Di sini, kita akan mengupload data dari tabel BigQuery publik.
Langkah 2: Mengimpor data dari BigQuery
Pilih "Pilih tabel atau tampilan dari BigQuery" sebagai metode impor Anda, lalu salin kode berikut ke dalam kotak BigQuery table: bigquery-public-data.ml_datasets.ulb_fraud_detection. Kemudian, pilih Lanjutkan:

Anda akan melihat sesuatu seperti berikut setelah mengimpor set data:

Jika mau, Anda dapat mengklik Buat statistik untuk melihat info tambahan tentang set data ini, tetapi hal itu tidak diperlukan sebelum melanjutkan ke langkah berikutnya. Set data ini berisi transaksi kartu kredit asli. Sebagian besar nama kolom telah disamarkan, itulah sebabnya disebut V1, V2, dll.
5. Melatih model dengan AutoML
Setelah set data terkelola diupload, kita siap melatih model dengan data ini. Kita akan melatih model klasifikasi untuk memprediksi apakah transaksi tertentu bersifat penipuan atau tidak. Vertex AI memberi Anda dua opsi untuk melatih model:
- AutoML: Latih model berkualitas tinggi dengan upaya dan keahlian ML minimal.
- Pelatihan kustom: Jalankan aplikasi pelatihan kustom Anda di cloud menggunakan salah satu container bawaan Google Cloud atau gunakan container Anda sendiri.
Di lab ini, kita akan menggunakan AutoML untuk pelatihan.
Langkah 1: Mulai tugas pelatihan
Dari halaman detail set data tempat Anda berhenti di langkah sebelumnya, pilih Train new model di kanan atas. Pilih Klasifikasi sebagai tujuan, biarkan AutoML dipilih untuk pelatihan model, lalu klik Lanjutkan:

Beri nama model Anda, atau Anda dapat menggunakan nama default. Di bagian Target column, pilih Class. Ini adalah bilangan bulat yang menunjukkan apakah transaksi tertentu bersifat penipuan atau tidak (0 untuk non-penipuan, 1 untuk penipuan).
Kemudian, pilih Lanjutkan:

Pada langkah ini, scroll ke bawah, lalu klik untuk meluaskan Opsi lanjutan. Karena set data ini sangat tidak seimbang (kurang dari 1% data berisi transaksi penipuan), pilih opsi AUC PRC yang akan memaksimalkan presisi-perolehan untuk kelas yang kurang umum:

Pilih Lanjutkan, lalu lanjutkan ke langkah terakhir (Compute and pricing). Di sini, masukkan 1 sebagai jumlah jam kerja node untuk anggaran Anda dan biarkan penghentian awal diaktifkan. Melatih model AutoML Anda selama 1 jam komputasi biasanya merupakan awal yang baik untuk memahami apakah ada hubungan antara fitur dan label yang Anda pilih atau tidak. Dari sana, Anda dapat memodifikasi fitur dan melatihnya dengan durasi lebih lama guna meningkatkan performa model. Selanjutnya, pilih Mulai pelatihan.
Anda akan menerima email saat tugas pelatihan selesai. Pelatihan akan memerlukan waktu lebih dari satu jam untuk memperhitungkan waktu penyiapan dan penonaktifan resource.
6. Mempelajari metrik evaluasi model
Pada langkah ini, kita akan melihat performa model.
Setelah tugas pelatihan model Anda selesai, buka tab Models di Vertex. Klik model yang baru saja Anda latih dan lihat tab Evaluate. Ada banyak metrik evaluasi di sini - kita akan berfokus pada dua metrik: Matriks Konfusi dan Kepentingan Fitur.
Langkah 1: Pahami matriks konfusi
Matriks konfusi menunjukkan persentase contoh dari tiap class dalam set pengujian yang diprediksi dengan benar oleh model. Dalam kasus set data tidak seimbang seperti yang sedang kita tangani, metrik ini merupakan ukuran performa model yang lebih baik daripada akurasi keseluruhan.
Ingatlah bahwa kurang dari 1% contoh dalam set data kami adalah transaksi penipuan, jadi jika akurasi model kami adalah 99%, ada kemungkinan besar model tersebut hanya menebak kelas non-penipuan secara acak 99% dari waktu. Itulah sebabnya melihat akurasi model untuk setiap kelas adalah metrik yang lebih baik di sini.
Jika men-scroll ke bawah di tab Evaluasi, Anda akan melihat matriks konfusi yang terlihat seperti ini (persentase yang tepat dapat bervariasi):

Matriks konfusi menunjukkan bahwa model awal kita mampu mengklasifikasikan 85% contoh penipuan dalam set pengujian kita dengan benar. Hasil ini cukup bagus, terutama mengingat ketidakseimbangan set data yang signifikan. Selanjutnya, kita dapat mencoba melatih model selama lebih banyak jam komputasi untuk melihat apakah kita dapat meningkatkan akurasi dari 85% ini.
Langkah 2: Melihat kepentingan fitur
Di bawah matriks kebingungan, Anda akan melihat diagram nilai penting fitur yang terlihat seperti ini:

Hal ini menunjukkan fitur yang memberikan sinyal terbesar ke model kami saat membuat prediksi. Nilai penting fitur adalah salah satu jenis Explainable AI - bidang yang mencakup berbagai metode untuk mendapatkan lebih banyak insight tentang cara model ML membuat prediksi. Diagram nilai penting fitur yang terlihat di sini dihitung sebagai gabungan dengan melihat semua prediksi model pada set pengujian. Hal ini menunjukkan fitur terpenting di seluruh batch contoh.
Diagram ini akan lebih menarik jika sebagian besar fitur dalam set data kita tidak terhalang. Misalnya, kita dapat mengetahui bahwa jenis transaksi (transfer, setoran, dll.) adalah indikator penipuan terbesar.
Dalam skenario dunia nyata, nilai penting fitur ini dapat digunakan untuk membantu kami meningkatkan kualitas model, dan lebih yakin dengan prediksinya. Kita mungkin memutuskan untuk menghapus fitur yang paling tidak penting saat melatih model berikutnya, atau menggabungkan dua fitur yang lebih penting menjadi satu persilangan fitur untuk mengetahui apakah hal ini meningkatkan performa model atau tidak.
Di sini kita melihat nilai penting fitur di seluruh batch, tetapi kita juga bisa mendapatkan nilai penting fitur untuk setiap prediksi di Vertex AI. Kita akan melihat cara melakukannya setelah men-deploy model.
7. Men-deploy model ke endpoint
Sekarang setelah kita memiliki model terlatih, 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, misalnya fraud_v1, biarkan Akses disetel ke Standard, lalu klik Continue.
Biarkan pemisahan traffic dan jenis mesin sebagai setelan default, klik Selesai, lalu Lanjutkan.
Kita tidak akan menggunakan pemantauan model untuk endpoint ini, jadi Anda dapat membiarkannya tidak dipilih dan mengklik 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
Kami akan menampilkannya di sini.
Langkah 1: Mendapatkan prediksi model di UI
Di halaman model tempat endpoint Anda ditampilkan (tempat kita berhenti di langkah terakhir), scroll ke bawah ke bagian Test your model:

Di sini, Vertex AI telah memilih nilai acak untuk setiap fitur model yang dapat kita gunakan untuk mendapatkan prediksi pengujian. Anda dapat mengubah nilai ini jika ingin. Scroll ke bagian bawah halaman, lalu pilih Prediksi.
Di bagian Hasil prediksi pada halaman, Anda akan melihat persentase prediksi model untuk setiap kelas. Skor keyakinan 0.99 untuk kelas 0, misalnya, berarti model Anda menganggap contoh ini memiliki peluang 99% untuk tidak curang.
Langkah 2: Dapatkan prediksi model dengan Vertex AI API
UI adalah cara yang bagus untuk memastikan endpoint yang di-deploy berfungsi seperti yang diharapkan, tetapi kemungkinan besar Anda ingin mendapatkan prediksi secara dinamis melalui panggilan REST API. Untuk menunjukkan cara mendapatkan prediksi model di sini, kita akan menggunakan instance Vertex Workbench 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 kode berikut dalam sel untuk menginstal Vertex SDK:
!pip3 install google-cloud-aiplatform --upgrade --user
Kemudian, tambahkan sel di notebook Anda untuk mengimpor SDK dan membuat referensi ke endpoint yang baru saja Anda deploy:
from google.cloud import aiplatform
endpoint = aiplatform.Endpoint(
endpoint_name="projects/YOUR-PROJECT-NUMBER/locations/us-central1/endpoints/YOUR-ENDPOINT-ID"
)
Anda harus mengganti dua nilai dalam string endpoint_name di atas dengan nomor project dan endpoint Anda. Anda dapat menemukan nomor project dengan membuka dasbor project dan mendapatkan nilai Project Number.
Anda dapat menemukan ID endpoint di bagian endpoint pada konsol di sini:

Terakhir, buat prediksi ke endpoint Anda dengan menyalin dan menjalankan kode di bawah ini di sel baru:
test_instance={
'Time': 80422,
'Amount': 17.99,
'V1': -0.24,
'V2': -0.027,
'V3': 0.064,
'V4': -0.16,
'V5': -0.152,
'V6': -0.3,
'V7': -0.03,
'V8': -0.01,
'V9': -0.13,
'V10': -0.18,
'V11': -0.16,
'V12': 0.06,
'V13': -0.11,
'V14': 2.1,
'V15': -0.07,
'V16': -0.033,
'V17': -0.14,
'V18': -0.08,
'V19': -0.062,
'V20': -0.08,
'V21': -0.06,
'V22': -0.088,
'V23': -0.03,
'V24': 0.01,
'V25': -0.04,
'V26': -0.99,
'V27': -0.13,
'V28': 0.003
}
response = endpoint.predict([test_instance])
print('API response: ', response)
Anda akan melihat prediksi sekitar .67 untuk kelas 0, yang berarti model menganggap ada peluang 67% bahwa transaksi ini tidak curang.
🎉 Selamat! 🎉
Anda telah mempelajari cara menggunakan Vertex AI untuk:
- Mengupload set data terkelola
- Melatih dan mengevaluasi model pada data tabulasi menggunakan AutoML
- Men-deploy model ke endpoint
- Mendapatkan prediksi pada endpoint model menggunakan SDK untuk Vertex
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 Workbench 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 Anda deploy, buka bagian Endpoints di konsol Vertex AI Anda, lalu batalkan deployment model dari endpoint Anda:

Untuk menghapus Bucket Penyimpanan menggunakan menu Navigasi di Cloud Console, jelajahi Penyimpanan, pilih bucket Anda, lalu klik Hapus:
