Best Practices zum Implementieren von maschinellem Lernen in Google Cloud

Last reviewed 2024-09-09 UTC

In diesem Dokument werden Best Practices für die Implementierung von maschinellem Lernen (ML) in Google Cloud vorgestellt. Der Schwerpunkt liegt auf benutzerdefiniert trainierten Modellen, die auf Ihren Daten und Ihrem Code basieren. Er enthält Empfehlungen zum Entwickeln eines benutzerdefiniert trainierten Modells im gesamten ML-Workflow, einschließlich wichtiger Aktionen und Links für weitere Informationen.

Das folgende Diagramm bietet eine allgemeine Übersicht über die in diesem Dokument behandelten Phasen, einschließlich zugehöriger Produkte:

  1. ML-Entwicklung
  2. Datenvorbereitung
  3. ML-Training
  4. Modellbereitstellung und -einsatz
  5. ML-Workflow-Orchestrierung
  6. Organisation von Artefakten
  7. Modellmonitoring

ML-Workflow in Google Cloud

Das Dokument ist nicht als vollständige Liste von Empfehlungen zu betrachten. Es soll vielmehr Data Scientists und ML-Architekten dabei helfen, den Umfang der ML-bezogenen Aktivitäten in Google Cloud zu verstehen und entsprechend zu planen. Der Schwerpunkt dieses Dokuments liegt auf benutzerdefiniert trainierten Modellen. Alternativen zur ML-Entwicklung wie AutoML finden Sie unter Empfohlene Tools und Produkte verwenden.

Bevor Sie die Best Practices in diesem Dokument befolgen, lesen Sie den Artikel Einführung in Vertex AI.

In diesem Dokument wird Folgendes vorausgesetzt:

  • Sie verwenden hauptsächlich Google Cloud-Dienste. Hybrid- und lokale Ansätze werden in diesem Dokument nicht behandelt.
  • Sie möchten Trainingsdaten erfassen und in Google Cloud speichern.
  • Sie haben fortgeschrittene Kenntnisse in maschinellem Lernen, Big-Data-Tools und Datenvorverarbeitung und besitzen Grundkenntnisse in Cloud Storage, BigQuery und Google Cloud.

Wenn Sie noch nicht mit dem maschinellen Lernen vertraut sind, lesen Sie die Informationen im Crashkurs für maschinelles Lernen von Google.

In der folgenden Tabelle sind für jede Phase des ML-Workflows empfohlene Tools und Produkte aufgeführt, wie in diesem Dokument beschrieben:

Schritt im ML-Workflow Empfohlene Tools und Produkte
Einrichtung der ML-Umgebung
ML-Entwicklung
Datenvorbereitung
ML-Training
Modellbereitstellung und -einsatz
ML-Workflow-Orchestrierung
Organisation von Artefakten
Modellmonitoring
Verwaltete Open-Source-Plattformen

Google bietet AutoML, Prognose mit Vertex AI und BigQuery ML als vordefinierte alternative Trainingsroutinen zu benutzerdefinierten, von Vertex AI trainierten Modelllösungen. Die folgende Tabelle enthält Empfehlungen zur Verwendung dieser Optionen für Vertex AI.

ML-Umgebung Beschreibung Wählen Sie diese Umgebung aus, wenn folgende Voraussetzungen erfüllt sind:
BigQuery ML BigQuery ML vereint Daten, Infrastruktur und vordefinierte Modelltypen in einem einzigen System.
AutoML (im Zusammenhang mit Vertex AI) AutoML bietet Trainingsroutinen für häufige Probleme wie die Klassifizierung von Bildern und tabellarische Regression. Fast alle Aspekte des Trainings und der Bereitstellung eines Modells, wie die Auswahl einer Architektur, Hyperparameter-Abstimmung und Bereitstellung von Maschinen werden automatisch erledigt.
Benutzerdefiniert trainierte Vertex AI-Modelle Mit Vertex können Sie eigene benutzerdefinierte Trainingsroutinen ausführen und Modelle beliebiger Art in einer serverlosen Architektur bereitstellen. Vertex AI bietet zusätzliche Dienste wie die Hyperparameter-Abstimmung und das Monitoring, um die Entwicklung eines Modells zu erleichtern. Weitere Informationen finden Sie unter Benutzerdefinierte Trainingsmethode auswählen.
  • Ihr Problem stimmt nicht mit den Kriterien in dieser Tabelle für BigQuery ML oder AutoML überein.
  • Sie führen das Training bereits lokal oder auf einer anderen Cloud-Plattform aus und benötigen Konsistenz auf den verschiedenen Plattformen.

Einrichtung der ML-Umgebung

Wir empfehlen, die folgenden Best Practices zu beachten, wenn Sie Ihre ML-Umgebung einrichten:

Vertex AI Workbench-Notebooks für Experimente und Entwicklung nutzen

