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

1. Übersicht

In diesem Lab erfahren Sie, wie Sie ein End-to-End-System für Daten bis KI für die Echtzeit-Betrugserkennung in Google Cloud erstellen. Ziel ist es, zu verstehen, wie Sie von Rohdaten zu einer produktionsbereiten ML-Pipeline gelangen, die in Google Cloud ausgeführt 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 zu KI in der Produktion gelangen. Die allgemeinen Lernziele für dieses Lab sind:

  • Best Practices für die Entwicklung von Daten-zu-KI-Systemen in Google Cloud.
  • Hier erfahren Sie, wie Sie mit BigQuery und SQL (für die Batchverarbeitung) und mit Apache Beam und Dataflow (für die Echtzeitverarbeitung) Feature Engineering durchführen und Vertex AI Feature Store verwenden.
  • Datenanalyse mit BigQuery und Python-Bibliotheken wie Pandas und Plotly durchführen.
  • ML-Modell mit BigQuery ML über SQL trainieren
  • Wie Sie Vertex AI zum Speichern, Bereitstellen und Überwachen Ihres Modells nutzen können.
  • So verwenden Sie Vertex AI Pipelines, um Ihren Workflow von Daten zu KI zu formalisieren.

WICHTIG: Die Kosten für die Ausführung dieses Labs in Google Cloud betragen etwa 100$.

2. Von Rohdaten zu KI mit Vertex AI und BigQuery

In diesem Lab werden die neuesten Datenanalyse- und KI-Produkte in Google Cloud wie Vertex AI und BigQuery ML behandelt. Mit Vertex AI und BigQuery ist es einfacher, aus Rohdaten KI zu entwickeln. Außerdem bieten sie eine nahtlose Entwicklungsumgebung, mit der Sie Ihre Modelle produktiver in die Produktion bringen können. Wenn Sie Unterstützung benötigen, lesen Sie die Supportseite.

Vertex AI umfasst viele verschiedene Produkte, die End-to-End-Workflows von Daten zu KI unterstützen. Nachfolgend finden Sie eine Übersicht über alle Vertex AI-Funktionen:

Vertex-Produktübersicht

3. Anwendungsfall und Daten für FraudFinder

FraudFinder ist eine Reihe von Notebooks, in denen der umfassende Weg von Daten zu KI in Google Cloud anhand des Anwendungsfalls der Echtzeit-Betrugserkennung erläutert wird. In den Notebooks erfahren Sie, wie Sie historische Zahlungsdaten, die in einem Data Warehouse gespeichert sind, und Daten aus einem Livestream neuer Transaktionen lesen, eine explorative Datenanalyse (EDA) durchführen, Merkmale entwickeln, Merkmale in einen Feature Store aufnehmen, ein Modell mit einem Feature Store trainieren, Ihr Modell in einer Modellregistrierung registrieren, Ihr Modell bewerten, Ihr Modell an einem Endpunkt bereitstellen, Echtzeitinferenz für Ihr Modell mit einem Feature Store durchführen und Ihr Modell überwachen.

Die Betrugserkennung umfasst Klassifizierung und Anomalieerkennung, die wohl umfangreiche Bereiche des maschinellen Lernens sind. Die Betrugserkennung ist daher ein guter Anwendungsfall für eine echte Geschichte, die leicht zu verstehen ist, und eine hervorragende Möglichkeit, eine End-to-End-Daten-zu-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.

Unten finden Sie eine Übersicht über die FraudFinder-Architektur:

FraudFinder-Architektur

Dataset

Das Dataset wird mit dem Code aus dem Projekt „Machine Learning for Credit Card Fraud Detection – Practical Handbook“ von Kaggle synthetisiert. Die Betrugserkennung in Echtzeit unterscheidet sich architektonisch von der batchbasierten Betrugserkennung und zeichnet sich durch Folgendes aus:

  • Hohe Häufigkeit von Vorhersageanfragen (z. B. 1.000 pro Sekunde)
  • Geringe Latenz (z.B. < 1 Sekunde) von Vorhersageanfrage → Antwort
  • Vorhersagen erfolgen in der Regel pro Stichprobe und Vorhersageanfrage oder in „Mikro-Batches“ (z. B. 1.000 Transaktionen, die als Batch für die Inferenz in Echtzeit gesendet werden).
  • Das Feature-Engineering für die Bereitstellung muss vorab oder in Echtzeit berechnet werden.

FraudFinder-Verlaufsdataset

Es gibt öffentliche BigQuery-Tabellen mit historischen Zahlungsvorgängen, mit denen 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 und Echtzeit-Feature-Engineering und ‑Inferenz anwenden. Mithilfe von Echtzeitfunktionen lässt sich Ihr Modell verbessern, da Signale genutzt werden können, die Sie sonst während der Inferenz nicht verwenden könnten.

FraudFinder Live, Streamingdaten

Im Rahmen des FraudFinder-Labs gibt es öffentliche Pub/Sub-Themen mit Livestreaming-Zahlungstransaktionen, mit denen Nutzer ihre Modellendpunkte und Streamfunktionen bequem testen können. Pub/Sub ist ein asynchroner und skalierbarer Messaging-Dienst. Sie verwenden diese Themen, um Funktionen zu streamen und Online-Inferenz durchzuführen. Nutzer können auch zwischen Themen mit Basis- und höheren Betrugsraten wechseln, um die Modellüberwachung anzuzeigen. Die folgenden öffentlichen Pub/Sub-Themen sind verfügbar:

  • ff-tx
  • ff-txlabels

