ML-Finanzmodell mit dem What-If-Tool und Vertex AI erstellen

1. Übersicht

In diesem Lab analysieren Sie mit dem What-if-Tool ein XGBoost-Modell, das mit Finanzdaten trainiert wurde. Nach der Analyse des Modells stellen Sie es in der neuen Vertex AI-Plattform von Google Cloud bereit.

Lerninhalte

Die folgenden Themen werden behandelt:

  • XGBoost-Modell in einem gehosteten Notebook mit einem öffentlichen Hypotheken-Dataset trainieren
  • Modell mit dem What-If-Tool analysieren
  • XGBoost-Modell in Vertex AI bereitstellen

Die Gesamtkosten für die Ausführung dieses Labs in Google Cloud belaufen sich auf etwa 1$.

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 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 umfasst viele verschiedene Produkte zur Unterstützung von End-to-End-ML-Workflows. In diesem Lab liegt der Fokus auf den unten genannten Produkten: Vorhersagen und Notebooks.

Vertex-Produktübersicht

3. Kurze Einführung in XGBoost

XGBoost ist ein Framework für maschinelles Lernen, das Entscheidungsbäume und Gradient-Boosting verwendet, um Vorhersagemodelle zu erstellen. Dabei werden mehrere Entscheidungsbäume basierend auf der Punktzahl kombiniert, die mit verschiedenen Endknoten in einem Baum verknüpft ist.

Das folgende Diagramm ist eine Visualisierung eines einfachen Entscheidungsbaummodells, mit dem anhand der Wettervorhersage bewertet wird, ob ein Sportspiel stattfinden sollte:

Beispiel für ein Baummodell

Warum verwenden wir XGBoost für dieses Modell? Während herkömmliche neuronale Netze nachweislich die beste Leistung bei unstrukturierten Daten wie Bildern und Text erzielen, eignen sich Entscheidungsbäume oft hervorragend für strukturierte Daten wie den Hypothekendatensatz, den wir in diesem Codelab verwenden werden.

4. Richten Sie Ihre Umgebung ein.

Sie benötigen ein Google Cloud-Projekt mit aktivierter Abrechnung, um dieses Codelab ausführen zu können. Eine Anleitung zum Erstellen eines Projekts finden Sie hier.

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 dies zum Erstellen Ihrer Notebookinstanz.

Schritt 2: Vertex AI API aktivieren

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

Vertex-Dashboard

Schritt 3: Notebooks-Instanz erstellen

Klicken Sie in der Cloud Console im Bereich Vertex auf „Notebooks“:

Notebooks auswählen

Wählen Sie dort Neue Instanz aus. Wählen Sie dann den Instanztyp TensorFlow Enterprise 2.3 ohne GPUs aus:

TFE-Instanz

Verwenden Sie die Standardoptionen und klicken Sie dann auf Erstellen. Wählen Sie nach dem Erstellen der Instanz JupyterLab öffnen aus.

Schritt 4: XGBoost installieren

Nachdem Sie die JupyterLab-Instanz geöffnet haben, müssen Sie das XGBoost-Paket hinzufügen.

Wählen Sie dazu im Launcher „Terminal“ aus:

Führen Sie dann den folgenden Befehl aus, um die neueste Version von XGBoost zu installieren, die von Vertex AI unterstützt wird:

pip3 install xgboost==1.2

Öffnen Sie danach über den Launcher eine Python 3-Notebookinstanz. Sie können jetzt mit Ihrem Notizbuch beginnen.

Schritt 5: Python-Pakete importieren

Fügen Sie in der ersten Zelle des Notebooks die folgenden Importe hinzu und führen Sie die Zelle aus. Sie können ihn ausführen, indem Sie im Menü oben auf den rechten Pfeil oder auf die Tastenkombination „Befehlstaste + Eingabetaste“ drücken:

import pandas as pd
import xgboost as xgb
import numpy as np
import collections
import witwidget

from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.utils import shuffle
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder

5. Daten herunterladen und verarbeiten

Wir verwenden einen Hypotheken-Dataset von ffiec.gov, um ein XGBoost-Modell zu trainieren. Wir haben das ursprüngliche Dataset vorverarbeitet und eine kleinere Version erstellt, die Sie zum Trainieren des Modells verwenden können. Das Modell prognostiziert, ob ein bestimmter Hypothekenantrag genehmigt wird oder nicht.

Schritt 1: Vorverarbeiteten Datensatz herunterladen

