Vertex AI: Betrugserkennungsmodell mit AutoML erstellen

1. Übersicht

In diesem Lab verwenden Sie Vertex AI, um ein Modell mit tabellarischen Daten zu trainieren und bereitzustellen. Dies ist das neueste KI-Produktangebot in Google Cloud und befindet sich derzeit in der Vorabversion.

Lerninhalte

Die folgenden Themen werden behandelt:

  • Verwaltetes Dataset in Vertex AI hochladen
  • Modell mit AutoML trainieren
  • Trainiertes AutoML-Modell auf einem Endpunkt bereitstellen und diesen für Vorhersagen verwenden

Die Gesamtkosten für das Lab in Google Cloud belaufen sich auf 22$.

2. Einführung in Vertex AI

In diesem Lab wird das neueste KI-Produktangebot von Google Cloud verwendet. Vertex AI bindet die ML-Angebote in Google Cloud in eine nahtlose Entwicklungsumgebung ein. Zuvor waren mit AutoML trainierte und benutzerdefinierte Modelle über separate Dienste zugänglich. Das neue Angebot vereint beides in einer einzigen API sowie weitere neue Produkte. Sie können auch vorhandene Projekte zu Vertex AI migrieren. Wenn Sie uns Feedback geben möchten, besuchen Sie die Supportseite.

Vertex AI enthält viele verschiedene Produkte zur Unterstützung von End-to-End-ML-Workflows. In diesem Lab liegt der Schwerpunkt auf den unten aufgeführten Produkten: AutoML für tabellarische Daten, Prediction und Workbench.

Vertex-Produktübersicht

3. Richten Sie Ihre Umgebung ein.

Sie benötigen ein Google Cloud Platform-Projekt mit aktivierter Abrechnung, um dieses Codelab auszuführen. Folgen Sie dieser Anleitung, um ein Projekt zu erstellen.

Schritt 1: Compute Engine API aktivieren

Gehen Sie zu Compute Engine und wählen Sie Aktivieren aus, falls dies noch nicht geschehen ist. Sie benötigen dies zum Erstellen Ihrer Notebookinstanz.

Schritt 2: Vertex AI API aktivieren

Rufen Sie in der Cloud Console den Bereich Vertex AI auf und klicken Sie auf Vertex AI API aktivieren.

Vertex-Dashboard

Schritt 3: Vertex AI Workbench-Instanz erstellen

Klicken Sie im Bereich Vertex AI der Cloud Console auf Workbench:

Vertex AI-Menü

Klicken Sie dort unter Nutzerverwaltete Notebooks auf Neues Notebook:

Neues Notebook erstellen

Wählen Sie dann die neueste Version des Instanztyps TensorFlow Enterprise (mit LTS) ohne GPUs aus:

TFE-Instanz

Verwenden Sie die Standardoptionen und klicken Sie dann auf Erstellen.

Schritt 5: Notebook öffnen

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

Notebook öffnen

Die Daten, die wir zum Trainieren unseres Modells verwenden, stammen aus diesem Dataset zur Erkennung von Kreditkartenbetrug. Wir verwenden eine Version dieses Datasets, die in BigQuery öffentlich verfügbar gemacht wird.

4. Verwaltetes Dataset erstellen

In Vertex AI können Sie verwaltete Datasets für eine Vielzahl von Datentypen erstellen. Sie können dann Statistiken zu diesen Datasets generieren und sie verwenden, um Modelle mit AutoML oder Ihrem eigenen benutzerdefinierten Modellcode zu trainieren.

Schritt 1: Dataset erstellen

Wählen Sie im Vertex-Menü in der Console Datasets aus:

Datensätze auswählen

In diesem Lab entwickeln wir ein Modell zur Betrugserkennung, mit dem ermittelt wird, ob eine bestimmte Kreditkartentransaktion als betrügerisch einzustufen ist.

Geben Sie dem Dataset auf der Seite „Datensätze“ einen Namen und wählen Sie Tabellarisch und dann Regression/Klassifizierung aus. Erstellen Sie dann das Dataset:

Dataset erstellen

Es gibt mehrere Möglichkeiten, Daten in verwaltete Datasets in Vertex zu importieren:

  • Lokale Datei von Ihrem Computer hochladen
  • Dateien aus Cloud Storage auswählen
  • Daten aus BigQuery auswählen

Hier laden wir Daten aus einer öffentlichen BigQuery-Tabelle hoch.

Schritt 2: Daten aus BigQuery importieren

Wählen Sie „Tabelle oder Ansicht aus BigQuery auswählen“ aus. als Importmethode aus und kopieren Sie Folgendes in das Feld BigQuery-Tabelle: bigquery-public-data.ml_datasets.ulb_fraud_detection. Wählen Sie dann Weiter aus:

BQ-Daten importieren

Nach dem Importieren des Datasets sollten Sie in etwa Folgendes sehen:

Importierte Daten

Sie können auf Statistiken generieren klicken, um weitere Informationen zu diesem Datensatz abzurufen. Dies ist jedoch nicht erforderlich, bevor Sie mit dem nächsten Schritt fortfahren. Dieses Dataset enthält echte Kreditkartentransaktionen. Die meisten Spaltennamen werden nicht angezeigt. Deshalb heißen sie V1, V2 usw.

5. Modell mit AutoML trainieren

Nachdem ein verwaltetes Dataset hochgeladen wurde, können wir ein Modell mit diesen Daten trainieren. Wir werden ein Klassifizierungsmodell trainieren, um vorherzusagen, ob eine bestimmte Transaktion betrügerisch ist oder nicht. Vertex AI bietet zwei Optionen zum Trainieren von Modellen:

  • AutoML Trainieren Sie mit minimalem Aufwand und minimalen ML-Kenntnissen hochwertige Modelle.
  • Benutzerdefiniertes Training: Sie können Ihre benutzerdefinierten Trainingsanwendungen in der Cloud mit einem der vordefinierten Container von Google Cloud ausführen oder Ihren eigenen verwenden.

In diesem Lab verwenden wir AutoML für das Training.

Schritt 1: Trainingsjob starten

Wählen Sie auf der Detailseite des Datasets oben rechts Neues Modell trainieren aus. Wählen Sie Klassifizierung als Ziel aus, lassen Sie AutoML für das Modelltraining ausgewählt und klicken Sie dann auf Weiter:

Modelltraining Schritt 1

Geben Sie Ihrem Modell einen Namen oder verwenden Sie die Standardeinstellung. Wählen Sie unter Zielspalte die Option Klasse aus. Dies ist eine Ganzzahl, die angibt, ob eine bestimmte Transaktion betrügerisch war (0 für kein Betrug, 1 für Betrug).

Wählen Sie dann Weiter aus:

Modelltraining Schritt 2

Scrollen Sie nach unten und klicken Sie auf Erweiterte Optionen. Da dieses Dataset stark unausgewogen ist (weniger als 1% der Daten enthalten betrügerische Transaktionen), sollten Sie die Option AUC PRC auswählen, um die Genauigkeit und Trefferquote für die am wenigsten gängige Klasse zu maximieren:

Erweiterte Schulungsoptionen

Klicken Sie auf Weiter und fahren Sie dann mit dem letzten Schritt fort (Computing und Preise). Geben Sie hier 1 als Anzahl der Knotenstunden für Ihr Budget ein und lassen Sie die Option für das vorzeitige Beenden aktiviert. Das Training des AutoML-Modells über eine Rechenstunde dauert in der Regel ein guter Anfang, um zu verstehen, ob eine Beziehung zwischen den von Ihnen ausgewählten Features und dem ausgewählten Label besteht. Anschließend können Sie die Features ändern und für mehr Zeit trainieren, um die Modellleistung zu verbessern. Wählen Sie dann Training starten aus.

Sie erhalten eine E-Mail, wenn der Trainingsjob abgeschlossen ist. Das Training dauert etwas länger als eine Stunde, um Zeit für das Hochfahren und Entfernen von Ressourcen zu berücksichtigen.

6. Messwerte zur Modellbewertung untersuchen

In diesem Schritt sehen wir, wie unser Modell funktioniert hat.

Sobald der Modelltrainingsjob abgeschlossen ist, rufen Sie in Vertex den Tab Modelle auf. Klicken Sie auf das gerade trainierte Modell und rufen Sie den Tab Bewerten auf. Hier gibt es viele Bewertungsmesswerte. Wir werden uns auf zwei konzentrieren: die Wahrheitsmatrix und die Funktionswichtigkeit.

Schritt 1: Wahrheitsmatrix verstehen

Eine Wahrheitsmatrix gibt den Prozentsatz der Beispiele aus jeder Klasse in unserem Test-Dataset an, die unser Modell richtig vorhergesagt hat. Im Fall eines unausgewogenen Datasets wie dem, mit dem wir es zu tun haben, ist dies ein besserer Messwert für die Leistung unseres Modells als die Gesamtgenauigkeit.

Denken Sie daran, dass weniger als 1% der Beispiele in unserem Dataset betrügerische Transaktionen waren. Wenn die Modellgenauigkeit 99% beträgt, ist es also sehr wahrscheinlich, dass die nicht betrügerische Klasse in 99% der Fälle zufällig erraten wird. Aus diesem Grund ist es hier der bessere Messwert, die Genauigkeit unseres Modells für jede Klasse zu betrachten.