4. Projekt und Notebook-Instanz einrichten

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

WICHTIG: Wir empfehlen, 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 das Lab abgeschlossen haben.

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

Schritt 1: APIs aktivieren

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

Cloud Shell

Führen Sie als Nächstes den folgenden Code in Cloud Shell aus, indem Sie ihn kopieren und einfügen. Das Skript aktiviert die erforderlichen APIs und erstellt Pub/Sub-Abos, um Streamingtransaktionen aus öffentlichen Pub/Sub-Themen zu lesen. Es kann einige Zeit dauern, bis alle Befehle ausgeführt wurden.

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 den Vertex AI-Bereich in der Cloud Console auf. Rufen Sie dann die Workbench auf:

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 NUTZERVERWALTETE NOTEBOOKS aus:

Notebooks_UI

Wählen Sie dann NEUES NOTEBOOK aus. Sie können Python 3 auswählen.

new_notebook

Geben Sie einen Namen für das Notebook ein, z. B. fraudfinder, und klicken Sie dann auf Erweiterte Einstellungen.

create_notebook

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

Dienstkonto

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

enable_terminal

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

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

Nachdem die Instanz erstellt wurde, klicken Sie auf JupyterLab öffnen.

open_jupyterlab

Schritt 3: IAM-Rollen festlegen

Der Einfachheit halber gehen wir davon aus, dass Sie das Compute Engine-Standarddienstkonto verwenden. Dies ist nicht die beste Vorgehensweise für Produktionsarbeitslasten. Als Best Practice wird empfohlen, für jede Anwendung dedizierte Dienstkonten zu erstellen und die Verwendung von Standarddienstkonten zu vermeiden. Weitere Informationen zu Best Practices für Dienstkonten finden Sie in unserer Dokumentation. Das Standarddienstkonto von Compute sieht etwa so aus: 123456789123-compute@developer.gserviceaccount.com. Rufen Sie die IAM-Verwaltung auf und klicken Sie auf ADD. Suchen Sie in der Ansicht nach dem Compute Engine-Standarddienstkonto und wählen Sie es aus. Weisen Sie ihm dann die folgenden Rollen zu:

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

Die Ausgabe sollte in etwa so aussehen. Vergessen Sie nicht, die neuen Einstellungen zu speichern.

iam-roles.png

Schritt 4: GitHub-Repository klonen

Nachdem Sie Ihre Notebook-Instanz erstellt und darauf zugegriffen haben, ist es an der Zeit, die Umgebung einzurichten. Öffnen Sie zuerst ein Terminalfenster.

Terminal öffnen

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

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

Wenn Sie diesen Befehl ausführen, wird das FraudFinder-Repository in Ihre Notebook-Instanz geklont. Nachdem Sie git clone ausgeführt haben, finden Sie den Ordner „fraudfinder“ links in Ihrer Notebook-Instanz. Rufen Sie nun den Ordner fraudfinder auf. Hier finden Sie die für das Lab erforderlichen Notebooks.

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

5. Umgebung einrichten

In diesem Abschnitt werden die Schritte zur Einrichtung Ihrer Projektumgebung beschrieben. In diesem Abschnitt werden die folgenden Lernziele behandelt:

  • Richten Sie Ihre Umgebung ein, einschließlich der Pakete.
  • Daten in BigQuery laden.
  • Daten aus den öffentlichen Pub/Sub-Themen lesen.

Fahren Sie mit dem folgenden Notebook fort und folgen Sie der Anleitung 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 aus BigQuery mit SQL extrahieren und analysieren
  • Transaktionsdaten mit BigQuery und Plotly darstellen
  • Daten aggregieren und ein Streudiagramm erstellen

Fahren Sie mit dem nächsten Notebook fort und folgen Sie der Anleitung Schritt für Schritt:

  • 01_exploratory_data_analysis.ipynb

7. Batch- und Streaming-Feature-Engineering

In diesem Abschnitt erstellen Sie Features für das Modelltraining aus den Rohdaten. Wir verwenden Batch- und Streamingmodus. Beide Anwendungsfälle sind für die Betrugserkennung wichtig. In diesem Abschnitt werden die folgenden Lernziele behandelt:

  • Funktionen 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 in den Notebooks:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. Modelltraining, Vorhersage, Formalisierung und Monitoring

In diesem Abschnitt trainieren und stellen Sie Ihr erstes BigQuery-Modell bereit, um mögliche Betrugsfälle zu erkennen. Außerdem lernen Sie, wie Sie Ihren Trainings- und Bereitstellungscode in eine automatisierte Pipeline umwandeln. Außerdem erfahren 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 Vertex AI Model Registry registrieren
  • Modell als Endpunkt in Vertex AI bereitstellen
  • Vertex AI SDK verwenden
  • Wie Sie das BigQuery ML-Modell verwenden und eine End-to-End-ML-Pipeline erstellen können
  • Vertex AI Model Monitoring verwenden

Fahren Sie mit den folgenden Notebooks in dieser Reihenfolge fort und folgen Sie der Anleitung in den Notebooks. Die Notebooks finden Sie im BQML-Ordner. Führen Sie die Schritte im Notebook aus:

  • 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 eine Data-to-AI-Architektur in Google Cloud erstellen.

9. Bereinigen

Wir empfehlen, dieses Lab in 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, sobald Sie das Lab abgeschlossen haben. 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.