Wir haben eine Version des Datensatzes in Google Cloud Storage für Sie bereitgestellt. Sie können es herunterladen, indem Sie in Ihrem Jupyter-Notebook den folgenden gsutil-Befehl ausführen:

!gsutil cp 'gs://mortgage_dataset_files/mortgage-small.csv' .

Schritt 2: Datensatz mit Pandas lesen

Bevor wir unseren Pandas-DataFrame erstellen, erstellen wir eine dict des Datentyps jeder Spalte, damit Pandas unseren Datensatz richtig liest:

COLUMN_NAMES = collections.OrderedDict({
 'as_of_year': np.int16,
 'agency_code': 'category',
 'loan_type': 'category',
 'property_type': 'category',
 'loan_purpose': 'category',
 'occupancy': np.int8,
 'loan_amt_thousands': np.float64,
 'preapproval': 'category',
 'county_code': np.float64,
 'applicant_income_thousands': np.float64,
 'purchaser_type': 'category',
 'hoepa_status': 'category',
 'lien_status': 'category',
 'population': np.float64,
 'ffiec_median_fam_income': np.float64,
 'tract_to_msa_income_pct': np.float64,
 'num_owner_occupied_units': np.float64,
 'num_1_to_4_family_units': np.float64,
 'approved': np.int8
})

Als Nächstes erstellen wir einen DataFrame und übergeben ihm die oben angegebenen Datentypen. Es ist wichtig, die Daten zufällig zu mischen, falls der ursprüngliche Datensatz in einer bestimmten Reihenfolge angeordnet ist. Dazu verwenden wir ein sklearn-Dienstprogramm namens shuffle, das wir in die erste Zelle importiert haben:

data = pd.read_csv(
 'mortgage-small.csv',
 index_col=False,
 dtype=COLUMN_NAMES
)
data = data.dropna()
data = shuffle(data, random_state=2)
data.head()

Mit data.head() können wir uns eine Vorschau der ersten fünf Zeilen unseres Datensatzes in Pandas ansehen. Nach dem Ausführen der Zelle oben sollte in etwa Folgendes angezeigt werden:

Vorschau des Hypothekendatensatzes

Mit diesen Merkmalen trainieren wir unser Modell. Wenn Sie ganz nach unten scrollen, sehen Sie die letzte Spalte approved, die wir vorhersagen. Der Wert 1 gibt an, dass eine bestimmte Anwendung genehmigt wurde, und 0, dass sie abgelehnt wurde.

Wenn Sie die Verteilung der genehmigten / abgelehnten Werte im Datensatz sehen und ein Numpy-Array der Labels erstellen möchten, führen Sie Folgendes aus:

# Class labels - 0: denied, 1: approved
print(data['approved'].value_counts())

labels = data['approved'].values
data = data.drop(columns=['approved'])

Etwa 66% des Datensatzes enthalten genehmigte Anwendungen.

Schritt 3: Dummyspalte für kategorische Werte erstellen

Dieser Datensatz enthält eine Mischung aus kategorischen und numerischen Werten. Für XGBoost müssen jedoch alle Merkmale numerisch sein. Anstelle der Darstellung kategorialer Werte mit der One-Hot-Codierung nutzen wir für unser XGBoost-Modell die Pandas-Funktion get_dummies.

get_dummies wandelt eine Spalte mit mehreren möglichen Werten in eine Reihe von Spalten um, die jeweils nur Nullen und Einsen enthalten. Angenommen, wir haben die Spalte „Farbe“ mit den möglichen Werten „blau“ und „rot“. get_dummies würde diese in die beiden Spalten „Farbe_blau“ und „Farbe_rot“ mit den booleschen Werten „0“ und „1“ umwandeln.

Führen Sie den folgenden Code aus, um Dummy-Spalten für unsere kategorischen Features zu erstellen:

dummy_columns = list(data.dtypes[data.dtypes == 'category'].index)
data = pd.get_dummies(data, columns=dummy_columns)

data.head()

In der Vorschau der Daten sehen Sie einzelne Elemente (z. B. purchaser_type in der Abbildung unten) in mehreren Spalten:

Dummy-Spalten in Pandas

Schritt 4: Daten in Trainings- und Test-Datasets aufteilen

