Prediksi Rating Film dengan Vertex AI AutoML

1. Pengantar

Dalam codelab ini, kita akan membuat model prediksi skor film menggunakan Vertex AI AutoML dan membuat endpoint model yang di-deploy dipicu dari Java Cloud Functions. Model dilatih dengan data yang disimpan di BigQuery dan terdaftar di Vertex AI. Daftar layanan dapat disusun menjadi dua bagian:

  1. Pembuatan dan deployment Model ML
  2. Memicu prediksi menggunakan ML API

Pembuatan Model ML:

  1. Data yang bersumber dari CSV ke BigQuery
  2. Data BigQuery yang terintegrasi ke Vertex AI untuk pembuatan model AutoML
  3. Model yang di-deploy di Vertex AI Model Registry untuk membuat API endpoint

Pemicu untuk memprediksi menggunakan ML API:

  1. Java Cloud Functions untuk memicu pemanggilan endpoint model AutoML yang di-deploy yang mengambil detail film sebagai permintaan dari UI, menampilkan SCORE film yang diprediksi

Berikut adalah ringkasan arsitektur tingkat tinggi aplikasi:

5ae50607c0f2db20.png

Penerapan arsitektur di atas berada di luar cakupan codelab ini, tetapi jika Anda juga ingin mengembangkan aplikasi klien, lihat blog.

Mari kita pelajari langkah-langkah penerapannya.

Yang akan Anda build

Anda akan membuat

  • Set Data BigQuery untuk menampung tabel dan komponen model
  • Model AutoML Vertex AI (membuat dan men-deploy)
  • Pemicu Java Cloud Functions untuk memprediksi menggunakan ML API

2. Persyaratan

  • Browser, seperti Chrome atau Firefox
  • Project Google Cloud yang mengaktifkan penagihan

Berikut adalah prasyaratnya:

Buat project Anda

  1. Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
  2. Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.
  3. Buka BigQuery untuk mengaktifkan API. Anda juga dapat membuka UI web BigQuery secara langsung dengan memasukkan URL berikut di browser: https://console.cloud.google.com/bigquery

Aktifkan Cloud Shell

  1. Anda akan menggunakan Cloud Shell, lingkungan command line yang berjalan di Google Cloud yang telah dilengkapi dengan bq: Dari Cloud Console, klik Activate Cloud Shell di pojok kanan atas: 6757b2fb50ddcc2d.png
  2. Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda
gcloud config list project
  1. Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:
gcloud config set project <PROJECT_ID>

Baca dokumentasi untuk mempelajari perintah gcloud dan penggunaannya.

3. Menyiapkan data pelatihan

Ini adalah langkah utama dalam semua project, produk, dan aplikasi terkait data yang memerlukan banyak keahlian domain selain teknologi untuk menyiapkan set data yang optimal dan menyiapkannya untuk project ML Anda. Untuk tujuan codelab ini, kita akan mengasumsikan bahwa data sudah disiapkan dan menggunakan file data yang sudah diproses ini.

4. Membuat dan memuat set data

Set data BigQuery adalah kumpulan tabel. Semua tabel dalam set data disimpan di lokasi data yang sama. Anda juga dapat melampirkan kontrol akses kustom untuk membatasi akses ke set data dan tabelnya.

  1. Di Cloud Shell, gunakan perintah bq mk untuk membuat set data bernama "movies".
bq mk --location=<<LOCATION>> movies

Tetapkan location ke region (asia-south1). Jangan lupa untuk menetapkannya sebagai region untuk langkah VERTEX AI juga (kedua instance harus berada di region yang sama).

  1. Pastikan Anda sudah menyiapkan file data (.csv). Jalankan perintah berikut di Cloud Shell untuk meng-clone repositori dan membuka project:
git clone <<repository link>>

cd movie-score
  1. Gunakan perintah bq load untuk memuat file CSV ke tabel BigQuery (perhatikan bahwa Anda juga dapat langsung mengupload dari UI BigQuery):
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
  1. Buat kueri dengan salah satu dari 3 cara berikut:

Kita dapat berinteraksi dengan BigQuery dengan tiga cara, kita akan mencoba dua di antaranya: a. UI web BigQuery b. Perintah bq c. API

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

Saya telah menggunakan Ruang Kerja SQL Web BigQuery untuk menjalankan kueri. Ruang Kerja SQL terlihat seperti ini:

109a0b2c7155e9b3.png

Menggunakan perintah bq:

bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

5. Menggunakan data BigQuery di Vertex AI AutoML

Gunakan data Anda dari BigQuery untuk membuat model AutoML secara langsung dengan Vertex AI. Ingat, kita juga dapat melakukan AutoML dari BigQuery itu sendiri dan mendaftarkan model dengan VertexAI serta mengekspos endpoint. Lihat dokumentasi untuk BigQuery AutoML. Namun, dalam contoh ini, kita akan menggunakan Vertex AI AutoML untuk membuat model.

Membuat Set Data Vertex AI

Buka Vertex AI dari Konsol Google Cloud, aktifkan Vertex AI API jika belum dilakukan, luaskan data dan pilih Set data, klik Buat set data, pilih jenis data TABULAR dan opsi "Regresi / klasifikasi", lalu klik Buat:

