1. Übersicht
In diesem Lab trainieren Sie ein Modell mit BigQuery Machine Learning und exportieren und stellen es dann in Vertex AI bereit. Dies ist das neueste KI-Produkt von Google Cloud.
Lerninhalte
Die folgenden Themen werden behandelt:
- Modell mit BigQuery Machine Learning (BQML) trainieren
- BQML-Modell in Cloud Storage exportieren
- Trainiertes BQML-Modell in Vertex AI bereitstellen
- Vorhersagen für Ihr bereitgestelltes Modell abrufen
Die Gesamtkosten für die Ausführung dieses Labs in Google Cloud betragen etwa 2$.
2. Einführung in Vertex AI
In diesem Lab wird das neueste KI-Produkt von Google Cloud verwendet. Vertex AI vereint die ML-Angebote von Google Cloud in einer nahtlosen Entwicklungsumgebung. Bisher musste auf mit AutoML trainierte und benutzerdefinierte Modelle über verschiedene Dienste zugegriffen werden. Das neue Angebot kombiniert diese und weitere, neue Produkte zu einer einzigen API. Sie können auch vorhandene Projekte zu Vertex AI migrieren. Wenn Sie Feedback haben, lesen Sie bitte die Supportseite.
Vertex AI umfasst viele verschiedene Produkte zur Unterstützung von End-to-End-ML-Workflows. In diesem Lab konzentrieren wir uns auf die unten hervorgehobenen Produkte: Prediction und Notebooks.

3. Richten Sie Ihre Umgebung ein.
Für dieses Codelab benötigen Sie ein Google Cloud Platform-Projekt mit aktivierter Abrechnung. 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 API noch nicht aktiviert ist. Sie benötigen diese, um Ihre Notebook-Instanz zu erstellen.
Schritt 2: Vertex AI API aktivieren
Rufen Sie den Vertex AI-Bereich Ihrer Cloud Console auf und klicken Sie auf Vertex AI API aktivieren.

Schritt 3: Notebooks-Instanz erstellen
Wir verwenden Notebooks, um Vorhersagen abzurufen, nachdem wir unser Modell bereitgestellt haben. Klicken Sie in der Cloud Console im Abschnitt „Vertex AI“ auf „Notebooks“:

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

Übernehmen Sie die Standardoptionen und klicken Sie auf Erstellen. Nachdem die Instanz erstellt wurde, klicken Sie auf JupyterLab öffnen:

4. Trainieren Sie ein BigQuery ML-Modell
Mit BigQuery ML können Sie benutzerdefinierte Modelle für maschinelles Lernen mit Daten trainieren, die in BigQuery gespeichert sind. Sie können Modelle vollständig in SQL trainieren und Vorhersagen abrufen. In diesem Lab verwenden wir ein öffentlich verfügbares Dataset in BigQuery, um die Wahrscheinlichkeit eines Zahlungsausfalls bei einer Kreditkartenzahlung vorherzusagen.
Schritt 1: BigQuery-Dataset in Ihrem Projekt erstellen
Wenn Sie ein Modell in BigQuery ML trainieren möchten, müssen Sie ein Dataset in Ihrem Projekt erstellen, in dem dieses Modell gespeichert wird. Klicken Sie in der linken Menüleiste auf Ihr Projekt und wählen Sie dann Dataset erstellen aus:

Geben Sie im Feld Dataset-ID den Wert cc_default ein. Übernehmen Sie für alle anderen Felder die Standardeinstellungen und klicken Sie auf Dataset erstellen.
Schritt 2: CREATE MODEL-Abfrage ausführen
Führen Sie im Abfrageeditor von BigQuery die folgende CREATE MODEL-Abfrage aus, um ein BigQuery ML-Modell für das öffentliche Dataset zu erstellen und zu trainieren, das wir verwenden werden. Ersetzen Sie your-project durch den Namen Ihres Cloud-Projekts:
CREATE OR REPLACE MODEL
`your-project.cc_default.logistic_model` OPTIONS(model_type='LOGISTIC_REG',
input_label_cols=['default_payment_next_month']) AS
SELECT
limit_balance,
sex,
education_level,
marital_status,
age,
pay_0,
pay_2,
pay_3,
pay_4,
pay_5,
pay_6,
bill_amt_1,
bill_amt_2,
bill_amt_3,
bill_amt_4,
bill_amt_5,
bill_amt_6,
pay_amt_1,
pay_amt_2,
pay_amt_3,
pay_amt_4,
pay_amt_5,
pay_amt_6,
default_payment_next_month
FROM
`bigquery-public-data.ml_datasets.credit_card_default`
Dadurch wird ein logistisches Regressionsmodell erstellt, das einen numerischen Wert zwischen 0 und 1 ausgibt. Die Ausführung dauert etwa eine Minute. Wenn der Vorgang abgeschlossen ist, wird das Modell unter Ihrem Datensatz angezeigt:

Sie können auf das Modell klicken, um sich die Trainings- und Bewertungsmesswerte anzusehen.
5. BigQuery ML-Modell exportieren
Mit einem trainierten BQML-Modell können wir die BQML-SQL-Syntax verwenden, um Vorhersagen zu erhalten, oder das Modell exportieren, um es an anderer Stelle bereitzustellen. Hier exportieren wir unser Modell, damit wir es in Vertex AI bereitstellen können, um das Modell skalierbar bereitzustellen und Vorhersagen zu erhalten.
Schritt 1: Cloud Storage-Bucket für Ihr Modell erstellen
Klicken Sie in den Modelldetails auf Modell exportieren:

Sie werden aufgefordert, den Google Cloud Storage-Speicherort (GCS) einzugeben, an den die Assets Ihres Modells exportiert werden sollen. Wenn Sie noch keinen GCS-Bucket haben, ist das kein Problem. Wir erstellen jetzt einen. Klicken Sie zuerst auf Durchsuchen:

Klicken Sie dann auf das Symbol +, um einen neuen Bucket zu erstellen:

Geben Sie ihm einen eindeutigen Namen (Storage-Bucket-Namen müssen global eindeutig sein). Klicken Sie auf Weiter. Wählen Sie im nächsten Schritt unter Standorttyp die Option Region und dann eine der Regionen aus dem Drop-down-Menü aus:

Verwenden Sie die Standardspeicherklasse und achten Sie darauf, dass unter „Zugriffssteuerung“ die Option Einheitlich ausgewählt ist:

Klicken Sie auf „Weiter“ und verwenden Sie für die restlichen Optionen die Standardeinstellungen. Klicken Sie auf Erstellen.
Schritt 2: BQML-Modell exportieren
Nachdem Sie den neuen Bucket erstellt haben, geben Sie im Feld Name model-assets (oder einen beliebigen anderen Namen) ein und klicken Sie dann auf Auswählen:

Klicken Sie dann auf Exportieren. Dadurch wird in BigQuery ein Job erstellt, mit dem Ihr Modell im SavedModel-Format von TensorFlow in den neu erstellten GCS-Bucket exportiert wird, den Sie angegeben haben. Der Export dauert etwa eine Minute.
Rufen Sie während des Exports Ihres Modells in der Cloud Console den Bereich „Speicher“ auf. Wenn der Job abgeschlossen ist, sollten die Modelldaten in das soeben erstellte Bucket in einem Unterverzeichnis model-assets exportiert worden sein:

6. Modell in Vertex AI importieren
In diesem Schritt verweisen wir auf den GCS-Speicherort, an den wir gerade unsere Modell-Assets exportiert haben, um das Modell zu erstellen und in Vertex AI zu importieren.
Schritt 1: Modell importieren
Rufen Sie in der Cloud Console den Vertex AI-Bereich auf. Wählen Sie dann Importieren aus:

Geben Sie Ihrem Modell im ersten Schritt den Namen predict_default. Wählen Sie dieselbe Region aus, in der Sie Ihren Bucket erstellt haben (entweder us-central1, europe-west4 oder asia-east1). Klicken Sie dann auf Weiter. Lassen Sie unter Modelleinstellungen die Option „Modellartefakte in einen neuen vordefinierten Container importieren“ ausgewählt.
Wählen Sie im Drop-down-Menü Modell-Framework die Option TensorFlow aus. Wählen Sie dann 2.3 als Framework-Version aus.
Klicken Sie im Feld „Speicherort des Modellartefakts“ auf Durchsuchen, dann auf den GCS-Bucket, den Sie gerade erstellt haben, und schließlich auf das Verzeichnis model-assets:

Klicken Sie dann auf Importieren. Das Importieren des Modells dauert einige Minuten. Nachdem das Modell erstellt wurde, wird es in der Cloud Console im Bereich „Modelle“ angezeigt:

7. Modell auf einem Endpunkt bereitstellen
Nachdem wir unser Modell hochgeladen haben, ist der nächste Schritt, einen Endpunkt in Vertex AI zu erstellen. Einer Modellressource in Vertex AI können mehrere Endpunkte zugeordnet sein. Sie können den Traffic auch zwischen Endpunkten aufteilen.
Schritt 1: Endpunkt erstellen
Rufen Sie auf der Modellseite den Tab Bereitstellen und testen auf und klicken Sie auf Auf Endpunkt bereitstellen:

Geben Sie Ihrem Endpunkt einen Namen, z. B. default_pred_v1, lassen Sie die Einstellungen für die Aufteilung des Traffics unverändert und wählen Sie dann einen Maschinentyp für die Bereitstellung Ihres Modells aus. Wir haben hier n1-highcpu-2 verwendet, aber Sie können einen beliebigen Maschinentyp auswählen.
Wählen Sie dann „Fertig“ aus und klicken Sie auf Weiter. Lassen Sie die ausgewählten Standorteinstellungen unverändert und klicken Sie auf Bereitstellen. Die Bereitstellung des Endpunkts dauert einige Minuten. Wenn der Vorgang abgeschlossen ist, wird daneben ein grünes Häkchen angezeigt:

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 verschiedene Möglichkeiten, Modellvorhersagen zu erhalten:
- Vertex AI-Benutzeroberfläche
- Vertex AI API
Hier erfahren Sie, wie Sie Vorhersagen über die API abrufen.
Schritt 1: Modellvorhersagen mit der Vertex AI API abrufen
Um Ihnen zu zeigen, wie Sie hier Modellvorhersagen erhalten, verwenden wir die Vertex Notebook-Instanz, die Sie zu Beginn dieses Labs erstellt haben.
Öffnen Sie als Nächstes die von Ihnen erstellte Notebook-Instanz und dann ein Python 3-Notebook über den Launcher:

Führen Sie in Ihrem Notebook den folgenden Code in einer Zelle aus, um ein Testbeispiel in eine JSON-Datei mit dem Namen default-pred.json zu schreiben. Wir senden dieses Beispiel zur Vorhersage an unser Modell:
%%writefile default-pred.json
{
"instances": [
{"age": 39,
"bill_amt_1": 47174,
"bill_amt_2": 47974,
"bill_amt_3": 48630,
"bill_amt_4": 50803,
"bill_amt_5": 30789,
"bill_amt_6": 15874,
"education_level": "1",
"limit_balance": 50000,
"marital_status": "2",
"pay_0": 0,
"pay_2":0,
"pay_3": 0,
"pay_4": 0,
"pay_5": "0",
"pay_6": "0",
"pay_amt_1": 1800,
"pay_amt_2": 2000,
"pay_amt_3": 3000,
"pay_amt_4": 2000,
"pay_amt_5": 2000,
"pay_amt_6": 2000,
"sex": "1"}
]
}
Klicken Sie als Nächstes in der Vertex-Benutzeroberfläche auf Sample Request (Beispielanfrage) für den Endpunkt, den Sie gerade bereitgestellt haben:

Kopieren Sie den Code aus Schritt 4 auf dem Tab „REST“ in Ihr Notebook und führen Sie die Zelle aus:

Fügen Sie dann eine Variable für die Region hinzu, in der Sie Ihren Bucket und Ihr Modell erstellt haben. Ersetzen Sie your-region im folgenden String:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
Stellen Sie schließlich eine Vorhersageanfrage an Ihren Endpunkt mit curl. Kopieren Sie dazu den folgenden Code in Ihr Notebook:
!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"
Die Ausgabe sollte etwa so aussehen (die genauen Vorhersagewerte können leicht variieren):
{
"predictions": [
{
"default_payment_next_month_values": [
"1",
"0"
],
"default_payment_next_month_probs": [
0.180815295299778,
0.819184704700222
],
"predicted_default_payment_next_month": [
"0"
]
}
],
"deployedModelId": "your-model-id"
}
Die Werte in default_payment_next_month_probs geben die Wahrscheinlichkeit für jede Klasse an. In diesem Beispiel sagt unser Modell voraus, dass die Wahrscheinlichkeit, dass diese Person ihre nächste Zahlung nicht versäumt, bei 81% liegt. Der Wert .819 entspricht der Klasse 0 (nicht Standard).
🎉 Das wars! 🎉
Sie haben Folgendes gelernt:
- Modell in BQML trainieren
- BQML-Modell in Cloud Storage exportieren
- BQML-Modell für die Vorhersage in Vertex AI importieren
- Vertex AI-Modell erstellen und auf einem Endpunkt bereitstellen
- Vorhersagen für Ihren bereitgestellten Endpunkt über Vertex Notebooks und curl abrufen
Weitere Informationen zu den verschiedenen Bereichen von Vertex AI finden Sie in der Dokumentation.
9. Bereinigen
Wenn Sie das in diesem Lab erstellte Notebook weiterhin verwenden möchten, sollten Sie es deaktivieren, wenn Sie es nicht nutzen. Wählen Sie in der Notebooks-Benutzeroberfläche in der Cloud Console das Notebook und dann Beenden aus:

Wenn Sie das Notebook vollständig löschen möchten, klicken Sie einfach oben rechts auf die Schaltfläche „Löschen“.
Wenn Sie den bereitgestellten Endpunkt löschen möchten, rufen Sie in der Vertex AI Console den Abschnitt Endpunkte auf und klicken Sie auf das Symbol zum Löschen:

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