Ein wichtiges Konzept im Bereich maschinelles Lernen ist die Trainings-/Testaufteilung. Wir verwenden den Großteil unserer Daten, um unser Modell zu trainieren, und legen den Rest beiseite, um unser Modell mit Daten zu testen, die es noch nie zuvor gesehen hat.

Fügen Sie Ihrem Notebook den folgenden Code hinzu, in dem die Scikit-learn-Funktion train_test_split verwendet wird, um die Daten aufzuteilen:

x,y = data.values,labels
x_train,x_test,y_train,y_test = train_test_split(x,y)

Jetzt können Sie Ihr Modell erstellen und trainieren.

6. XGBoost-Modell erstellen, trainieren und bewerten

Schritt 1: XGBoost-Modell definieren und trainieren

Das Erstellen eines Modells in XGBoost ist ganz einfach. Wir verwenden die XGBClassifier-Klasse, um das Modell zu erstellen, und müssen nur den richtigen objective-Parameter für unsere spezifische Klassifizierungsaufgabe übergeben. In diesem Fall verwenden wir reg:logistic, da wir ein binäres Klassifizierungsproblem haben und das Modell einen einzelnen Wert im Bereich von (0,1) ausgeben soll: 0 für nicht genehmigt und 1 für genehmigt.

Mit dem folgenden Code wird ein XGBoost-Modell erstellt:

model = xgb.XGBClassifier(
    objective='reg:logistic'
)

Sie können das Modell mit einer Codezeile trainieren, indem Sie die Methode fit() aufrufen und die Trainingsdaten und Labels übergeben.

model.fit(x_train, y_train)

Schritt 2: Genauigkeit des Modells bewerten

Wir können jetzt mit unserem trainierten Modell mit der Funktion predict() Vorhersagen für unsere Testdaten generieren.

Anschließend verwenden wir die accuracy_score()-Funktion von Scikit-learn, um die Genauigkeit unseres Modells anhand seiner Leistung bei unseren Testdaten zu berechnen. Wir übergeben ihm die Ground-Truth-Werte zusammen mit den vom Modell vorhergesagten Werten für jedes Beispiel in unserem Testsatz:

y_pred = model.predict(x_test)
acc = accuracy_score(y_test, y_pred.round())
print(acc, '\n')

Die Genauigkeit sollte bei etwa 87% liegen. Bei Ihnen wird sich diese jedoch leicht unterscheiden, da es beim maschinellen Lernen immer ein Element der Zufälligkeit gibt.

Schritt 3: Modell speichern

Führen Sie den folgenden Code aus, um das Modell bereitzustellen und in einer lokalen Datei zu speichern:

model.save_model('model.bst')

7. Modell mit dem What-If-Tool interpretieren

Schritt 1: Visualisierung im What-if-Tool erstellen

Wenn Sie das What-if-Tool mit Ihrem lokalen Modell verknüpfen möchten, müssen Sie ihm einen Teil Ihrer Testbeispiele zusammen mit den Ground-Truth-Werten für diese Beispiele übergeben. Erstellen Sie ein Numpy-Array mit 500 unserer Testbeispiele und ihren Ground-Truth-Labels:

num_wit_examples = 500
test_examples = np.hstack((x_test[:num_wit_examples],y_test[:num_wit_examples].reshape(-1,1)))

Zum Instanziieren des What-if-Tools müssen Sie nur ein WitConfigBuilder-Objekt erstellen und es an das Modell übergeben, das wir analysieren möchten.

Da das What-if-Tool eine Liste von Punktzahlen für jede Klasse in unserem Modell erwartet (in diesem Fall 2), verwenden wir die predict_proba-Methode von XGBoost mit dem What-If-Tool:

config_builder = (WitConfigBuilder(test_examples.tolist(), data.columns.tolist() + ['mortgage_status'])
  .set_custom_predict_fn(model.predict_proba)
  .set_target_feature('mortgage_status')
  .set_label_vocab(['denied', 'approved']))
WitWidget(config_builder, height=800)

Es kann eine Minute dauern, bis die Visualisierung geladen ist. Nach dem Laden sollte Folgendes angezeigt werden:

Erste Ansicht des What-If-Tools

Die y-Achse zeigt die Vorhersage des Modells. 1 ist eine Vorhersage mit hoher Konfidenz für approved und 0 eine Vorhersage mit hoher Konfidenz für denied. Die X-Achse ist einfach die Streuung aller geladenen Datenpunkte.

Schritt 2: Einzelne Datenpunkte untersuchen

