Erste Schritte: Vorhersagen

Dieser Leitfaden für Einsteiger ist eine Einführung in das Abrufen von Vorhersagen aus benutzerdefinierten Modellen auf Vertex AI.

Lernziele

Vertex AI-Erfahrungsstufe: Einsteiger

Geschätzte Lesezeit: 15 Minuten

Lerninhalte:

  • Vorteile eines verwalteten Vorhersagedienstes
  • Funktionsweise von Batchvorhersagen in Vertex AI.
  • Funktionsweise von Online-Vorhersagen in Vertex AI

Vorteile eines verwalteten Vorhersagedienstes

Stellen Sie sich vor, Sie sollen mit einem Modell arbeiten, in das das Bild einer Pflanze eingegeben wird, und das dann deren Art prognostiziert. Sie können besipielsweise zuerst ein Modell in einem Notebook trainieren und verschiedene Hyperparameter und Architekturen ausprobieren. Wenn Sie ein trainiertes Modell haben, können Sie die predict-Methode in Ihrem ML-Framework Ihrer Wahl aufrufen und die Modellqualität testen.

Dieser Workflow eignet sich hervorragend zum Experimentieren. Wenn Sie aber das Modell verwenden möchten, um Vorhersagen für große Datenmengen oder im laufenden Betrieb Vorhersagen mit niedriger Latenz zu erhalten, benötigen Sie etwas mehr als ein Notebook. Beispiel: Sie versuchen, die biologische Vielfalt eines bestimmten Systems zu messen und wollen nicht, dass Menschen Pflanzenarten vor Ort bestimmen und zählen müssen, sondern wollen das ML-Modell nutzen, um große Mengen Bilder zu klassifizieren. Wenn Sie ein Notebook verwenden, können Sie in Sachen Speicher Probleme erhalten. Darüber hinaus ist das Abrufen von Vorhersagen für alle diese Daten wahrscheinlich ein Job, der lange Zeit benötigt, was möglicherweise in Ihrem Notebook zu einer Zeitüberschreitung führt.

Oder Sie wollen dieses Modell in einer Anwendung verwenden, in die Nutzer Bilder von Pflanzen hochladen können, die dann sofort bestimmt werden. Sie benötigen einen Ort, an dem das Modell außerhalb eines Notebooks gehostet werden kann, und auf den Ihre Anwendung für Vorhersagen zugreifen kann. Außerdem ist ein konsistenter Traffic zu Ihrem Modell unwahrscheinlich. Daher benötigen Sie einen Dienst, der bei Bedarf automatisch skaliert werden kann.

In allen diesen Fällen reduziert ein verwalteter Vorhersagedienst die Probleme, die beim Hosting und der Verwendung Ihrer ML-Modelle anfallen. Diese Anleitung bietet eine Einführung zum Abrufen von Vorhersagen aus ML-Modellen in Vertex AI. Beachten Sie, dass es zusätzliche Anpassungen, Funktionen und Möglichkeiten zur Nutzung des Dienstes gibt, die hier nicht behandelt werden. Dieser Leitfaden bietet einen Überblick. Weitere Informationen finden Sie in der Dokumentation zu Vertex AI-Vorhersagen.

Übersicht über den verwalteten Vorhersagedienst

Vertex AI unterstützt Batch- und Onlinevorhersagen.

Die Batchvorhersage ist eine asynchrone Anfrage. Sie eignet sich gut, wenn Sie nicht sofort eine Antwort benötigen und akkumulierte Daten in einer einzigen Anfrage verarbeiten möchten. In dem in der Einführung beschriebenen Beispiel ist dies der Anwendungsfall, in dem die biologische Vielfalt charakterisiert wird.

Wenn Sie Vorhersagen mit niedriger Latenz auf Basis von Daten erhalten möchten, die direkt an Ihr Modell übergeben werden, können Sie die Online-Vorhersage nutzen. Im in der Einführung beschriebenen Beispiel wäre dies der Anwendungsfall, in dem Sie Ihr Modell in eine App einbetten möchten, mit der Nutzer Pflanzenarten in Echtzeit identifizieren können.

Modell in Vertex AI Model Registry hochladen

Um den Vorhersagedienst verwenden zu können, müssen Sie zuerst Ihr trainiertes ML-Modell in die Vertex AI-Modell-Registry hochladen. Dies ist eine Registry, in der Sie den Lebenszyklus Ihrer Modelle verwalten können.

Eine Modellressource erstellen

Wenn Sie Modelle mit dem benutzerdefinierten Vertex AI-Trainingsdienst trainieren, kann Ihr Modell nachdem Abschluss des Trainingsjobs automatisch in die Registry importiert werden. Wenn Sie diesen Schritt übersprungen oder Ihr Modell außerhalb von Vertex AI trainiert haben, können Sie es manuell über die Google Cloud Console oder das Vertex AI SDK für Python hochladen. Verweisen Sie dazu auf einen Cloud Storage-Speicherort mit Ihren gespeicherten Modellartefakten. Das Format dieser Modellartefakte kann savedmodel.pb, model.joblib, model.pkl usw. sein, je nachdem, welches ML-Framework Sie verwenden.

Beim Hochladen von Artefakten in die Vertex AI Model Registry wird eine Model-Ressource erstellt, die in der Google Cloud Console sichtbar ist, wie unten dargestellt.