Unabhängig von den Tools, die Sie bereits verwenden, empfehlen wir, Vertex AI Workbench-Instanzen für Tests und die Entwicklung zu verwenden. Dazu gehören das Schreiben von Code, das Starten von Jobs, das Ausführen von Abfragen und die Statusprüfung. Mit Vertex AI Workbench-Instanzen können Sie auf einfache und reproduzierbare Weise auf alle Daten- und KI-Dienste von Google Cloud zugreifen.

Vertex AI Workbench-Instanzen bieten Ihnen außerdem sofort einen sicheren Satz von Software- und Zugriffsmustern. Es ist üblich, Google Cloud-Attribute wie Netzwerk und Identity and Access Management sowie Software (über einen Container) anzupassen, die mit einer Vertex AI Workbench-Instanz verknüpft sind. Weitere Informationen finden Sie unter Einführung in Vertex AI und Einführung in Vertex AI Workbench-Instanzen.

Alternativ können Sie Colab Enterprise verwenden. Das ist eine kollaborative, verwaltete Notebook-Umgebung, die die Sicherheits- und Compliance-Funktionen von Google Cloud nutzt.

Vertex AI Workbench-Instanz für jedes Teammitglied erstellen

Erstellen Sie eine Vertex AI Workbench-Instanz für jedes Mitglied Ihres Data-Science-Teams. Wenn ein Teammitglied an mehreren Projekten beteiligt ist, insbesondere Projekten mit unterschiedlichen Abhängigkeiten, empfehlen wir die Verwendung mehrerer Instanzen, wobei jede Instanz als virtueller Arbeitsbereich behandelt wird. Beachten Sie, dass Sie Vertex AI Workbench-Instanzen beenden können, wenn sie nicht verwendet werden.

ML-Ressourcen und -Artefakte basierend auf Ihrer Unternehmensrichtlinie speichern

Die einfachste Zugriffssteuerung besteht darin, sowohl Ihre Rohdaten als auch Ihre Vertex AI-Ressourcen und ‑Artefakte wie Datasets und Modelle im selben Google Cloud-Projekt zu speichern. Normalerweise hat Ihr Unternehmen Richtlinien, die den Zugriff steuern. In Fällen, in denen Ihre Ressourcen und Artefakte projektübergreifend gespeichert werden, können Sie Ihre unternehmensinterne projektübergreifende Zugriffssteuerung mit Identity and Access Management (IAM) konfigurieren.

Vertex AI SDK für Python verwenden

Verwenden Sie das Vertex AI SDK für Python, eine Python-Methode, mit der Sie Vertex AI für End-to-End-Workflows beim Erstellen von Modellen verwenden können. Diese funktionieren reibungslos mit Ihren bevorzugten ML-Frameworks wie PyTorch, TensorFlow, XGBoost und scikit-learn.

Alternativ können Sie die Google Cloud Console verwenden, die die Funktionalität von Vertex AI als Benutzeroberfläche über den Browser unterstützt.

ML-Entwicklung

Wir empfehlen die folgenden Best Practices für die ML-Entwicklung:

Die ML-Entwicklung dient zur Vorbereitung der Daten, für Tests und Bewertung des Modells. Beim Lösen eines ML-Problems müssen Sie in der Regel viele verschiedene Modelle erstellen und vergleichen, um herauszufinden, welches am besten funktioniert.

In der Regel trainieren Data Scientists Modelle mithilfe verschiedener Architekturen, Eingabedatensätze, Hyperparameter und Hardware. Data Scientists bewerten die resultierenden Modelle anhand von aggregierten Leistungsmesswerten wie Accuracy, Precision und Recall in Test-Datasets. Schließlich bewerten Data Scientists die Leistung der Modelle anhand bestimmter Teilmengen ihrer Daten, unterschiedlicher Modellversionen und verschiedener Modellarchitekturen.

Trainingsdaten vorbereiten

Die Daten, die zum Trainieren eines Modells verwendet werden, können aus einer beliebigen Anzahl von Systemen stammen, beispielsweise aus einem Onlinedienstsystem, aus Bildern von einem lokalen Gerät oder aus Dokumenten, die aus dem Web stammen.

Extrahieren Sie unabhängig vom Ursprung der Daten aus den Quellsystemen und konvertieren Sie sie in ein Format und einen Speicher (unabhängig von der Betriebsquelle), die für das ML-Training optimiert sind. Weitere Informationen zum Vorbereiten von Trainingsdaten für die Verwendung mit Vertex AI finden Sie unter Eigene Modelle trainieren und verwenden.

Strukturierte und semistrukturierte Daten in BigQuery speichern

Wenn Sie mit strukturierten oder halbstrukturierten Daten arbeiten, empfehlen wir, alle Daten in BigQuery zu speichern, wie in der BigQuery-Empfehlung für die Projektstruktur beschrieben. In den meisten Fällen können Sie Zwischendaten, die verarbeitet wurden, auch in BigQuery speichern. Für maximale Geschwindigkeit ist es besser, materialisierte Daten anstelle von Ansichten oder Unterabfragen für Trainingsdaten zu speichern.

Daten mit der BigQuery Storage API aus BigQuery lesen. Für das Artefakt-Tracking können Sie ein verwaltetes tabellarisches Dataset nutzen. In der folgenden Tabelle sind die Google Cloud-Tools aufgeführt, die die Verwendung der API vereinfachen:

Wenn Sie Folgendes verwenden: Dieses Google Cloud-Tool verwenden
TensorFlow für Keras tf.data.dataset-Reader für BigQuery
TFX BigQuery-Client
Dataflow Google BigQuery-E/A-Connector
Ein anderes Framework (z. B. PyTorch, XGBoost oder scilearn-kit) Modelle in BigQuery importieren

Bild-, Video-, Audio- und unstrukturierte Daten in Cloud Storage speichern

Speichern Sie diese Daten in großen Containerformaten in Cloud Storage. Dies gilt für fragmentierte TFRecord-Dateien, wenn Sie TensorFlow verwenden, oder für Avro-Dateien, wenn Sie ein anderes Framework verwenden.

Kombinieren Sie viele Bilder, Videos oder Audioclips zu großen Dateien, da dies den Lese- und Schreibdurchsatz in Cloud Storage verbessert. Die Datei sollte mindestens 100 MB groß sein und zwischen 100 und 10.000 Fragmentierungen enthalten.

Verwenden Sie Cloud Storage-Buckets und -Verzeichnisse, um die Shards zu gruppieren, um die Datenverwaltung zu aktivieren. Weitere Informationen finden Sie unter Produktübersicht von Cloud Storage.

Data Labeling Services mit der Google Cloud Console verwenden

Sie können Trainingsdaten über die Vertex AI-Seite in der Google Cloud Console erstellen und importieren. Mit den Prompt- und Optimierungsfunktionen von Gemini können Sie Textdaten mit benutzerdefinierter Klassifizierung, Entitätsextraktion und Sentimentanalyse verwalten. Im Google Cloud Console Marketplace finden Sie auch Lösungen für das Daten-Labeling, z. B. Labelbox und Snorkel Flow.

Vertex AI Feature Store mit strukturierten Daten verwenden

Mit dem Vertex AI Feature Store können Sie ML-Features an einem zentralen Ort erstellen, verwalten, freigeben und bereitstellen. Er ist für die Bereitstellung von Arbeitslasten mit geringer Latenz optimiert und ermöglicht das Speichern von Featuredaten in einer BigQuery-Tabelle oder -Ansicht. Wenn Sie Vertex AI Feature Store verwenden möchten, müssen Sie eine Onlinespeicher-Instanz erstellen und Ihre Featureansichten definieren. In BigQuery werden alle Featuredaten gespeichert, einschließlich Verlaufsdaten, damit Sie auch offline arbeiten können.

Vertex AI TensorBoard und Vertex AI Experiments für die Analyse von Experimenten verwenden

Verwenden Sie beim Entwickeln von Modellen Vertex AI TensorBoard, um bestimmte Tests zu visualisieren und zu vergleichen, z. B. anhand von Hyperparametern. Vertex AI TensorBoard ist ein sofort einsatzbereiter verwalteter Dienst mit einer kostengünstigen, sicheren Lösung, mit der Data Scientists und ML-Forscher einfach zusammenarbeiten können, da Tests nahtlos verfolgt, verglichen und freigegeben werden können. Vertex AI TensorBoard ermöglicht unter anderem das Verfolgen von Testmesswerten wie Verlust und Accuracy im Zeitverlauf, die Visualisierung des Modelldiagramms und das Projizieren von Einbettungen in einen niedrigdimensionalen Raum.

Verwenden Sie Vertex AI Experiments, um Vertex ML Metadata einzubinden und um Parameter, Messwerte sowie Dataset- und Modellartefakte zu protokollieren und zu verbinden.

Modell in einer Vertex AI Workbench-Instanz für kleine Datasets trainieren

Das Trainieren eines Modells in der Vertex AI Workbench-Instanz kann für kleine Datasets oder Teilmengen eines größeren Datasets ausreichen. Es kann nützlich sein, den Trainingsdienst für größere Datasets oder für verteiltes Training zu verwenden. Die Verwendung des Vertex AI-Trainingsdienstes wird auch für die Produktionsphase selbst mit kleinen Datasets empfohlen, wenn das Training nach einem Zeitplan oder als Reaktion auf den Eingang zusätzlicher Daten ausgeführt wird.

Vorhersagegenauigkeit Ihres Modells mit Hyperparameter-Abstimmung maximieren

Wenn Sie die Vorhersagegenauigkeit Ihres Modells maximieren möchten, verwenden Sie die Hyperparameter-Abstimmung. Dies ist die automatische Modelloptimierung des Vertex AI-Trainingsdiensts, die die Verarbeitungsinfrastruktur von Google Cloud und Vertex AI Vizier nutzt, um verschiedene Hyperparameter-Konfigurationen beim Trainieren Ihres Modells zu testen. Bei der Hyperparameter-Abstimmung ist es nicht mehr notwendig, Hyperparameter im Verlauf zahlreicher Trainingsläufe manuell anzupassen, um die optimalen Werte zu ermitteln.

Weitere Informationen zur Hyperparameter-Abstimmung finden Sie unter Übersicht zur Hyperparameter-Abstimmung und Hyperparameter-Abstimmungsjob erstellen.

Vertex AI Workbench-Instanz zum Verständnis Ihrer Modelle verwenden

Verwenden Sie eine Vertex AI Workbench-Instanz, um Modelle zu bewerten und zu verstehen. Zusätzlich zu integrierten gängigen Bibliotheken wie scikit-learn enthalten Vertex AI Workbench-Instanzen das What-If-Tool (WIT) und das Language Interpretability Tool (LIT). Mit WIT können Sie Ihre Modelle mithilfe von verschiedenen Techniken interaktiv auf Verzerrungen analysieren und mit LIT können Sie mithilfe von visuellen, interaktiven und erweiterbaren Tools das Verhalten der Natural Language Processing-Modelle verstehen.

Mit Feature-Attributionen Informationen zu Modellvorhersagen erhalten

Vertex Explainable AI ist ein wesentlicher Bestandteil des ML-Implementierungsprozesses und bietet Featureattributionen, um Informationen darüber zu erhalten, warum Modelle Vorhersagen generieren. Vertex Explainable AI gibt Aufschluss über die Bedeutung der einzelnen Features, die ein Modell als Eingabe für eine Vorhersage verwendet, und hilft Ihnen, das Modellverhalten besser zu verstehen und Vertrauen in Ihre Modelle zu schaffen.

Vertex Explainable AI unterstützt Modelle, die anhand von Tabellen- und Bilddaten benutzerdefiniert trainiert wurden.

Weitere Informationen zu Vertex Explainable AI finden Sie unter:

Datenvorbereitung

Wir empfehlen die folgenden Best Practices für die Datenvorbereitung:

Der empfohlene Ansatz für die Verarbeitung Ihrer Daten hängt vom Framework und den verwendeten Datentypen ab. Dieser Abschnitt bietet eine allgemeine Empfehlung für häufige Szenarien.

Mit BigQuery strukturierte und semistrukturierte Daten verarbeiten

Mit BigQuery unverarbeitete oder semistrukturierte Daten speichern. Wenn Sie Ihr Modell mit BigQuery ML erstellen, verwenden Sie die in BigQuery integrierten Transformationen zur Vorverarbeitung der Daten. Wenn Sie AutoML verwenden, nutzen Sie die in AutoML integrierten Transformationen zur Vorverarbeitung der Daten. Wenn Sie ein benutzerdefiniertes Modell erstellen, ist die Verwendung der BigQuery-Transformationen möglicherweise die kostengünstigste Methode.

Bei großen Datenmengen sollten Sie die Partitionierung in BigQuery verwenden. So lässt sich die Abfrageleistung und Kosteneffizienz verbessern.

Dataflow zum Verarbeiten von Daten nutzen

Bei großen Datenmengen sollten Sie Dataflow mit dem Programmiermodell Apache Beam verwenden. Sie können mit Dataflow die unstrukturierten Daten in binäre Datenformate wie TFRecord umwandeln. Dadurch lässt sich die Leistung der Datenaufnahme während des Trainingsvorgangs verbessern.

Dataproc für serverlose Spark-Datenverarbeitung nutzen

Wenn Ihre Organisation Investitionen in eine Apache Spark-Codebasis und entsprechende Kompetenzen hat, können Sie alternativ Dataproc verwenden. Verwenden Sie einmalige Python-Skripts für kleinere Datasets, die in den Speicher passen.

Wenn Sie Transformationen durchführen müssen, die in Cloud SQL nicht ausdrucksfähig sind oder zum Streamen dienen, können Sie eine Kombination aus Dataflow und der pandas-Bibliothek verwenden.

Verwaltete Datasets mit ML-Metadaten nutzen

Nachdem die Daten für ML vorverarbeitet wurden, ziehen Sie die Verwendung eines verwalteten Datasets in Vertex AI in Betracht. Mit verwalteten Datasets können Sie eine klare Verbindung zwischen Ihren Daten und benutzerdefiniert trainierten Modellen herstellen. Außerdem erhalten Sie aussagekräftige Statistiken und eine automatische oder manuelle Aufteilung in Trainings-, Test- und Validierungs-Datasets.

Verwaltete Datasets sind nicht erforderlich und auf ihre Verwendung kann verzichtet werden, wenn Sie mehr Kontrolle über die Aufteilung Ihrer Daten in Ihrem Trainingscode benötigen oder eine Lineage zwischen Ihren Daten und dem Modell für Ihre Anwendung nicht kritisch ist.

Weitere Informationen finden Sie unter Datasets und Verwaltetes Dataset in einer benutzerdefiniert trainierten Anwendung verwenden.

ML-Training