Die Standardansicht im What-If-Tool ist der Tab Datenpunkt-Editor. Hier können Sie auf einen einzelnen Datenpunkt klicken, um seine Features zu sehen, die Feature-Werte zu ändern und zu sehen, wie sich diese Änderung auf die Vorhersage des Modells für einen einzelnen Datenpunkt auswirkt.

Im folgenden Beispiel haben wir einen Datenpunkt nahe dem Grenzwert 0,5 ausgewählt. Der mit diesem speziellen Datenpunkt verknüpfte Hypothekenantrag stammt aus CFPB. Wir haben dieses Feature in „0“ und den Wert von agency_code_Department of Housing and Urban Development (HUD) in „1“ geändert, um zu sehen, was mit der Vorhersage des Modells passieren würde, wenn dieser Kredit stattdessen vom HUD stammte:

Wie Sie im What-if-Tool unten links sehen können, wurde die approved-Vorhersage des Modells durch eine Änderung dieses Features um 32 % deutlich reduziert. Dies könnte darauf hindeuten, dass die Agentur, von der ein Kredit stammt, einen starken Einfluss auf die Ausgabe des Modells hat. Wir müssen jedoch weitere Analysen durchführen, um sicherzugehen.

Unten links in der Benutzeroberfläche können wir auch den Ground-Truth-Wert für jeden Datenpunkt sehen und mit der Vorhersage des Modells vergleichen:

Schritt 3: Gegenwärtige Situation mit der hypothetischen Situation vergleichen

Klicken Sie als Nächstes auf einen beliebigen Datenpunkt und bewegen Sie den Schieberegler Nächstgelegenen kontrafaktischen Datenpunkt anzeigen nach rechts:

Wenn Sie diese Option auswählen, wird der Datenpunkt angezeigt, der dem ursprünglich ausgewählten Element die ähnlichsten Featurewerte hat, jedoch die entgegengesetzte Vorhersage. Sie können dann durch die Featurewerte scrollen, um zu sehen, wo sich die beiden Datenpunkte unterscheiden. Die Unterschiede werden grün und fett hervorgehoben.

Schritt 4: Teilabhängigkeitsdiagramme ansehen

Wenn Sie sehen möchten, wie sich die einzelnen Features insgesamt auf die Vorhersagen des Modells auswirken, klicken Sie das Kästchen Partial-Dependence-Diagramme an und achten Sie darauf, dass Globale Partial-Dependence-Diagramme ausgewählt ist:

Hier sehen wir, dass die Wahrscheinlichkeit, dass Kredite vom HUD abgelehnt werden, etwas höher ist. Die Grafik hat diese Form, weil der Agenturcode eine boolesche Funktion ist. Die Werte können also nur genau 0 oder 1 sein.

applicant_income_thousands ist eine numerische Variable. Im Diagramm zur partiellen Abhängigkeit sehen wir, dass ein höheres Einkommen die Wahrscheinlichkeit, dass ein Antrag genehmigt wird, leicht erhöht, aber nur bis zu einem Betrag von etwa 200.000 $. Ab einem Umsatz von 200.000 $hat dieses Feature keinen Einfluss auf die Vorhersage des Modells.

Schritt 5: Gesamtleistung und Fairness untersuchen

Rufen Sie als Nächstes den Tab Leistung und Fairness auf. Hier sehen Sie die Gesamtleistungsstatistiken zu den Ergebnissen des Modells auf dem bereitgestellten Datensatz, einschließlich Verwirrungsmatrizen, PR-Kurven und ROC-Kurven.

Wählen Sie mortgage_status als Ground Truth-Merkmal aus, um eine Verwirrungsmatrix zu sehen:

Diese Wahrheitsmatrix zeigt die richtigen und falschen Vorhersagen unseres Modells als Prozentsatz der Gesamtzahl. Wenn Sie die Quadrate Tatsächliches Ja / Vorhergesagtes Ja und Tatsächliches Nein / Vorhergesagtes Nein addieren, sollte die Genauigkeit Ihres Modells übereinstimmen (in diesem Fall bei etwa 87%, auch wenn Ihr Modell leicht variieren kann, da es beim Trainieren von ML-Modellen ein Element der Zufälligkeit gibt).

