Vertex AI: Betrugserkennungsmodell mit AutoML erstellen

1. Übersicht

In diesem Lab verwenden Sie Vertex AI, um ein Modell mit tabellarischen Daten zu trainieren und einzusetzen. 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 die Ausführung dieses Labs in Google Cloud belaufen sich auf etwa 22$.

2. Einführung in Vertex AI

In diesem Lab wird das neueste KI-Angebot von Google Cloud verwendet. Vertex AI integriert die ML-Angebote in Google Cloud für eine nahtlose Entwicklung. Bisher konnten auf mit AutoML trainierte Modelle und benutzerdefinierte Modelle über separate Dienste zugegriffen werden. Das neue Angebot kombiniert beide zusammen mit anderen neuen Produkten in einer einzigen API. Sie können auch vorhandene Projekte zu Vertex AI migrieren. Wenn Sie uns Feedback geben möchten, besuchen Sie die Supportseite.

Vertex AI umfasst 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

Rufen Sie Compute Engine auf und wählen Sie Aktivieren aus, falls die Option noch nicht aktiviert ist. Sie benötigen sie, um Ihre Notebookinstanz zu erstellen.

Schritt 2: Vertex AI API aktivieren

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

Vertex-Dashboard

Schritt 3: Vertex AI Workbench-Instanz erstellen

Klicken Sie in der Cloud Console im Bereich „Vertex AI“ 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, mit denen wir unser Modell trainieren, stammen aus diesem Dataset zur Kreditkartenbetrugserkennung. Wir verwenden eine Version dieses Datasets, die in BigQuery öffentlich verfügbar ist.

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 zum Trainieren von Modellen mit AutoML oder Ihrem eigenen benutzerdefinierten Modellcode verwenden.

Schritt 1: Dataset erstellen

Wählen Sie in der Console im Vertex-Menü die Option Datensätze 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 auf der Seite „Datasets“ einen Namen für das Dataset ein und wählen Sie dann Tabelle und Regression/Klassifizierung aus. Klicken Sie dann auf Erstellen:

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 als Importmethode „Tabelle oder Ansicht aus BigQuery auswählen“ aus und kopieren Sie dann 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 wurden unkenntlich gemacht und heißen daher V1, V2 usw.

5. Modell mit AutoML trainieren

Nachdem ein verwaltetes Dataset hochgeladen wurde, können wir ein Modell mit diesen Daten trainieren. Wir trainieren ein Klassifizierungsmodell, um vorherzusagen, ob eine bestimmte Transaktion betrügerisch ist oder nicht. Vertex AI bietet zwei Optionen für das 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 Seite mit den Details zum Datensatz, die Sie im vorherigen Schritt verlassen haben, oben rechts Neues Modell trainieren aus. Wählen Sie Klassifizierung als Zielvorhaben aus, lassen Sie AutoML für das Modelltraining ausgewählt und klicken Sie auf Weiter:

Modelltraining – Schritt 1

Geben Sie einen Namen für das Modell ein oder verwenden Sie den Standardnamen. 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 in diesem Schritt nach unten und maximieren Sie 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 Trainingsoptionen

Wählen Sie Weiter aus und fahren Sie mit dem letzten Schritt (Computing und Preise) fort. Geben Sie hier 1 als Anzahl der Knotenstunden für Ihr Budget ein und lassen Sie die vorzeitige Beendigung aktiviert. Das Training Ihres AutoML-Modells für eine Rechenstunde ist meist ein guter Ausgangspunkt, um festzustellen, ob es eine Beziehung zwischen den von Ihnen ausgewählten Features und Labels gibt. Ausgehend davon können Sie Features anpassen und das Modell für weitere Stunden 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 uns an, wie gut unser Modell abgeschnitten 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. Es gibt viele Bewertungsmesswerte. Wir konzentrieren uns auf zwei: die Wahrheitsmatrix und die Merkmalwichtigkeit.

Schritt 1: Wahrheitsmatrix verstehen

Eine Wahrheitsmatrix gibt den Prozentsatz der Beispiele jeder Klasse in einem Testsatz an, den das Modell korrekt vorhergesagt hat. Bei einem unbalancierten Datensatz wie dem, mit dem wir es hier zu tun haben, ist dies ein besserer Maßstab für die Leistung unseres Modells als die Gesamtgenauigkeit.

Denken Sie daran, dass weniger als 1% der Beispiele in unserem Datensatz betrügerische Transaktionen waren. Wenn die Genauigkeit unseres Modells also 99% beträgt, besteht eine gute Chance, dass es 99% der Zeit nur zufällig die Klasse „Nicht betrügerisch“ errät. Daher ist es besser, sich die Genauigkeit unseres Modells für jede Klasse anzusehen.

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 anfängliches Modell 85% der betrügerischen Beispiele in unserem Testsatz richtig klassifizieren kann. Das ist ziemlich gut, vor allem wenn man das erhebliche Ungleichgewicht des Datensatzes berücksichtigt. Als Nächstes könnten wir versuchen, unser Modell mit mehr Rechenstunden zu trainieren, um zu sehen, ob wir diese 85 % verbessern können.