Wir empfehlen die folgenden Best Practices für die ML-Schulung:

Bei der ML-Modellierung bezieht sich operatives Training auf den Prozess, das Modelltraining wiederholbar zu machen, indem Wiederholungen erfasst und die Leistung verwaltet werden. Vertex AI Workbench-Instanzen sind zwar praktisch für die iterative Entwicklung in kleinen Datasets geeignet, wir empfehlen jedoch, den Code zu operationalisieren, damit er reproduzierbar ist und auf große Datasets skaliert werden kann. In diesem Abschnitt werden Tools und Best Practices für die Operationalisierung Ihrer Trainingsroutinen erläutert.

Code in einem verwalteten Dienst ausführen

Wir empfehlen, Code entweder in Vertex AI Training oder mit Vertex AI Pipelines zu orchestrieren. Optional können Sie Ihren Code direkt in Deep Learning VM-Images, Deep Learning-Containern oder in der Compute Engine ausführen. Wir raten jedoch davon ab, wenn Sie Funktionen von Vertex AI wie automatische Skalierung und Burst-Funktionen verwenden.

Jobausführung mit Trainingspipelines operationalisieren

Sie können Trainingspipelines erstellen, um die Ausführung von Trainingsjobs in Vertex AI zu operationalisieren. Eine Trainingspipeline unterscheidet sich von einer allgemeinen ML-Pipeline und kapselt Trainingsjobs. Weitere Informationen zu Trainingspipelines finden Sie unter Trainingspipelines erstellen und REST-Ressource: projects.locations.trainingPipelines.

Mit Trainingsprüfpunkten den aktuellen Status von Tests speichern

Der ML-Workflow in diesem Dokument setzt voraus, dass Sie nicht interaktiv trainieren. Wenn Ihr Modell fehlschlägt und nicht Prüfpunktausführungen enthält, wird der Trainingsjob oder die Pipeline beendet und die Daten gehen verloren, weil das Modell nicht im Speicher ist. Um dieses Szenario zu vermeiden, sollten Sie immer Trainingsprüfpunkte verwenden, damit der Status nicht verloren geht.

Es wird empfohlen, Trainingsprüfpunkte in Cloud Storage zu speichern. Erstellen Sie für jeden Test oder Trainingslauf einen anderen Ordner.

Weitere Informationen zu Prüfpunkten finden Sie unter Trainingsprüfpunkte für TensorFlow Core, Allgemeine Prüfpunkte in PyTorch speichern und laden und Designmuster für maschinelles Lernen.

Modellartefakte zur Bereitstellung in Cloud Storage vorbereiten

Für benutzerdefinierte Modelle oder benutzerdefinierte Container speichern Sie Ihre Modellartefakte in einem Cloud Storage-Bucket, wobei die Region des Buckets dem von Ihnen für die Produktion verwendeten regionalen Endpunkt entspricht. Weitere Informationen finden Sie unter Bucket-Regionen.

Cloud Storage unterstützt die Objektversionierung. Aktivieren Sie die Objektversionsverwaltung in Cloud Storage, um versehentliche Datenverluste oder ‑beschädigungen zu vermeiden.

Speichern Sie den Cloud Storage-Bucket im selben Google Cloud-Projekt. Wenn sich Ihr Cloud Storage-Bucket in einem anderen Google Cloud-Projekt befindet, müssen Sie Vertex AI Zugriff gewähren, um Ihre Modellartefakte zu lesen.

Wenn Sie einen vordefinierten Vertex AI-Container verwenden, achten Sie darauf, dass die Modellartefakte Dateinamen haben, die exakt mit folgenden Beispielen übereinstimmen:

  • TensorFlow SavedModel: saved_model.pb
  • Scikit-learn: model.joblib oder model.pkl
  • XGBoost: model.bst
  • PyTorch: model.pth

Informationen zum Speichern Ihres Modells in Form eines oder mehrerer Modellartefakte finden Sie unter Modellartefakte zur Vorhersage exportieren.

Neue Featurewerte regelmäßig berechnen

Häufig verwendet ein Modell eine Teilmenge von Features aus Vertex AI Feature Store. Die Features in Vertex AI Feature Store sind für die Onlinebereitstellung einsatzbereit. Für neue Features, die von Data Scientists durch das Beschaffen von Daten aus dem Data Lake erstellt werden, sollten Sie die entsprechenden Datenverarbeitungs- und Feature Engineering-Jobs (oder idealerweise Dataflow) planen, um die neuen Featurewerte in den erforderlichen Abständen abhängig von den Anforderungen an die Aktualität der Features regelmäßig zu berechnen. Außerdem sollten sie in den Vertex AI Feature Store zur Online- oder Batchbereitstellung aufgenommen werden.

Modellbereitstellung und -einsatz

Wir empfehlen die folgenden Best Practices für die Bereitstellung und Bereitstellung von Modellen:

Modellbereitstellung und -bereitstellung bezieht sich auf das Einfügen eines Modells in die Produktion. Die Ausgabe des Trainingsjobs ist eines oder mehrere der Modellartefakte, die in Cloud Storage gespeichert sind. Sie können sie in die Modellregistrierung hochladen, um die Datei für die Vorhersagebereitstellung zu verwenden. Es gibt zwei Arten der Vorhersagebereitstellung: Die Batchvorhersage wird zur regelmäßigen Punktzahlbewertung von Daten verwendet und die Onlinevorhersage wird für die Echtzeit-Bewertung von Daten für Liveanwendungen verwendet. Mit beiden Ansätzen können Sie Vorhersagen von trainierten Modellen erhalten. Dazu übergeben Sie Eingabedaten an ein in der Cloud gehostetes ML-Modell und erhalten Inferenzen für jede Dateninstanz. Weitere Informationen finden Sie unter Batchvorhersagen abrufen und Onlinevorhersagen aus benutzerdefinierten Modellen abrufen.

Verwenden Sie private Vertex AI-Endpunkte, um die Latenz für Peer-to-Peer-Anfragen zwischen Client und Modellserver zu verringern. Private Endpunkte sind besonders nützlich, wenn sich Ihre Anwendung, die die Vorhersageanfragen stellt, und die beritstellende Binärdatei im selben lokalen Netzwerk befinden. Mithilfe der Virtual Private Cloud können Sie den Overhead des Internet-Routings vermeiden und eine Peer-to-Peer-Verbindung herstellen.

Anzahl und Typen der erforderlichen Maschinen angeben

Wenn Sie das Modell für die Vorhersage bereitstellen möchten, wählen Sie die für Ihr Modell geeignete Hardware aus, z. B. verschiedene VM-Typen (Central Processing Unit, VM) oder GPU-Typen (Graphics Processing Unit). Weitere Informationen finden Sie unter Maschinentypen oder Skalierungsstufen angeben.

Eingaben an das Modell planen

Neben der Bereitstellung des Modells müssen Sie auch festlegen, wie Sie Eingaben an das Modell übergeben möchten. Wenn Sie die Batchvorhersage verwenden, können Sie Daten aus dem Data Lake oder der Vertex AI Feature Store Batch Serving API abrufen. Wenn Sie die Onlinevorhersage verwenden, können Sie Eingabeinstanzen an den Dienst senden und diese erhalten die Vorhersagen in der Antwort. Weitere Informationen finden Sie unter Details zum Antworttext.

Wenn Sie Ihr Modell für die Onlinevorhersage bereitstellen, benötigen Sie eine niedrige Latenz, um die Eingaben oder Funktionen bereitzustellen, die an den Endpunkt des Modells übergeben werden müssen. Dazu können Sie entweder einen der vielen Datenbankdienste in Google Cloud verwenden oder die Online Serving API von Vertex AI Feature Store verwenden. Die Clients, die den Endpunkt für die Onlinevorhersage aufrufen, können zuerst die Featurebereitstellungslösung aufrufen, um die Featureeingaben abzurufen, und dann den Vorhersageendpunkt mit diesen Eingaben aufrufen. Sie können mehrere Modelle für denselben Endpunkt bereitstellen, um das Modell beispielsweise schrittweise zu ersetzen. Alternativ können Sie Modelle auch an mehreren Endpunkten bereitstellen, z. B. in der Test- und Produktionsumgebung, indem Sie Ressourcen für mehrere Bereitstellungen freigeben.

Mit der Streamingaufnahme können Sie Echtzeitwerte für Featurewerte aktualisieren. Diese Methode ist nützlich, wenn die neuesten verfügbaren Daten für die Onlinebereitstellung eine Priorität haben. Sie können beispielsweise Streaming-Ereignisdaten aufnehmen und innerhalb weniger Sekunden stellt Vertex AI Feature Store diese Daten für Online-Bereitstellungsszenarien zur Verfügung.

Mit benutzerdefinierten Vorhersageroutinen können Sie außerdem die Verarbeitung und das Format von Eingabe (Anfrage) und Ausgabe (Antwort) an und von Ihrem Modellserver anpassen.

Automatische Skalierung aktivieren

Wenn Sie den Onlinevorhersagedienst verwenden, sollten Sie in den meisten Fällen die automatische Skalierung durch Festlegen von Mindest- und Höchstwerten aktivieren. Weitere Informationen finden Sie unter Vorhersagen für ein benutzerdefiniert trainiertes Modell abrufen. Zur Gewährleistung eines Service Level Agreements (SLA) für hohe Verfügbarkeit legen Sie die automatische Skalierung mit mindestens zwei Knoten fest.

Weitere Informationen zu Skalierungsoptionen finden Sie unter ML-Vorhersagen skalieren.

ML-Workflow-Orchestrierung

Wir empfehlen die folgenden Best Practices für die ML-Workflow-Orchestrierung:

Vertex AI bietet eine ML-Workflow-Orchestrierung zum Automatisieren des ML-Workflows mit Vertex AI Pipelines, einem vollständig verwalteten Dienst, mit dem Sie Ihre Modelle so oft wie nötig neu trainieren können. Wenn Sie Ihre Modelle neu trainieren, um Änderungen einzubinden und die Leistung im Zeitverlauf beizubehalten, berücksichtigen Sie bei der Auswahl der optimalen Häufigkeit das Ausmaß der Änderungen auf Ihre Daten.

ML-Orchestrierungsworkflows funktionieren am besten für Kunden, die ihr Modell bereits entworfen, erstellt und in die Produktion übertragen haben und nun herausfinden möchten, was im ML-Modell funktioniert und was nicht. Der für Tests verwendete Code ist wahrscheinlich für den Rest des ML-Workflows mit einigen Änderungen nützlich. Wenn Sie mit automatisierten ML-Workflows arbeiten möchten, müssen Sie mit Python vertraut sein, die grundlegende Infrastruktur wie Container verstehen und über Kenntnisse in ML und Data Science verfügen.

Vertex-AI Pipelines zur Orchestrierung des ML-Workflows nutzen

Sie können jeden Datenprozess, jedes Training, jede Bewertung, jeden Test und jede Bereitstellung manuell starten. Wir empfehlen jedoch, Vertex AI Pipelines zur Orchestrierung des Ablaufs zu verwenden. Ausführliche Informationen finden Sie unter MLOps-Stufe 1: Automatisierung der ML-Pipeline.

Vertex AI Pipelines unterstützt das Ausführen von DAGs, die mit Kubeflow, TensorFlow Extended (TFX) und Airflow generiert wurden.

Kubeflow Pipelines für eine flexible Pipelineerstellung verwenden

Für die meisten Nutzer, die verwaltete Pipelines erstellen möchten, wird das Kubeflow Pipelines SDK empfohlen. Kubeflow Pipelines ist flexibel und ermöglicht es Ihnen, Pipelines mit Code zu erstellen. Außerdem bietet es Google Cloud-Pipeline-Komponenten, mit denen Sie Vertex AI-Funktionen wie AutoML in Ihre Pipeline einbinden können. Weitere Informationen zu Kubeflow Pipelines finden Sie unter Kubeflow Pipelines und Vertex AI Pipelines.

Ray in Vertex AI für verteilte ML-Workflows verwenden

Ray bietet ein allgemeines und einheitliches verteiltes Framework, mit dem sich Machine-Learning-Workflows über ein skalierbares und verteiltes Open-Source-Computing-Framework in Python skalieren lassen. Dieses Framework kann helfen, die Herausforderungen zu bewältigen, die sich aus der Verwendung einer Vielzahl von verteilten Frameworks in Ihrem ML-System ergeben, z. B. die Notwendigkeit, mit mehreren Modi für Aufgabenparallelität, Planung und Ressourcenverwaltung zu arbeiten. Sie können Ray in Vertex AI verwenden, um Anwendungen in Vertex AI zu entwickeln.

Organisation von Artefakten

Wir empfehlen, die folgenden Best Practices für die Organisation Ihrer Artefakte zu beachten:

Artefakte sind Ausgaben, die aus jedem Schritt im ML-Workflow entstehen. Es empfiehlt sich, sie standardisiert zu organisieren.

ML-Modellartefakte organisieren

Speichern Sie Ihre Artefakte an den folgenden Speicherorten:

Storage-Speicherort Artefakte
Versionskontroll-Repository
  • Vertex AI Workbench-Instanzen
  • Pipeline-Quellcode
  • Vorverarbeitungsfunktionen
  • Modellquellcode
  • Pakete für das Modelltraining
  • Auslieferungsfunktionen
Tests und ML-Metadaten
  • Tests
  • Parameter
  • Hyperparameter
  • Metaparameter
  • Messwerte
  • Dataset-Artefakte
  • Modellartefakte
  • Pipeline-Metadaten
Model Registry
  • Trainierte Modelle
Artifact Registry
  • Pipeline-Container
  • Benutzerdefinierte Trainingsumgebungen
  • Benutzerdefinierte Vorhersageumgebungen
Vertex AI-Vorhersage
  • Bereitgestellte Modelle

Quellverwaltungs-Repository für Pipelinedefinitionen und Trainingscode verwenden

Mit der Quellsteuerung können Sie Ihre ML-Pipelines und die benutzerdefinierten Komponenten, die Sie für diese Pipelines erstellen, einer Versionskontrolle unterziehen. Verwenden Sie Artifact Registry, um Ihre Docker-Container-Images zu speichern, zu verwalten und zu sichern, ohne sie öffentlich sichtbar zu machen.

Modellmonitoring

