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 ini 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 bersumber dari CSV ke BigQuery
  2. Data BigQuery yang terintegrasi ke dalam Vertex AI untuk pembuatan model AutoML
  3. Model yang 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 mengambil detail film sebagai permintaan dari UI, menampilkan prediksi SKOR film

Berikut adalah ringkasan arsitektur tingkat tinggi untuk aplikasi tersebut:

5ae50607c0f2db20.pngS

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

Mari pelajari lebih dalam langkah-langkah implementasinya.

Yang akan Anda build

Anda akan membuat

  • Set Data BigQuery untuk menampung tabel dan komponen model
  • Model AutoML AI Generatif (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, yakni lingkungan command line yang berjalan di Google Cloud dan 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 di 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 berasumsi 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 yang disebut "movies".
bq mk --location=<<LOCATION>> movies

Tetapkan location ke suatu wilayah (asia-south1). Jangan lupa menetapkannya sebagai region untuk langkah VERTEX AI (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 Anda ke dalam tabel BigQuery (perhatikan bahwa Anda juga dapat langsung mengunggah 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 {i>bq<i} c. API

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

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

109a0b2c7155e9b3.pngS

Menggunakan perintah bq:

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

5. Menggunakan data BigQuery dalam Vertex AI AutoML

Gunakan data Anda dari BigQuery untuk membuat model AutoML dengan Vertex AI secara langsung. Ingat, kita juga dapat menjalankan AutoML dari BigQuery 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 Datasets, klik Buat set data, pilih jenis data TABULAR dan "Regressi / klasifikasi" , dan klik Buat:

4104c75c34cbd2d9.pngS

Pilih Sumber Data

Pada halaman berikutnya, pilih sumber data. Pilih bagian "Pilih tabel atau tampilan dari 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 Anda memilih tabel/tampilan sumber, dari daftar penjelajahan, jangan lupa mengklik tombol pilihan untuk melanjutkan langkah-langkah di bawah. Jika Anda tidak sengaja mengklik nama tabel/tampilan, Anda akan dibawa ke Dataplex. Anda hanya perlu mengakses kembali Vertex AI jika hal ini terjadi pada Anda.

Melatih Model

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

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 "Target Column" sebagai "Score" dari menu dropdown yang muncul dan klik Lanjutkan.
  3. Perhatikan juga bahwa Anda dapat memeriksa "Ekspor set data pengujian ke BigQuery" , yang memudahkan untuk melihat set pengujian dengan hasil dalam database secara efisien tanpa lapisan integrasi tambahan atau harus memindahkan data antarlayanan.
  4. Pada halaman berikutnya, Anda memiliki opsi untuk memilih opsi pelatihan lanjutan yang Anda perlukan dan jam yang Anda inginkan untuk menyetel model untuk dilatih. Harap perhatikan bahwa Anda mungkin perlu memperhatikan harga sebelum menambah jumlah jam kerja 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 Training (di bawah judul Pengembangan Model di menu sebelah kiri) dan melihat pelatihan Anda tercantum di bagian Training Pipelines. Klik tombol tersebut untuk membuka halaman Model Registry. Anda harus sudah mampu:

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

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

95fb4495618174f0.pngS

Sebelum melanjutkan dari bagian ini, pastikan Anda mencatat ID Endpoint model yang di-deploy, dan detail lainnya 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. Kami menggunakan library google-cloud-aiplatform untuk menggunakan Vertex AI AutoML API endpoint.

  1. Cari 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", dan klik berikutnya/simpan

a68272022df062f2.png

  1. Di halaman berikutnya, pilih Runtime (Java 11), Source Code (Inline atau upload), lalu mulailah mengedit

13df616369ca5951.pngS

  1. Salin file java dan pom.xml dari repo dan tempel di file masing-masing di editor inline, jika Anda menggunakan editor lokal (direkomendasikan), lalu clone sumber dari repo
  2. Ubah project ID, ID endpoint, lokasi, dan endpoint dalam file sumber .java untuk contoh ini. Namun, perhatikan bahwa praktik terbaik menggunakan Secret Manager untuk menyimpan kredensial
  3. Untuk cakupan codelab ini, jadikan bagian MongoDB di class .java sebagai komentar di kode sumber yang disalin

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.