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

1. Omówienie

W tym module dowiesz się, jak utworzyć kompleksowy system danych dla AI na potrzeby wykrywania oszustw w czasie rzeczywistym w Google Cloud. Chcemy dowiedzieć się, jak przejść od nieprzetworzonych danych do gotowego do produkcji potoku ML działającego w Google Cloud. W tym module używane są te usługi Google Cloud:

Czego się nauczysz?

Tworzenie kompleksowego potoku ML może być wyzwaniem. W tym module dowiesz się, jak utworzyć i skalować pełny potok ML przy użyciu usług Google Cloud, takich jak BigQuery i Vertex AI. Pokażemy Ci, jak przejść od nieprzetworzonych danych do produkcji AI. Główny cel lekcji to:

  • Poznaj sprawdzone metody tworzenia danych na potrzeby systemów AI w Google Cloud.
  • Dowiedz się, jak tworzyć funkcje przy użyciu BigQuery z użyciem SQL (do przetwarzania wsadowego) i Apache Beam za pomocą Dataflow (przetwarzanie w czasie rzeczywistym) oraz używać Vertex AI Feature Store.
  • jak przeprowadzić analizę danych za pomocą bibliotek BigQuery i Pythona takich jak Pandas czy Plotly.
  • Jak wytrenować model ML z użyciem BigQuery ML przy użyciu SQL.
  • Jak wykorzystać Vertex AI do przechowywania, wdrażania i monitorowania modelu.
  • Jak używać potoków Vertex AI do formalizacji danych w przepływach pracy AI.

WAŻNE: przebieg tego modułu w Google Cloud wynosi około 100 USD.

2. Od nieprzetworzonych danych do AI za pomocą Vertex AI i BigQuery

W tym module poznasz najnowsze usługi analityczne i AI dostępne w Google Cloud, takie jak Vertex AI i BigQuery ML. Vertex AI i BigQuery ułatwiają przejście od nieprzetworzonych danych do AI i umożliwiają bezproblemowe programowanie, co pomaga zwiększyć produktywność przy wdrażaniu modeli w środowisku produkcyjnym. Jeśli potrzebujesz pomocy, odwiedź stronę pomocy.

Vertex AI obejmuje wiele różnych usług, które obsługują kompleksowe dane w przepływach pracy AI. Poniżej znajdziesz przegląd wszystkich funkcji Vertex AI:

Omówienie usługi Vertex

3. Przypadek użycia i dane usługi FraudFinder

FraudFinder to seria notatników, które uczą kompleksowych danych na potrzeby AI w Google Cloud na podstawie przypadków użycia wykrywania oszustw w czasie rzeczywistym. Z tych notatników dowiesz się, jak odczytywać historyczne dane transakcji płatniczych przechowywane w hurtowni danych, odczytywać dane ze strumienia na żywo nowych transakcji, przeprowadzać eksploracyjną analizę danych (EDA), przeprowadzać eksplorację cech, przetwarzać funkcje w magazynie cech, trenować model przy użyciu magazynu cech, rejestrować model w rejestrze modeli, oceniać model, wdrażać go w punkcie końcowym, wnioskować w czasie rzeczywistym i monitorować model przy użyciu magazynu cech.

Wykrywanie oszustw obejmuje klasyfikację i wykrywanie anomalii, prawdopodobnie rozległej domeny w systemach uczących się. Dlatego wykrywanie oszustw sprawdza się w przypadku prawdziwej, łatwej do zrozumienia historii, która jest świetnym sposobem na zaprezentowanie kompleksowych danych w architekturze AI w Google Cloud. Nie musisz być ekspertem od oszustw, aby zrozumieć całą architekturę. Wzór architektury można zastosować w innych przypadkach użycia.

Poniżej znajdziesz omówienie architektury usługi FraudFinder:

Architektura FraudFinder

Zbiór danych

Zbiór danych jest syntetyzowany przy użyciu kodu z projektu Machine Learning for Credit Card Faud Detection – praktycznego podręcznika Kaggle. Wykrywanie oszustw w czasie rzeczywistym różni się architekturą od wykrywania oszustw opartego na wsadach i charakteryzuje się tym, że:

  • Wysoka częstotliwość (np. 1000 na sekundę) żądań prognoz
  • Krótki czas oczekiwania (np. < 1 s) żądania prognozy → odpowiedź
  • Prognoza jest zwykle na 1 próbkę na żądanie prognozy lub może być przygotowana w „mikroserwisach” (np. 1000 transakcji wysłanych zbiorczo na potrzeby wnioskowania w czasie zbliżonym do rzeczywistego)
  • Inżynieria funkcji na potrzeby udostępniania musi być wstępnie obliczona lub obliczana w czasie rzeczywistym

Historyczny zbiór danych FraudFinder

Istnieją publiczne tabele BigQuery z historycznymi transakcjami płatności, które pozwalają użytkownikom trenować modele i tworzyć funkcje z wykorzystaniem 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 raporty w czasie rzeczywistym?

W tym module dowiesz się, jak korzystać z danych w czasie rzeczywistym oraz stosować wnioskowanie i inżynierowanie cech w czasie rzeczywistym. Funkcje w czasie rzeczywistym mogą pomóc w ulepszaniu modelu, wykorzystując sygnały, które w innym przypadku nie byłyby możliwe do wykorzystania w czasie wnioskowania.

Oszustwo na żywo, dane strumieniowe