Modellressource

Einen Container wählen

Wenn Sie ein Modell in Vertex AI Model Registry importieren, müssen Sie es mit einem Container verknüpfen, damit Vertex AI Anfragen für Vorhersagen verarbeiten kann.

Vordefinierte Container

Vertex AI bietet vordefinierte Container, die Sie für Vorhersagen verwenden können. Die vordefinierten Container sind nach ML-Framework und Framework-Version organisiert und stellen HTTP-Vorhersageserver bereit, mit denen Sie Vorhersagen mit minimaler Konfiguration bereitstellen können. Sie führen nur den Vorhersagevorgang des Frameworks für maschinelles Lernen aus. Wenn Sie Ihre Daten vorverarbeiten müssen, muss dies erfolgen, bevor Sie die Vorhersageanfrage stellen. Ebenso muss jede Nachbearbeitung nach Ausführen der Vorhersageanfrage erfolgen. Ein Beispiel für die Verwendung eines vordefinierten Containers finden Sie im Notebook PyTorch-Image-Modelle mit vordefinierten Containern in Vertex AI bereitstellen.

Benutzerdefinierte Container

Wenn für Ihren Anwendungsfall Bibliotheken erforderlich sind, die nicht in den vordefinierten Containern enthalten sind, oder wenn benutzerdefinierte Datentransformationen vorliegen, die Sie als Teil der Vorhersageanfrage ausführen möchten, können Sie einen benutzerdefinierten Container verwenden, den Sie erstellen und per Push in Artifact Registry übertragen. Benutzerdefinierte Container ermöglichen eine größere Anpassung, aber der Container muss einen HTTP-Server ausführen. Insbesondere muss der Container Aktivitätsprüfungen, Systemdiagnosen und Vorhersageanfragen überwachen und darauf reagieren. In den meisten Fällen wird empfohlen, nach Möglichkeit einen vordefinierten Container zu verwenden. Ein Beispiel für die Verwendung eines benutzerdefinierten Containers finden Sie im Notebook PyTorch-Image-Klassifizierung: Einzelne GPU mit Vertex-Training und einem benutzerdefinierten Container.

Benutzerdefinierte Vorhersageroutinen

Wenn Ihr Anwendungsfall benutzerdefinierte Vor- und Nachverarbeitungstransformationen erfordert und Sie den Aufwand für das Erstellen und Verwalten eines benutzerdefinierten Containers vermeiden möchten, können Sie benutzerdefinierte Vorhersageroutinen verwenden. Mit benutzerdefinierten Vorhersageroutinen können Sie Datentransformationen als Python-Code bereitstellen. Im Hintergrund erstellt das Vertex AI SDK für Python einen benutzerdefinierten Container, den Sie lokal testen und in Vertex AI bereitstellen können. Ein Beispiel für die Verwendung von benutzerdefinierten Vorhersageroutinen finden Sie im Notebook Benutzerdefinierte Vorhersageroutinen mit Sklearn.

Batchvorhersagen abrufen

Sobald sich Ihr Modell in der Vertex AI Model Registry befindet, können Sie einen Batch-Vorhersagejob über die Google Cloud Console oder das Vertex AI SDK für Python senden. Sie geben den Speicherort der Quelldaten und den Speicherort in Cloud Storage oder BigQuery an, an dem die Ergebnisse gespeichert werden sollen. Sie können auch den Maschinentyp, auf dem dieser Job ausgeführt werden soll, sowie optionale Beschleuniger angeben. Da der Vorhersagedienst vollständig verwaltet ist, stellt Vertex AI automatisch Rechenressourcen bereit, führt die Vorhersageaufgabe aus und sorgt für das Löschen von Computing-Ressourcen, sobald der Vorhersagejob abgeschlossen ist. Der Status Ihrer Batch-Vorhersagejobs kann in der Google Cloud Console verfolgt werden

Status der Batchvorhersage

Onlinevorhersagen abrufen

Um Onlinevorhersagen zu erhalten, müssen Sie den zusätzlichen Schritt der Bereitstellung Ihres Modells auf einem Vertex AI-Endpunkt ausführen. Dadurch werden die Modellartefakte mit physischen Ressourcen für eine Bereitstellung mit niedriger Latenz verknüpft. Weiter wird eine DeployedModel-Ressource erstellt.

Onlinevorhersage

Sobald das Modell auf einem Endpunkt bereitgestellt wurde, akzeptiert es Anfragen wie jeder beliebige andere REST-Endpunkt. Das bedeutet, dass Sie es von einer Cloud Functions-Funktion, einem Chatbot, einer Web-App usw. aufrufen können. Beachten Sie, dass Sie mehrere Modelle auf einem einzelnen Endpunkt bereitstellen und den Traffic unter diesen aufteilen können. Diese Funktion ist beispielsweise nützlich, wenn Sie eine neue Modellversion bereitstellen, aber nicht sofort den gesamten Traffic an das neue Modell weiterleiten möchten. Sie können auch dasselbe Modell auf mehreren Endpunkten bereitstellen.

Ressourcen zum Abrufen von Vorhersagen aus benutzerdefinierten Modellen auf Vertex AI

Weitere Informationen zum Hosten und Bereitstellen von Modellen in Vertex AI finden Sie in folgenden Ressourcen oder im GitHub-Repository: Vertex AI-Beispiele.