Wenn Sie auf dem Tab Bewerten nach unten scrollen, sollte eine Wahrheitsmatrix angezeigt werden, die in etwa so aussieht (genaue Prozentsätze können variieren):

Wahrheitsmatrix

Die Wahrheitsmatrix zeigt, dass unser ursprüngliches Modell 85% der betrügerischen Beispiele in unserem Test-Dataset korrekt klassifizieren kann. Das ist ziemlich gut, vor allem angesichts des erheblichen Dataset-Ungleichgewichts. Als Nächstes könnten wir das Modell für mehr Rechenstunden trainieren, um zu sehen, ob wir uns von diesen 85 % verbessern können.

Schritt 2: Wichtigkeit des Features ansehen

Unter der Wahrheitsmatrix sollte ein Diagramm für die Merkmalwichtigkeit angezeigt werden, das so aussieht:

Featurewichtigkeit

So sehen wir die Merkmale, die unserem Modell bei Vorhersagen das größte Signal gegeben haben. Die Merkmalwichtigkeit ist eine Art von Explainable AI – ein Feld, das verschiedene Methoden enthält, um mehr Informationen in ein ML-Modell zu erhalten, und so Vorhersagen treffen. Das hier dargestellte Diagramm für die Merkmalwichtigkeit wird anhand aller Vorhersagen unseres Modells in unserem Test-Dataset als kumuliert berechnet. Sie zeigt uns die wichtigsten Funktionen anhand einer Reihe von Beispielen.

Dieses Diagramm wäre interessanter, wenn die meisten Features in unserem Dataset nicht verdeckt wären. So könnte sich beispielsweise herausstellen, dass die Art der Transaktion (Übertragung, Einzahlung usw.) der wichtigste Indikator für Betrug ist.

In der Praxis könnten diese Werte für die Merkmalwichtigkeit verwendet werden, um unser Modell zu verbessern und das Vertrauen in seine Vorhersagen zu stärken. Wir könnten entscheiden, beim nächsten Training eines Modells die am wenigsten wichtigen Merkmale zu entfernen oder zwei der wichtigeren Merkmale zu einer Featureverknüpfung zu kombinieren, um zu sehen, ob dadurch die Modellleistung verbessert wird.

Wir betrachten hier die Featurewichtigkeit für einen Batch, können aber auch die Featurewichtigkeit für einzelne Vorhersagen in Vertex AI abrufen. Wie das geht, sehen wir, nachdem wir unser Modell bereitgestellt haben.

7. Modell auf einem Endpunkt bereitstellen

Nachdem Sie nun ein trainiertes Modell haben, erstellen Sie im nächsten Schritt einen Endpunkt in Vertex. Einer Modellressource in Vertex können mehrere Endpunkte zugeordnet sein und Sie können Traffic auf Endpunkte aufteilen.

Schritt 1: Endpunkt erstellen

Gehen Sie auf der Modellseite zum Tab Bereitstellen und testen und klicken Sie auf Auf Endpunkt bereitstellen:

Bereitstellen und testen

Geben Sie dem Endpunkt einen Namen, z. B. fraud_v1, behalten Sie die Einstellung Standard bei und klicken Sie auf Weiter.

Lassen Sie die Standardeinstellungen für Trafficaufteilung und Maschinentyp unverändert und klicken Sie auf Fertig und dann auf Weiter.

Wir verwenden für diesen Endpunkt kein Modellmonitoring. Sie können die Auswahl nicht aufheben und auf Bereitstellen klicken. Die Bereitstellung des Endpunkts dauert einige Minuten. Wenn er abgeschlossen ist, wird daneben ein grünes Häkchen angezeigt:

Bereitgestellter Endpunkt

Sie sind ihr dicht auf den Fersen. Jetzt können Sie Vorhersagen für Ihr bereitgestelltes Modell abrufen.

8. Vorhersagen für unser bereitgestelltes Modell abrufen

Es gibt mehrere Möglichkeiten, Modellvorhersagen zu erhalten:

  • Vertex AI-UI
  • Vertex AI API

Wir zeigen beide hier an.

Schritt 1: Modellvorhersagen in der Benutzeroberfläche abrufen

Scrollen Sie auf der Modellseite, auf der Ihr Endpunkt angezeigt wird (wo wir im letzten Schritt aufgehört haben), nach unten zum Abschnitt Test your model (Modell testen):

Modell testen

Hier hat Vertex AI Zufallswerte für alle Features unseres Modells ausgewählt, die wir verwenden können, um eine Testvorhersage zu erhalten. Sie können diese Werte bei Bedarf ändern. Scrollen Sie zum Ende der Seite und wählen Sie Vorhersagen aus.