Sie können auch mit dem Schieberegler für den Schwellenwert experimentieren, um den Wert für die positive Klassifizierung zu erhöhen oder zu senken, den das Modell zurückgeben muss, bevor es sich für die Vorhersage von approved für den Kredit entscheidet. So sehen Sie, wie sich das auf die Genauigkeit, falsch positive und falsch negative Ergebnisse auswirkt. In diesem Fall ist die Genauigkeit bei einem Schwellenwert von 0, 55 am höchsten.

Wählen Sie im Drop-down-Menü Aufteilen nach links die Option loan_purpose_Home_purchase aus:

Sie sehen jetzt die Leistung der beiden Teilmengen Ihrer Daten: Der Wert „0“ gibt an, dass das Darlehen nicht für den Kauf eines Hauses gedacht ist, und der Wert „1“, dass es sich um ein Darlehen für den Kauf eines Hauses handelt. Sehen Sie sich die Genauigkeit, die Rate falsch positiver und die Rate falsch negativer Ergebnisse zwischen den beiden Segmenten an, um Leistungsunterschiede zu erkennen.

Wenn Sie die Zeilen erweitern, um sich die Wahrheitsmatrizes anzusehen, sehen Sie, dass das Modell für ~70% der Darlehensanträge für Immobilienkäufe und für nur 46% der Darlehen, die nicht für den Kauf von Immobilien vorgesehen sind, „genehmigt“ (genehmigt) prognostiziert (die genauen Prozentsätze variieren von Ihrem Modell):

Wenn Sie über die Optionsfelder auf der linken Seite Demografische Gleichheit auswählen, werden die beiden Grenzwerte angepasst. Das Modell prognostiziert dann approved für einen ähnlichen Prozentsatz von Bewerbern in beiden Segmenten. Welche Auswirkungen hat das auf die Genauigkeit, die falsch positiven und die falsch negativen Ergebnisse für jeden Bereich?

Schritt 6: Funktionsweise der Feature-Bereitstellung untersuchen

Rufen Sie abschließend im What-If-Tool den Tab Funktionen auf. Hier sehen Sie die Verteilung der Werte für jedes Merkmal in Ihrem Datensatz:

Auf diesem Tab können Sie prüfen, ob Ihr Datensatz ausgewogen ist. So stammen beispielsweise nur sehr wenige Kredite im Datensatz von der Farm Service Agency. Um die Modellgenauigkeit zu verbessern, können wir weitere Kredite von dieser Agentur hinzufügen, sofern die Daten verfügbar sind.

Hier haben wir nur einige Ideen für die explorative Datenanalyse mit dem Was-wäre-wenn-Tool beschrieben. Sie können das Tool gerne weiter ausprobieren. Es gibt noch viele weitere Bereiche, die Sie entdecken können.

8. Modell in Vertex AI bereitstellen

Unser Modell läuft zwar lokal, aber es wäre schön, wenn wir von überall aus Vorhersagen treffen könnten (nicht nur von diesem Notebook!). In diesem Schritt stellen wir sie in der Cloud bereit.

Schritt 1: Cloud Storage-Bucket für das Modell erstellen

Definieren wir zuerst einige Umgebungsvariablen, die wir im weiteren Verlauf des Codelabs verwenden werden. Geben Sie unten den Namen Ihres Google Cloud-Projekts, den Namen des Cloud Storage-Buckets, den Sie erstellen möchten (muss global eindeutig sein), und den Versionsnamen für die erste Version Ihres Modells ein:

# Update the variables below to your own Google Cloud project ID and GCS bucket name. You can leave the model name we've specified below:
GCP_PROJECT = 'your-gcp-project'
MODEL_BUCKET = 'gs://storage_bucket_name'
MODEL_NAME = 'xgb_mortgage'

Jetzt können wir einen Storage-Bucket zum Speichern unserer XGBoost-Modelldatei erstellen. Wir weisen Vertex AI bei der Bereitstellung auf diese Datei hin.

Führen Sie diesen gsutil-Befehl in Ihrem Notebook aus, um einen regionalen Storage-Bucket zu erstellen:

!gsutil mb -l us-central1 $MODEL_BUCKET

Schritt 2: Modelldatei in Cloud Storage kopieren

Als Nächstes kopieren wir die gespeicherte XGBoost-Modelldatei in Cloud Storage. Führen Sie den folgenden gsutil-Befehl aus:

!gsutil cp ./model.bst $MODEL_BUCKET

Rufen Sie den Storage-Browser in der Cloud Console auf, um zu prüfen, ob die Datei kopiert wurde:

Schritt 3: Modell erstellen und auf einem Endpunkt bereitstellen