4104c75c34cbd2d9.png

Pilih Sumber Data

Di halaman berikutnya, pilih sumber data. Pilih opsi "Select a table or view from BigQuery" dan pilih tabel dari BigQuery di kolom BROWSE jalur BigQuery. Klik Lanjutkan.

Ingat: Instance BigQuery dan set data Vertex AI harus memiliki region yang sama agar tabel BigQuery muncul di Vertex AI.

b787ef18dbca4cff.png

Saat memilih tabel/tampilan sumber, dari daftar jelajah, jangan lupa untuk mengklik tombol pilihan untuk melanjutkan ke langkah-langkah di bawah. Jika tidak sengaja mengklik nama tabel/tampilan, Anda akan diarahkan ke Dataplex. Anda hanya perlu membuka kembali Vertex AI jika hal ini terjadi.

Melatih Model

  1. Setelah set data dibuat, Anda akan melihat halaman Analisis dengan opsi untuk melatih model baru. Klik:

bf095263d57106de.png

  1. Biarkan Tujuan sebagai Klasifikasi dan pilih opsi AutoML di halaman pertama, lalu klik lanjutkan: e50597bc3f29894c.png
  2. Beri nama model Anda, lalu pilih nama Kolom Target sebagai "Skor" dari dropdown yang muncul, lalu klik Lanjutkan.
  3. Perhatikan juga bahwa Anda dapat mencentang opsi "Export test dataset to BigQuery", yang memudahkan Anda melihat set pengujian dengan hasil di database secara efisien tanpa lapisan integrasi tambahan atau harus memindahkan data antarlayanan.
  4. Di halaman berikutnya, Anda memiliki opsi untuk memilih opsi pelatihan lanjutan yang diperlukan dan jam yang ingin Anda tetapkan untuk melatih model. Perhatikan bahwa Anda sebaiknya memperhatikan harga sebelum meningkatkan jumlah jam node yang ingin digunakan untuk pelatihan.

Klik Start Training untuk mulai melatih model baru Anda.

e72b004a17849bd.png

Mengevaluasi, Men-deploy, dan Menguji Model

Setelah pelatihan selesai, Anda akan dapat mengklik Pelatihan (di bagian Model Development di menu sebelah kiri) dan melihat pelatihan Anda tercantum di bagian Training Pipelines. Klik link tersebut untuk membuka halaman Model Registry. Anda harus sudah mampu:

  1. Melihat dan mengevaluasi hasil pelatihan 4767b4bbd7cf93fa.png
  2. Men-deploy dan menguji model dengan endpoint API Anda

Setelah Anda men-deploy model, endpoint API akan dibuat yang dapat digunakan di aplikasi Anda untuk mengirim permintaan dan mendapatkan hasil prediksi model dalam respons.

95fb4495618174f0.png

Sebelum melanjutkan dari bagian ini, pastikan Anda mencatat ID Endpoint, lokasi, dan detail lainnya dari model yang di-deploy di bagian endpoint Vertex AI.

6. Java Cloud Function untuk memicu pemanggilan ML

Ingat bagaimana kita memiliki endpoint dan detail lainnya dari langkah deployment ML? Kita akan menggunakannya di sini, dan karena kita menggunakan Java Cloud Functions, kita akan menggunakan pom.xml untuk menangani dependensi. Kita menggunakan library google-cloud-aiplatform untuk menggunakan API endpoint Vertex AI AutoML.

  1. Telusuri Cloud Functions di konsol Google Cloud, lalu klik "Create Function".
  2. Masukkan detail konfigurasi, seperti Lingkungan, Nama fungsi, Region, Pemicu (dalam hal ini, HTTPS), Autentikasi pilihan Anda, aktifkan "Wajibkan HTTPS", lalu klik berikutnya/simpan

a68272022df062f2.png

  1. Di halaman berikutnya, pilih Runtime (Java 11), Source Code (Inline atau upload), dan mulai edit

13df616369ca5951.png

  1. Salin file java dan pom.xml dari repo dan tempelkan file masing-masing di editor inline, jika Anda menggunakan editor lokal (direkomendasikan), lalu clone sumber dari repo
  2. Ubah project ID, endpoint ID, lokasi, dan endpoint dalam file sumber .java untuk contoh ini, tetapi perlu diperhatikan bahwa praktik terbaiknya adalah menggunakan Secret Manager untuk menyimpan kredensial
  3. Untuk cakupan codelab ini, beri komentar pada bagian MongoDB di class .java dalam kode sumber yang Anda salin

Lanjutkan dan deploy fungsi setelah semua perubahan selesai. Anda akan melihat URL endpoint yang dapat digunakan di aplikasi klien untuk mengirim permintaan ke Cloud Function ini dan menerima skor film sebagai respons.

7. Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam postingan ini, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Manage resources
  2. Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Delete
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project

8. Selamat

Selamat! Anda telah berhasil membuat dan men-deploy Model Prediksi Skor Film di Vertex AI AutoML dan memicu model yang di-deploy dari Cloud Functions.