FraudFinder: From raw data to AI with Vertex AI and BigQuery.

1. Übersicht

In diesem Lab lernen Sie, wie Sie in Google Cloud ein End-to-End-Daten-zu-KI-System für die Betrugserkennung in Echtzeit erstellen. Das Ziel besteht darin, zu verstehen, wie aus Rohdaten eine produktionsreife ML-Pipeline in Google Cloud wird. In diesem Lab werden die folgenden Google Cloud-Produkte verwendet:

Lerninhalte

Das Erstellen einer End-to-End-ML-Pipeline kann eine Herausforderung sein. In diesem Lab lernen Sie, wie Sie mit Google Cloud-Diensten wie BigQuery und Vertex AI eine End-to-End-ML-Pipeline erstellen und skalieren. Wir zeigen Ihnen, wie Sie von Rohdaten zur KI in der Produktion gelangen. Das übergeordnete Lernziel in diesem Lab ist:

  • Lernen Sie Best Practices zum Erstellen von Daten für KI-Systeme in Google Cloud kennen.
  • Hier erfahren Sie, wie Sie Feature Engineering mit BigQuery mithilfe von SQL (für die Batchverarbeitung) und Apache Beam mit Dataflow (Echtzeitverarbeitung) und Vertex AI Feature Store ausführen.
  • So führen Sie Datenanalysen mit BigQuery- und Python-Bibliotheken wie Pandas und Plotly durch.
  • Hier erfahren Sie, wie Sie ein ML-Modell mit BigQuery ML über SQL trainieren.
  • Hier erfahren Sie, wie Sie Vertex AI zum Speichern, Bereitstellen und Überwachen Ihres Modells nutzen.
  • Hier erfahren Sie, wie Sie mit Vertex AI Pipelines Ihre Daten im KI-Workflow formalisieren.

WICHTIG: Das Lab in Google Cloud kostet etwa 100$.

2. Von Rohdaten zu KI mit Vertex AI und BigQuery

In diesem Lab werden die neuesten Datenanalyse- und KI-Produkte behandelt, die in Google Cloud verfügbar sind, z. B. Vertex AI und BigQuery ML. Vertex AI und BigQuery erleichtern den Übergang von Rohdaten zu KI und bieten eine nahtlose Entwicklungsumgebung, damit Sie Ihre Modelle produktiver in die Produktion bringen können. Wenn Sie Unterstützung benötigen, besuchen Sie die Supportseite.

Vertex AI umfasst viele verschiedene Produkte zur Unterstützung von End-to-End-Daten bis hin zu KI-Workflows. Nachfolgend finden Sie einen Überblick über alle Funktionen von Vertex AI:

Vertex-Produktübersicht

3. FraudFinder – Anwendungsfall und Daten

FraudFinder ist eine Reihe von Notebooks, die mithilfe von Echtzeit-Betrugserkennung den Weg von der Daten- zur KI in Google Cloud vermitteln. In den Notebooks erfahren Sie, wie Sie Daten zu bisherigen Zahlungstransaktionen lesen, die in einem Data Warehouse gespeichert sind, aus einem Livestream neuer Transaktionen lesen, explorative Datenanalysen (EDA) durchführen, Features in einen Feature Store aufnehmen, ein Modell mit einem Feature Store trainieren, Ihr Modell in einer Modell-Registry registrieren, es evaluieren, auf einem Endpunkt bereitstellen, mit dem Feature Store Inferenzen auf Ihr Modell durchführen und Ihr Modell überwachen.

Die Betrugserkennung umfasst die Klassifizierung und Anomalieerkennung, möglicherweise umfangreiche Bereiche innerhalb des maschinellen Lernens. Die Betrugserkennung ist daher ein guter Anwendungsfall für eine leicht verständliche Geschichte und eine großartige Möglichkeit, um End-to-End-Daten in der KI-Architektur in Google Cloud zu präsentieren. Sie müssen kein Betrugsexperte sein, um die End-to-End-Architektur zu verstehen. Das Muster für die Architektur kann auf andere Anwendungsfälle angewendet werden.

Nachfolgend finden Sie einen Überblick über die FraudFinder-Architektur:

FraudFinder-Architektur

Dataset

Das Dataset wird mithilfe des Codes des Projekts Machine Learning for Credit Card Fraud Detection – Practical Handbook Project von Kaggle synthetisiert. Die Betrugserkennung in Echtzeit unterscheidet sich architektonisch von der Batch-basierten Betrugserkennung und zeichnet sich durch Folgendes aus:

  • Hohe Frequenz (z.B. 1.000 pro Sekunde) von Vorhersageanfragen
  • Niedrige Latenz (z.B. < 1 s) von Vorhersageanfrage → Antwort
  • Die Vorhersage erfolgt normalerweise pro 1 Stichprobe und Vorhersageanfrage oder kann in „Mikrobatches“ erfolgen (z.B. 1.000 Transaktionen werden als Batch für Inferenz nahezu in Echtzeit gesendet)
  • Feature Engineering für die Bereitstellung muss im Voraus berechnet oder in Echtzeit berechnet werden

