Vorhersage der Filmbewertung mit Vertex AI AutoML

1. Einführung

In diesem Codelab erstellen wir mit Vertex AI AutoML ein Modell zur Vorhersage der Filmpunktzahl 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:

  1. ML-Modell erstellen und bereitstellen
  2. Trigger für Vorhersagen mit der ML API

ML-Modell erstellen:

  1. Datenquelle aus CSV in BigQuery
  2. In Vertex AI integrierte BigQuery-Daten zum Erstellen von AutoML-Modellen
  3. In Vertex AI Model Registry bereitgestelltes Modell zum Generieren der Endpunkt-API

Trigger für die Vorhersage mit der ML API auslösen:

  1. Java Cloud Functions-Funktionen zum Auslösen des Aufrufs des Endpunkts des bereitgestellten AutoML-Modells, der Filmdetails als Anfrage von der UI annimmt, gibt die vorhergesagte Film-SCORE-Angabe zurück

Im Folgenden finden Sie einen groben Überblick über die Architektur der Anwendung:

5ae50607c0f2db20.png

Die Anwendung der oben genannten Architektur wird in diesem Codelab nicht behandelt. Wenn Sie jedoch auch die Clientanwendung entwickeln möchten, finden Sie entsprechende Informationen im Blog.

Sehen wir uns die Schritte für die Implementierung an.

Aufgaben

Sie erstellen ein

  • Ein BigQuery-Dataset, das die Tabellen- und Modellkomponenten enthält
  • Vertex AI AutoML Model (erstellen und bereitstellen)
  • Java Cloud Functions-Trigger für Vorhersagen mithilfe der ML API

2. Voraussetzungen

  • Ein Browser wie Chrome oder Firefox
  • Ein Google Cloud-Projekt mit aktivierter Abrechnung

Voraussetzungen:

Projekt erstellen

  1. Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. Hier erfahren Sie, wie Sie prüfen, ob die Abrechnung für ein Projekt aktiviert ist.
  3. 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

  1. Sie verwenden Cloud Shell, eine in Google Cloud ausgeführte Befehlszeilenumgebung mit vorinstalliertem bq: Klicken Sie in der Cloud Console oben rechts auf „Cloud Shell aktivieren“: 6757b2fb50ddcc2d.png
  2. Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie bereits authentifiziert sind und dass das Projekt bereits auf Ihre Projekt-ID eingestellt ist. Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list
  1. 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
  1. Wenn Ihr Projekt noch nicht eingerichtet ist, verwenden Sie den folgenden Befehl, um es festzulegen:
gcloud config set project <PROJECT_ID>

Informationen zu gcloud-Befehlen und deren Verwendung finden Sie in der Dokumentation.

3. Trainingsdaten vorbereiten

Dies ist ein wichtiger Schritt bei allen datenbezogenen Projekten, Produkten und Anwendungen, für die neben der Technologie auch viel Fachkompetenz erforderlich ist, um ein optimales Dataset vorzubereiten und es 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 data-Datei.

4. Dataset erstellen und laden

Ein BigQuery-Dataset ist eine Sammlung von Tabellen. Alle Tabellen in einem Dataset werden am selben Datenspeicherort gespeichert. Sie können auch benutzerdefinierte Zugriffssteuerungen hinzufügen, um den Zugriff auf ein Dataset und dessen Tabellen einzuschränken.

  1. Verwenden Sie in Cloud Shell den Befehl bq mk, um ein Dataset namens "movies" zu erstellen.
bq mk --location=<<LOCATION>> movies

Legen Sie als Standort eine Region (asia-south1) fest. Denken Sie daran, sie auch als Region für den VERTEX AI-Schritt festzulegen (beide Instanzen sollten sich in derselben Region befinden).

  1. Stellen Sie sicher, dass die Datendatei (.csv) bereit ist. Führen Sie in Cloud Shell die folgenden Befehle aus, um das Repository zu klonen und zum Projekt zu wechseln:
git clone <<repository link>>

cd movie-score
  1. Verwenden Sie den Befehl bq Loading, um Ihre CSV-Datei in eine BigQuery-Tabelle zu laden. Beachten Sie, dass Sie den Upload auch direkt über die BigQuery-Benutzeroberfläche durchführen können:
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
  1. Sie haben drei Möglichkeiten für die Abfrage:

Wir können auf drei Arten mit BigQuery interagieren. Wir werden zwei davon ausprobieren: a. BigQuery-Web-UI b. Den bq-Befehl c. API

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

Ich habe den BigQuery Web SQL Workspace verwendet, um Abfragen auszuführen. Der SQL-Arbeitsbereich sieht so aus:

109a0b2c7155e9b3.png

Mit dem bq-Befehl:

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

Verwenden Sie Ihre Daten aus BigQuery, um direkt ein AutoML-Modell mit Vertex AI zu erstellen. Denken Sie daran, dass wir AutoML auch über BigQuery selbst ausführen und das Modell bei VertexAI registrieren und den Endpunkt verfügbar machen können. Weitere Informationen finden Sie in der Dokumentation zu BigQuery AutoML. In diesem Beispiel verwenden wir jedoch Vertex AI AutoML, um unser Modell zu erstellen.

Vertex AI-Dataset erstellen

Rufen Sie Vertex AI über die Google Cloud Console auf, aktivieren Sie die Vertex AI API, falls noch nicht geschehen, erweitern Sie die Daten und wählen Sie Datasets aus, klicken Sie auf „Dataset erstellen“, wählen Sie den Datentyp TABULAR und wählen Sie „Regression / Klassifizierung“ aus. und klicken Sie auf Erstellen:

4104c75c34cbd2d9.png

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“ und wählen Sie die Tabelle aus BigQuery im Feld BROWSE für BigQuery-Pfad aus. Klicken Sie auf „Weiter“.

Hinweis:Die BigQuery-Instanz und die Vertex AI-Datasets müssen dieselbe Region haben, damit die BigQuery-Tabelle in Vertex AI angezeigt wird.

b787ef18dbca4cff.png

Denken Sie bei der Auswahl der Quelltabelle bzw. -ansicht in der Suchliste daran, auf das Optionsfeld zu klicken, um mit den folgenden Schritten fortzufahren. Wenn Sie versehentlich auf den Namen der Tabelle/Ansicht klicken, werden Sie zu Dataplex weitergeleitet. In diesem Fall müssen Sie nur zu Vertex AI zurückkehren.

Modell trainieren

  1. Sobald das Dataset erstellt ist, sollten Sie die Seite „Analysieren“ mit der Option zum Trainieren eines neuen Modells sehen. Klicken Sie auf Folgendes:

bf095263d57106de.png

  1. Behalten Sie als Ziel „Klassifizierung“ bei, wählen Sie auf der ersten Seite die AutoML-Option aus und klicken Sie auf „Weiter“: e50597bc3f29894c.png
  2. Geben Sie Ihrem Modell einen Namen und wählen Sie den Namen der Zielspalte als „Score“ aus aus der Drop-down-Liste aus und klicken Sie auf „Weiter“.
  3. Beachten Sie auch, dass Sie das Feld "Export test dataset to BigQuery" (Test-Dataset nach BigQuery exportieren) aufrufen können. an, um die Testergebnisse mit den Ergebnissen effizient in der Datenbank zu sehen, ohne eine zusätzliche Integrationsebene zu erstellen oder Daten zwischen Diensten verschieben zu müssen.
  4. Auf der nächsten Seite können Sie die gewünschten erweiterten Trainingsoptionen und die Stunden auswählen, in denen das Modell trainiert werden soll. 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.

e72b004a17849bd.png

Modell bewerten, bereitstellen und testen

Sobald das Training abgeschlossen ist, sollten Sie auf Training klicken können (unter der Überschrift Modellentwicklung im linken Menü) und Ihr Training wird im Abschnitt Trainingspipelines aufgeführt. Klicken Sie darauf, um zur Seite „Modellregistrierung“ zu gelangen. Sie sollten Folgendes können:

  1. Trainingsergebnisse ansehen und bewerten 4767b4bbd7cf93fa.png
  2. Modell mit dem API-Endpunkt bereitstellen und testen

Sobald Sie Ihr Modell bereitstellen, wird ein API-Endpunkt erstellt, der in Ihrer Anwendung zum Senden von Anfragen und zum Abrufen von Modellvorhersageergebnissen in der Antwort verwendet werden kann.

95fb4495618174f0.png

Bevor Sie mit diesem Abschnitt fortfahren, notieren Sie sich die Endpunkt-ID, den Standort und andere Details des bereitgestellten Modells im Abschnitt zum Vertex AI-Endpunkt.

6. Java-Cloud Functions-Funktion zum Auslösen des ML-Aufrufs

Erinnern Sie sich noch an den Endpunkt und andere Details aus dem ML-Bereitstellungsschritt? Wir verwenden das hier und da wir Java Cloud Functions nutzen, nutzen wir pom.xml für die Verarbeitung von Abhängigkeiten. Wir verwenden die Bibliothek „google-cloud-aiplatform“, um die Vertex AI AutoML Endpoint API zu nutzen.

  1. Suchen Sie in der Google Cloud Console nach Cloud Functions und klicken Sie auf „Funktion erstellen“.
  2. Geben Sie die Konfigurationsdetails ein, z. B. Umgebung, Funktionsname, Region, Trigger (in diesem Fall HTTPS), Authentifizierung Ihrer Wahl, aktivieren Sie „HTTPS erforderlich“ und klicken Sie auf Weiter/Speichern

a68272022df062f2.png

  1. Wählen Sie auf der nächsten Seite Laufzeit (Java 11), Quellcode (Inline oder Upload) aus und beginnen Sie mit dem Bearbeiten.

13df616369ca5951.png

  1. Kopieren Sie java- und pom.xml-Dateien aus dem Repository und fügen Sie sie in die entsprechenden Dateien im Inline-Editor ein. Wenn Sie Ihren lokalen Editor verwenden (empfohlen), klonen Sie die Quelle aus dem Repository.
  2. Ändern Sie in diesem Beispiel die Projekt-ID, die Endpunkt-ID, den Speicherort und den Endpunkt in der Java-Quelldatei. Es empfiehlt sich jedoch, Anmeldedaten in Secret Manager zu speichern.
  3. Kommentieren Sie für dieses Codelab die MongoDB-Teile in der .java-Klasse im kopierten Quellcode aus.

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 Functions-Funktion zu senden und als Antwort eine Filmmusik zu erhalten.

7. Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud-Konto die in diesem Beitrag verwendeten Ressourcen in Rechnung gestellt werden:

  1. Rufen Sie in der Google Cloud Console die Seite Ressourcen verwalten auf.
  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf „Löschen“.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie dann auf „Beenden“, um das Projekt zu löschen.

8. Glückwunsch

Glückwunsch! Sie haben erfolgreich ein Modell zur Vorhersage von Filmbewertungen in Vertex AI AutoML erstellt und bereitgestellt sowie das bereitgestellte Modell über Cloud Functions ausgelöst.