W ramach laboratorium Oszuści dostępne są publiczne tematy Pub/Sub z transakcjami płatności w ramach transmisji na żywo, które 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. Wykorzystasz te tematy do strumieniowania funkcji i wyciągania wniosków online. Użytkownicy mogą też przełączać się między tematami z wartością bazową i wyższym odsetkiem oszustw, aby wyświetlić monitorowanie modelu. Dostępne są te publiczne tematy Pub/Sub:

  • ff-tx
  • ff-txlabels

4. Skonfiguruj projekt i instancję notatnika

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

WAŻNE: zalecamy uruchomienie tego modułu w nowym projekcie. Moduł obejmuje wiele różnych usług. Najłatwiej jest usunąć cały projekt po jego ukończeniu.

Gdy będziesz już mieć projekt, wykonaj poniższe czynności. Instrukcje opisane poniżej możesz też znaleźć w pliku README.md w repozytorium.

Krok 1. Włącz interfejsy API

Najpierw przejdź do utworzonego projektu i otwórz Cloud Shell. Ten krok może potrwać kilka minut, ponieważ spowoduje udostępnienie nowej wersji Cloud Shell, jeśli jeszcze jej nie aktywowano.

Cloud Shell

Następnie uruchom ten kod w Cloud Shell, kopiując i wklejając go. Skrypt włączy niezbędne interfejsy API i utworzy subskrypcje Pub/Sub, aby odczytywać transakcje strumieniowania z publicznych tematów Pub/Sub. Poczekaj na wykonanie wszystkich poleceń.

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. Utwórz instancję Vertex AI Workbench

Następnie przejdź do sekcji Vertex AI w konsoli Cloud. Następnie przejdź do 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żytkowniczki:

Notebooks_UI

Następnie wybierz NOWY NOTATNIK. Możesz wybrać Pythona 3.

new_notebook

Nadaj notatnikowi nazwę, na przykład fraudfinder, a następnie kliknij Ustawienia zaawansowane.

create_notebook

Ważne: wybierz Service Account w sekcji Permissions.

Konto usługi

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

enable_terminal

Inne 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. Ustaw role uprawnień

Dla uproszczenia załóżmy, że będziesz korzystać z domyślnego konta usługi Compute Engine. Nie jest to sprawdzona metoda w przypadku zbiorów zadań produkcyjnych. Sprawdzoną metodą jest utworzenie 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 Engine będzie wyglądać mniej więcej tak: 123456789123-compute@developer.gserviceaccount.com. Otwórz stronę Administrator uprawnień 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

Powinien 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 należy skonfigurować środowisko. Najpierw otwórz okno terminala.

Otwórz terminal

Skopiuj, wklej i uruchom następujące polecenie w terminalu notatnika:

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

Uruchomienie tego polecenia spowoduje sklonowanie repozytoriumFraudFinder do instancji notatek. Po uruchomieniu polecenia git clone w instancji notatnika po lewej stronie znajdziesz folder oszustów. Teraz przejdź do folderu fraudfinder. Tu znajdziesz notatniki potrzebne do ukończenia modułu.

Od kolejnych sekcji musisz postępować zgodnie z instrukcjami w notatnikach. Kontynuuj konfigurowanie środowiska.

5. Konfiguracja środowiska

W tej sekcji opisano czynności, które pomogą Ci skonfigurować środowisko projektu. W tej sekcji zostaną omówione następujące cele szkoleniowe:

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

Korzystaj z tego notatnika i postępuj zgodnie z instrukcjami krok po kroku:

  • 00_environment_setup.ipynb

6. Analiza danych eksploracyjnych

Z tej sekcji dowiesz się, jak przeprowadzić eksploracyjną analizę danych, aby lepiej zrozumieć dane dotyczące oszustw. W tej sekcji zostaną omówione następujące cele szkoleniowe:

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

Przejdź do następnego notatnika i postępuj zgodnie ze szczegółowymi instrukcjami:

  • 01_exploratory_data_analysis.ipynb

7. Inżynieria wsadowa i strumieniowanie funkcji

W tej sekcji będziesz pracować nad inżynierią cech, aby wygenerować cechy do trenowania modelu z nieprzetworzonych danych. Wykorzystamy wsad i strumieniowanie. Oba przypadki użycia są ważne, jeśli chodzi o wykrywanie oszustw. W tej sekcji zostaną omówione następujące cele szkoleniowe:

  • Jak tworzyć cechy za pomocą BigQuery i SQL
  • Tworzenie magazynu cech Vertex AI i wstawianie danych
  • Jak radzić sobie ze strumieniowymi danymi i przetwarzać je do Feature Store

Wykonaj następujące czynności w przypadku dwóch notatników w tej kolejności i postępuj zgodnie z instrukcjami w sekcji Notatniki:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Trenowanie, prognozowanie, formatowanie i monitorowanie modelu

W tej sekcji wytrenujesz i wdrożysz pierwszy model BigQuery, który będzie wykrywał potencjalne oszustwa. Nauczysz się też wykorzystywać swój kod do trenowania i wdrażania oraz przekształcać go w zautomatyzowany potok. Dowiesz się też, jak przeprowadzać prognozy online i monitorować model w środowisku produkcyjnym. W tej sekcji zostaną omówione następujące cele szkoleniowe:

  • 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 SDK Vertex AI
  • Jak wykorzystać model BigQuery ML do utworzenia kompleksowego potoku ML
  • Jak korzystać z monitorowania modeli Vertex AI

Wykonaj opisane poniżej czynności z Notatnika w tej kolejności i postępuj zgodnie z podanymi w nim instrukcjami. Notatniki znajdują się w folderze BQML. Postępuj zgodnie z instrukcjami z notatnika 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ć dane dla architektury AI w Google Cloud.

9. Czyszczenie

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

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