Prediksi Rating Film dengan Vertex AI AutoML

1. Pengantar

Dalam codelab ini, kita akan membuat model prediksi skor film menggunakan Vertex AI AutoML dan memicu endpoint model yang di-deploy 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. Pemicu untuk memprediksi menggunakan ML API

Pembuatan Model ML:

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

Pemicu untuk memprediksi menggunakan ML API:

  1. Java Cloud Functions untuk memicu pemanggilan endpoint model AutoML yang di-deploy yang menerima detail film sebagai permintaan dari UI, menampilkan SKOR 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 ingin mengembangkan aplikasi klien juga, lihat blog.

Mari kita pelajari langkah-langkah implementasinya.

Yang akan Anda build

Anda akan membuat

  • Set Data BigQuery untuk menampung tabel dan komponen model
  • Model Vertex AI AutoML (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 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 Konsol Cloud, 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 penting dalam semua project, produk, dan aplikasi terkait data yang memerlukan banyak keahlian domain selain teknologi untuk menyiapkan set data yang optimal dan membuatnya siap 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 menyetelnya sebagai region untuk langkah VERTEX AI juga (kedua instance harus berada di region yang sama).

  1. Pastikan Anda telah menyiapkan file data (.csv). Jalankan perintah berikut di Cloud Shell untuk membuat clone repositori dan buka project:
git clone <<repository link>>

cd movie-score
  1. Gunakan perintah bq load untuk memuat file CSV ke dalam tabel BigQuery (perhatikan bahwa Anda juga dapat mengupload langsung 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. Ajukan kueri dengan salah satu dari 3 cara berikut:

Kita dapat berinteraksi dengan BigQuery melalui tiga cara, dan 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 akan 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 langsung membuat model AutoML dengan Vertex AI. Ingat, kita juga dapat melakukan AutoML dari BigQuery itu sendiri, mendaftarkan model dengan Vertex AI, dan 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, perluas 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 "Pilih tabel atau tampilan dari BigQuery", lalu pilih tabel dari BigQuery di kolom JELAJAH 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 penjelajahan, pastikan untuk mengklik tombol pilihan untuk melanjutkan langkah-langkah di bawah. Jika Anda 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 itu:

bf095263d57106de.png

  1. Biarkan Tujuan sebagai Klasifikasi dan pilih opsi AutoML di halaman pertama, lalu klik lanjutkan: e50597bc3f29894c.png
  2. Beri nama model Anda dan pilih nama Kolom Target sebagai "Skor" dari dropdown yang muncul, lalu klik Lanjutkan.
  3. Perhatikan juga bahwa Anda dapat mencentang opsi "Ekspor set data pengujian ke BigQuery", yang memudahkan Anda melihat set pengujian dengan hasil dalam database secara efisien tanpa lapisan integrasi tambahan atau harus memindahkan data antar-layanan.
  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 mungkin perlu mempertimbangkan harga sebelum meningkatkan jumlah jam kerja node yang ingin Anda gunakan untuk pelatihan.

Klik Mulai Pelatihan untuk mulai melatih model baru Anda.

e72b004a17849bd.png

Mengevaluasi, Men-deploy, dan Menguji Model

Setelah pelatihan selesai, Anda akan dapat mengklik Pelatihan (di bagian judul Pengembangan Model di menu sebelah kiri) dan melihat pelatihan Anda tercantum di bagian Pipeline Pelatihan. Klik 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 mendapatkan 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 Vertex AI AutoML API endpoint.

  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), Kode Sumber (Inline atau upload), dan mulai pengeditan

13df616369ca5951.png

  1. Salin file java dan pom.xml dari repo dan tempel di file masing-masing di editor inline. Jika Anda menggunakan editor lokal (direkomendasikan), clone sumber dari repo
  2. Ubah project ID, endpoint ID, lokasi, dan endpoint dalam file sumber .java untuk contoh ini, tetapi perhatikan 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 posting 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.