Schritt 2: Merkmalwichtigkeit prüfen

Unter der Wahrheitsmatrix sollte ein Diagramm zur Merkmalwichtigkeit angezeigt werden, das in etwa so aussieht:

Featurewichtigkeit

So sehen wir die Merkmale, die unserem Modell bei Vorhersagen das größte Signal gegeben haben. Die Bedeutung von Features ist eine Art Explainable AI. Dieser Bereich umfasst verschiedene Methoden, um mehr Einblick in die Vorhersagen eines ML-Modells zu erhalten. Das hier gezeigte Diagramm zur Featurewichtigkeit wird als Gesamtwert berechnet, indem alle Vorhersagen unseres Modells für unseren Testsatz betrachtet werden. Es zeigt uns die wichtigsten Merkmale einer Reihe von Beispielen.

Dieses Diagramm wäre interessanter, wenn die meisten Features in unserem Dataset nicht verdeckt wären. So könnten wir beispielsweise feststellen, dass die Art einer Transaktion (Überweisung, Einzahlung usw.) der größte Indikator für Betrug ist.

In einem realen Szenario könnten diese Werte für die Featurewichtigkeit dazu verwendet werden, unser Modell zu verbessern und mehr Vertrauen in seine Vorhersagen zu gewinnen. Es kann sinnvoll sein, beim nächsten Modelltraining die Features mit der geringsten Wichtigkeit zu entfernen oder zwei der wichtigeren Features zu einer Featureverknüpfung zu kombinieren und zu prüfen, ob das die Modellleistung verbessert.

Wir betrachten hier die Featurewichtigkeit für einen Batch, können aber auch die Featurewichtigkeit für einzelne Vorhersagen in Vertex AI abrufen. Das sehen wir uns an, sobald 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 AI können mehrere Endpunkte zugeordnet sein. Sie können den Traffic auch zwischen Endpunkten aufteilen.

Schritt 1: Endpunkt erstellen

Klicken Sie auf der Modellseite auf den Tab Bereitstellen und testen und dann auf Auf Endpunkt bereitstellen:

Bereitstellen und testen

Geben Sie dem Endpunkt einen Namen, z. B. fraud_v1. Lassen Sie den Zugriff auf Standard gesetzt 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. Sobald der Vorgang abgeschlossen ist, wird neben dem Namen ein grünes Häkchen angezeigt:

Bereitgestellter Endpunkt

Sie sind ihr dicht auf den Fersen. Jetzt können Sie Vorhersagen von Ihrem bereitgestellten Modell abrufen.

8. Vorhersagen für unser bereitgestelltes Modell abrufen

Es gibt mehrere Möglichkeiten, Modellvorhersagen zu erhalten:

  • Vertex AI-Benutzeroberfläche
  • Vertex AI API

Wir zeigen hier beide.

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 zufällige Werte für die einzelnen Features unseres Modells ausgewählt, mit denen wir eine Testvorhersage erhalten können. Sie können diese Werte bei Bedarf ändern. Scrollen Sie zum Ende der Seite und wählen Sie Vorhersagen aus.

Im Bereich Vorhersageergebnis der Seite sollte der prognostizierte Prozentsatz Ihres Modells für jede Klasse angezeigt werden. Ein Konfidenzwert von 0.99 für die Klasse 0 bedeutet beispielsweise, dass Ihr Modell der Meinung ist, dass dieses Beispiel mit einer Wahrscheinlichkeit von 99% nicht betrügerisch ist.

Schritt 2: Modellvorhersagen mit der Vertex AI API abrufen

Über die Benutzeroberfläche können Sie prüfen, ob der bereitgestellte Endpunkt wie erwartet funktioniert. Wahrscheinlich möchten Sie aber Vorhersagen dynamisch über einen REST API-Aufruf abrufen. 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 in einer Zelle Folgendes 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"
)

Sie müssen zwei Werte im String endpoint_name oben durch Ihre Projektnummer und Ihren Endpunkt ersetzen. Sie finden Ihre Projektnummer im Projekt-Dashboard unter „Projektnummer“.

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

Endpunkt-ID ermitteln

Führen Sie abschließend eine Vorhersage für Ihren Endpunkt aus, indem Sie den folgenden Code in eine neue Zelle kopieren und 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)

Für die Klasse 0 sollte eine Vorhersage von etwa .67 angezeigt werden. Das bedeutet, dass das Modell der Meinung ist, dass die Wahrscheinlichkeit, dass diese Transaktion nicht betrügerisch ist, bei 67% liegt.

🎉 Glückwunsch! 🎉

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

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

Weitere Informationen zu den verschiedenen Bereichen 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-Benutzeroberfläche 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 Löschen.

Wenn Sie den bereitgestellten Endpunkt löschen möchten, rufen Sie in der Vertex AI Console den Bereich 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