FraudFinder: Dari data mentah ke AI dengan Vertex AI dan BigQuery.

1. Ringkasan

Di lab ini, Anda akan mempelajari cara membangun sistem data ke AI yang menyeluruh untuk deteksi penipuan secara real-time di Google Cloud. Tujuannya adalah memahami cara beralih dari data mentah ke pipeline ML siap produksi yang berjalan di Google Cloud. Lab ini menggunakan produk Google Cloud berikut:

Apa yang akan Anda pelajari?

Membangun pipeline ML menyeluruh bisa menjadi tantangan tersendiri. Di lab ini, Anda akan mempelajari cara membangun dan menskalakan pipeline ML menyeluruh menggunakan layanan Google Cloud seperti BigQuery dan Vertex AI. Kami akan membawa Anda dalam perjalanan terkait cara beralih dari data mentah ke AI dalam produksi. Tujuan pembelajaran tingkat tinggi untuk lab ini adalah:

  • Mempelajari praktik terbaik untuk membangun data ke sistem AI di Google Cloud.
  • Mempelajari cara melakukan rekayasa fitur dengan BigQuery menggunakan SQL (untuk batch processing) dan Apache Beam menggunakan Dataflow (pemrosesan real-time) serta cara menggunakan Vertex AI Feature Store.
  • Cara melakukan analisis data menggunakan library BigQuery dan Python seperti Pandas dan Plotly.
  • Cara melatih model ML dengan BigQuery ML melalui SQL.
  • Cara memanfaatkan Vertex AI untuk menyimpan, men-deploy, dan memantau model Anda.
  • Cara menggunakan Vertex AI Pipelines untuk memformalkan data Anda ke alur kerja AI.

PENTING: Biaya untuk menjalankan lab ini di Google Cloud adalah sekitar $100.

2. Dari data mentah ke AI dengan Vertex AI dan BigQuery

Lab ini mencakup analisis data dan produk AI terbaru yang tersedia di Google Cloud seperti Vertex AI dan BigQuery ML. Vertex AI dan BigQuery mempermudah peralihan dari data mentah ke AI dan menawarkan pengalaman pengembangan yang lancar untuk membantu Anda menjadi lebih produktif dalam menghadirkan model ke dalam produksi. Jika Anda perlu dukungan, harap baca halaman dukungan.

Vertex AI mencakup banyak produk berbeda untuk mendukung alur kerja data ke AI secara menyeluruh. Di bawah ini tercantum ringkasan dari semua kemampuan Vertex AI:

Ringkasan produk Vertex

3. Kasus penggunaan dan data FraudFinder

FraudFinder adalah rangkaian notebook yang mengajarkan data komprehensif ke perjalanan AI di Google Cloud, melalui kasus penggunaan deteksi penipuan secara real-time. Di seluruh notebook, Anda akan belajar cara membaca histori data transaksi pembayaran yang disimpan di data warehouse, membaca transaksi baru di live stream, melakukan analisis data eksploratif (EDA), melakukan rekayasa fitur, menyerap fitur ke dalam Feature Store, melatih model menggunakan Feature Store, mendaftarkan model Anda ke registry model, mengevaluasi model Anda, men-deploy model Anda ke endpoint, melakukan inferensi real-time pada model Anda dengan Feature Store, dan memantau model Anda.

Deteksi penipuan mencakup klasifikasi dan deteksi anomali, yakni domain yang bisa dibilang luas di bidang machine learning. Dengan demikian, deteksi penipuan dapat dijadikan sebagai kasus penggunaan yang baik untuk memahami kisah nyata dan cara yang bagus untuk menampilkan arsitektur data ke AI secara menyeluruh di Google Cloud. Anda tidak perlu menjadi pakar penipuan untuk memahami arsitektur menyeluruh. Pola arsitektur ini dapat diterapkan ke kasus penggunaan lainnya.

Di bawah ini tercantum ringkasa arsitektur FraudFinder:

Arsitektur FraudFinder

Set data

Set data disintesis menggunakan kode dari Machine Learning untuk Deteksi Penipuan Kartu Kredit - proyek Buku Panduan Praktis dari Kaggle. Deteksi penipuan real-time secara arsitektural berbeda dari deteksi penipuan berbasis batch dan dicirikan dengan hal-hal berikut:

  • Frekuensi tinggi (misalnya, 1.000 per detik) untuk permintaan prediksi
  • Latensi rendah (misalnya < 1 detik) dari permintaan prediksi → respons
  • Prediksi biasanya per 1 sampel per permintaan prediksi atau bisa dalam "micro-batch" (misalnya, 1.000 transaksi dikirim sebagai batch untuk inferensi mendekati real-time)
  • Rekayasa fitur untuk inferensi harus dikomputasi sebelumnya atau dikomputasi secara real-time

Set data historis FraudFinder

Ada tabel BigQuery publik berisi histori transaksi pembayaran, yang memungkinkan pengguna melatih model mereka dan melakukan rekayasa fitur menggunakan data di BigQuery.

