FraudFinder: od nieprzetworzonych danych do AI z Vertex AI i BigQuery.

1. Przegląd

Z tego modułu dowiesz się, jak zbudować kompleksowy system przetwarzania danych na potrzeby AI do wykrywania oszustw w czasie rzeczywistym w Google Cloud. Celem jest zrozumienie, jak przekształcić nieprzetworzone dane w potok ML przygotowany do zastosowań produkcyjnych działający w Google Cloud. W tym laboratorium używane są te usługi Google Cloud:

Czego się nauczysz?

Tworzenie kompleksowego potoku ML może być trudne. Z tego modułu dowiesz się, jak tworzyć i skalować kompleksowy potok ML przy użyciu usług Google Cloud, takich jak BigQuery i Vertex AI. Pokażemy Ci, jak przejść od nieprzetworzonych danych do wdrożenia AI w środowisku produkcyjnym. Główne cele szkoleniowe tego modułu to:

  • Poznaj sprawdzone metody tworzenia systemów danych do AI w Google Cloud.
  • Dowiedz się, jak przeprowadzać inżynierię cech za pomocą BigQuery z użyciem SQL (przetwarzanie wsadowe) i Apache Beam z użyciem Dataflow (przetwarzanie w czasie rzeczywistym) oraz korzystać z Vertex AI Feature Store.
  • Jak przeprowadzać analizę danych za pomocą BigQuery i bibliotek Pythona, takich jak Pandas i Plotly.
  • Jak wytrenować model ML za pomocą BigQuery ML za pomocą SQL.
  • Jak używać Vertex AI do przechowywania, wdrażania i monitorowania modelu.
  • Jak używać Vertex AI Pipelines do formalizowania przepływu pracy od danych do AI.

WAŻNE: koszt przeprowadzenia tego laboratorium w Google Cloud wynosi około 100 USD.

2. Od nieprzetworzonych danych do AI z użyciem Vertex AI i BigQuery

Ten moduł obejmuje najnowsze usługi do analizy danych i AI dostępne w Google Cloud, takie jak Vertex AIBigQuery ML. Vertex AI i BigQuery ułatwiają przekształcanie nieprzetworzonych danych w AI i zapewniają płynne środowisko programistyczne, które zwiększa produktywność podczas wdrażania modeli w wersji produkcyjnej. Jeśli potrzebujesz pomocy, odwiedź stronę pomocy.

Vertex AI obejmuje wiele różnych usług, które obsługują kompleksowe przepływy pracy od danych do AI. Poniżej znajdziesz omówienie wszystkich funkcji Vertex AI:

Omówienie usługi Vertex

3. Przypadek użycia i dane FraudFinder

FraudFinder to seria notatników, które pokazują kompleksową ścieżkę od danych do AI w Google Cloud na przykładzie wykrywania oszustw w czasie rzeczywistym. Z notatników dowiesz się, jak odczytywać historyczne dane transakcji płatniczych przechowywane w hurtowni danych, odczytywać dane z transmisji na żywo nowych transakcji, przeprowadzać eksploracyjną analizę danych (EDA), przeprowadzać inżynierię cech, wprowadzać cechy do Feature Store, trenować model za pomocą Feature Store, rejestrować model w Model Registry, oceniać model, wdrażać model w punkcie końcowym, przeprowadzać wnioskowanie w czasie rzeczywistym na podstawie modelu za pomocą Feature Store i monitorować model.

Wykrywanie oszustw obejmuje klasyfikację i wykrywanie anomalii, czyli rozległe dziedziny uczenia maszynowego. Wykrywanie oszustw to dobry przykład zastosowania prawdziwej historii, która jest łatwa do zrozumienia i stanowi świetny sposób na zaprezentowanie kompleksowej architektury danych do AI w Google Cloud. Aby zrozumieć architekturę kompleksową, nie musisz być ekspertem ds. oszustw. Wzorzec architektury można zastosować w innych przypadkach użycia.

Poniżej znajdziesz omówienie architektury FraudFinder:

Architektura FraudFinder

Zbiór danych

Zbiór danych został wygenerowany przy użyciu kodu z projektu Machine Learning for Credit Card Fraud Detection – Practical Handbook z Kaggle. Wykrywanie oszustw w czasie rzeczywistym różni się pod względem architektury od wykrywania oszustw w trybie wsadowym i charakteryzuje się tymi cechami:

  • Wysoka częstotliwość (np. 1000 na sekundę) żądań prognozowania
  • Niskie opóźnienie (np. < 1 s) żądania prognozy → odpowiedzi
  • Prognozowanie odbywa się zwykle na podstawie 1 próbki na żądanie prognozy lub może być realizowane w „mikropartiach” (np.1000 transakcji wysyłanych jako partia w celu wnioskowania w czasie zbliżonym do rzeczywistego).
  • Inżynieria cech na potrzeby wyświetlania musi być wstępnie obliczona lub obliczana w czasie rzeczywistym

Zbiór danych historycznych FraudFinder

Istnieją publiczne tabele BigQuery z historycznymi transakcjami płatniczymi, które umożliwiają użytkownikom trenowanie modeli i inżynierię cech przy użyciu danych w 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)  

Dlaczego w czasie rzeczywistym?

W tym module dowiesz się, jak wykorzystywać dane w czasie rzeczywistym oraz stosować inżynierię cech i wnioskowanie w czasie rzeczywistym. Funkcje w czasie rzeczywistym mogą pomóc ulepszyć model dzięki wykorzystaniu sygnałów, których w innym przypadku nie można by użyć w czasie wnioskowania.

Dane przesyłane strumieniowo na żywo z FraudFinder

W ramach laboratorium FraudFinder dostępne są publiczne tematy Pub/Sub z transakcjami płatniczymi transmitowanymi na żywo, dzięki którym użytkownicy mogą wygodnie testować punkty końcowe modelu i funkcje strumieniowania. Pub/Sub to asynchroniczna i skalowalna usługa do przesyłania wiadomości. Będziesz używać tych tematów do przesyłania strumieniowego funkcji i przeprowadzania wnioskowania online. Użytkownicy mogą też przełączać się między tematami z podstawowymi i wyższymi wskaźnikami oszustw, aby wyświetlać monitorowanie modelu. Dostępne są te publiczne tematy Pub/Sub:

  • ff-tx
  • ff-txlabels

4. Konfigurowanie projektu i wystąpienia notatnika

Aby wykonać ten moduł, musisz mieć projekt w Google Cloud Platform z włączonymi płatnościami. Aby utworzyć projekt, postępuj zgodnie z instrukcjami.

WAŻNE: zalecamy przeprowadzenie tego laboratorium w nowym projekcie. Ten moduł obejmuje wiele różnych usług, dlatego najłatwiej będzie usunąć cały projekt po jego ukończeniu.

Jeśli masz projekt, wykonaj te czynności. Poniższe instrukcje znajdziesz też w pliku README.md w repozytorium.

Krok 1. Włącz interfejsy API

Najpierw otwórz utworzony projekt i otwórz Cloud Shell. Ten krok może potrwać kilka minut, ponieważ w razie potrzeby zostanie utworzona nowa usługa Cloud Shell.

Cloud Shell

Następnie wykonaj w Cloud Shell ten kod, kopiując go i wklejając. Skrypt włączy niezbędne interfejsy API i utworzy subskrypcje Pub/Sub do odczytywania transakcji przesyłanych strumieniowo z publicznych tematów Pub/Sub. Wykonanie wszystkich poleceń może trochę potrwać.

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'

Krok 2. Tworzenie instancji Vertex AI Workbench

Następnie przejdź do sekcji Vertex AI w konsoli Cloud. Następnie otwórz Workbench:

Menu Vertex AI

Włącz interfejs Vertex AI Workbench (notebook API), jeśli nie jest włączony.

Notebook_api

Po włączeniu wybierz NOTATNIKI ZARZĄDZANE PRZEZ UŻYTKOWNIKA:

Notebooks_UI

Następnie wybierz NOWY NOTEBOOK. Możesz wybrać język Python 3.

new_notebook

Nadaj notatnikowi nazwę, np. fraudfinder, a następnie kliknij Ustawienia zaawansowane.

create_notebook

Ważne: w sekcji Permissions wybierz Service Account.

Konto usługi

Ważne: w sekcji Zabezpieczenia wybierz „Włącz terminal”, jeśli nie jest jeszcze włączony.

enable_terminal

Wszystkie pozostałe ustawienia zaawansowane możesz pozostawić bez zmian.

Następnie kliknij Utwórz. Udostępnienie instancji zajmie kilka minut.

Po utworzeniu instancji wybierz Otwórz JupyterLab.

open_jupyterlab

Krok 3. Skonfiguruj role IAM

Dla uproszczenia załóżmy, że użyjesz domyślnego konta usługi Compute Engine. Nie jest to najlepsze rozwiązanie w przypadku zbiorów zadań produkcyjnych. Zalecamy tworzenie dedykowanych kont usługi dla każdej aplikacji i unikanie używania domyślnych kont usługi. Więcej informacji o sprawdzonych metodach dotyczących kont usługi znajdziesz w naszej dokumentacji. Domyślne konto usługi Compute będzie wyglądać mniej więcej tak: 123456789123-compute@developer.gserviceaccount.com. Otwórz Administrację i kliknij ADD. W widoku wyszukaj i wybierz domyślne konto usługi Compute Engine, a następnie przypisz te role:

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