Historisches FraudFinder-Dataset

Es gibt öffentliche BigQuery-Tabellen mit historischen Zahlungstransaktionen, sodass Nutzer ihre Modelle trainieren und Feature Engineering mit Daten in BigQuery durchführen können.

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)  

Warum Echtzeit?

In diesem Lab lernen Sie, wie Sie Echtzeitdaten nutzen sowie Feature Engineering und Inferenzen in Echtzeit anwenden. Echtzeitfunktionen können dabei helfen, Ihr Modell zu verbessern, indem sie Signale nutzen, die Sie sonst während der Inferenzzeit nicht nutzen könnten.

FraudFinder – Live- und Streamingdaten

Im Rahmen des FraudFinder-Labs gibt es öffentliche Pub/Sub-Themen mit Livestreaming-Zahlungstransaktionen, über die Nutzer ihre Modellendpunkte und Stream-Features testen können. Pub/Sub ist ein asynchroner und skalierbarer Messaging-Dienst. Sie werden diese Themen verwenden, um Funktionen zu streamen und Online-Inferenzen durchzuführen. Nutzer können auch zwischen Themen mit Baseline- und höheren Betrugsraten wechseln, um das Modellmonitoring anzuzeigen. Die folgenden öffentlichen Pub/Sub-Themen sind verfügbar:

  • ff-tx
  • ff-txlabels

4. Projekt und Notebookinstanz einrichten

Für dieses Lab benötigen Sie ein Google Cloud Platform-Projekt mit aktivierter Abrechnung. Folgen Sie dieser Anleitung, um ein Projekt zu erstellen.

WICHTIG: Wir empfehlen Ihnen, dieses Lab in einem neuen Projekt auszuführen. In diesem Lab werden viele verschiedene Produkte behandelt. Am einfachsten ist es, wenn Sie das gesamte Projekt löschen, nachdem Sie es abgeschlossen haben.

Wenn Sie ein Projekt haben, fahren Sie bitte mit den folgenden Schritten fort. Die folgenden Schritte sind auch in der Datei README.md im Repository enthalten.

Schritt 1: APIs aktivieren

Gehen Sie zuerst zu dem Projekt, das Sie gerade erstellt haben, und öffnen Sie Cloud Shell. Dieser Schritt kann einige Minuten dauern, da eine neue Cloud Shell bereitgestellt wird, falls Sie noch keine aktiviert haben.

Cloud Shell

Führen Sie als Nächstes den folgenden Code durch Kopieren und Einfügen in Cloud Shell aus. Das Skript aktiviert die erforderlichen APIs und erstellt Pub/Sub-Abos, um Streamingtransaktionen aus öffentlichen Pub/Sub-Themen zu lesen. Bitte gedulden Sie sich etwas Zeit, um alle Befehle auszuführen.

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'

Schritt 2: Vertex AI Workbench-Instanz erstellen

Rufen Sie als Nächstes in der Cloud Console den Bereich Vertex AI auf. Gehen Sie dann zu Workbench:

Vertex AI-Menü

Aktivieren Sie die Vertex AI Workbench (Notebook API) API, falls sie nicht aktiviert ist.“

Notebook_api

Wählen Sie nach der Aktivierung die Option NUTZERVERWALTETE NOTEBOOKS aus:

Notebooks_UI

Wählen Sie dann NEUES NOTEBOOK aus. Python 3 ist die richtige Wahl.

new_notebook

Geben Sie Ihrem Notebook einen Namen, z. B. fraudfinder, und klicken Sie dann auf Erweiterte Einstellungen.

create_notebook

Wichtig: Achten Sie darauf, dass Sie unter Permissions Service Account auswählen.

Dienstkonto

Wichtig: Wählen Sie unter Sicherheit die Option „Terminal aktivieren“ aus. falls es noch nicht aktiviert ist.

enable_terminal

Alle anderen erweiterten Einstellungen können Sie unverändert lassen.

Klicken Sie dann auf Erstellen. Die Bereitstellung der Instanz kann einige Minuten dauern.

Nachdem die Instanz erstellt wurde, wählen Sie JupyterLab öffnen aus.

open_jupyterlab

Schritt 3: IAM-Rollen festlegen

Gehen wir der Einfachheit halber davon aus, dass Sie das Compute Engine-Standarddienstkonto verwenden. Dies ist nicht die Best Practice für Produktionsarbeitslasten. Es empfiehlt sich, dedizierte Dienstkonten für jede Anwendung zu erstellen und keine Standarddienstkonten zu verwenden. Weitere Informationen zu Best Practices für Dienstkonten finden Sie in unserer Dokumentation. Das Compute-Standarddienstkonto sieht in etwa so aus: 123456789123-compute@developer.gserviceaccount.com. Rufen Sie die Seite IAM-Verwaltung auf und klicken Sie auf ADD. Wählen Sie in der Ansicht das Compute Engine-Standarddienstkonto aus und weisen Sie ihm die folgenden Rollen zu:

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