Wir sind fast bereit, das Modell in der Cloud bereitzustellen. In Vertex AI kann ein Modell mehrere Endpunkte enthalten. Wir erstellen zuerst ein Modell, dann einen Endpunkt innerhalb dieses Modells und stellen ihn bereit.

Erstellen Sie zuerst Ihr Modell mit der gcloud-Befehlszeile:

!gcloud beta ai models upload \
--display-name=$MODEL_NAME \
--artifact-uri=$MODEL_BUCKET \
--container-image-uri=us-docker.pkg.dev/cloud-aiplatform/prediction/xgboost-cpu.1-2:latest \
--region=us-central1

Der Parameter artifact-uri verweist auf den Speicherort, an dem Sie Ihr XGBoost-Modell gespeichert haben. Der Parameter container-image-uri gibt Vertex AI an, welcher vorkonfigurierte Container für die Bereitstellung verwendet werden soll. Rufen Sie nach Abschluss dieses Befehls den Bereich „Modelle“ in der Vertex Console auf, um die ID Ihres neuen Modells abzurufen. Sie finden sie hier:

Modell-ID aus der Console abrufen

Kopieren Sie diese ID und speichern Sie sie in einer Variablen:

MODEL_ID = "your_model_id"

Jetzt ist es an der Zeit, einen Endpunkt in diesem Modell zu erstellen. Dazu verwenden wir diesen gcloud-Befehl:

!gcloud beta ai endpoints create \
--display-name=xgb_mortgage_v1 \
--region=us-central1

Wenn dieser Vorgang abgeschlossen ist, sollte der Standort Ihres Endpunkts in der Notebook-Ausgabe protokolliert werden. Suchen Sie nach der Zeile, die angibt, dass der Endpunkt mit einem Pfad erstellt wurde, der so aussieht: projects/project_ID/locations/us-central1/endpoints/endpoint_ID. Ersetzen Sie dann die Werte unten durch die IDs Ihres oben erstellten Endpunkts:

ENDPOINT_ID = "your_endpoint_id"

Führen Sie zum Bereitstellen des Endpunkts den folgenden gcloud-Befehl aus:

!gcloud beta ai endpoints deploy-model $ENDPOINT_ID \
--region=us-central1 \
--model=$MODEL_ID \
--display-name=xgb_mortgage_v1 \
--machine-type=n1-standard-2 \
--traffic-split=0=100

Die Endpunktbereitstellung dauert etwa 5 bis 10 Minuten. Rufen Sie während der Bereitstellung des Endpunkts in der Konsole den Abschnitt „Modelle“ auf. Wenn Sie auf Ihr Modell klicken, sollten Sie sehen, wie Ihr Modell bereitgestellt wird:

Wenn die Bereitstellung abgeschlossen ist, wird anstelle des Ladesymbols ein grünes Häkchen angezeigt.

Schritt 4: Bereitgestelltes Modell testen

Um sicherzustellen, dass Ihr bereitgestelltes Modell funktioniert, können Sie mit gcloud eine Vorhersage durchführen. Speichern Sie zuerst eine JSON-Datei mit einem Beispiel aus unserem Testsatz:

%%writefile predictions.json
{
  "instances": [
    [2016.0, 1.0, 346.0, 27.0, 211.0, 4530.0, 86700.0, 132.13, 1289.0, 1408.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0]
  ]
}

Testen Sie Ihr Modell mit dem folgenden gcloud-Befehl:

!gcloud beta ai endpoints predict $ENDPOINT_ID \
--json-request=predictions.json \
--region=us-central1

In der Ausgabe sollten Sie die Vorhersage Ihres Modells sehen. Dieses Beispiel wurde genehmigt. Daher sollte der Wert nahe bei 1 liegen.

9. Bereinigen

Wenn Sie dieses Notebook weiterhin verwenden möchten, sollten Sie es ausschalten, wenn Sie es nicht verwenden. Wählen Sie in der Notebook-Benutzeroberfläche in der Cloud Console das Notebook und dann Anhalten aus:

Wenn Sie alle Ressourcen löschen möchten, die Sie in diesem Lab erstellt haben, löschen Sie einfach die Notebookinstanz, anstatt sie zu beenden.

Wenn Sie den bereitgestellten Endpunkt löschen möchten, rufen Sie in der Vertex Console den Bereich „Endpunkte“ auf und klicken Sie auf das Symbol „Löschen“:

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