Vorhersage der Filmbewertung mit Vertex AI AutoML

1. Einführung

In diesem Codelab erstellen wir mit Vertex AI AutoML ein Modell zur Vorhersage von Film-Scores und lassen den bereitgestellten Modellendpunkt von Java Cloud Functions aus 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. Erstellung und Bereitstellung von ML-Modellen
  2. Trigger für Vorhersagen mit der ML API

Erstellung von ML-Modellen:

  1. Daten aus CSV in BigQuery
  2. In Vertex AI integrierte BigQuery-Daten für die Erstellung von AutoML-Modellen
  3. Modell, das in Vertex AI Model Registry für die Generierung der Endpunkt-API bereitgestellt wird

Trigger für die Vorhersage mit der ML API:

  1. Java Cloud Functions zum Auslösen des Aufrufs des bereitgestellten AutoML-Modellendpunkts, der Filmdetails als Anfrage von der Benutzeroberfläche entgegennimmt und den vorhergesagten Film-SCORE zurückgibt

Unten sehen Sie einen allgemeinen Überblick über die Architektur der Anwendung:

5ae50607c0f2db20.png

Die Anwendung der oben genannten Architektur fällt nicht in den Rahmen dieses Codelabs. Wenn Sie die Clientanwendung ebenfalls entwickeln möchten, lesen Sie bitte den Blog.

Sehen wir uns die Implementierungsschritte an.

Aufgaben

Sie erstellen

  • Ein BigQuery-Dataset, das die Tabellen- und Modellkomponenten enthält
  • Vertex AI AutoML-Modell (erstellen und bereitstellen)
  • Java Cloud Functions-Trigger zum Vorhersagen mit der ML API

2. Voraussetzungen

  • Ein Browser, z. B. Chrome oder Firefox
  • Ein Google Cloud-Projekt mit aktivierter Abrechnung

Es gelten die folgenden Voraussetzungen:

Projekt erstellen

  1. Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, 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 Befehlszeilenumgebung, die in Google Cloud ausgeführt wird und in der bq vorinstalliert ist. Klicken Sie in der Cloud Console rechts oben auf „Cloud Shell aktivieren“: 6757b2fb50ddcc2d.png
  2. Sobald die Verbindung mit der Cloud Shell hergestellt ist, sehen Sie, dass Sie bereits authentifiziert sind und für das Projekt schon Ihre Projekt-ID eingestellt ist. Führen Sie in der Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Sie authentifiziert sind:
gcloud auth list
  1. Führen Sie den folgenden Befehl in Cloud Shell aus, um zu bestätigen, dass der gcloud-Befehl Ihr Projekt kennt.
gcloud config list project
  1. Wenn Ihr Projekt nicht festgelegt 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 in allen datenbezogenen Projekten, Produkten und Apps, der neben der Technologie auch viel Fachwissen erfordert, um einen optimalen Datensatz vorzubereiten und für Ihr ML-Projekt vorzubereiten. In diesem 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 Datenspeicherort gespeichert. Sie können auch benutzerdefinierte Zugriffssteuerungen anhängen, um den Zugriff auf ein Dataset und seine Tabellen einzuschränken.

  1. Erstellen Sie in Cloud Shell mit dem Befehl bq mk ein Dataset mit dem Namen „movies“.
bq mk --location=<<LOCATION>> movies

Legen Sie den Standort auf 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. Halten Sie die Datendatei (.csv) bereit. 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
  1. Verwenden Sie den Befehl „bq load“, um Ihre CSV-Datei in eine BigQuery-Tabelle zu laden. Sie können die Datei 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
  1. Sie haben drei Möglichkeiten, eine Anfrage zu stellen:

Es gibt drei Möglichkeiten zur Interaktion mit BigQuery. Wir probieren zwei davon aus: a. BigQuery-Web-UI Der bq-Befehl c. API

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

Ich habe den BigQuery Web SQL-Arbeitsbereich 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

Mit Vertex AI können Sie direkt aus Ihren BigQuery-Daten ein AutoML-Modell erstellen. Wir können AutoML auch direkt in BigQuery ausführen, das Modell bei Vertex AI registrieren und den Endpunkt verfügbar machen. 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 in der Google Cloud Console auf, aktivieren Sie die Vertex AI API, falls noch nicht geschehen, maximieren Sie „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“:

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

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

