1. Einführung
In diesem Codelab erstellen wir mit Vertex AI AutoML ein Modell zur Vorhersage von Filmbewertungen und lassen den bereitgestellten Modellendpunkt von Java Cloud Functions auslösen. Das Modell wird mit Daten trainiert, die in BigQuery gespeichert und in Vertex AI registriert sind. Die Liste der Dienste kann in zwei Abschnitte unterteilt werden:
- Erstellung und Bereitstellung von ML-Modellen
- Trigger für Vorhersagen mit der ML API
Erstellen eines ML-Modells:
- Daten aus CSV nach BigQuery
- BigQuery-Daten, die in Vertex AI für die Erstellung von AutoML-Modellen eingebunden sind
- Modell, das in der Vertex AI Model Registry bereitgestellt wird, um die Endpunkt-API zu generieren
Trigger für die Vorhersage mit der ML API:
- Java Cloud Functions zum Auslösen des Aufrufs des Endpunkts des bereitgestellten AutoML-Modells, das Filmdetails als Anfrage von der Benutzeroberfläche entgegennimmt und die prognostizierte Filmbewertung zurückgibt
Unten finden Sie eine allgemeine Übersicht über die Architektur der Anwendung:
Die Anwendung der obigen Architektur fällt nicht in den Rahmen dieses Codelabs. Wenn Sie auch die Clientanwendung entwickeln möchten, lesen Sie den Blog.
Sehen wir uns die einzelnen Schritte an.
Aufgaben
Sie erstellen eine
- Ein BigQuery-Dataset, das die Tabellen- und Modellkomponenten enthält
- Vertex AI AutoML-Modell (erstellen und bereitstellen)
- Java-Cloud Functions-Trigger für Vorhersagen mit der ML API
2. Voraussetzungen
Folgende Voraussetzungen müssen erfüllt sein:
Projekt erstellen
- Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
- Rufen Sie BigQuery auf, um die API zu aktivieren. Sie können die BigQuery-Web-UI auch direkt öffnen, indem Sie die folgende URL in Ihren Browser eingeben: https://console.cloud.google.com/bigquery
Cloud Shell aktivieren
- Sie verwenden Cloud Shell, eine Befehlszeilen-Umgebung, die in Google Cloud ausgeführt wird und bq vorinstalliert hat: Klicken Sie in der Cloud Console rechts oben auf „Cloud Shell aktivieren“:
- Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie bereits authentifiziert sind und das Projekt bereits auf Ihre Projekt-ID festgelegt ist. Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list
- Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der gcloud-Befehl Ihr Projekt kennt:
gcloud config list project
- Wenn Ihr Projekt nicht festgelegt ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <PROJECT_ID>
Weitere Informationen zu gcloud-Befehlen und deren Verwendung finden Sie in der Dokumentation.
3. Trainingsdaten vorbereiten
Dies ist ein wichtiger Schritt bei allen datengestützten Projekten, Produkten und Apps, der neben der Technologie auch viel Fachwissen erfordert, um einen optimalen Datensatz für Ihr ML-Projekt vorzubereiten. Für dieses Codelab gehen wir davon aus, dass die Daten bereits vorbereitet sind, und verwenden diese bereits verarbeitete Datendatei.
4. Dataset erstellen und laden
Ein BigQuery-Dataset ist eine Sammlung von Tabellen. Alle Tabellen in einem Dataset werden am selben Speicherort gespeichert. Sie können auch benutzerdefinierte Zugriffssteuerungen anhängen, um den Zugriff auf einen Datensatz und seine Tabellen einzuschränken.
- Erstellen Sie in Cloud Shell mit dem Befehl bq mk ein Dataset namens „movies“.
bq mk --location=<<LOCATION>> movies
Legen Sie für Standort eine Region (z. B. asia-south1) fest. Achten Sie darauf, diese Region auch für den VERTEX AI-Schritt festzulegen. Beide Instanzen sollten sich in derselben Region befinden.
- Achten Sie darauf, dass Sie die Datendatei (CSV) bereit haben. Führen Sie die folgenden Befehle in Cloud Shell aus, um das Repository zu klonen und zum Projekt zu wechseln:
git clone <<repository link>>
cd movie-score
- Laden Sie die CSV-Datei mit dem Befehl „bq load“ in eine BigQuery-Tabelle. Sie können sie auch direkt über die BigQuery-Benutzeroberfläche hochladen:
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
- Es gibt drei Möglichkeiten, eine Suchanfrage zu stellen:
Wir können auf drei Arten mit BigQuery interagieren. Wir werden zwei davon ausprobieren: a. BigQuery-Web-UI b. Der Befehl „bq“ API
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
Ich habe den BigQuery Web SQL-Arbeitsbereich zum Ausführen von Abfragen verwendet. Der SQL-Arbeitsbereich sieht so aus:
Mit dem Befehl „bq“:
bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
5. BigQuery-Daten in Vertex AI AutoML verwenden
Mit Ihren Daten aus BigQuery können Sie direkt ein AutoML-Modell mit Vertex AI erstellen. Wie Sie wissen, können wir AutoML auch direkt in BigQuery ausführen, das Modell bei Vertex AI registrieren und den Endpunkt freigeben. Weitere Informationen finden Sie in der BigQuery AutoML-Dokumentation. In diesem Beispiel verwenden wir jedoch Vertex AI AutoML, um unser Modell zu erstellen.
Vertex AI-Dataset erstellen
Rufen Sie Vertex AI in der Google Cloud Console auf, aktivieren Sie die Vertex AI API, falls noch nicht geschehen, maximieren Sie den Bereich „Daten“ und wählen Sie „Datasets“ aus. Klicken Sie auf „Dataset erstellen“, wählen Sie den Datentyp „TABULAR“ und die Option „Regression / Klassifizierung“ aus und klicken Sie auf „Erstellen“:
Datenquelle auswählen
Wählen Sie auf der nächsten Seite eine Datenquelle aus. Wählen Sie die Option „Tabelle oder Ansicht aus BigQuery auswählen“ aus und wählen Sie im Feld „SUCHEN“ für den BigQuery-Pfad die Tabelle aus BigQuery aus. Klicken Sie auf „Weiter“.
Hinweis:Die BigQuery-Instanz und die Vertex AI-Datasets müssen sich in derselben Region befinden, damit die BigQuery-Tabelle in Vertex AI angezeigt wird.
Denken Sie daran, in der Liste zum Durchsuchen auf das Optionsfeld für die Quelltabelle/-ansicht zu klicken, um mit den folgenden Schritten fortzufahren. Wenn Sie versehentlich auf den Namen der Tabelle oder Ansicht klicken, werden Sie zu Dataplex weitergeleitet. In diesem Fall müssen Sie nur zu Vertex AI zurückkehren.
Modell trainieren
- Sobald das Dataset erstellt wurde, sollte die Seite „Analysieren“ mit der Option zum Trainieren eines neuen Modells angezeigt werden. Klicken Sie auf:
- Lassen Sie das Zielvorhaben als „Klassifizierung“ und wählen Sie auf der ersten Seite die Option „AutoML“ aus. Klicken Sie dann auf „Weiter“:
- Geben Sie einen Namen für das Modell ein und wählen Sie im Drop-down-Menü „Zielspaltenname“ die Option „Bewertung“ aus. Klicken Sie dann auf „Weiter“.
- Sie können auch die Option „Test-Dataset nach BigQuery exportieren“ aktivieren. So können Sie den Testsatz mit den Ergebnissen ganz einfach in der Datenbank aufrufen, ohne eine zusätzliche Integrationsebene einrichten oder Daten zwischen Diensten verschieben zu müssen.
- Auf der nächsten Seite können Sie die gewünschten erweiterten Trainingsoptionen und die Trainingsdauer für das Modell auswählen. Beachten Sie die Preise, bevor Sie die Anzahl der Knotenstunden erhöhen, die Sie für das Training verwenden möchten.
Klicken Sie auf „Training starten“, um mit dem Training des neuen Modells zu beginnen.
Modell bewerten, bereitstellen und testen
Sobald das Training abgeschlossen ist, sollten Sie im Menü auf der linken Seite unter „Modellentwicklung“ auf „Training“ klicken können. Das Training wird dann im Abschnitt „Training Pipelines“ aufgeführt. Klicken Sie darauf, um die Seite „Model Registry“ aufzurufen. Sie sollten Folgendes können:
- Trainingergebnisse ansehen und bewerten
- Modell mit Ihrem API-Endpunkt bereitstellen und testen
Nach der Bereitstellung Ihres Modells wird ein API-Endpunkt erstellt, der in Ihrer Anwendung verwendet werden kann, um Anfragen zu senden und Modellvorhersageergebnisse in der Antwort zu erhalten.
Notieren Sie sich die Endpunkt-ID, den Speicherort und andere Details des bereitgestellten Modells im Abschnitt „Vertex AI-Endpunkt“ in diesem Abschnitt, bevor Sie fortfahren.
6. Java-Cloud-Funktion zum Auslösen einer ML-Aufruf
Denken Sie daran, dass wir den Endpunkt und andere Details aus dem Schritt zur ML-Bereitstellung haben? Wir verwenden diese hier. Da wir Java Cloud Functions verwenden, verwenden wir pom.xml für die Verwaltung von Abhängigkeiten. Wir verwenden die google-cloud-aiplatform-Bibliothek, um die Vertex AI AutoML-Endpunkt-API zu verwenden.
- Suchen Sie in der Google Cloud Console nach „Cloud Functions“ und klicken Sie auf „Funktion erstellen“.
- Geben Sie die Konfigurationsdetails ein, z. B. Umgebung, Funktionsname, Region, Trigger (in diesem Fall HTTPS) und Authentifizierung. Aktivieren Sie „HTTPS erforderlich“ und klicken Sie auf „Weiter“ oder „Speichern“.
- Wählen Sie auf der nächsten Seite „Laufzeit“ (Java 11), „Quellcode“ (Inline oder Upload) aus und beginnen Sie mit der Bearbeitung.
- Kopieren Sie die Dateien java und pom.xml aus dem Repository und fügen Sie sie in den Inline-Editor ein. Wenn Sie Ihren lokalen Editor verwenden (empfohlen), klonen Sie die Quelle aus dem Repository.
- Ändern Sie für dieses Beispiel die Projekt-ID, die Endpunkt-ID, den Speicherort und den Endpunkt in der .java-Quelldatei. Beachten Sie jedoch, dass es sich empfiehlt, Secret Manager zum Speichern von Anmeldedaten zu verwenden.
- Kommentieren Sie im Rahmen dieses Codelabs die MongoDB-Teile in der .java-Klasse im kopierten Quellcode.
Stellen Sie die Funktion bereit, sobald alle Änderungen abgeschlossen sind. Sie sollten die Endpunkt-URL sehen, die in Ihrer Clientanwendung verwendet werden kann, um Anfragen an diese Cloud-Funktion zu senden und als Antwort die Filmbewertung zu erhalten.
7. Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Beitrag verwendeten Ressourcen in Rechnung gestellt werden:
- Rufen Sie in der Google Cloud Console die Seite Ressourcen verwalten auf.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf „Löschen“.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf „Beenden“, um das Projekt zu löschen.
8. Glückwunsch
Glückwunsch! Sie haben ein Modell zur Vorhersage von Filmbewertungen in Vertex AI AutoML erstellt und bereitgestellt und das bereitgestellte Modell über Cloud Functions ausgelöst.