cymbal-fraudfinder (project)
|-`tx` (dataset)
  |-`tx` (table: transactions without labels)
  |-`txlabels` (table: transactions with fraud labels (1 or 0))
|-demographics
  |-`customers` (table: profiles of customers)
  |-`terminals` (table: profiles of terminals)
  |-`customersterminals` (table: profiles of customers and terminals within their radius)

Mengapa real-time?

Di lab ini, Anda akan mempelajari cara memanfaatkan data real-time dan menerapkan inferensi serta rekayasa fitur real-time. Fitur real-time dapat membantu meningkatkan kualitas model Anda dengan memanfaatkan sinyal yang sebelumnya tidak dapat Anda gunakan selama waktu inferensi.

Data streaming live Fraudfinder

Sebagai bagian dari lab FraudFinder, ada topik Pub/Sub publik dengan transaksi pembayaran live streaming yang dapat dimanfaatkan pengguna untuk menguji endpoint model dan fitur streaming mereka dengan mudah. Pub/Sub adalah layanan pesan asinkron dan dapat diskalakan. Anda akan menggunakan topik ini untuk melakukan streaming fitur dan melakukan inferensi online. Pengguna juga dapat beralih di antara topik dengan tingkat penipuan dasar vs. tingkat penipuan yang lebih tinggi untuk menampilkan pemantauan model. Tersedia topik Pub/Sub publik berikut:

  • ff-tx
  • ff-txlabels

4. Menyiapkan project dan instance notebook Anda

Anda memerlukan project Google Cloud Platform dengan penagihan yang diaktifkan untuk menjalankan lab ini. Untuk membuat project, ikuti petunjuknya.

PENTING: Kami menyarankan Anda untuk menjalankan lab ini di project baru. Lab ini mencakup banyak produk yang berbeda, dan paling praktis jika Anda menghapus keseluruhan project setelah menyelesaikan lab.

Jika Anda sudah memiliki project, lanjutkan dengan langkah-langkah berikut. Langkah-langkah berikut juga dapat ditemukan di file README.md yang ada di repo.

Langkah 1: Mengaktifkan API

Pertama, buka project yang baru saja Anda buat dan buka Cloud Shell. Langkah ini mungkin memerlukan waktu beberapa menit karena akan menyediakan Cloud Shell baru jika Anda belum mengaktifkannya.

Cloud Shell

Berikutnya, jalankan kode berikut di Cloud Shell Anda dengan menyalin dan menempel. Skrip akan mengaktifkan API yang diperlukan dan membuat langganan Pub/Sub untuk membaca transaksi streaming dari topik Pub/Sub publik. Luangkan cukup waktu hingga semua perintah dijalankan.

gcloud services enable notebooks.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable dataflow.googleapis.com
gcloud services enable bigquery.googleapis.com

gcloud pubsub subscriptions create "ff-tx-sub" --topic="ff-tx" --topic-project="cymbal-fraudfinder"
gcloud pubsub subscriptions create "ff-txlabels-sub" --topic="ff-txlabels" --topic-project="cymbal-fraudfinder"

# Run the following command to grant the Compute Engine default service account access to read and write pipeline artifacts in Google Cloud Storage.
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUM=$(gcloud projects list --filter="$PROJECT_ID" --format="value(PROJECT_NUMBER)")
gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:${PROJECT_NUM}-compute@developer.gserviceaccount.com"\
      --role='roles/storage.admin'

Langkah 2: Membuat instance Vertex AI Workbench

Selanjutnya, buka bagian Vertex AI di Cloud Console Anda. Lalu buka Workbench:

Menu Vertex AI

Aktifkan Vertex AI Workbench API (notebook API) jika belum diaktifkan.

Notebook_api

Setelah diaktifkan, pilih USER-MANAGED NOTEBOOKS:

Notebooks_UI

Kemudian, pilih NEW NOTEBOOK. Anda dapat memilih Python 3.

new_notebook

Beri nama notebook Anda, misalnya fraudfinder, lalu klik Advanced Settings.

create_notebook

Penting: Pastikan Anda memilih Service Account pada Permissions.

Akun Layanan

Penting: Di bagian Security pilih "Enable terminal" jika belum diaktifkan.

enable_terminal

Anda dapat membiarkan semua setelan lanjutan lainnya apa adanya.

Selanjutnya, klik Buat. Instance akan memerlukan waktu beberapa menit untuk disediakan.

Setelah instance dibuat, pilih Buka JupyterLab.

open_jupyterlab

Langkah 3: Menetapkan Peran IAM

Untuk kemudahan, anggaplah Anda akan menggunakan akun layanan default Compute Engine. Ini bukan praktik terbaik untuk beban kerja produksi. Praktik terbaiknya adalah membuat akun layanan khusus untuk setiap aplikasi, dan menghindari penggunaan akun layanan default. Anda dapat membaca info selengkapnya tentang praktik terbaik akun layanan di dokumentasi kami. Akun layanan komputasi default akan terlihat seperti ini: 123456789123-compute@developer.gserviceaccount.com. Buka IAM admin, lalu klik ADD. Di tampilan, telusuri dan pilih akun layanan default Compute Engine, lalu tetapkan peran berikut:

  • BigQuery Admin
  • Storage Admin
  • Storage Object Admin
  • Vertex AI Administrator
  • Pub/Sub Admin

Tampilan tersebut harus terlihat seperti berikut. Jangan lupa untuk menyimpan setelan yang baru.

iam-roles.png

Langkah 4: Meng-clone repo GitHub

Setelah membuat dan mengakses instance notebook, tiba saatnya untuk menyiapkan lingkungan Anda. Pertama, buka jendela terminal.

Buka Terminal

Salin, tempel, dan jalankan perintah berikut di terminal notebook Anda:

git clone https://github.com/GoogleCloudPlatform/fraudfinder.git

Menjalankan perintah ini akan meng-clone repositori FraudFinder ke instance notebook Anda. Setelah menjalankan git clone, Anda akan menemukan folder fraudfinder di instance Notebook Anda di sebelah kiri. Sekarang buka: folder fraudfinder. Di sini, Anda akan menemukan Notebooks yang dibutuhkan untuk lab.

Mulai bagian berikut dan seterusnya, Anda diharapkan mengikuti petunjuk di notebook tersebut. Lanjutkan dengan penyiapan lingkungan.

5. Penyiapan Lingkungan

Bagian ini berisi pembahasan mengenai langkah-langkah untuk membantu menyiapkan lingkungan project Anda. Di sini, Anda akan mempelajari tujuan pembelajaran berikut:

  • Menyiapkan lingkungan Anda, termasuk paket.
  • Memuat data ke BigQuery.
  • Membaca data dari topik Pub/Sub publik.

Lanjutkan dengan notebook berikut dan ikuti petunjuk langkah demi langkah:

  • 00_environment_setup.ipynb

6. Analisis Data Eksploratif

Bagian ini berisi cara melakukan Analisis Data eksploratif untuk memahami data Penipuan dengan lebih baik. Di sini, Anda akan mempelajari tujuan pembelajaran berikut:

  • Mengekstrak dan menjelajahi data dari BigQuery menggunakan SQL
  • Memplot data transaksi menggunakan BigQuery dan Plotly
  • Menerapkan agregasi data dan membuat diagram sebar

Lanjutkan dengan Notebook berikut dan ikuti petunjuk langkah demi langkah:

  • 01_exploratory_data_analysis.ipynb

7. Batch dan Streaming Rekayasa Fitur

Di bagian ini, Anda akan mengerjakan Rekayasa Fitur guna menghasilkan fitur untuk pelatihan model dari data mentah. Kita akan menggunakan batch dan streaming. Kedua kasus penggunaan ini penting untuk membahas Deteksi Penipuan. Di sini, Anda akan mempelajari tujuan pembelajaran berikut:

  • Cara membuat fitur menggunakan BigQuery dan SQL
  • Membuat Vertex AI Feature Store dan menyisipkan data
  • Cara menangani data streaming dan memasukkannya ke dalam Feature Store

Lanjutkan dengan dua Notebooks berikut secara berurutan dan ikuti petunjuknya di Notebooks:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Pelatihan Model, Prediksi, Formalisasi, dan Pemantauan

Di bagian ini, Anda akan melatih dan men-deploy Model BigQuery pertama Anda untuk mendeteksi kemungkinan kasus penipuan. Anda juga akan belajar mengambil kode pelatihan dan deployment Anda, serta memformalkannya ke dalam pipeline otomatis. Anda juga akan mempelajari cara melakukan prediksi online dan memantau model Anda dalam produksi. Di sini, Anda akan mempelajari tujuan pembelajaran berikut:

  • Cara melatih model BigQuery ML dan mendaftarkannya di Vertex AI Model Registry
  • Men-deploy model sebagai endpoint di Vertex AI
  • Cara menggunakan Vertex AI SDK
  • Cara menggunakan model ML BigQuery untuk membuat pipeline ML menyeluruh
  • Cara Menggunakan Pemantauan Model Vertex AI

Lanjutkan dengan Notebooks berikut secara berurutan dan ikuti petunjuk langkah demi langkah dalam Notebooks: Notebook ini ada di Folder BQML. Ikuti notebook langkah demi langkah.

  • 04_model_training_and_prediction.ipynb
  • 05_model_training_pipeline_formalization.ipynb
  • 06_model_monitoring.ipynb
  • 07_model_inference.ipynb
🎉 Congratulations! 🎉

Anda telah mempelajari cara membangun data ke arsitektur AI di Google Cloud.

9. Pembersihan

Kami ingin menyarankan Anda untuk menjalankan lab ini pada project baru. Lab ini mencakup banyak produk yang berbeda, dan paling praktis jika Anda menghapus keseluruhan project setelah menyelesaikan lab. Dalam dokumentasi kami, Anda dapat menemukan informasi lebih lanjut tentang cara menghapus project.

Jika Anda ingin menghapus layanan, ikuti petunjuk di Notebooks atau hapus resource yang dibuat.