Im Abschnitt Vorhersageergebnis auf der Seite sollten Sie den vorhergesagten Prozentsatz Ihres Modells für jede Klasse sehen. Ein Konfidenzwert von 0.99 für die Klasse 0 bedeutet beispielsweise, dass Ihr Modell der Ansicht ist, dass dieses Beispiel zu 99% nicht betrügerisch ist.

Schritt 2: Modellvorhersagen mit der Vertex AI API abrufen

Die Benutzeroberfläche ist eine hervorragende Möglichkeit, um sicherzustellen, dass der bereitgestellte Endpunkt wie erwartet funktioniert. Die Wahrscheinlichkeit ist jedoch, dass Sie Vorhersagen dynamisch über einen REST API-Aufruf erhalten möchten. Um Ihnen zu zeigen, wie Sie hier Modellvorhersagen abrufen, verwenden wir die Vertex Workbench-Instanz, die Sie zu Beginn dieses Labs erstellt haben.

Öffnen Sie als Nächstes die von Ihnen erstellte Notebookinstanz und ein Python 3-Notebook über den Launcher:

Notebook öffnen

Führen Sie in Ihrem Notebook den folgenden Befehl in einer Zelle aus, um das Vertex SDK zu installieren:

!pip3 install google-cloud-aiplatform --upgrade --user

Fügen Sie dann eine Zelle in Ihrem Notebook hinzu, um das SDK zu importieren und einen Verweis auf den soeben bereitgestellten Endpunkt zu erstellen:

from google.cloud import aiplatform

endpoint = aiplatform.Endpoint(
    endpoint_name="projects/YOUR-PROJECT-NUMBER/locations/us-central1/endpoints/YOUR-ENDPOINT-ID"
)

Du musst zwei Werte im obigen String endpoint_name durch deine Projektnummer und deinen Endpunkt ersetzen. Ihre Projektnummer finden Sie in Ihrem Projekt-Dashboard. Dort finden Sie den Wert der Projektnummer.

Sie finden Ihre Endpunkt-ID hier im Bereich „Endpunkte“ der Console:

Endpunkt-ID ermitteln

Erstellen Sie abschließend eine Vorhersage für Ihren Endpunkt, indem Sie den folgenden Code kopieren und in einer neuen Zelle ausführen:

test_instance={
    'Time': 80422,
    'Amount': 17.99,
    'V1': -0.24,
    'V2': -0.027,
    'V3': 0.064,
    'V4': -0.16,
    'V5': -0.152,
    'V6': -0.3,
    'V7': -0.03,
    'V8': -0.01,
    'V9': -0.13,
    'V10': -0.18,
    'V11': -0.16,
    'V12': 0.06,
    'V13': -0.11,
    'V14': 2.1,
    'V15': -0.07,
    'V16': -0.033,
    'V17': -0.14,
    'V18': -0.08,
    'V19': -0.062,
    'V20': -0.08,
    'V21': -0.06,
    'V22': -0.088,
    'V23': -0.03,
    'V24': 0.01,
    'V25': -0.04,
    'V26': -0.99,
    'V27': -0.13,
    'V28': 0.003
}

response = endpoint.predict([test_instance])

print('API response: ', response)

Sie sollten eine Vorhersage um .67 für die Klasse 0 sehen. Das bedeutet, dass das Modell eine Wahrscheinlichkeit von 67% annimmt, dass diese Transaktion nicht betrügerisch ist.

🎉 Glückwunsch! 🎉

Sie haben gelernt, wie Sie mit Vertex AI Folgendes tun können:

  • Verwaltetes Dataset hochladen
  • Modell an tabellarischen Daten mit AutoML trainieren und bewerten
  • Modell auf einem Endpunkt bereitstellen
  • Vorhersagen auf einem Modellendpunkt mit dem SDK für Vertex abrufen

Weitere Informationen zu den verschiedenen Teilen von Vertex AI finden Sie in der Dokumentation.

9. Bereinigen

Wenn Sie das Notebook, das Sie in diesem Lab erstellt haben, weiter verwenden möchten, sollten Sie es deaktivieren, wenn Sie es nicht verwenden. Wählen Sie in der Workbench-UI in der Cloud Console das Notebook und dann Beenden aus.

Wenn Sie das Notizbuch vollständig löschen möchten, klicken Sie einfach oben rechts auf die Schaltfläche Löschen.

Wenn Sie den von Ihnen bereitgestellten Endpunkt löschen möchten, rufen Sie in der Vertex AI-Konsole den Abschnitt Endpunkte auf und heben Sie die Bereitstellung des Modells auf dem Endpunkt auf:

Endpunkt löschen

Wenn Sie den Storage-Bucket löschen möchten, gehen Sie im Navigationsmenü der Cloud Console zu „Storage“, wählen Sie den Bucket aus und klicken Sie auf „Löschen“:

Speicher löschen