1. Übersicht
In diesem Lab trainieren Sie ein Modell mit BigQuery Machine Learning, exportieren es und stellen es dann in Vertex AI bereit. Dies ist das neueste KI-Produktangebot von Google Cloud.
Lerninhalte
Die folgenden Themen werden behandelt:
- Modell mit BigQuery Machine Learning (BQML) trainieren
- BQML-Modell nach Cloud Storage exportieren
- Trainiertes BQML in Vertex AI bereitstellen
- Vorhersagen für ein bereitgestelltes Modell abrufen
Die Gesamtkosten für das Lab in Google Cloud belaufen sich auf 2$.
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 Fokus auf den unten genannten Produkten: Vorhersagen und Notebooks.
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.
Schritt 3: Notebooks-Instanz erstellen
Wir verwenden Notebooks, um Vorhersagen zu erhalten, nachdem wir unser Modell bereitgestellt haben. Klicken Sie in der Cloud Console im Bereich Vertex AI auf „Notebooks“:
Wählen Sie dort Neue Instanz aus. Wählen Sie dann den Instanztyp TensorFlow Enterprise 2.3 ohne GPUs aus:
Verwenden Sie die Standardoptionen und klicken Sie dann auf Erstellen. Nachdem die Instanz erstellt wurde, wählen Sie JupyterLab öffnen aus:
4. Trainieren Sie ein BigQuery ML-Modell
Mit BigQuery ML können Sie benutzerdefinierte Modelle für maschinelles Lernen mithilfe von in BigQuery gespeicherten Daten trainieren. Sie können Modelle in SQL trainieren und Vorhersagen aus ihnen abrufen. In diesem Lab verwenden wir ein öffentlich verfügbares Dataset in BigQuery, um die Wahrscheinlichkeit eines Zahlungsversäumnisses bei einer Kreditkartenzahlung vorherzusagen.
Schritt 1: BigQuery-Dataset im Projekt erstellen
Zum Trainieren eines Modells in BigQuery ML müssen Sie in Ihrem Projekt ein Dataset zum Speichern dieses Modells erstellen. Klicken Sie in der linken Menüleiste auf Ihr Projekt und wählen Sie Dataset erstellen aus:
Geben Sie im Feld Dataset-ID den Wert cc_default
ein. Lassen Sie die restlichen Felder unverändert und klicken Sie auf Dataset erstellen.
Schritt 2: CREATE MODEL-Abfrage ausführen
Führen Sie im BigQuery-Abfrageeditor die folgende CREATE MODEL
-Abfrage aus, um ein BigQuery ML-Modell mit dem öffentlichen 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, was bedeutet, dass die Ausführung ungefähr eine Minute dauert. Nach Abschluss des Vorgangs wird das Modell unter Ihrem Dataset angezeigt:
Sie können auf das Modell klicken, um die Trainings- und Bewertungsmesswerte aufzurufen.
5. BigQuery ML-Modell exportieren
Mit einem trainierten BQML-Modell können wir die BQML-SQL-Syntax für Vorhersagen verwenden 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 das 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. Keine Sorge, wenn Sie noch keinen GCS-Bucket haben. Wir erstellen gleich eins. Klicken Sie zuerst auf Durchsuchen:
Klicken Sie dann auf das Symbol +, um einen neuen Bucket zu erstellen:
Geben Sie ihm einen eindeutigen Namen (Namen von Storage-Buckets müssen global eindeutig sein). Klicken Sie auf Weiter. Wählen Sie im nächsten Schritt unter Standorttyp die Option Region und dann eine Region aus dem Drop-down-Menü aus:
Verwenden Sie die Standardspeicherklasse und achten Sie bei der Zugriffssteuerung darauf, dass Einheitlich ausgewählt ist:
Klicken Sie auf „Weiter“ und verwenden Sie für die übrigen Optionen die Standardeinstellungen. Klicken Sie auf Erstellen.
Schritt 2: BQML-Modell exportieren
Nachdem Sie den neuen Bucket erstellt haben, geben Sie model-assets
oder einen beliebigen anderen Wert in das Feld Name ein und klicken Sie dann auf Auswählen:
Klicken Sie dann auf Exportieren. Dadurch wird in BigQuery ein Job erstellt, mit dem Sie das Modell im SavedModel-Format von TensorFlow in den neu erstellten GCS-Bucket exportieren können, 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 Modell-Assets in den gerade erstellten Bucket im Unterverzeichnis model-assets
exportiert werden:
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-Abschnitt Models (Modelle) auf. Wählen Sie dort Importieren aus:
Geben Sie Ihrem Modell im ersten Schritt den Namen predict_default
. Wählen Sie die Region aus, in der Sie auch den Bucket erstellt haben (us-central1, europe-west4 oder asia-east1). Klicken Sie dann auf Weiter. Behalten Sie in den Modelleinstellungen die Option „Modellartefakte in einen neuen vordefinierten Container importieren“ bei. 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, klicken Sie auf den soeben erstellten GCS-Bucket und dann auf das Verzeichnis model-assets:
Klicken Sie dann auf Importieren. Das Importieren Ihres Modells dauert einige Minuten. Nachdem es erstellt wurde, wird es in der Cloud Console im Abschnitt „Modelle“ angezeigt:
7. Modell auf einem Endpunkt bereitstellen
Nachdem wir das Modell hochgeladen haben, erstellen wir 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:
Geben Sie dem Endpunkt einen Namen wie default_pred_v1
, lassen Sie die Einstellungen für die Trafficaufteilung unverändert und wählen Sie dann einen Maschinentyp für die Modellbereitstellung aus. Wir haben hier einen 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 er abgeschlossen ist, wird daneben ein grünes Häkchen angezeigt:
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
Hier zeigen wir Ihnen, wie Sie Vorhersagen über die API erhalten.
Schritt 1: Modellvorhersagen mit der Vertex AI API abrufen
Um Ihnen zu zeigen, wie Sie hier Modellvorhersagen abrufen, verwenden wir die Vertex Notebook-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:
Führen Sie in Ihrem Notebook den folgenden Befehl 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 dann in der Vertex-UI für den soeben bereitgestellten Endpunkt auf Sample Request (Beispielanfrage):
Kopieren Sie den Code aus Schritt 4 auf dem REST-Tab in Ihr Notebook und führen Sie die Zelle aus:
Fügen Sie dann eine Variable für die Region hinzu, in der Sie den Bucket und das Modell erstellt haben. Ersetzen Sie your-region
im folgenden String:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
Senden Sie abschließend mit curl
eine Vorhersageanfrage an Ihren Endpunkt, indem Sie den folgenden Code in Ihr Notebook kopieren:
!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"
Sie sollten in etwa Folgendes sehen (exakte Vorhersagewerte können etwas 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 prognostiziert unser Modell eine Wahrscheinlichkeit von 81 %, dass diese Person nicht standardmäßig die nächste Zahlung ausführen wird. Der Wert .819
entspricht der Klasse 0
(nicht der Standardeinstellung).
🎉 Glückwunsch! 🎉
Sie haben Folgendes gelernt:
- Modell in BQML trainieren
- BQML-Modell nach Cloud Storage exportieren
- BQML-Modell für Vorhersagen in Vertex AI importieren
- Vertex AI-Modell erstellen und auf einem Endpunkt bereitstellen
- Vorhersagen auf Ihrem bereitgestellten Endpunkt über Vertex Notebooks abrufen und curl
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 Notebooks-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, gehen Sie in der Vertex AI-Konsole zum Abschnitt Endpunkte und klicken Sie auf das Symbol zum 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“: