Best Practices für die Implementierung von maschinellem Lernen in Google Cloud

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. Wir bieten Ihnen 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, darunter:

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

Workflow für maschinelles Lernen 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:

ML-Workflow-Schritt Empfohlene Tools und Produkte
Einrichtung der ML-Umgebung
ML-Entwicklung
Datenverarbeitung
Operationalisiertes Training
Modellbereitstellung und -einsatz
ML-Workflow-Orchestrierung
Organisation von Artefakten
Modellmonitoring

Google bietet AutoML und BigQuery ML als vordefinierte Alternativen für Trainingsroutinen mit benutzerdefinierten Modellen von Vertex AI. Die folgende Tabelle enthält Empfehlungen zur Verwendung dieser Optionen oder von Vertex AI.

ML-Umgebung Beschreibung Wählen Sie diese Umgebung aus, wenn folgende Voraussetzungen erfüllt sind:
BigQuery ML BigQuery ML fasst Daten, Infrastruktur und vordefinierte Modelltypen in einem zentralen System zusammen.
  • Alle Ihre Daten sind in BigQuery enthalten. BigQuery ML erfordert tabellarische Daten.
  • Sie sind mit SQL vertraut.
  • Die in BigQuery ML verfügbaren Modelle eignen sich für das Problem, das Sie lösen möchten.
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 Hyperparameter-Abstimmung und 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.
  • (Optional) Sie verwenden TensorFlow Extended. Die Schritte des erweiterten Trainers und Pusher von TensorFlow unterstützen beide das Ausführen des Schritts auf Vertex AI (Trainieren, Bereitstellen).

Einrichtung der Umgebung für maschinelles Lernen

Notebooks zum Testen und Entwickeln verwenden

Unabhängig von den Tools, die Sie bereits verwenden, empfehlen wir die Verwendung von Notebooks für Tests und Entwicklung. Dazu gehören das Schreiben von Code, Starten von Jobs, Ausführen von Abfragen und Statusprüfung. Mit Notebooks können Sie alle Daten und KI-Dienste (künstliche Intelligenz) von Google Cloud auf einfache und reproduzierbare Weise aufrufen.

Notebooks bieten Ihnen außerdem einen sicheren Satz von Software- und Zugriffsmustern. Es wird üblich, Google Cloud-Attribute wie Netzwerk und Cloud Identity and Access Management sowie Software (über einen Container) anzupassen, die mit einem Notebook verknüpft ist. Weitere Informationen finden Sie unter Tools zur Interaktion mit Vertex AI und Verwendung von Notebooks mit Vertex AI.

Weitere Informationen zur Notebooks-Verwaltung finden Sie unter Testen mit Notebooks.

Notebooks-Instanz für jedes Teammitglied erstellen

Erstellen Sie eine neue Notebook-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 Notebook-Instanzen, wobei jede Notebook-Instanz als virtueller Arbeitsbereich behandelt wird. Sie können Notebooks-Instanzen beenden, wenn sie nicht verwendet werden.

Personenidentifizierbare Informationen in Notebooks sichern

Informationen zum Schutz Ihrer Notebooks finden Sie im Leitfaden Notebooks Security Blueprint: Protecting PII Data. Er enthält strikte Anleitungen zu Data Governance und Sicherheitsrichtlinien zum Schutz Ihrer Notebooks, die personenidentifizierbare Informationen enthalten. Weitere Informationen finden Sie auch im zugehörigen bereitstellbaren Blueprint in GitHub.

Vorbereitete Daten und Modell im selben Projekt speichern

Sie können vorbereitete Daten in Ihrem Google Cloud-Projekt speichern, in dem Ihr Modell gespeichert ist, sodass Ihr KI-Projekt auf alle für die Modellierung erforderlichen Datasets zugreifen kann. Dadurch werden Lücken in der Reproduzierbarkeit verhindert. Es kann jedoch vorkommen, dass Teile Ihrer Organisation ihre Daten in verschiedenen Projekten speichern, und es kann erforderlich sein, dass ML-Modelle auf Rohdaten aus verschiedenen Projekten angewiesen sind.

Leistung und Kosten optimieren

Das Optimieren der Leistung und das Senken der Kosten für ML-Arbeitslasten ist ein komplexes Thema, das in diesem Dokument nicht behandelt wird. Weitere Informationen finden Sie unter Best Practices zur Leistung und Kostenoptimierung für maschinelles Lernen.

Vertex SDK for Python verwenden

Verwenden Sie Vertex SDK for 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 und scikit-learn.

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.

Forscher, die diesen Prozess erfolgreich nutzen, neigen zu einem systematischen Ansatz, stellen eindeutige Hypothesen auf, nehmen Änderungen nacheinander vor und erfassen robuste Messwerte zu den Ergebnissen.

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 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 Daten vorbereiten.

Tabellarische Daten in BigQuery speichern

Wenn Sie mit tabellarischen Daten arbeiten, empfehlen wir, alle Daten in BigQuery zu speichern, indem Sie die BigQuery-Empfehlungen für die Projektstruktur befolgen. 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. In der folgenden Tabelle sind die Google Cloud-Tools aufgeführt, die die Verwendung der API vereinfachen:

Wenn Sie Folgendes verwenden... Verwenden Sie dieses Google Cloud-Tool
TensorFlow oder Keras tf.data.dataset-Reader für BigQuery
TFX BigQuery-Client
Dataflow BigQuery-E/A-Connector
Sonstige Frameworks BigQuery Python-Clientbibliothek

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 Was ist Cloud Storage?

Vertex Data Labeling für unstrukturierte Daten verwenden

Möglicherweise benötigen Sie Menschen, um Ihren Daten Labels hinzuzufügen, insbesondere wenn es um unstrukturierte Daten geht. Verwenden Sie Vertex Data Labeling für diese Arbeit. Sie können eigene Labelersteller verwenden und die Google Cloud-Software zur Verwaltung ihrer Arbeit verwenden oder die internen Labelersteller von Google für die Aufgabe verwenden. Weitere Informationen finden Sie unter Daten-Labeling anfordern.

Vertex Feature Store mit strukturierten Daten verwenden

Wenn Sie ein Modell mit strukturierten Daten trainieren, gehen Sie unabhängig davon, wo Sie das Modell trainieren, folgendermaßen vor:

  1. Suchen Sie in Vertex Feature Store nach bestehenden Features, die Ihre Anforderungen erfüllen.

    1. Öffnen Sie Vertex Feature Store und suchen Sie nach einem bestehenden Feature, das Ihrem Anwendungsfall entspricht oder das Signal abdeckt, das Sie an das Modell übergeben möchten.

    2. Wenn Sie Features aus Vertex Feature Store verwenden möchten, rufen Sie diese Features für Ihre Trainingslabels mit der Batch-Bereitstellungsfunktion von Vertex Feature Store ab.

  2. Erstellen Sie ein neues Feature. Wenn Vertex Feature Store nicht die benötigten Features hat, erstellen Sie ein neues Feature mit Daten aus Ihrem Data Lake.

    1. Rufen Sie Rohdaten aus Ihrem Data Lake ab und schreiben Sie Ihre Skripts, um die notwendige Featureverarbeitung und -entwicklung durchzuführen.

    2. Führen Sie die aus Vertex Feature Store abgerufenen Featurewerte und die aus dem Data Lake erstellten neuen Featurewerte zusammen. Durch das Zusammenführen dieser Featurewerte wird das Trainings-Dataset erzeugt.

    3. Richten Sie einen regelmäßigen Job ein, um die aktualisierten Werte des neuen Features zu berechnen. Wenn Sie ein Feature als nützlich erachten und in die Produktion nehmen möchten, richten Sie einen regelmäßig geplanten Job mit der erforderlichen Häufigkeit ein, um die aktualisierten Werte dieses Features zu berechnen und in Vertex Feature Store aufzunehmen. Wenn Sie das neue Feature in Vertex Feature Store aufnehmen, können Sie die Features (für Anwendungsfälle der Onlinevorhersage) automatisch online bereitstellen. Außerdem können Sie das Feature für andere Mitglieder in der Organisation freigeben, damit diese es für ihre eigenen ML-Modelle nutzen können.

Weitere Informationen finden Sie unter Vertex Feature Store.

Speichern von Daten im Blockspeicher vermeiden

Vermeiden Sie die Speicherung von Daten in Blockspeicher, wie Netzwerkdateisysteme oder VM-Festplatten. Diese Tools sind schwieriger zu verwalten als Cloud Storage oder BigQuery und führen oft zu Herausforderungen bei der Optimierung der Leistung. Ebenso sollten Sie Daten nicht direkt aus Datenbanken wie Cloud SQL auslesen. Speichern Sie stattdessen Daten in BigQuery und Cloud Storage. Weitere Informationen finden Sie in der Cloud Storage-Dokumentation und in der Einführung in das Laden von Daten für BigQuery.

Vertex TensorBoard zum Visualisieren von Tests verwenden

Verwenden Sie beim Entwickeln von Modellen Vertex TensorBoard, um bestimmte Tests zu suchen und zu vergleichen, z. B. anhand von Hyperparametern. Vertex TensorBoard ist ein sofort einsatzbereiter Vertex TensorBoard-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 TensorBoard ermöglicht das Verfolgen von Testmesswerten wie Verlust und Accuracy im Zeitverlauf, die Visualisierung des Modelldiagramms, das Projizieren von Einbettungen in einen niedrigdimensionalen Raum und vieles mehr.

Modell in Notebooks für kleine Datasets trainieren

Das Trainieren eines Modells in der Notebooks-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-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 von Vertex Training, die die Verarbeitungsinfrastruktur von Google Cloud 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 in der Übersicht zur Hyperparameter-Abstimmung und unter Hyperparameter-Abstimmung verwenden.

Mit Notebooks Modelle bewerten und verstehen

Verwenden Sie Notebooks, um Modelle zu bewerten und zu verstehen. Zusätzlich zu integrierten gängigen Bibliotheken, wie z. B. scikit-learn, bietet Notebooks What-If-Tool (WIT) und 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:

Datenverarbeitung

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.

Allgemeine Empfehlungen zu Data Engineering und Feature Engineering für ML finden Sie unter Datenvorverarbeitung für maschinelles Lernen: Optionen und Empfehlungen und Datenvorverarbeitung für maschinelles Lernen mit TensorFlow Transform.

TensorFlow Extended in der TensorFlow-Umgebung verwenden

Wenn Sie TensorFlow für die Modellentwicklung verwenden, bereiten Sie Ihre Daten mit TensorFlow Extended für das Training vor. TensorFlow Transform ist die TensorFlow-Komponente, die das Definieren und Ausführen einer Vorverarbeitungsfunktion zum Transformieren Ihrer Daten ermöglicht.

Mit BigQuery tabellarische Daten verarbeiten

Wenn Sie tabellarische Daten verwenden, verwenden Sie BigQuery für Datenverarbeitungs- und Transformationsschritte. Wenn Sie mit ML arbeiten, verwenden Sie BigQuery ML in BigQuery. Führen Sie die Transformation als normale BigQuery-Abfrage durch. Speichern Sie dann die Ergebnisse in einer permanenten Tabelle. Sie können die verarbeiteten Daten mithilfe von Ansichten, insbesondere materialisierten Ansichten, enthalten. Die Leistung ist jedoch geringer als bei einer vollständig materialisierten Tabelle. Weitere Informationen zu BigQuery ML finden Sie unter Was ist BigQuery ML?

Mit Dataflow unstrukturierte Daten verarbeiten

Bei großen Mengen unstrukturierter Daten 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.

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.

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.

Operationalisiertes Training

Bei operativem Training wird das Modelltraining wiederholbar, die Wiederholung von Wiederholungen wird überwacht und die Leistung verwaltet. Notebooks 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 Training oder in Vertex Pipelines auszuführen.

Optional können Sie Ihren Code direkt in einem Deep Learning Virtual Machine-Container oder in Compute Engine ausführen. Dieser Ansatz wird jedoch nicht empfohlen, da die von Vertex AI verwalteten Dienste automatische und kostengünstigere Burst-Funktionen bieten.

Jobausführung mit Trainingspipelines operationalisieren

Erstellen Sie Trainingspipelines, um die Ausführung von Trainingsjobs in Vertex AI zu operationalisieren. Eine Trainingspipeline, die sich von einer allgemeinen ML-Pipeline unterscheidet, kapselt Trainingsjobs mit zusätzlichen Schritten. 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.

Produktionsartefakte 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 verwendeten regionalen Endpunkt entspricht. Weitere Informationen finden Sie unter Bucket-Regionen.

Speichern Sie die Vertex AI-Bucket-Standorte und 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 Container verwenden, achten Sie darauf, dass die Modellartefakte Dateinamen haben, die exakt mit den folgenden Beispielen übereinstimmen:

  • TensorFlow SavedModel: saved_model.pb

  • Scikit-learn: model.joblib oder model.pkl

  • XGBoost: model.bst

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 Feature Store. Die Features in Vertex 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 auch Vertex Pipelines) 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 Vertex Feature Store zur Online- oder Batchbereitstellung aufgenommen werden.

Modellbereitstellung und -einsatz

Modellbereitstellung und -bereitstellung bezieht sich auf das Einfügen eines Modells in die Produktion. Die Ausgabe des Trainingsjobs ist eine in Cloud Storage gespeicherte Modelldatei, die Sie in Vertex AI hochladen können, um für die Vorhersagebereitstellung verwendet zu werden. 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.

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 Feature Store-Batchbereitstellungs-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 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.

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 Modell mit der Google Cloud Console bereitstellen. 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 Vorhersagen für maschinelles Lernen skalieren.

