In diesem Dokument werden Best Practices für die Implementierung von maschinellem Lernen (ML) in Google Cloudvorgestellt. 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 Maßnahmen und weiterführender Links.
In diesem Dokument werden die folgenden Phasen des ML-Workflows beschrieben:
- ML-Entwicklung: Entwerfen, experimentieren und entwickeln Sie einen Modellprototyp, um ein Geschäftsproblem zu lösen.
- Datenvorbereitung: Bereinigen Sie Rohdaten von Rauschen und entwickeln Sie Features, damit das Modell hochwertige, aussagekräftige Eingaben erhält.
- ML-Training: Führen Sie Trainingsskripts für ein Dataset aus, um Modellparameter zu optimieren und Hyperparameter anzupassen, bis ein Leistungsmesswert Ihren Anforderungen entspricht.
- Modellbereitstellung und -bereitstellung: Stellen Sie das Modell in einer Produktionsumgebung bereit, um Nutzern den Zugriff über eine API oder einen Container zu ermöglichen.
- ML-Workflow-Orchestrierung: Automatisieren Sie die End-to-End-Pipeline, die den ML-Workflow von der Datenaufnahme bis zur Bereitstellung plant.
- Artefaktorganisation: Protokollieren und versionieren Sie jedes Dataset, jede Modelldatei und jede Konfiguration in einer zentralen Registry.
- Modellmonitoring: Verwenden Sie Dashboards, um die Live-Leistung und die Leistungsabweichung des Modells zu verfolgen.
Das Dokument ist keine vollständige Liste von Empfehlungen. Es soll Data Scientists und ML-Architekten helfen, den Umfang der Aktivitäten bei der Verwendung von ML in Google Cloud zu verstehen und entsprechend zu planen. ML-Entwicklungsalternativen wie AutoML werden zwar unter Empfohlene Tools und Produkte verwenden erwähnt, dieses Dokument konzentriert sich jedoch hauptsächlich auf benutzerdefiniert trainierte Modelle.
Bevor Sie die Best Practices in diesem Dokument anwenden, sollten Sie die Einführung in die Gemini Enterprise Agent Platform lesen.
In diesem Dokument wird Folgendes vorausgesetzt:
- Sie verwenden hauptsächlich Google Cloud -Dienste. Hybrid- und On-Premises-Ansätze werden in diesem Dokument nicht behandelt.
- Sie möchten Trainingsdaten erfassen und in Google Cloudspeichern.
- Sie verfügen über mittlere Kenntnisse in den Bereichen ML, Big-Data-Tools und Datenvorverarbeitung sowie über Kenntnisse der Grundlagen von Cloud Storage, BigQuery und Google Cloud.
Wenn Sie neu im Bereich ML sind, sehen Sie sich den Crashkurs zum maschinellen Lernen von Google an.
Empfohlene Tools und Produkte verwenden
In der folgenden Tabelle sind für jede Phase des ML-Workflows empfohlene Tools und Produkte aufgeführt, wie in diesem Dokument beschrieben:
Google bietet AutoML, Prognosen mit der Agent Platform und BigQuery ML als vordefinierte Trainingsroutinen an, die als Alternativen zu benutzerdefinierten Modelllösungen der Agent Platform dienen. Die folgende Tabelle enthält Empfehlungen zur Verwendung dieser Optionen für die Agent Platform.
| ML-Umgebung | Beschreibung | Wählen Sie diese Umgebung aus, wenn… |
|---|---|---|
| BigQuery ML | BigQuery ML vereint Daten, Infrastruktur und vordefinierte Modelltypen in einem einzigen System. |
|
| AutoML (im Kontext der Agent Platform) | AutoML bietet Trainingsroutinen für gängige Probleme wie Bildklassifizierung und tabellarische Regression. Fast alle Aspekte des Trainings und der Bereitstellung eines Modells, wie die Auswahl einer Architektur, die Hyperparameter-Abstimmung und die Bereitstellung von Maschinen, werden für Sie übernommen. |
|
| Benutzerdefiniert trainierte Agent Platform-Modelle | Mit Vertex können Sie eigene benutzerdefinierte Trainingsroutinen ausführen und Modelle beliebiger Art in einer serverlosen Architektur bereitstellen. Die Agent Platform bietet zusätzliche Dienste wie Hyperparameter-Abstimmung und Monitoring, um die Entwicklung eines Modells zu vereinfachen. Siehe Benutzerdefinierte Trainingsmethode auswählen. |
|
Einrichtung der ML-Umgebung
Wir empfehlen, die folgenden Best Practices für die Einrichtung Ihrer ML-Umgebung zu beachten:
- Agent Platform Workbench-Instanzen für Experimente und Entwicklung verwenden
- Agent Platform Workbench-Instanz für jedes Teammitglied erstellen
- ML-Ressourcen und -Artefakte basierend auf Ihrer Unternehmensrichtlinie speichern
- Agent Platform SDK für Python verwenden
Agent Platform Workbench-Instanzen für Experimente und Entwicklung verwenden
Unabhängig von den Tools, die Sie bereits verwenden, empfehlen wir, Agent Platform 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 Agent Platform-Workbench-Instanzen können Sie auf einfache und reproduzierbare Weise auf alle Daten und KI-Dienste von Google Cloudzugreifen.
Agent Platform Workbench-Instanzen bieten Ihnen außerdem sofort einen sicheren Satz von Software- und Zugriffsmustern. Es ist üblich, mit einer Agent Platform Workbench-Instanz verknüpfteGoogle Cloud -Attribute wie Netzwerk und Identity and Access Management sowie Software (über einen Container) anzupassen. Weitere Informationen finden Sie unter Einführung in die Agent Platform und Einführung in Agent Platform Workbench-Instanzen.
Alternativ können Sie Colab Enterprise verwenden. Dies ist eine kollaborative, verwaltete Notebook-Umgebung, die die Sicherheits- und Compliance-Funktionen von Google Cloudnutzt.
Agent Platform Workbench-Instanz für jedes Teammitglied erstellen
Erstellen Sie eine Agent Platform 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 Notebook-Instanz als virtueller Arbeitsbereich behandelt wird. Beachten Sie, dass Sie Agent Platform 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 Agent Platform-Ressourcen und -Artefakte wie Datasets und Modelle im selben Google Cloud -Projekt zu speichern. In der Regel 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 Agent Platform SDK für Python, eine Python-Methode, mit der Sie die Agent Platform 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 der Agent Platform als Benutzeroberfläche über den Browser unterstützt.
ML-Entwicklung
Wir empfehlen die folgenden Best Practices für die ML-Entwicklung:
Trainingsdaten vorbereiten
Strukturierte und semistrukturierte Daten in BigQuery speichern
Bild-, Video-, Audio- und unstrukturierte Daten in Cloud Storage speichern
Agent Platform Feature Store mit strukturierten Daten verwenden
Vertex AI TensorBoard und Experiments auf der Gemini Enterprise Agent Platform zur Analyse von Experimenten verwenden
Modell in einer Agent Platform Workbench-Instanz für kleine Datasets trainieren
Vorhersagegenauigkeit des Modells durch Hyperparameter-Abstimmung maximieren
Agent Platform Workbench-Instanz zum Verständnis Ihrer Modelle verwenden
Mit Feature-Attributionen Informationen zu Modellvorhersagen erhalten.
Die ML-Entwicklung umfasst die Vorbereitung der Daten, das Experimentieren und die Bewertung des Modells. Beim Lösen eines ML-Problems ist es in der Regel erforderlich, viele verschiedene Modelle zu erstellen und zu vergleichen, um herauszufinden, was 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 Agent Platform 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 du Folgendes verwendest… | 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 scikit-learn) | 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 einzelne Bilder, Videos oder Audioclips zu großen Dateien, da sich dadurch der 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 zu Cloud Storage.
Data Labeling Services mit der Google Cloud Console verwenden
Sie können Trainingsdaten über die Seite „Agent Platform“ 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 Marketplace der Google Cloud Console finden Sie auch Daten-Labeling-Lösungen wie Labelbox und Snorkel Flow.
Agent Platform Feature Store mit strukturierten Daten verwenden
Mit 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 Agent Platform Feature Store verwenden möchten, müssen Sie eine Onlinespeicher-Instanz erstellen und Ihre Featureansichten definieren. BigQuery speichert alle Featuredaten, einschließlich historischer Featuredaten, damit Sie offline arbeiten können.
Vertex AI TensorBoard und Experiments auf der Gemini Enterprise Agent Platform 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 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.
Verwenden Sie Experiments auf der Agent Platform, um Vertex ML Metadata einzubinden und um Parameter, Messwerte sowie Dataset- und Modellartefakte zu protokollieren und zu verbinden.
Modell in einer Agent Platform Workbench-Instanz für kleine Datasets trainieren
Das Trainieren eines Modells in der Agent Platform 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 verwalteten Trainingsdienstes der Gemini Enterprise Agent Platform 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, den automatisierten Modellverbesserer, der vom verwalteten Trainingsdienst der Gemini Enterprise Agent Platform bereitgestellt wird. Dieser nutzt die Verarbeitungsinfrastruktur von Google Cloud und Vertex AI Vizier, um beim Trainieren Ihres Modells verschiedene Hyperparameter-Konfigurationen 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-Abstimmungsjob erstellen.
Agent Platform Workbench-Instanz zum Verständnis Ihrer Modelle verwenden
Verwenden Sie eine Agent Platform Workbench-Instanz, um Modelle zu bewerten und zu verstehen. Zusätzlich zu integrierten gängigen Bibliotheken wie scikit-learn enthalten Agent Platform 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 integraler Bestandteil des ML-Implementierungsprozesses und bietet Feature-Attributionen, um Einblicke in die Gründe für die Generierung von Vorhersagen durch Modelle zu geben. Vertex Explainable AI hilft Ihnen, das Verhalten Ihres Modells besser zu verstehen und Vertrauen in Ihre Modelle aufzubauen, indem die Bedeutung jedes Features, das ein Modell als Eingabe für eine Vorhersage verwendet, detailliert beschrieben wird.
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:
Mit BigQuery tabellarische Daten verarbeiten.
Dataflow zum Verarbeiten von Daten nutzen
Managed Service for Apache Spark für die serverlose Spark-Datenverarbeitung verwenden
Verwaltete Datasets mit Vertex ML Metadata nutzen
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 Datasets sollten Sie die Partitionierung in BigQuery verwenden. Dies kann 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.
Managed Service for Apache Spark für die serverlose Spark-Datenverarbeitung verwenden
Wenn Ihre Organisation Investitionen in eine Apache Spark-Codebasis und entsprechende Kompetenzen hat, können Sie alternativ Managed Service for Apache Spark 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 der Agent Platform in Betracht. Mit verwalteten Datasets können Sie eine klare Verknüpfung zwischen Ihren Daten und benutzerdefiniert trainierten Modellen herstellen. Außerdem erhalten Sie deskriptive Statistiken und können die Daten automatisch oder manuell in Trainings-, Test- und Validierungs-Datasets aufteilen.
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 benutzerdefinierter Trainingsanwendung verwenden.
ML-Training
Wir empfehlen die folgenden Best Practices für das ML-Training:
Code in einem verwalteten Dienst ausführen
Jobausführung mit Trainingspipelines operationalisieren
Mit Trainingsprüfpunkten den aktuellen Status von Tests speichern
Produktionsartefakte zur Bereitstellung in Cloud Storage vorbereiten
Neue Featurewerte regelmäßig berechnen
Beim ML-Training bezieht sich operationalisiertes Training auf den Prozess, das Modelltraining wiederholbar zu machen, indem Wiederholungen verfolgt und die Leistung verwaltet wird. Agent Platform 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 im verwalteten Trainingsdienst der Gemini Enterprise Agent Platform auszuführen oder mit Agent Platform Pipelines zu orchestrieren. Optional können Sie Ihren Code direkt in Deep Learning VM Images, Deep Learning Containers oder Compute Engine ausführen. Wir raten jedoch von diesem Ansatz ab, wenn Sie Funktionen der Agent Platform wie automatisches Skalieren und Burst-Funktionen verwenden.
Jobausführung mit Trainingspipelines operationalisieren
Wenn Sie die Ausführung von Trainingsjobs in der Agent Platform operationalisieren möchten, können Sie Trainingspipelines erstellen. 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 ML-Designmuster.
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 versehentlichen Datenverlust oder Datenbeschädigung zu vermeiden.
Speichern Sie Ihren Cloud Storage-Bucket im selben Google Cloud -Projekt. Wenn sich Ihr Cloud Storage-Bucket in einem anderen Google Cloud -Projekt befindet, müssen Sie der Gemini Enterprise Agent Platform Zugriff gewähren, um Ihre Modellartefakte zu lesen.
Wenn Sie einen vordefinierten Gemini Enterprise Agent Platform-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 - 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 dem Agent Platform Feature Store. Die Features in Agent Platform Feature Store sind für die Onlinebereitstellung einsatzbereit. Für alle neuen Features, die von Data Scientists durch das Abrufen von Daten aus dem Data Lake erstellt werden, empfehlen wir, die entsprechenden Datenverarbeitungs- und Feature-Engineering-Jobs (oder idealerweise Dataflow) so zu planen, dass die neuen Feature-Werte regelmäßig in der erforderlichen Häufigkeit berechnet werden, je nachdem, wie aktuell die Features sein müssen. Anschließend sollten sie für die Online- oder Batchbereitstellung in den Agent Platform Feature Store aufgenommen werden.
Modellbereitstellung und -einsatz
Wir empfehlen die folgenden Best Practices für die Modellbereitstellung:
Anzahl und Typ der erforderlichen Maschinen angeben
Eingaben für das Modell planen
Automatische Skalierung aktivieren
Modelle mit BigQuery ML überwachen
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 Model Registry hochladen, um die Datei für die Vorhersagebereitstellung zu verwenden. Es gibt zwei Arten der Vorhersagebereitstellung: Die Batch-Vorhersage wird zur regelmäßigen Punktzahlbewertung von Daten verwendet und die Onlinevorhersage wird für die nahezu in 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 Endpunkte der Agent Platform, 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 bereitstellende Binärdatei im selben lokalen Netzwerk befinden. Sie können den Overhead des Internetroutings vermeiden und eine Peer-to-Peer-Verbindung über Virtual Private Cloud herstellen.
Anzahl und Typen der erforderlichen Maschinen angeben
Wählen Sie für die Bereitstellung Ihres Modells für Vorhersagen Hardware aus, die für Ihr Modell geeignet ist, z. B. verschiedene CPU-VM-Typen oder Grafikprozessor-Typen. 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 Batch-Vorhersage verwenden, können Sie Daten aus dem Data Lake oder über die Feature Store Batchbereitstellung 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 oder die Onlinebereitstellungs-API von 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 auf demselben Endpunkt bereitstellen, um das Modell beispielsweise schrittweise zu ersetzen. Alternativ können Sie Modelle auf mehreren Endpunkten bereitstellen, z. B. in Test- und Produktionsumgebungen, indem Sie Ressourcen über Bereitstellungen hinweg 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 die Feature Store-Streamingaufnahme diese Daten für Onlinebereitstellungsszenarien 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 Hochverfü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, je nach Ihren Infrastruktur- und Integrationsanforderungen:
Mit Managed Service for Apache Airflow End-to-End-MLOps für Unternehmen und heterogene Datenworkflows orchestrieren
Mit der Agent Platform serverlose, container-native ML-Workflows orchestrieren
Kubeflow Pipelines für eine flexible ML-Pipelineerstellung in der Agent Platform verwenden.
Ray auf der Gemini Enterprise Agent Platform für verteilte ML-Workflows verwenden.
Google Cloud bietet eine umfassende Suite für die ML-Workflow-Orchestrierung. Für komplexe End-to-End-Prozesse, die Data-Engineering-Aufgaben wie Extrahieren, Laden und Transformieren (ELT), ML-Training und externe Geschäftssysteme umfassen, empfehlen wir Managed Airflow als Orchestrator für Unternehmen. Für eigenständige Workflows, die ausschließlich im Agent Platform-Ökosystem verbleiben, bietet Agent Platform Pipelines einen serverlosen, vollständig verwalteten Dienst, mit dem Sie Ihre Modelle so oft wie nötig neu trainieren können. Durch das erneute Trainieren können sich Ihre Modelle an Änderungen anpassen und die Leistung im Laufe der Zeit beibehalten. Berücksichtigen Sie jedoch bei der Auswahl des optimalen Intervalls für das erneute Trainieren des Modells, wie stark sich Ihre Daten ändern werden.
ML-Orchestrierungs-Workflows eignen sich am besten für Kunden, die ihr Modell bereits entworfen und erstellt, in die Produktion überführt haben und ihren ML-Lebenszyklus automatisieren möchten. Der Code, den Sie für Tests verwenden, ist mit einigen Änderungen wahrscheinlich auch für den Rest des ML-Workflows nützlich. Wenn Sie mit container-nativen ML-Workflows in Agent Platform Pipelines arbeiten möchten, müssen Sie mit Python vertraut sein, die grundlegende Infrastruktur wie Container verstehen und über ML-Kenntnisse verfügen. Für eine umfassendere Orchestrierung ohne die Notwendigkeit, benutzerdefinierte Container für Nicht-ML-Aufgaben zu verwalten,bietet Managed Airflow über 1.000 vorgefertigte Operatoren und ein zugängliches, YAML-basiertes Konfigurations-Framework für Data Scientists.
Managed Airflow für End-to-End-MLOps-Workflows in Unternehmen verwenden
Sie können zwar jeden Datenprozess, jedes Training, jede Bewertung und jede Bereitstellung manuell starten, wir empfehlen jedoch, Managed Airflow zu verwenden, um den gesamten Ablauf zu orchestrieren, wenn Ihre Architektur heterogene Systeme umfasst. Managed Airflow basiert auf Apache Airflow. Managed Airflow fungiert als einheitliche Steuerungsebene, mit der Sie Google Cloud -Dienste wie BigQuery und Dataflow nahtlos in die Agent Platform und Unternehmenstools von Drittanbietern einbinden können.
Als Alternative zum Schreiben komplexer Airflow-Python-DAGs können Sie Orchestration Pipelines verwenden, um Ihre Geschäftslogik und Abhängigkeiten in prägnantem YAML zu definieren. Dieser deklarative Ansatz senkt die Einstiegshürden drastisch. Data Scientists können so mehrstufige Pipelines nahtlos erstellen und bereitstellen, ohne dass tiefgreifende Apache Airflow-Kenntnisse erforderlich sind. Weitere Informationen zu MLOps in Orchestration Pipelines finden Sie unter Von Wochen zu Minuten: Die neue Ära der KI-Agenten für Datenpipelines.
Gemini Enterprise Agent Platform-Pipelines für serverlose Workflows verwenden, die in die Agent Platform eingebunden sind
Wenn Ihre Workflows vollständig containerbasiert sind und ausschließlich innerhalb des Agent Platform-Ökosystems ausgeführt werden, empfehlen wir, Agent Platform Pipelines zur Orchestrierung des Ablaufs zu verwenden. Ausführliche Informationen finden Sie unter MLOps-Stufe 1: Automatisierung der ML-Pipeline. Agent Platform Pipelines bietet eine serverlose Ausführung für DAGs, die von Kubeflow und TensorFlow Extended (TFX) generiert werden.
Kubeflow Pipelines für eine flexible Pipelineerstellung verwenden
Wir empfehlen das Kubeflow Pipelines SDK für die meisten Nutzer, die verwaltete Pipelines für Agent Platform Pipelines erstellen möchten. Kubeflow Pipelines ist flexibel und ermöglicht es Ihnen, containerisierte Pipelines mit Code zu erstellen. Außerdem werden Google Cloud Pipeline-Komponenten bereitgestellt, mit denen Sie Agent Platform-Funktionen wie AutoML in Ihre Pipeline einbinden können. Weitere Informationen zu Kubeflow Pipelines finden Sie unter Kubeflow Pipelines und Agent Platform Pipelines.
Ray auf der Gemini Enterprise Agent Platform für verteilte ML-Workflows verwenden
Ray bietet ein allgemeines und einheitliches verteiltes Framework, um ML-Workflows über ein skalierbares und verteiltes Open-Source-Computing-Framework von Python zu skalieren. Dieses Framework kann Ihnen helfen, die Herausforderungen zu bewältigen, die sich aus einer Vielzahl von verteilten Frameworks in Ihrem ML-Ökosystem ergeben, z. B. die Notwendigkeit, mit mehreren Modi der Aufgabenparallelität, Planung und Ressourcenverwaltung umzugehen. Mit Ray on Gemini Enterprise Agent Platform können Sie Anwendungen auf der Agent Platform entwickeln.
Organisation von Artefakten
Wir empfehlen, die folgenden Best Practices zum Organisieren Ihrer Artefakte zu verwenden:
ML-Modellartefakte organisieren
Quellkontroll-Repository für Pipelinedefinitionen und Trainingscode verwenden.
Artefakte sind Ausgaben, die aus jedem Schritt im ML-Workflow entstehen. Es empfiehlt sich, sie auf standardisierte Weise zu organisieren.
ML-Modellartefakte organisieren
Speichern Sie Ihre Artefakte an den folgenden Speicherorten:
| Storage-Speicherort | Artefakte |
| Versionsverwaltungs-Repository |
|
| Tests und ML-Metadaten |
|
| Model Registry |
|
| Artifact Registry |
|
| Gemini Enterprise Agent Platform – Inferenz |
|
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 Versionsverwaltung unterziehen. Verwenden Sie Artifact Registry, um Ihre Docker-Container-Images zu speichern, zu verwalten und zu sichern, ohne sie öffentlich sichtbar zu machen.
Modellmonitoring
Erkennung von Abweichungen und Drift verwenden
Schwellenwerte für Benachrichtigungen anpassen
Feature-Attributionen zur Erkennung von Datenabweichungen verwenden
BigQuery für das Modellmonitoring verwenden
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. Die Gemini Enterprise Agent Platform bietet zwei Möglichkeiten, Ihre ML-Modelle zu überwachen:
- 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 Drifterkennung, 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 Datendrift oder -abweichungen als frühen Indikator dafür zu erkennen, dass sich die Modellleistung möglicherweise verschlechtert. Wenn Ihr Modell beispielsweise ursprünglich fünf Features für Vorhersagen in Ihren Trainings- und Testdaten verwendet hat, aber in der Produktion völlig andere Features verwendet, können Sie diese Verschlechterung der Modellleistung mithilfe von Feature-Attributionen erkennen.
Das ist besonders nützlich für komplexe Featuretypen wie Einbettungen und Zeitreihen, die mit herkömmlichen Methoden zur Abweichungs- und Drift-Erkennung nur schwer zu vergleichen sind. Mit Vertex Explainable AI können Feature-Attributionen darauf hinweisen, wenn die Modellleistung nachlässt.
BigQuery für das Modellmonitoring verwenden
Das BigQuery ML-Modellmonitoring ist eine Reihe von Tools und Funktionen, mit denen Sie die Leistung Ihrer ML-Modelle im Zeitverlauf verfolgen und bewerten können. Das Modellmonitoring ist entscheidend, um die Genauigkeit und Zuverlässigkeit des Modells in realen Anwendungen aufrechtzuerhalten. Wir empfehlen, auf die folgenden Probleme zu achten:
- Datenverzerrung: Dieses Problem tritt auf, wenn sich die Verteilung der Featurewerte zwischen Trainings- und Bereitstellungsdaten unterscheidet. Trainingsstatistiken, die während des Modelltrainings gespeichert werden, ermöglichen die Abweichungserkennung, ohne dass die Originaldaten erforderlich sind.
- Daten-Drift: Reale Daten ändern sich im Laufe der Zeit häufig. 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.
- Erweiterte Datenabweichung oder -drift: Wenn Sie detaillierte Abweichungs- oder Driftstatistiken benötigen, überwachen Sie die erweiterte Datenabweichung oder -drift.
Nächste Schritte
- Dokumentation zur Agent Platform
- Leitfaden zu Machine Learning Operations (MLOps): Ein ML-Framework für Continuous Delivery und Automatisierung von ML
- Eine Übersicht über Architekturprinzipien und Empfehlungen, die speziell für KI- und ML-Arbeitslasten in Google Cloudgelten, finden Sie im Well-Architected Framework unter KI- und ML-Perspektive.
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.