Sobald Sie Ihr Modell in der Produktion bereitgestellt haben, müssen Sie die Leistung überwachen, um zu prüfen, ob das Modell wie erwartet funktioniert. Vertex AI bietet zwei Möglichkeiten zur Überwachung von ML-Modellen:

  • Verzerrungserkennung: Bei diesem Ansatz wird nach dem Grad der Verzerrung zwischen den Modelltrainings- und den Produktionsdaten gesucht.
  • Abweichungserkennung: Bei dieser Art des Monitorings suchen Sie nach einer Abweichung in Ihren Produktionsdaten. Eine Abweichung tritt auf, wenn sich die statistischen Attribute der Eingaben und des Ziels, die das Modell vorherzusagen versucht, im Laufe der Zeit unvorhergesehen ändern. Dies kann zu Problemen führen, da die Vorhersagen mit der Zeit an Genauigkeit verlieren.

Die Modellüberwachung funktioniert für strukturierte Daten wie numerische und kategoriale Merkmale, nicht jedoch für unstrukturierte Daten wie Bilder. Weitere Informationen finden Sie unter Modelle für Funktionsabweichungen oder Drift überwachen.

Erkennung von Abweichungen und Drifts verwenden

Verwenden Sie so oft wie möglich die Verzerrungserkennung, denn wenn sich die Produktionsdaten stark von den Trainingsdaten unterscheiden, bedeutet dies, dass Ihr Modell bei der Produktion nicht den Erwartungen entspricht. Richten Sie für die Verzerrungserkennung den Job zur Modellüberwachung ein. Verweisen Sie dazu auf die Trainingsdaten, mit denen Sie das Modell trainieren.

Wenn Sie keinen Zugriff auf die Trainingsdaten haben, aktivieren Sie die Abweichungserkennung, um zu wissen, wann sich die Eingaben im Laufe der Zeit ändern.

Verwenden Sie die Drifterkennung, um zu überwachen, ob Ihre Produktionsdaten im Laufe der Zeit abweichen. Aktivieren Sie für die Drifterkennung die Features, die Sie überwachen möchten, sowie die entsprechenden Schwellenwerte, die eine Benachrichtigung auslösen sollen.

Schwellenwerte für Benachrichtigungen anpassen

Passen Sie die Schwellenwerte an, die für Benachrichtigungen verwendet werden, damit Sie wissen, wenn es in Ihren Daten eine Verzerrung oder Drift gibt. Schwellenwerte für Benachrichtigungen werden durch den Anwendungsfall, das Domainwissen des Nutzers und die ersten Messwerte zur Modellüberwachung bestimmt. Informationen zum Erstellen von Dashboards oder zum Konfigurieren von Benachrichtigungen anhand der Messwerte mithilfe von Monitoring finden Sie unter Cloud Monitoring-Messwerte.

Feature-Attributionen zur Erkennung von Datenabweichungen verwenden

Sie können Feature-Attributionen in Vertex Explainable AI verwenden, um Datenabweichungen oder -verzerrungen als frühen Hinweis auf eine mögliche Verschlechterung der Modellleistung zu erkennen. Wenn Ihr Modell z. B. ursprünglich auf fünf Features angewiesen war, um Vorhersagen in Ihren Trainings- und Testdaten zu treffen, aber es bei der Übernahme in die Produktion ganz andere Features nutzte, würden Feature-Attributionen dabei helfen, eine Verschlechterung der Modellleistung zu erkennen.

Dies ist besonders für komplexe Featuretypen wie Einbettungen und Zeitreihen nützlich, die mit herkömmlichen Methoden zur Analyse von Abweichungen und Verzerrungen schwer zu vergleichen sind. Bei Vertex Explainable AI können Feature-Attributionen auf eine Verschlechterung der Modellleistung hinweisen.

BigQuery für das Modellmonitoring verwenden

Die BigQuery ML-Modellüberwachung umfasst eine Reihe von Tools und Funktionen, mit denen Sie die Leistung Ihrer ML-Modelle im Zeitverlauf im Blick behalten und bewerten können. Das Modellmonitoring ist entscheidend, um die Modellgenauigkeit und -zuverlässigkeit in realen Anwendungen aufrechtzuerhalten. Wir empfehlen, die folgenden Probleme im Blick zu behalten:

  • Datenabweichung: Dieses Problem tritt auf, wenn sich die Verteilung der Featurewerte zwischen Trainings- und Bereitstellungsdaten unterscheidet. Mithilfe von Trainingsstatistiken, die während des Modelltrainings gespeichert werden, ist die Erkennung von Abweichungen möglich, ohne dass die ursprünglichen Daten erforderlich sind.
  • Datendrift: Reale Daten ändern sich oft im Laufe der Zeit. Mit dem Modellmonitoring können Sie feststellen, wann sich die Eingabedaten, die Ihr Modell in der Produktion sieht (Bereitstellungsdaten), erheblich von den Daten unterscheiden, mit denen es trainiert wurde (Trainingsdaten). Diese Abweichung kann zu einer Leistungsminderung führen.
  • Erweitertes Monitoring von Datenabweichungen oder -drifts: Wenn Sie detaillierte Statistiken zu Abweichungen oder Drifts benötigen, können Sie erweiterte Datenabweichungen oder -drifts überwachen.

Nächste Schritte