b787ef18dbca4cff.png

Wenn Sie die Quelltabelle oder ‑ansicht auswählen, klicken Sie in der Liste auf das Optionsfeld, 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

  1. Nachdem das Dataset erstellt wurde, sollte die Seite „Analysieren“ mit der Option zum Trainieren eines neuen Modells angezeigt werden. Klicken Sie auf:

bf095263d57106de.png

  1. Lassen Sie das Zielvorhaben als „Klassifizierung“ festgelegt und wählen Sie auf der ersten Seite die AutoML-Option aus. Klicken Sie dann auf „Weiter“: e50597bc3f29894c.png
  2. Geben Sie einen Namen für das Modell ein und wählen Sie im Drop-down-Menü, das angezeigt wird, „Score“ als „Name der Zielspalte“ aus. Klicken Sie dann auf „Weiter“.
  3. Sie können auch die Option „Test-Dataset in BigQuery exportieren“ aktivieren. So lässt sich das Test-Dataset mit Ergebnissen effizient in der Datenbank ansehen, ohne dass eine zusätzliche Integrationsschicht oder ein Verschieben von Daten zwischen Diensten erforderlich ist.
  4. Auf der nächsten Seite können Sie alle erforderlichen erweiterten Trainingsoptionen und die Stunden auswählen, in denen das Modell trainiert werden soll. Beachten Sie, dass Sie die Preise im Blick behalten sollten, 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 Ihres neuen Modells zu beginnen.

e72b004a17849bd.png

Modell bewerten, bereitstellen und testen

Nach Abschluss des Trainings sollten Sie im Menü auf der linken Seite unter „Model Development“ (Modellentwicklung) auf „Training“ klicken und Ihr Training im Abschnitt „Training Pipelines“ (Trainingspipelines) sehen können. Klicken Sie darauf, um die Seite „Model Registry“ aufzurufen. Sie sollten Folgendes können:

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

Nachdem Sie Ihr Modell bereitgestellt haben, wird ein API-Endpunkt erstellt, der in Ihrer Anwendung verwendet werden kann, um Anfragen zu senden und Modellvorhersageergebnisse in der Antwort zu erhalten.

95fb4495618174f0.png

Bevor Sie diesen Abschnitt verlassen, notieren Sie sich die Endpunkt-ID, den Standort und andere Details des bereitgestellten Modells im Abschnitt „Vertex AI-Endpunkt“.

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

Erinnern Sie sich an den Endpunkt und die anderen Details aus dem Schritt zur ML-Bereitstellung? Wir werden das hier verwenden. Da wir Java Cloud Functions verwenden, nutzen wir pom.xml für die Verarbeitung von Abhängigkeiten. Wir verwenden die Bibliothek „google-cloud-aiplatform“, um die Vertex AI AutoML-Endpunkt-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)“ und „Quellcode (Inline oder hochladen)“ aus und beginnen Sie mit der Bearbeitung.

13df616369ca5951.png

  1. 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 in diesem Fall die Quelle aus dem Repository.
  2. Ändern Sie die Projekt-ID, die Endpunkt-ID, den Standort und den Endpunkt in der Java-Quelldatei für dieses Beispiel. Beachten Sie jedoch, dass es Best Practice ist, Secret Manager zum Speichern von Anmeldedaten zu verwenden.
  3. Kommentieren Sie für den Umfang dieses Codelabs die MongoDB-Teile in der .java-Klasse in Ihrem kopierten Quellcode aus.

Stellen Sie die Funktion bereit, sobald alle Änderungen vorgenommen wurden. Sie sollten die Endpunkt-URL sehen, die in Ihrer Clientanwendung verwendet werden kann, um Anfragen an diese Cloud Functions-Funktion zu senden und eine Filmbewertung als Antwort zu erhalten.

7. Bereinigen

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

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf „Löschen“.
  3. 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 erfolgreich ein Modell zur Vorhersage von Filmbewertungen in Vertex AI AutoML erstellt und bereitgestellt und das bereitgestellte Modell über Cloud Functions ausgelöst.