ML-Workflow-Orchestrierung

Vertex AI bietet eine ML-Workflow-Orchestrierung zum Automatisieren des ML-Workflows mit Vertex 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.

ML-Pipelines zur Orchestrierung des ML-Workflows verwenden

Sie können jeden Datenprozess, jedes Training und jeden Bereitstellungsschritt manuell starten oder alle Vorgänge in einem einzigen großen Schritt zusammenfassen. Dennoch empfehlen wir die Verwendung von ML-Pipelines zur Orchestrierung des Ablaufs. Ausführliche Informationen finden Sie unter MLOps-Stufe 1: Automatisierung der ML-Pipeline.

Wenn Sie TensorFlow verwenden, definieren Sie mit TensorFlow Extended Ihre Pipeline und die Vorgänge für jeden Schritt und führen Sie sie dann auf dem serverlosen Pipelinesystem von Vertex AI aus. Denken Sie daran, die Google Cloud-Executors so festzulegen, dass Sie jeden Schritt der Ausführung eines bestimmten Google-Dienstes erhalten.

Verwenden Sie für alle anderen Frameworks die Kubeflow Pipelines mit Vertex Pipelines. Vertex AI zum Starten und Interagieren mit der Plattform verwenden Beachten Sie, dass Pipelineschritte Aufrufe eines Google Cloud-Dienstes sein können.

Dies hat zwei Auswirkungen:

  • Sie können Pipelines unabhängig von der gewählten ML-Umgebung verwenden.
  • Sie benötigen eine kleine Anzahl von Knoten mit geringer CPU-Leistung und RAM, da die meisten Aufgaben innerhalb eines verwalteten Dienstes ausgeführt werden.

Weitere Informationen zu Pipelines finden Sie unter Vertex Pipelines.

Sie können andere Orchestratoren wie Cloud Composer in Betracht ziehen (siehe Airflow). Pipelines ist jedoch die bessere Wahl, da es integrierte Unterstützung für häufige ML-Vorgänge bietet sowie ML-spezifische Metadaten und Lineage verfolgt. Das ist wichtig, um zu prüfen, ob Ihre Pipelines in der Produktion ordnungsgemäß ausgeführt werden.

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, sodass Sie einfachen Code verwenden können, um Pipelines zu erstellen. Es stellt Google Cloud-Pipeline-Komponenten bereit, 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 Pipelines.

Wenn Sie Terabyte von strukturierten Daten oder Textdaten mit TensorFlow verarbeiten, empfehlen wir die Erstellung von Pipelines mit TensorFlow Extended.

TensorFlow Extended SDK verwenden, um vordefinierte Komponenten für allgemeine Schritte zu nutzen

TensorFlow bietet vordefinierte Komponenten für häufige Schritte im Vertex-AI-Workflow wie Datenaufnahme, -validierung und -training. Jeder Schritt ist klar definiert. Er hat einen eindeutigen Satz von Ein- und Ausgaben. Sie können ihn sofort ausführen und ausführen, wenn Sie noch keinen klar definierten Ansatz zur Verwaltung des ML-Workflows haben.

Das TensorFlow Extended SDK wird in folgenden Fällen empfohlen:

  • Sie verwenden bereits TensorFlow.
  • Sie verwenden strukturierte und Textdaten.
  • Sie arbeiten mit vielen Daten.

Weitere Informationen zum TensorFlow Extended SDK finden Sie unter Informationen zu TFX Pipelines.

Organisation von Artefakten

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
Versionsverwaltungs-Repository
  • Notebooks
  • Pipeline-Quellcode
  • Vorverarbeitungsfunktionen
  • Modellquellcode
Tests und ML-Metadaten
  • Tests
  • Parameter
  • Messwerte
  • Datasets (Referenz)
  • Pipeline-Metadaten
Vertex AI
  • Trainierte Modelle
Artifact Registry
  • Pipeline-Container
  • Benutzerdefinierte Trainingsumgebungen
  • Benutzerdefinierte Vorhersageumgebungen
Vertex Prediction
  • Bereitgestellte Modelle

Git-Repository für Pipelinedefinitionen und Trainingscode verwenden

Mit Git 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.

Abweichungserkennung 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.

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 Zeitachsen nützlich, die mit herkömmlichen Verzerrungs- und Abweichungsmethoden schwer zu vergleichen sind. Bei Vertex Explainable AI können Feature-Attributionen auf eine Verschlechterung der Modellleistung hinweisen.

Nächste Schritte