Powinno to wyglądać mniej więcej tak: Nie zapomnij zapisać nowych ustawień.

iam-roles.png

Krok 4. Sklonuj repozytorium GitHub

Po utworzeniu instancji notatnika i uzyskaniu do niej dostępu możesz skonfigurować środowisko. Najpierw otwórz okno terminala.

Otwórz terminal

Skopiuj, wklej i uruchom to polecenie w terminalu notatnika:

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

Uruchomienie tego polecenia spowoduje sklonowanie repozytorium FraudFinder do instancji notatnika. Po uruchomieniu polecenia git clone po lewej stronie instancji notatnika znajdziesz folder fraudfinder. Teraz przejdź do folderu fraudfinder. Tutaj znajdziesz notatniki potrzebne w tym laboratorium.

W kolejnych sekcjach postępuj zgodnie z instrukcjami w notatnikach. Kontynuuj konfigurację środowiska.

5. Konfiguracja środowiska

W tej sekcji znajdziesz instrukcje, które pomogą Ci skonfigurować środowisko projektu. W tej sekcji znajdziesz informacje na następujące tematy:

  • Skonfiguruj środowisko, w tym pakiety.
  • wczytać dane do BigQuery;
  • Odczytywanie danych z publicznych tematów Pub/Sub.

Otwórz ten notatnik i wykonaj podane w nim instrukcje:

  • 00_environment_setup.ipynb

6. Wstępna analiza danych

Z tej sekcji dowiesz się, jak przeprowadzić eksploracyjną analizę danych, aby lepiej zrozumieć dane dotyczące oszustw. W tej sekcji znajdziesz informacje na następujące tematy:

  • Wyodrębnianie i przeglądanie danych z BigQuery za pomocą SQL
  • Wykreślanie danych transakcji za pomocą BigQuery i Plotly
  • Stosowanie agregacji danych i tworzenie wykresu punktowego

Otwórz kolejny notatnik i postępuj zgodnie z instrukcjami:

  • 01_exploratory_data_analysis.ipynb

7. Przetwarzanie wsadowe i strumieniowe w inżynierii cech

W tej sekcji zajmiesz się inżynierią cech, aby na podstawie surowych danych wygenerować cechy do trenowania modelu. Będziemy używać przetwarzania wsadowego i strumieniowego. W przypadku wykrywania oszustw ważne jest uwzględnienie obu tych przypadków użycia. W tej sekcji znajdziesz informacje na następujące tematy:

  • Jak tworzyć funkcje za pomocą BigQuery i SQL
  • Tworzenie magazynu funkcji Vertex AI i wstawianie danych
  • Jak przetwarzać dane przesyłane strumieniowo i przesyłać je do Feature Store

Wykonaj te 2 notatniki w podanej kolejności i postępuj zgodnie z instrukcjami w nich zawartymi:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Trenowanie, prognozowanie, formalizacja i monitorowanie modelu

W tej sekcji wytrenujesz i wdrożysz pierwszy model BigQuery ML, aby wykrywać potencjalne przypadki oszustwa. Dowiesz się też, jak przekształcić kod szkoleniowy i wdrożeniowy w zautomatyzowany potok. Dowiesz się też, jak uzyskiwać prognozy online i monitorować model w środowisku produkcyjnym. W tej sekcji znajdziesz informacje na następujące tematy:

  • Jak wytrenować model BigQuery ML i zarejestrować go w Vertex AI Model Registry
  • Wdrażanie modelu jako punktu końcowego w Vertex AI
  • Jak korzystać z pakietu Vertex AI SDK
  • Jak wykorzystać model BigQuery ML do utworzenia kompleksowego potoku ML
  • Instrukcje: Jak korzystać z Vertex AI Model Monitoring

Wykonaj czynności opisane w tych notatnikach w podanej kolejności. Notatniki znajdziesz w folderze BQML. Wykonaj czynności opisane w notatniku krok po kroku:

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

Wiesz już, jak tworzyć architekturę danych do AI w Google Cloud.

9. Czyszczenie

Zalecamy przeprowadzenie tego modułu w nowym projekcie. Ten moduł obejmuje wiele różnych usług, więc najłatwiej będzie usunąć cały projekt po jego ukończeniu. Więcej informacji o usuwaniu projektu znajdziesz w naszej dokumentacji.

Jeśli chcesz usunąć usługi, postępuj zgodnie z instrukcjami w notatnikach lub usuń utworzone zasoby.