Sie sollte in etwa so aussehen. Denken Sie daran, die neuen Einstellungen zu speichern!

iam-roles.png

Schritt 4: GitHub-Repository klonen

Nachdem Sie Ihre Notebookinstanz erstellt und darauf zugegriffen haben, können Sie die Umgebung einrichten. Öffnen Sie zuerst ein Terminalfenster.

Terminal öffnen

Kopieren Sie den folgenden Befehl, fügen Sie ihn in Ihr Notebook-Terminal ein und führen Sie ihn aus:

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

Durch Ausführen dieses Befehls wird das FraudFinder-Repository in Ihre Notebook-Instanz geklont. Nachdem Sie git clone ausgeführt haben, finden Sie in Ihrer Notebook-Instanz auf der linken Seite den Ordner „Betrüger“. Gehen Sie jetzt zum Ordner „fraudfinder“. Hier finden Sie die Notebooks, die für das Lab benötigt werden.

Ab den nächsten Abschnitten müssen Sie den Anweisungen in den Notebooks folgen. Fahren Sie mit der Einrichtung der Umgebung fort.

5. Umgebung einrichten

In diesem Abschnitt werden die Schritte zum Einrichten Ihrer Projektumgebung beschrieben. In diesem Abschnitt werden die folgenden Lernziele behandelt:

  • Umgebung einschließlich Paketen einrichten
  • Daten in BigQuery laden.
  • Daten aus den öffentlichen Pub/Sub-Themen lesen.

Fahren Sie mit dem folgenden Notizbuch fort und folgen Sie den Anweisungen Schritt für Schritt:

  • 00_environment_setup.ipynb

6. Explorative Datenanalyse

In diesem Abschnitt erfahren Sie, wie Sie eine explorative Datenanalyse durchführen, um die Betrugsdaten besser zu verstehen. In diesem Abschnitt werden die folgenden Lernziele behandelt:

  • Daten mit SQL aus BigQuery extrahieren und untersuchen
  • Transaktionsdaten mit BigQuery und Plotly darstellen
  • Datenaggregationen anwenden und ein Streudiagramm erstellen

Fahren Sie mit dem nächsten Notizbuch fort und befolgen Sie die Anleitung:

  • 01_exploratory_data_analysis.ipynb

7. Feature Engineering – Batch- und Streamingmodus

In diesem Abschnitt arbeiten Sie an Feature Engineering, um aus den Rohdaten Funktionen für das Modelltraining zu generieren. Wir verwenden Batch und Streaming. Für die Betrugserkennung müssen beide Anwendungsfälle berücksichtigt werden. In diesem Abschnitt werden die folgenden Lernziele behandelt:

  • Features mit BigQuery und SQL erstellen
  • Vertex AI Feature Store erstellen und Daten einfügen
  • Streamingdaten verarbeiten und in den Feature Store aufnehmen

Fahren Sie mit den folgenden beiden Notebooks in dieser Reihenfolge fort und folgen Sie der Anleitung im Notebook:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Modelltraining, Vorhersage, Formalisierung und Monitoring

In diesem Abschnitt trainieren und implementieren Sie Ihr erstes BigQuery-Modellmodell, um mögliche Betrugsfälle zu erkennen. Außerdem lernen Sie, wie Sie Ihren Trainings- und Bereitstellungscode in eine automatisierte Pipeline formalisieren. Außerdem lernen Sie, wie Sie Onlinevorhersagen treffen und Ihr Modell in der Produktion überwachen. In diesem Abschnitt werden die folgenden Lernziele behandelt:

  • BigQuery ML-Modell trainieren und in der Vertex AI Model Registry registrieren
  • Modell als Endpunkt in Vertex AI bereitstellen
  • Vertex AI SDK verwenden
  • Wie Sie mit dem BigQuery ML-Modell eine End-to-End-ML-Pipeline erstellen
  • Vertex AI Model Monitoring verwenden

Fahren Sie mit den folgenden Notebooks in dieser Reihenfolge fort und folgen Sie der Anleitung im Notebook. Die Notebooks befinden sich im BQML-Ordner. Folgen Sie dem Notebook Schritt für Schritt:

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

Sie haben gelernt, wie Sie in Google Cloud eine Daten-zu-KI-Architektur erstellen.

9. Bereinigen

Wir empfehlen Ihnen, dieses Lab an einem neuen Projekt auszuführen. In diesem Lab werden viele verschiedene Produkte behandelt. Daher ist es am einfachsten, wenn Sie das gesamte Projekt löschen, nachdem Sie es abgeschlossen haben. In unserer Dokumentation finden Sie weitere Informationen zum Löschen des Projekts.

Wenn Sie die Dienste stattdessen löschen möchten, folgen Sie der Anleitung in den Notebooks oder löschen Sie die erstellten Ressourcen.