KI und ML: Leistungsoptimierung

Last reviewed 2026-02-13 UTC

Dieses Dokument im Google Cloud Well-Architected Framework: AI & ML perspective enthält Prinzipien und Empfehlungen zur Optimierung der Leistung Ihrer KI- und ML-Arbeitslasten auf Google Cloud. Die Empfehlungen in diesem Dokument entsprechen der Säule zur Leistungsoptimierung des Well-Architected Framework.

KI- und ML-Systeme ermöglichen Ihrem Unternehmen fortschrittliche Automatisierungs- und Entscheidungsfunktionen. Die Leistung dieser Systeme kann sich direkt auf wichtige Geschäftstreiber wie Umsatz, Kosten und Kundenzufriedenheit auswirken. Um das volle Potenzial von KI- und ML-Systemen auszuschöpfen, müssen Sie ihre Leistung auf Grundlage Ihrer Geschäftsziele und technischen Anforderungen optimieren. Bei der Leistungsoptimierung müssen oft Kompromisse eingegangen werden. Eine Designentscheidung, die die erforderliche Leistung bietet, kann beispielsweise zu höheren Kosten führen. Bei den Empfehlungen in diesem Dokument wird die Leistung gegenüber anderen Aspekten priorisiert.

Um die Leistung von KI und ML zu optimieren, müssen Sie Entscheidungen in Bezug auf Faktoren wie die Modellarchitektur, Parameter und Trainingsstrategie treffen. Berücksichtigen Sie bei diesen Entscheidungen den gesamten Lebenszyklus der KI- und ML-Systeme und ihre Bereitstellungsumgebung. Sehr große LLMs können beispielsweise auf einer umfangreichen Trainingsinfrastruktur sehr leistungsstark sein, aber in Umgebungen mit begrenzter Kapazität wie Mobilgeräten möglicherweise nicht gut funktionieren.

Die Empfehlungen in diesem Dokument sind den folgenden Grundsätzen zugeordnet:

Leistungsziele und Analysemethoden festlegen

Ihre Geschäftsstrategie und Ihre Ziele sind die Grundlage für den Einsatz von KI- und ML-Technologien. Geschäftsziele in messbare Leistungskennzahlen (KPIs) umwandeln Beispiele für KPIs sind Gesamtumsatz, Kosten, Conversion-Rate, Kundenbindungs- oder ‑abwanderungsrate, Kundenzufriedenheit und Mitarbeiterzufriedenheit.

Realistische Ziele definieren

Gemäß den Best Practices für Site Reliability Engineering (SRE) müssen die Ziele eines Dienstes ein Leistungsniveau widerspiegeln, das die Anforderungen typischer Kunden erfüllt. Das bedeutet, dass die Serviceziele in Bezug auf Umfang und Leistung der Funktionen realistisch sein müssen.

Unrealistische Ziele können dazu führen, dass Ressourcen für minimale Leistungssteigerungen verschwendet werden. Modelle mit der höchsten Leistung führen möglicherweise nicht zu optimalen Geschäftsergebnissen. Das Training und die Ausführung solcher Modelle können mehr Zeit und Kosten in Anspruch nehmen.

Wenn Sie Zielvorhaben definieren, sollten Sie zwischen Qualitäts- und Leistungszielvorhaben unterscheiden und diese priorisieren:

  • Qualität bezieht sich auf die inhärenten Merkmale, die den Wert einer Einheit bestimmen. So können Sie beurteilen, ob die Rechtspersönlichkeit oder Entität Ihren Erwartungen und Standards entspricht.
  • Leistung bezieht sich darauf, wie effizient und effektiv eine Einheit funktioniert oder ihren beabsichtigten Zweck erfüllt.

ML-Entwickler können die Leistungsmesswerte eines Modells während des Trainingsprozesses verbessern. Die Gemini Enterprise Agent Platform bietet einen Bewertungsdienst, mit dem ML-Ingenieure eine standardisierte und wiederholbare Erfassung von Qualitätsmesswerten implementieren können. Die Vorhersageeffizienz eines Modells gibt an, wie gut ein Modell in der Produktion oder zur Inferenzzeit abschneidet. Verwenden Sie Cloud Monitoring und Model Monitoring auf der Gemini Enterprise Agent Platform, um die Leistung zu überwachen. Um geeignete Modelle auszuwählen und zu entscheiden, wie sie trainiert werden sollen, müssen Sie Geschäftsziele in technische Anforderungen übersetzen, die Qualitäts- und Leistungsmesswerte bestimmen.

Im Folgenden finden Sie ein Beispiel für ein KI-basiertes System zur Betrugserkennung, das Ihnen helfen soll, realistische Ziele festzulegen und geeignete Leistungsmesswerte zu ermitteln:

  • Geschäftsziel: Für ein System zur Betrugserkennung ist es ein unrealistisches Geschäftsziel, 100% der betrügerischen Transaktionen bei einem Spitzen-Traffic von 100 Milliarden Transaktionen pro Sekunde innerhalb einer Nanosekunde genau zu erkennen. Ein realistischeres Ziel ist es, betrügerische Transaktionen mit einer Genauigkeit von 95% in 100 Millisekunden für 90% der Onlinevorhersagen während der US-Arbeitszeiten bei einem Spitzenvolumen von einer Million Transaktionen pro Sekunde zu erkennen.
  • Leistungsmesswerte: Das Erkennen von Betrug ist ein Klassifizierungsproblem. Sie können die Qualität eines Systems zur Betrugserkennung anhand von Messwerten wie Recall, F1-Wert und Accuracy messen. Um die Systemleistung oder ‑geschwindigkeit zu erfassen, können Sie die Inferenzlatenz messen. Das Erkennen potenziell betrügerischer Transaktionen ist möglicherweise wichtiger als die Genauigkeit. Ein realistisches Ziel könnte daher ein hoher Recall mit einer P90-Latenz von weniger als 100 Millisekunden sein.

Leistung in allen Phasen des Modelllebenszyklus im Blick behalten

Behalten Sie während der Tests und des Trainings sowie nach der Bereitstellung des Modells Ihre KPIs im Blick und achten Sie auf Abweichungen von den Geschäftszielen. Eine umfassende Monitoringstrategie hilft Ihnen, wichtige Entscheidungen zur Modellqualität und Ressourcennutzung zu treffen, z. B. die folgenden:

  • Entscheiden, wann ein Trainingsjob beendet werden soll.
  • Feststellen, ob die Leistung eines Modells in der Produktion nachlässt.
  • Kosten und Produkteinführungszeit für neue Modelle verbessern

Monitoring während Tests und Training

Ziel der Experimentierphase ist es, den optimalen Gesamtansatz, die optimale Modellarchitektur und die optimalen Hyperparameter für eine bestimmte Aufgabe zu finden. Mithilfe von Tests können Sie iterativ die Konfiguration ermitteln, die eine optimale Leistung bietet, und herausfinden, wie das Modell trainiert werden sollte. Durch Monitoring lassen sich potenzielle Verbesserungsbereiche effizient ermitteln.

Um die Qualität und Trainingseffizienz eines Modells zu überwachen, müssen ML-Engineers Folgendes tun:

  • Messwerte für Modellqualität und ‑leistung für jeden Test visualisieren
  • Modelldiagramme und ‑messwerte wie Histogramme von Gewichten und Bias visualisieren.
  • Trainingsdaten visuell darstellen
  • Trainingsalgorithmen auf verschiedenen Hardwaretypen profilieren

Beachten Sie die folgenden Empfehlungen, um Tests und Training zu überwachen:

Monitoringaspekt Empfehlung
Modellqualität

Mit TensorBoard können Sie Testmesswerte wie die Accuracy visualisieren und verfolgen sowie die Modellarchitektur oder Trainingsdaten visualisieren. TensorBoard ist eine Open-Source-Suite von Tools, die mit ML-Frameworks wie den folgenden kompatibel ist:

Tracking von Tests Tests auf der Gemini Enterprise Agent Platform werden in verwaltete Vertex AI TensorBoard-Instanzen auf Unternehmensniveau eingebunden, um die Testverfolgung zu unterstützen. Diese Integration ermöglicht die zuverlässige Speicherung und Weitergabe von Logs und Messwerten. Damit mehrere Teams und Einzelpersonen Tests nachverfolgen können, empfehlen wir, das Prinzip der geringsten Berechtigung anzuwenden.
Effizienz von Training und Tests Die Agent-Plattform exportiert Messwerte nach Monitoring und erfasst Telemetriedaten und Logs mithilfe eines Observability-Agents. Sie können die Messwerte in der Google Cloud Console visualisieren. Alternativ können Sie mit Monitoring Dashboards oder Benachrichtigungen auf Grundlage dieser Messwerte erstellen. Weitere Informationen finden Sie unter Monitoring-Messwerte für die Agent Platform.
NVIDIA-GPUs

Der Ops-Agent ermöglicht die GPU-Überwachung für Compute Engine und für andere Produkte, die vom Ops-Agent unterstützt werden.

Sie können auch den NVIDIA Data Center GPU Manager (DCGM) verwenden, eine Reihe von Tools zum Verwalten und Überwachen von NVIDIA-GPUs in Clusterumgebungen. Das Monitoring von NVIDIA-GPUs ist besonders nützlich für das Training und die Bereitstellung von Deep-Learning-Modellen.

Detailliertes Debugging Wenn Sie Probleme mit dem Trainingscode oder der Konfiguration eines verwalteten Trainingsjobs der Gemini Enterprise Agent Platform debuggen möchten, können Sie den Trainingscontainer mit einer interaktiven Shell-Sitzung prüfen.

Monitoring während der Bereitstellung: Streamingvorhersage

Nachdem Sie ein Modell trainiert und in die Model Registry auf der Gemini Enterprise Agent Platform exportiert haben, können Sie einen Agent Platform-Endpunkt erstellen. Dieser Endpunkt stellt einen HTTP-Endpunkt für das Modell bereit.

Mit Modell-Monitoring auf der Agent Platform können Sie große Änderungen in der Verteilung von Eingabe- oder Ausgabefeatures erkennen. Sie können auch Feature-Beiträge in der Produktion im Vergleich zu einer Baseline-Verteilung überwachen. Die Baseline-Verteilung kann der Trainingsdatensatz sein oder auf früheren Verteilungen von Produktionszugriffen basieren. Eine Änderung der Bereitstellungsverteilung kann zu einer geringeren Vorhersageleistung im Vergleich zum Training führen.

  • Monitoring-Ziel auswählen: Je nach Sensibilität eines Anwendungsfalls für Änderungen an den Daten, die dem Modell bereitgestellt werden, können Sie verschiedene Arten von Zielen überwachen: Drift von Eingabe-Features, Drift von Ausgaben und Feature-Attribution. Mit Modellüberwachung auf Agent Platform v2 können Sie Modelle überwachen, die Sie auf einer verwalteten Bereitstellungsplattform wie Agent Platform und auch auf selbst gehosteten Diensten wie Google Kubernetes Engine (GKE) bereitstellen. Außerdem können Sie zur detaillierten Leistungsanalyse Parameter auf Modellebene anstelle eines Endpunkts überwachen.
  • Modellbereitstellung für generative KI-Modelle überwachen: Um die Stabilität zu gewährleisten und die Latenz zu minimieren, insbesondere für LLM-Endpunkte, sollten Sie einen robusten Monitoring-Stack einrichten. Gemini-Modelle bieten integrierte Messwerte wie die Zeit bis zum ersten Token (Time to First Token, TTFT), auf die Sie direkt im Metrics Explorer zugreifen können. Wenn Sie Durchsatz, Latenz und Fehlerraten für alleGoogle Cloud -Modelle überwachen möchten, verwenden Sie das Dashboard für die Beobachtbarkeit von Modellen.

Monitoring während der Bereitstellung: Batch-Vorhersage

Wenn Sie Batch-Vorhersagen überwachen möchten, können Sie Standardbewertungsjobs im Agent Platform-Bewertungsdienst ausführen. Model Monitoring auf der Agent Platform unterstützt das Monitoring von Batchinferenzen. Wenn Sie Batch zum Ausführen Ihrer Serving-Arbeitslast verwenden, können Sie den Ressourcenverbrauch mit den Messwerten im Metrics Explorer überwachen.

Bewertung für Reproduzierbarkeit und Standardisierung automatisieren

Um Modelle von Prototypen zu zuverlässigen Produktionssystemen zu machen, benötigen Sie einen standardisierten Bewertungsprozess. So können Sie den Fortschritt über Iterationen hinweg verfolgen, verschiedene Modelle vergleichen, Verzerrungen erkennen und reduzieren und dafür sorgen, dass Sie die behördlichen Anforderungen erfüllen. Um Reproduzierbarkeit und Skalierbarkeit zu gewährleisten, müssen Sie den Bewertungsprozess automatisieren.

So standardisieren und automatisieren Sie den Bewertungsprozess für die ML-Leistung:

  1. Quantitative und qualitative Indikatoren definieren
  2. Wählen Sie geeignete Datenquellen und Techniken aus.
  3. Bewertungspipeline standardisieren

Diese Schritte werden in den folgenden Abschnitten beschrieben.

1. Quantitative und qualitative Indikatoren definieren

Berechnungsbasierte Messwerte werden mithilfe numerischer Formeln berechnet. Denken Sie daran, dass sich die Messwerte für den Trainingsverlust von den Bewertungs-Messwerten unterscheiden können, die für Geschäftsziele relevant sind. Bei einem Modell, das für die überwachte Betrugserkennung verwendet wird, kann beispielsweise der Cross-Entropy-Verlust für das Training verwendet werden. Um die Leistung der Inferenz zu bewerten, ist jedoch möglicherweise ein relevanterer Messwert erforderlich, nämlich die Trefferquote, die angibt, wie viele betrügerische Transaktionen erkannt wurden. Die Agent Platform bietet einen Bewertungsservice für Messwerte wie Trefferquote, Genauigkeit und Fläche unter der Genauigkeits-/Trefferquotenkurve (Area Under the Precision-Recall Curve, AuPRC). Weitere Informationen finden Sie unter Modellbewertung auf der Agent-Plattform.

Qualitative Indikatoren wie die Flüssigkeit oder der Unterhaltungswert generierter Inhalte können nicht objektiv berechnet werden. Zur Bewertung dieser Indikatoren können Sie die Strategie LLM-as-a-judge oder menschliche Labeling-Dienste wie Labelbox verwenden.

2. Geeignete Datenquellen und Techniken auswählen

Eine Auswertung ist statistisch signifikant, wenn sie auf einer bestimmten Mindestmenge an unterschiedlichen Beispielen basiert. Wählen Sie die Datasets und Techniken aus, die Sie für die Auswertungen verwenden, indem Sie beispielsweise so vorgehen:

  • Golden-Dataset: Verwenden Sie vertrauenswürdige, konsistente und genaue Datenstichproben, die die Wahrscheinlichkeitsverteilung eines Modells in der Produktion widerspiegeln.
  • LLM-as-a-judge: Die Ausgabe eines generativen Modells mit einem LLM bewerten. Dieser Ansatz ist nur für Aufgaben relevant, bei denen ein LLM ein Modell bewerten kann.
  • Nutzerfeedback: Um zukünftige Verbesserungen zu ermöglichen, sollten Sie direktes Nutzerfeedback als Teil des Produktions-Traffics erfassen.

Je nach Bewertungsmethode, Größe und Art der Bewertungsdaten sowie Häufigkeit der Bewertung können Sie BigQuery oder Cloud Storage als Datenquellen verwenden, auch für den Agent Platform-Bewertungsdienst.

3. Bewertungspipeline standardisieren

Um den Bewertungsprozess zu automatisieren, können Sie die folgenden Dienste und Tools in Betracht ziehen:

  • Agent Platform Evaluation Service: Bietet sofort einsatzbereite Primitiven, um die Modellleistung im Rahmen des ML-Lebenszyklus auf der Agent Platform zu verfolgen.
  • Gen AI Evaluation Service: Mit diesem Dienst können Sie jedes generative Modell oder jede generative Anwendung bewerten und die Bewertungsergebnisse anhand Ihrer eigenen Bewertungskriterien mit Ihrem eigenen Urteil vergleichen. Dieser Dienst unterstützt Sie auch bei der Ausführung spezieller Aufgaben wie Prompt Engineering, Retrieval-Augmented Generation (RAG) und der Optimierung von KI-Agenten.
  • AutoSxS-Tool (Automatic Side-by-Side) der Agent Platform: Unterstützt die paarweise modellbasierte Bewertung.
  • Kubeflow: Bietet spezielle Komponenten zum Ausführen von Modellbewertungen.

Häufige Tests ausführen und verfolgen

Um die ML-Leistung effektiv zu optimieren, benötigen Sie eine spezielle, leistungsstarke und interaktive Plattform für Tests. Die Plattform muss die folgenden Funktionen bieten:

  • Ermöglichen Sie die iterative Entwicklung, damit Teams schnell, zuverlässig und skalierbar von der Idee zu validierten Ergebnissen gelangen können.
  • Teams können effizient optimale Konfigurationen ermitteln, mit denen sie Trainingsjobs auslösen können.
  • Kontrollierter Zugriff auf relevante Daten, Funktionen und Tools zum Durchführen und Nachverfolgen von Tests.
  • Reproduzierbarkeit und Data Lineage-Tracking werden unterstützt.

Daten als Dienst behandeln

Isolieren Sie experimentelle Arbeitslasten von Produktionssystemen und richten Sie geeignete Sicherheitskontrollen für Ihre Datenassets ein. Verwenden Sie dazu die folgenden Techniken:

Verfahren Beschreibung Vorteile
Ressourcenisolation Ressourcen für verschiedene Umgebungen in separaten Google Cloud Projekten isolieren Stellen Sie beispielsweise die Ressourcen für Entwicklungs-, Staging- und Produktionsumgebungen in separaten Projekten wie ml-dev, ml-staging und ml-prod bereit. Durch die Ressourcenisolation wird verhindert, dass experimentelle Arbeitslasten Ressourcen verbrauchen, die für Produktionssysteme benötigt werden. Wenn Sie beispielsweise ein einzelnes Projekt für Tests und die Produktion verwenden, kann es sein, dass ein Test alle verfügbaren NVIDIA A100-GPUs für das verwaltete Training der Agent-Plattform belegt. Dies kann zu Unterbrechungen beim erneuten Trainieren eines wichtigen Produktionsmodells führen.
Identitäts- und Zugriffssteuerung Wenden Sie die Grundsätze von Zero Trust und geringster Berechtigung an und verwenden Sie arbeitslastspezifische Dienstkonten. Gewähren Sie Zugriff über vordefinierte IAM-Rollen (Identity and Access Management) wie Agent Platform User (roles/aiplatform.user). So lassen sich versehentliche oder böswillige Aktionen verhindern, die sich negativ auf die Ergebnisse von Tests auswirken könnten.
Netzwerksicherheit Isolieren Sie den Netzwerkverkehr mit VPC-Netzwerken (Virtual Private Cloud) und erzwingen Sie Sicherheitsgrenzen mit VPC Service Controls. Dieser Ansatz trägt dazu bei, sensible Daten zu schützen und zu verhindern, dass sich experimenteller Traffic auf Produktionsdienste auswirkt.
Datenisolation Speichern Sie Testdaten in separaten Cloud Storage-Buckets und BigQuery-Datasets. Durch die Datenisolation wird verhindert, dass Produktionsdaten versehentlich geändert werden. Ohne Datenisolation kann es beispielsweise passieren, dass durch ein Experiment versehentlich die Feature-Werte in einer freigegebenen BigQuery-Tabelle geändert werden, was zu einer erheblichen Beeinträchtigung der Modellgenauigkeit in der Produktionsumgebung führen kann.

Teams mit geeigneten Tools ausstatten

Um eine kuratierte Reihe von Tools zu erstellen, mit denen der gesamte Lebenszyklus von Tests beschleunigt werden kann – von der Datenexploration über das Modelltraining bis hin zur Analyse –, verwenden Sie die folgenden Techniken:

  • Interaktives Prototyping: Für die schnelle Datenexploration, das Testen von Hypothesen und das Prototyping von Code können Sie Colab Enterprise oder verwaltete JupyterLab-Instanzen in der Gemini Enterprise Agent Platform Workbench verwenden. Weitere Informationen finden Sie unter Notebooklösung auswählen.
  • Skalierbares Modelltraining: Führen Sie Trainingsjobs für einen verwalteten Dienst aus, der verteiltes Training und skalierbare Rechenressourcen wie GPUs und TPUs unterstützt. So lässt sich die Trainingszeit von Tagen auf Stunden verkürzen und es können mehr parallele Tests durchgeführt werden. Weitere Informationen finden Sie unter Spezialisierte Komponenten für das Training verwenden.
  • In-Database ML: Modelle direkt in BigQuery ML mit SQL trainieren. Mit dieser Technik werden Datenverschiebungen vermieden und die Durchführung von Tests für Analysten und SQL-orientierte Nutzer beschleunigt.
  • Tests verfolgen: Erstellen Sie einen durchsuchbaren und vergleichbaren Verlauf von Testdaten, indem Sie Parameter, Messwerte und Artefakte für jeden Testlauf protokollieren. Weitere Informationen finden Sie unter System zur Nachverfolgung von Daten und Modellen erstellen.
  • Generative KI optimieren: Um die Leistung generativer KI-Anwendungen zu optimieren, müssen Sie mit Prompts, der Modellauswahl und der Feinabstimmung experimentieren. Für schnelles Prompt Engineering können Sie Agent Studio auf der Gemini Enterprise Agent Platform verwenden. Mit Model Garden können Sie mit Foundation Models wie Gemini experimentieren und ein Modell finden, das für Ihren Anwendungsfall und Ihre Geschäftsziele geeignet ist.

Standardisierung für Reproduzierbarkeit und Effizienz

Damit Tests Ressourcen effizient nutzen und konsistente und zuverlässige Ergebnisse liefern, sollten Sie sie standardisieren und automatisieren. Verwenden Sie dazu die folgenden Ansätze:

  • Für konsistente Umgebungen Container verwenden: Verpacken Sie Ihren Trainingscode und Ihre Abhängigkeiten als Docker-Container. Verwalten und stellen Sie die Container mit Artifact Registry bereit. Mit diesem Ansatz können Sie Probleme auf verschiedenen Computern reproduzieren, indem Sie Experimente in identischen Umgebungen wiederholen. Die Agent Platform bietet vordefinierte Container für serverloses Training.
  • ML-Workflows als Pipelines automatisieren: Orchestrieren Sie den End-to-End-ML-Workflow als codierte Pipeline mit Gemini Enterprise Agent Platform Pipelines. Dieser Ansatz trägt dazu bei, die Konsistenz zu erzwingen, die Reproduzierbarkeit zu gewährleisten und alle Artefakte und Metadaten automatisch in Vertex ML Metadata zu erfassen.
  • Bereitstellung mit Infrastructure as Code (IaC) automatisieren: Definieren und stellen Sie standardisierte Testumgebungen mit IaC-Tools wie Terraform bereit. Verwenden Sie Terraform-Module, um sicherzustellen, dass jedes Projekt eine standardisierte Reihe von Konfigurationen für Sicherheit, Netzwerk und Governance einhält.

Training und Bereitstellungsinfrastruktur erstellen und automatisieren

Richten Sie zum Trainieren und Bereitstellen von KI‑Modellen eine robuste Plattform ein, die eine effiziente und zuverlässige Entwicklung, Bereitstellung und Bereitstellung unterstützt. Mit dieser Plattform können Ihre Teams die Qualität und Leistung von Training und Bereitstellung langfristig effizient verbessern.

Spezialisierte Komponenten für das Training verwenden

Eine zuverlässige Trainingsplattform trägt dazu bei, die Leistung zu steigern, und bietet einen standardisierten Ansatz zur Automatisierung wiederholbarer Aufgaben im ML-Lebenszyklus – von der Datenvorbereitung bis zur Modellvalidierung.

  • Datenerhebung und -vorbereitung: Für ein effektives Modelltraining müssen Sie die Daten erheben und vorbereiten, die für Training, Tests und Validierung erforderlich sind. Die Daten können aus verschiedenen Quellen stammen und unterschiedliche Datentypen haben. Außerdem müssen Sie relevante Daten aus verschiedenen Trainingsläufen wiederverwenden und Funktionen teamübergreifend freigeben. Um die Wiederholbarkeit der Datenerhebung und ‑vorbereitung zu verbessern, sollten Sie die folgenden Empfehlungen berücksichtigen:

  • Training: Wenn Sie ein Modell trainieren, verwenden Sie Daten, um ein Modellobjekt zu erstellen. Dazu müssen Sie die erforderliche Infrastruktur und die Abhängigkeiten des Trainingscodes einrichten. Außerdem müssen Sie entscheiden, wie Sie die Trainingsmodelle beibehalten, den Trainingsfortschritt verfolgen, das Modell bewerten und die Ergebnisse präsentieren. Zur Verbesserung der Wiederholbarkeit des Trainings sollten Sie die folgenden Empfehlungen berücksichtigen:

  • Trainingsorchestrierung: Stellen Sie Trainingsarbeitslasten als Phasen einer Pipeline mit Agent Platform Pipelines bereit. Dieser Dienst bietet verwaltete Kubeflow- und TFX-Dienste. Definieren Sie jeden Schritt der Pipeline als Komponente, die in einem Container ausgeführt wird. Jede Komponente funktioniert wie eine Funktion mit Eingabeparametern und Ausgabeartefakten, die zu Eingaben für die nachfolgenden Komponenten in der Pipeline werden. Um die Effizienz Ihrer Pipeline zu optimieren, sollten Sie die Empfehlungen in der folgenden Tabelle berücksichtigen:

    Ziel Empfehlungen
    Kernautomatisierung implementieren
    Schneller und kosteneffizienter arbeiten
    • Verwenden Sie den Ausführungscache von Agent Platform Pipelines, um die Geschwindigkeit von Iterationen zu erhöhen und die Kosten zu senken.
    • Geben Sie die Maschinenkonfiguration für jede Komponente basierend auf den Ressourcenanforderungen der einzelnen Schritte an.
    Robustheit erhöhen
    Governance und Tracking implementieren

Spezialisierte Infrastruktur für Vorhersagen verwenden

Um den Aufwand für die Verwaltung von Infrastruktur und Modellbereitstellungen zu reduzieren, sollten Sie die wiederholbaren Aufgabenabläufe automatisieren. Mit einem serviceorientierten Ansatz können Sie sich auf Geschwindigkeit und eine schnellere Amortisationszeit konzentrieren. Beachten Sie die folgenden Empfehlungen:

Empfehlung Techniken
Automatische Bereitstellung implementieren
  • Nachdem ein Modell trainiert wurde, können Sie es mithilfe von Automatisierung bereitstellen. Agent Platform Pipelines bietet spezialisierte Komponenten für die Bereitstellung von Modellen an Agent Platform-Endpunkten. Sie können die automatische Bereitstellung mit Kubeflow Control Flows verwalten.
  • Wenn Sie entscheiden möchten, ob ein Modell auf Grundlage einer Bewertung anhand eines Validierungssets bereitgestellt werden soll, können Sie die Bewertungskomponenten der Pipeline verwenden. Sie können die Bereitstellung für die Batchinferenz automatisieren, indem Sie spezielle Batch-Vorhersagekomponenten in der Agent Platform verwenden.
Funktionen für die verwaltete Skalierung nutzen
Latenz und Durchsatz an Agent Platform-Endpunkten optimieren.
  • Wählen Sie einen geeigneten Maschinentyp aus.
  • Wählen Sie einen geeigneten Endpunkttyp für Ihre Modelle aus. Dedizierte private Endpunkte können helfen, die Latenz zu reduzieren.
  • Wenn Sie Feature Store verwenden, wählen Sie einen geeigneten Onlinebereitstellungstyp aus. Die optimierte Onlinebereitstellung mit Private Service Connect kann für niedrige Latenzen sorgen. Weitere Informationen finden Sie unter Online-Diensttypen.
Ressourcennutzung optimieren
Modellbereitstellung optimieren
  • Um Breaking Changes zu vermeiden, können Sie eine schrittweise Migration durchführen und A/B-Tests implementieren, indem Sie automatisch mehrere Modelle auf demselben Endpunkt bereitstellen. Bei der Agent Platform wird die Endpunktschicht von den Modellen entkoppelt. So können Sie den Traffic zwischen Modellversionen aufteilen.
  • Wenn Sie ein bereitgestelltes Modell ersetzen möchten, verwenden Sie eine Rolling-Deployment-Strategie.
Leistung überwachen
  • Um die Bereitstellungsleistung in der Produktion zu verbessern, sollten Sie Logs und Inferenzmesswerte für Agent Platform-Endpunkte beobachten. Um das Verhalten von Modellen in der Produktion zu verstehen, benötigen Sie Tools zur Überwachung von Qualität und Leistung. Mit Model Monitoring auf der Agent Platform v2 können Sie mehrere Versionen eines Modells überwachen und schnell iterieren.

Designentscheidungen an Leistungsanforderungen anpassen

Wenn Sie Designentscheidungen treffen, um die Leistung zu verbessern, sollten Sie prüfen, ob diese Entscheidungen Ihre geschäftlichen Anforderungen unterstützen oder verschwenderisch und kontraproduktiv sind. Um geeignete Infrastruktur, Modelle und Konfigurationen auszuwählen, müssen Sie Leistungsengpässe identifizieren und bewerten, wie sie mit Leistungsmesswerten zusammenhängen. Selbst bei sehr leistungsstarken GPU-Beschleunigern kann es beispielsweise bei Trainingsaufgaben zu Leistungsengpässen kommen. Diese Engpässe können durch Probleme mit der Daten-E/A in der Speicherebene oder durch Leistungseinschränkungen des Modells verursacht werden.

Ganzheitliche Leistung des ML-Ablaufs im Blick behalten

Wenn die Anforderungen an das Training in Bezug auf Modellgröße und Clustergröße steigen, können die Fehlerrate und die Infrastrukturkosten steigen. Die Kosten für einen Fehler können daher quadratisch ansteigen. Sie können sich nicht allein auf herkömmliche Messwerte für die Ressourceneffizienz wie die FLOP-Auslastung des Modells (MFU) verlassen. Um zu verstehen, warum die MFU möglicherweise kein ausreichender Indikator für die Gesamtleistung des Trainings ist, sehen Sie sich den Lebenszyklus eines typischen Trainingsjobs an. Der Lebenszyklus besteht aus dem folgenden zyklischen Ablauf:

  1. Clustererstellung: Worker-Knoten werden bereitgestellt.
  2. Initialisierung: Das Training wird auf den Worker-Knoten initialisiert.
  3. Trainingsausführung: Ressourcen werden für die Vorwärts- oder Rückwärtsweitergabe verwendet.
  4. Unterbrechung: Der Trainingsprozess wird während der Modell-Checkpointing-Phase oder aufgrund von Worker-Knoten-Preemptions unterbrochen.

Nach jeder Unterbrechung wird der vorherige Ablauf wiederholt.

Der Schritt zur Ausführung des Trainings macht nur einen Teil des Lebenszyklus eines ML-Jobs aus. Die Auslastung von Worker-Knoten für den Trainingsausführungsschritt gibt daher nicht die Gesamteffizienz des Jobs an. Selbst wenn der Trainingsausführungsschritt beispielsweise mit 100% Effizienz ausgeführt wird, kann die Gesamteffizienz niedrig sein, wenn häufig Unterbrechungen auftreten oder es lange dauert, bis das Training nach Unterbrechungen fortgesetzt wird.

Goodput-Messwerte einführen und erfassen

Um eine ganzheitliche Leistungsmessung und ‑optimierung zu ermöglichen, sollten Sie Ihren Fokus von herkömmlichen Messwerten für die Ressourceneffizienz wie der MFU auf den Goodput verlagern. Der Goodput berücksichtigt die Verfügbarkeit und Nutzung Ihrer Cluster und Rechenressourcen und hilft, die Ressourceneffizienz über mehrere Ebenen hinweg zu messen.

Der Fokus von Goodput-Messwerten liegt auf dem Gesamtfortschritt eines Jobs und nicht darauf, ob der Job beschäftigt zu sein scheint. Mit Goodput-Messwerten können Sie Trainingsjobs optimieren, um die Produktivität und Leistung insgesamt zu steigern.

Mit Goodput erhalten Sie anhand der folgenden Messwerte einen detaillierten Überblick über potenzielle Effizienzverluste:

  • Der Planungs-Goodput ist der Bruchteil der Zeit, in der alle für das Training oder die Bereitstellung erforderlichen Ressourcen verfügbar sind.
  • Der Laufzeit-Goodput gibt den Anteil der nützlichen Trainingsschritte an, die in einem bestimmten Zeitraum abgeschlossen werden.
  • Der Programm-Goodput ist die maximale Hardwareleistung oder MFU, die ein Trainingsjob vom Beschleuniger abrufen kann. Das hängt von der effizienten Nutzung der zugrunde liegenden Rechenressourcen während des Trainings ab.

Planungs-Goodput optimieren

Um den Scheduling-Goodput für eine Arbeitslast zu optimieren, müssen Sie die spezifischen Infrastrukturanforderungen der Arbeitslast ermitteln. Für Batch-Inferenz, Streaming-Inferenz und Training gelten beispielsweise unterschiedliche Anforderungen:

  • Bei Batchinferenz-Arbeitslasten sind möglicherweise einige Unterbrechungen und Verzögerungen bei der Ressourcenverfügbarkeit möglich.
  • Für Streaming-Inferenzarbeitslasten ist eine zustandslose Infrastruktur erforderlich.
  • Für Trainingsarbeitslasten sind langfristige Infrastrukturzusagen erforderlich.
Geeignete Modi für die Erreichbarkeit auswählen

Im Cloud-Computing ist Verfügbarkeit die Möglichkeit, Ressourcen bereitzustellen, wenn sie benötigt werden. Google Cloud bietet die folgenden Verfügbarkeitsmodi:

  • On-Demand-VMs: Sie stellen Compute Engine-VMs bereit, wenn sie benötigt werden, und führen Ihre Arbeitslasten auf den VMs aus. Die Bereitstellungsanfrage unterliegt der Verfügbarkeit von Ressourcen wie GPUs. Wenn nicht genügend Ressourcen des angeforderten Typs verfügbar sind, schlägt die Anfrage fehl.
  • Spot-VMs: Sie erstellen VMs mit ungenutzter Rechenkapazität. Spot-VMs werden im Vergleich zu On-Demand-VMs zu einem reduzierten Preis abgerechnet, aberGoogle Cloud kannvorzeitig beendet werden. Wir empfehlen, Spot-VMs für zustandslose Arbeitslasten zu verwenden, die bei der Unterbrechung der Host-VMs ordnungsgemäß fehlschlagen können.
  • Reservierungen: Sie reservieren Kapazität als Pool von VMs. Reservierungen sind ideal für Arbeitslasten, die eine Kapazitätsgarantie erfordern. Mit Reservierungen können Sie den Scheduling-Goodput maximieren, da Ressourcen bei Bedarf verfügbar sind.
  • Dynamic Workload Scheduler: Bei diesem Bereitstellungsmechanismus werden Anfragen für GPU-basierte VMs in einem dedizierten Pool in die Warteschlange gestellt. Mit dem Dynamic Workload Scheduler lassen sich die Einschränkungen der anderen Modi für die Verfügbarkeit vermeiden:

    • Situationen, in denen Artikel im On-Demand-Modus nicht vorrätig sind.
    • Einschränkung der Statusfreiheit und Risiko des vorzeitigen Beendens von Spot-VMs.
    • Auswirkungen von Reservierungen auf Kosten und Verfügbarkeit.

In der folgenden Tabelle sind die Modi für die Verfügbarkeit von Google Cloud-Diensten zusammengefasst. Außerdem finden Sie Links zur relevanten Dokumentation:

Produkt On-Demand-VMs Spot-VMs Reservierungen Dynamic Workload Scheduler
Compute Engine Compute Engine-Instanz erstellen und starten Informationen zu Spot-VMs Reservierungen MIG mit GPU-VMs erstellen
GKE Knotenpools hinzufügen und verwalten Spot-VMs in GKE Reservierte zonale Ressourcen nutzen GPU-, TPU- und H4D-Nutzung mit dem Bereitstellungsmodus „Flex-Start“
Cloud Batch Job erstellen und ausführen Batchjob mit Spot-VMs Ressourcenverfügbarkeit mit VM-Reservierungen sicherstellen GPUs und Flex-Start-VMs verwenden
Managed Training für die Agent Platform Serverlosen Trainingsjob erstellen Spot-VMs für Trainingsjobs verwenden Reservierungen für Trainingsjobs verwenden Trainingsjobs basierend auf der Ressourcenverfügbarkeit planen
Agent Platform Batchinferenzen und Onlineinferenzen aus benutzerdefinierten trainierten Modellen abrufen. Spot-VMs für die Inferenz verwenden Reservierungen für die Onlineinferenz verwenden Flex-Start-VMs für die Inferenz verwenden
Wartungsereignisse planen

Sie können den Scheduling-Goodput verbessern, indem Sie Infrastrukturwartung und ‑upgrades vorhersagen und planen.

  • Mit GKE können Sie steuern, wann automatische Clusterwartungen für Ihre Cluster durchgeführt werden dürfen. Weitere Informationen finden Sie unter Wartungsfenster und ‑ausschlüsse.

  • Compute Engine bietet die folgenden Funktionen:

    • Damit eine Instanz während eines Hostereignisses, z. B. einer geplanten Wartung der zugrunde liegenden Hardware, weiter ausgeführt wird, führt Compute Engine eine Live-Migration der Instanz zu einem anderen Host in derselben Zone aus. Weitere Informationen finden Sie unter Live-Migrationsprozess während Wartungsereignissen.
    • Wenn Sie festlegen möchten, wie eine Instanz reagiert, wenn der zugrunde liegende Host gewartet werden muss oder ein Fehler auftritt, können Sie eine Hostwartungsrichtlinie für die Instanz festlegen.
  • Informationen zur Planung von Hostereignissen, die sich auf große Trainingscluster in AI Hypercomputer beziehen, finden Sie unter Hostereignisse für Compute-Instanzen verwalten.

Goodput der Laufzeit optimieren

Der Modelltrainingsprozess wird häufig durch Ereignisse wie das Erstellen von Modellprüfpunkten und die Ressourcen-Preemption unterbrochen. Um den Laufzeit-Goodput zu optimieren, müssen Sie dafür sorgen, dass das System das Training und die Inferenz effizient fortsetzt, nachdem die erforderliche Infrastruktur bereit ist und nach jeder Unterbrechung.

Beim Modelltraining verwenden KI-Forscher Checkpointing, um den Fortschritt zu verfolgen und den Lernverlust aufgrund von Ressourcenunterbrechungen zu minimieren. Bei größeren Modellen dauert das Speichern von Checkpoints länger, was sich zusätzlich auf die Gesamteffizienz auswirkt. Nach Unterbrechungen muss die Trainingsanwendung auf jedem Knoten im Cluster neu gestartet werden. Diese Neustarts können einige Zeit in Anspruch nehmen, da die erforderlichen Artefakte neu geladen werden müssen.

Verwenden Sie die folgenden Techniken, um den Laufzeit-Goodput zu optimieren:

Verfahren Beschreibung
Automatische Prüfpunkte implementieren.

Durch häufige Prüfpunkte können Sie den Fortschritt des Trainings auf detaillierter Ebene verfolgen. Der Trainingsprozess wird jedoch für jeden Prüfpunkt unterbrochen, was den Laufzeit-Goodput verringert. Um Unterbrechungen zu minimieren, können Sie die automatische Erstellung von Checkpoints einrichten. Das SIGTERM-Signal des Hosts löst dann die Erstellung eines Checkpoints aus. Mit diesem Ansatz werden Unterbrechungen durch Checkpointing auf die Zeiten beschränkt, in denen der Host gewartet werden muss. Denken Sie daran, dass einige Hardwarefehler möglicherweise keine SIGTERM-Signale auslösen. Sie müssen daher ein geeignetes Gleichgewicht zwischen automatischen Checkpoints und SIGTERM-Ereignissen finden.

Sie können die automatische Erstellung von Checkpoints mit den folgenden Methoden einrichten:

Verwenden Sie geeignete Strategien zum Laden von Containern.

In einem GKE-Cluster kann es einige Zeit dauern, bis die erforderlichen Artefakte wie Daten oder Modellprüfpunkte geladen sind, bevor die Knoten mit dem Training von Jobs fortfahren können. Mit den folgenden Techniken können Sie die Zeit verkürzen, die zum erneuten Laden von Daten und Fortsetzen des Trainings erforderlich ist:

Weitere Informationen dazu, wie Sie die Zeit für das erneute Laden von Daten verkürzen können, finden Sie unter Tipps und Tricks zur Reduzierung der Kaltstartlatenz in GKE.

Kompilierungscache verwenden Wenn für das Training ein auf der Kompilierung basierender Stack erforderlich ist, prüfen Sie, ob Sie einen Kompilierungscache verwenden können. Wenn Sie einen Kompilierungscache verwenden, wird der Berechnungs-Graph nach jeder Trainingsunterbrechung nicht neu kompiliert. Die daraus resultierenden Zeit- und Kostenreduzierungen sind besonders vorteilhaft, wenn Sie TPUs verwenden. Mit JAX können Sie den Kompilierungscache in einem Cloud Storage-Bucket speichern und die Cache-Daten bei Unterbrechungen verwenden.

Programm-Goodput optimieren

Der Programm-Goodput gibt die maximale Ressourcennutzung während des Trainings an. Dies ist die herkömmliche Methode zur Messung der Effizienz von Training und Bereitstellung. Um den Goodput des Programms zu verbessern, benötigen Sie eine optimierte Verteilungsstrategie, eine effiziente Überschneidung von Berechnung und Kommunikation, einen optimierten Speicherzugriff und effiziente Pipelines.

So optimieren Sie den Programm-Goodput:

Strategie Beschreibung
Anpassungsoptionen auf Framework-Ebene verwenden Frameworks oder Compiler wie Accelerated Linear Algebra (XLA) bieten viele wichtige Komponenten für den Programm-Goodput. Um die Leistung weiter zu optimieren, können Sie grundlegende Komponenten des Berechnungsdiagramms anpassen. Pallas unterstützt beispielsweise benutzerdefinierte Kernel für TPUs und GPUs.
Arbeitsspeicher auf den Host-DRAM auslagern Für das Training im großen Maßstab, das einen erheblichen Arbeitsspeicher von Beschleunigern erfordert, können Sie einen Teil der Arbeitsspeichernutzung auf den Host-DRAM auslagern. Mit XLA können Sie beispielsweise Modellaktivierungen aus dem Forward-Pass in den Hostspeicher auslagern, anstatt den Speicher des Beschleunigers zu verwenden. Mit dieser Strategie können Sie die Trainingsleistung verbessern, indem Sie die Modellkapazität oder die Batchgröße erhöhen.
Quantisierung während des Trainings nutzen.

Sie können die Trainingseffizienz und den Programmdurchsatz verbessern, indem Sie die Modellquantisierung während des Trainings nutzen. Bei dieser Strategie wird die Genauigkeit der Gradienten oder Gewichte in bestimmten Schritten des Trainings reduziert. Dadurch wird der Programm-Goodput verbessert. Diese Strategie erfordert jedoch möglicherweise zusätzlichen Entwicklungsaufwand während der Modellentwicklung.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Parallelität implementieren

Um die Auslastung der verfügbaren Rechenressourcen zu erhöhen, können Sie während des Trainings und beim Laden von Daten Parallelitätsstrategien auf Modellebene verwenden.

Weitere Informationen zu Modellparallelität finden Sie hier:

Um Datenparallelität zu erreichen, können Sie Tools wie die folgenden verwenden:

Arbeitslastspezifische Anforderungen berücksichtigen

Damit Ihre Bemühungen zur Leistungsoptimierung effektiv und ganzheitlich sind, müssen Sie Optimierungsentscheidungen an die spezifischen Anforderungen Ihrer Trainings- und Inferenz-Arbeitslasten anpassen. Wählen Sie geeignete KI-Modelle aus und verwenden Sie relevante Strategien zur Prompt-Optimierung. Wählen Sie geeignete Frameworks und Tools basierend auf den Anforderungen Ihrer Arbeitslasten aus.

Arbeitslastspezifische Anforderungen ermitteln

Prüfen Sie die Anforderungen und Einschränkungen Ihrer Arbeitslasten in den folgenden Bereichen:

Gebiet Beschreibung
Aufgaben- und Qualitätsanforderungen

Definieren Sie die Kernaufgabe der Arbeitslast und die Leistungs-Baseline. Beantworten Sie Fragen wie die folgenden:

  • Geht es bei der Aufgabe um Regression, Klassifizierung oder Generierung?
  • Was ist die minimal akzeptable Qualität, z. B. Genauigkeit, Präzision oder Trefferquote?
Kontext für die Bereitstellung

Analysieren Sie die operative Umgebung, in der Sie das Modell bereitstellen möchten. Der Auslieferungskontext hat oft einen erheblichen Einfluss auf Designentscheidungen. Berücksichtigen Sie die folgenden Faktoren:

  • Latenz: Benötigt das System synchrone Echtzeitvorhersagen oder ist ein asynchroner Batchprozess akzeptabel?
  • Konnektivität: Muss das Modell offline oder auf einem Edge-Gerät ausgeführt werden?
  • Volumen: Wie hoch sind die erwarteten durchschnittlichen und maximalen Werte für die Vorhersagelast? Die Auslastungsstufen beeinflussen Ihre Entscheidungen in Bezug auf Skalierungsstrategien und Infrastruktur.
Teamfähigkeiten und Wirtschaftlichkeit Bewerten Sie den geschäftlichen Wert des Kaufs der Lösung im Vergleich zu den Kosten und der Komplexität der Entwicklung und Wartung. Stellen Sie fest, ob Ihr Team die für die Entwicklung benutzerdefinierter Modelle erforderlichen Fachkenntnisse hat oder ob ein verwalteter Dienst eine schnellere Wertschöpfung ermöglicht.

Geeignetes Modell auswählen

Wenn eine API oder ein offenes Modell die erforderliche Leistung und Qualität liefern kann, verwenden Sie diese API oder dieses Modell.

  • Für modalitätsspezifische Aufgaben wie optische Zeichenerkennung (OCR), Beschriftung und Inhaltsmoderation können Sie ML-APIs wie die folgenden verwenden:

  • Für generative KI-Anwendungen sollten Sie Google-Modelle wie Gemini, Imagen und Veo in Betracht ziehen.

    Model Garden bietet eine kuratierte Sammlung von Foundation Models und aufgabenspezifischen Google-Modellen. Model Garden bietet auch offene Modelle wie Gemma und Modelle von Drittanbietern, die Sie auf der Agent-Plattform ausführen oder in Laufzeitumgebungen wie GKE bereitstellen können.

  • Wenn eine Aufgabe entweder mit einer ML API oder einem generativen KI-Modell erledigt werden kann, sollten Sie die Komplexität der Aufgabe berücksichtigen. Bei komplexen Aufgaben können große Modelle wie Gemini eine höhere Leistung erbringen als kleinere Modelle.

Qualität durch bessere Prompts verbessern

Mit dem Prompt-Optimierungstool für die Agent Platform können Sie die Qualität Ihrer Prompts in großem Umfang verbessern. Sie müssen Systemanweisungen und Prompts nicht manuell neu schreiben. Der Prompt-Optimizer unterstützt die folgenden Ansätze:

  • Zero-Shot-Optimierung: Ein Ansatz mit niedriger Latenz, der einen einzelnen Prompt oder eine einzelne Systemanweisung in Echtzeit verbessert.
  • Datengetriebene Optimierung: Ein erweiterter Ansatz, bei dem Prompts verbessert werden, indem die Antworten eines Modells auf Beispiel-Prompts anhand bestimmter Bewertungsmetriken ausgewertet werden.

Weitere Richtlinien zur Prompt-Optimierung finden Sie unter Übersicht über Prompt-Strategien.

Leistung von Endpunkten für ML und generative KI verbessern

Wenn Sie die Latenz oder den Durchsatz (Tokens pro Sekunde) für Endpunkte für maschinelles Lernen und generative KI verbessern möchten, sollten Sie die folgenden Empfehlungen berücksichtigen:

Low-Code-Lösungen und -Abstimmung verwenden

Wenn vortrainierte Modelle Ihre Anforderungen nicht erfüllen, können Sie ihre Leistung für bestimmte Bereiche mit den folgenden Lösungen verbessern:

  • AutoML ist eine Low-Code-Lösung, mit der sich die Inferenz-Ergebnisse für eine Vielzahl von Aufgaben mit minimalem technischen Aufwand verbessern lassen. Mit AutoML können Sie Modelle erstellen, die in mehreren Dimensionen optimiert sind: Architektur, Leistung und Trainingsphase (durch Checkpointing).
  • Abstimmung ermöglicht eine höhere Qualität, eine stabilere Generierung und eine geringere Latenz mit kürzeren Prompts und ohne viele Daten. Wir empfehlen, mit den Standardwerten für Hyperparameter zu beginnen. Weitere Informationen finden Sie unter Supervised Fine Tuning for Gemini: A best practices guide.

Selbstverwaltete Trainings optimieren

In einigen Fällen möchten Sie möglicherweise ein Modell neu trainieren oder einen Feinabstimmungsjob vollständig verwalten. Dieser Ansatz erfordert je nach verwendetem Modell, Framework und den verwendeten Ressourcen fortgeschrittene Kenntnisse und zusätzlichen Zeitaufwand.

Nutzen Sie leistungsoptimierte Framework-Optionen wie die folgenden:

  • Verwenden Sie Deep-Learning-Images oder Container, die die neuesten Softwareabhängigkeiten undGoogle Cloud-spezifischen Bibliotheken enthalten.

  • Modelltraining mit Ray auf Google Cloudausführen:

    • Mit Ray on Gemini Enterprise Agent Platform können Sie das Framework für verteiltes Training von Ray in Compute Engine oder GKE nutzen und den Verwaltungsaufwand für das Framework reduzieren.
    • Sie können Ray in GKE mit KubeRay selbst verwalten, indem Sie den Ray-Operator in einem vorhandenen Cluster bereitstellen.
  • Stellen Sie Trainingsarbeitslasten in einem Compute-Cluster bereit, den Sie mit dem Open-Source-Cluster Toolkit bereitstellen. Um leistungsoptimierte Cluster effizient bereitzustellen, verwenden Sie YAML-basierte Blueprints. Verwalten Sie die Cluster mit Schedulern wie Slurm und GKE.

  • Standardmodellarchitekturen mit GPU-optimierten Rezepten trainieren.

Erstellen Sie Trainingsarchitekturen und ‑strategien, die die Leistung mithilfe der folgenden Techniken optimieren:

  • Verteiltes Training auf der Agent Platform oder in den zuvor beschriebenen Frameworks implementieren Das verteilte Training ermöglicht Modell- und Datenparallelität, was dazu beitragen kann, die Größe des Trainingsdatasets und des Modells zu erhöhen und die Trainingszeit zu verkürzen.
  • Für ein effizientes Modelltraining und um verschiedene Leistungskonfigurationen zu testen, sollten Sie in angemessenen Intervallen Checkpointing durchführen. Weitere Informationen finden Sie unter Laufzeit-Goodput optimieren.

Selbstverwaltete Bereitstellung optimieren

Für die selbstverwaltete Bereitstellung benötigen Sie effiziente Inferenzvorgänge und einen hohen Durchsatz (Anzahl der Inferenzen pro Zeiteinheit).

So optimieren Sie Ihr Modell für die Inferenz:

  • Quantisierung: Verringern Sie die Modellgröße, indem Sie die Parameter in einem Format mit geringerer Genauigkeit darstellen. Dieser Ansatz trägt dazu bei, den Arbeitsspeicherverbrauch und die Latenz zu reduzieren. Die Quantisierung nach dem Training kann jedoch die Modellqualität beeinträchtigen. Die Quantisierung nach dem Training kann beispielsweise zu einer Verringerung der Genauigkeit führen.

    • Die Quantisierung nach dem Training (Post-Training Quantization, PTQ) ist eine wiederholbare Aufgabe. Wichtige ML-Frameworks wie PyTorch und TensorFlow unterstützen PTQ.
    • Sie können die PTQ mit einer Pipeline in Agent Platform Pipelines orchestrieren.
    • Mit Qwix können Sie die Modellleistung stabilisieren und von einer Verkleinerung der Modellgröße profitieren.
  • Tensor-Parallelität: Verbessern Sie den Inferenzdurchsatz, indem Sie die Rechenlast auf mehrere GPUs verteilen.

  • Speicheroptimierung: Erhöhen Sie den Durchsatz und optimieren Sie das Attention-Caching, die Batchgrößen und die Eingabegrößen.

Verwenden Sie für die Inferenz optimierte Frameworks wie die folgenden:

Ressourcenverbrauch basierend auf Leistungszielen optimieren

Die Ressourcenoptimierung trägt dazu bei, das Training zu beschleunigen, effizient zu iterieren, die Modellqualität zu verbessern und die Bereitstellungskapazität zu erhöhen.

Geeignete Prozessortypen auswählen

Die Auswahl der Computing-Plattform kann sich erheblich auf die Trainingseffizienz eines Modells auswirken.

  • Deep-Learning-Modelle funktionieren gut auf GPUs und TPUs, da sie große Mengen an Speicher und parallele Matrixberechnungen erfordern. Weitere Informationen zu Arbeitslasten, die sich gut für CPUs, GPUs und TPUs eignen, finden Sie unter Verwendung von TPUs.
  • Computing-optimierte VMs sind ideal für HPC-Arbeitslasten.

Training und Bereitstellung auf GPUs optimieren

Berücksichtigen Sie die folgenden Empfehlungen, um die Leistung von Trainings- und Inferenz-Arbeitslasten zu optimieren, die auf GPUs bereitgestellt werden:

Empfehlung Beschreibung
Geeignete Arbeitsspeicherspezifikationen auswählen Wenn Sie GPU-Maschinentypen auswählen, legen Sie die Arbeitsspeicherspezifikationen anhand der folgenden Faktoren fest:
  • Modellkapazität: Die Gesamtgröße des Arbeitsspeichers (Speicherbedarf) der trainierbaren Parameter und Gradienten des Modells.
  • Arbeitslasttyp: Für das Training ist mehr Arbeitsspeicher erforderlich als für die Bereitstellung.
  • Batchgröße für das Training: Bei größeren Batches werden mehr Aktivierungen gespeichert und der Speicherbedarf ist höher.
  • Datentyp: Für Arbeitslasten, bei denen hochwertige Bilder verarbeitet werden oder die hochpräzise Arithmetik verwenden, sind Maschinentypen mit größeren Arbeitsspeicherspezifikationen erforderlich.
Anforderungen an Kern- und Arbeitsspeicherbandbreite bewerten: Berücksichtigen Sie neben der Arbeitsspeichergröße auch andere Anforderungen wie die Anzahl der Tensor-Kerne und die Arbeitsspeicherbandbreite. Diese Faktoren beeinflussen die Geschwindigkeit des Datenzugriffs und der Berechnungen auf dem Chip.
Geeignete GPU-Maschinentypen auswählen:

Für Training und Bereitstellung sind möglicherweise unterschiedliche GPU-Maschinentypen erforderlich.

  • Für Trainingsjobs sind eine oder mehrere GPUs oder sogar mehrere Knoten mit einem sehr großen Arbeitsspeicher und einer sehr großen Bandbreite erforderlich.
  • Für Inferenzarbeitslasten sind relativ weniger Arbeitsspeicher und weniger leistungsstarke GPUs erforderlich.

Wir empfehlen, für das Training große Maschinentypen und für die Inferenz kleinere, kostengünstige Maschinentypen zu verwenden. Verwenden Sie Monitoring-Tools wie den NVIDIA DCGM-Agent, um Probleme bei der Ressourcennutzung zu erkennen, und passen Sie die Ressourcen entsprechend an.

GPU-Freigabe in GKE nutzen

Eine vollständige GPU für einen einzelnen Container zu reservieren, kann in einigen Fällen ineffizient sein. Um diese Ineffizienz zu beheben, unterstützt GKE die folgenden GPU-Freigabestrategien:

Um die Ressourcennutzung zu maximieren, empfehlen wir, eine geeignete Kombination dieser Strategien zu verwenden. Wenn Sie beispielsweise eine große H100-GPU mithilfe der GPU-Zeitfreigabe und der Strategien für GPUs mit mehreren Instanzen virtualisieren, kann die Bereitstellungsplattform je nach Traffic skaliert werden. GPU-Ressourcen werden in Echtzeit basierend auf der Last der Modellcontainer neu zugewiesen.

Routing und Load-Balancing optimieren: Wenn Sie mehrere Modelle in einem Cluster bereitstellen, können Sie GKE Inference Gateway für optimiertes Routing und Load-Balancing verwenden. Inference Gateway erweitert die Routing-Mechanismen der Kubernetes Gateway API durch die Verwendung der folgenden Funktionen:
Ressourcen für Agent Platform-Endpunkte freigeben Sie können mehrere Agent Platform-Endpunkte so konfigurieren, dass sie einen gemeinsamen Ressourcenpool verwenden. Weitere Informationen zu dieser Funktion und ihren Einschränkungen finden Sie unter Ressourcen für mehrere Bereitstellungen freigeben.

Training und Bereitstellung auf TPUs optimieren

TPUs sind Google-Chips, die dabei helfen, Herausforderungen im großen Maßstab für ML-Algorithmen zu lösen. Diese Chips bieten eine optimale Leistung für KI-Trainings- und Inferenzarbeitslasten. Im Vergleich zu GPUs bieten TPUs eine höhere Effizienz beim Deep-Learning-Training und bei der Bereitstellung. Informationen zu den Anwendungsfällen, die für TPUs geeignet sind, finden Sie unter Verwendung von TPUs. TPUs sind mit ML-Frameworks wie TensorFlow, PyTorch und JAX kompatibel.

Verwenden Sie die folgenden Techniken, die im Leistungsleitfaden für Cloud TPU beschrieben werden, um die TPU-Leistung zu optimieren:

  • Maximieren Sie die Batchgröße für jede TPU-Speichereinheit.
  • Achten Sie darauf, dass die TPUs nicht inaktiv sind. Implementieren Sie beispielsweise parallele Datenlesevorgänge.
  • XLA-Compiler optimieren Passen Sie die Tensor-Dimensionen nach Bedarf an und vermeiden Sie Padding. XLA optimiert die Leistung der Grafikausführung automatisch mithilfe von Tools wie Fusion und Broadcasting.

Training auf TPUs und Bereitstellung auf GPUs optimieren

TPUs unterstützen effizientes Training. GPUs bieten Vielseitigkeit und eine breitere Verfügbarkeit für Inferenzarbeitslasten. Um die Stärken von TPUs und GPUs zu kombinieren, können Sie Modelle auf TPUs trainieren und auf GPUs bereitstellen. Dieser Ansatz kann dazu beitragen, die Gesamtkosten zu senken und die Entwicklung zu beschleunigen, insbesondere bei großen Modellen. Informationen zu den Standorten, an denen TPU- und GPU-Maschinentypen verfügbar sind, finden Sie unter TPU-Regionen und ‑Zonen und GPU-Standorte.

Speicherebene optimieren

Die Speicherebene Ihrer Trainings- und Bereitstellungsinfrastruktur ist entscheidend für die Leistung. Bei Trainingsjobs und Inferenzarbeitslasten sind die folgenden speicherbezogenen Aktivitäten erforderlich:

  • Daten werden geladen und verarbeitet.
  • Das Modell während des Trainings sichern.
  • Binärdateien neu laden, um das Training nach dem Vorbelegen von Knoten fortzusetzen
  • Das Modell wird effizient geladen, um Inferenzen in großem Umfang zu verarbeiten.

Die folgenden Faktoren bestimmen Ihre Anforderungen an Speicherkapazität, Bandbreite und Latenz:

  • Modellgröße
  • Umfang des Trainings-Datasets
  • Checkpointing-Häufigkeit
  • Skalierungsmuster

Wenn sich Ihre Trainingsdaten in Cloud Storage befinden, können Sie die Latenz beim Laden von Daten durch Datei-Caching mit Cloud Storage FUSE verringern. Mit Cloud Storage FUSE können Sie einen Cloud Storage-Bucket auf Rechenknoten mit lokalen SSD-Laufwerken bereitstellen. Informationen zur Verbesserung der Leistung von Cloud Storage FUSE finden Sie unter Best Practices für die Leistungsoptimierung.

Ein PyTorch-Connector für Cloud Storage bietet eine hohe Leistung beim Lesen und Schreiben von Daten. Dieser Connector ist besonders nützlich für das Training mit großen Datasets und für das Erstellen von Checkpoints für große Modelle.

Compute Engine unterstützt verschiedene Arten von nichtflüchtigem Speicher. Mit Google Cloud Hyperdisk ML können Sie den erforderlichen Durchsatz und die erforderlichen IOPS basierend auf den Trainingsanforderungen bereitstellen. Um die Laufwerksleistung zu optimieren, ändern Sie zuerst die Größe der Laufwerke und dann den Maschinentyp. Weitere Informationen finden Sie unter Leistung von Persistent Disk optimieren. Um die Lese-/Schreibleistung und ‑latenz auf der Speicherebene zu testen, können Sie Tools wie den Flexiblen E/A-Tester (FIO) verwenden.

Weitere Informationen zur Auswahl und Optimierung von Speicherdiensten für Ihre KI- und ML-Arbeitslasten finden Sie unter Übersicht über Speicherdienste für KI- und ML-Arbeitslasten im AI Hypercomputer.

Netzwerkschicht optimieren

Um die Leistung von KI- und ML-Arbeitslasten zu optimieren, konfigurieren Sie Ihre VPC-Netzwerke so, dass sie eine angemessene Bandbreite und einen maximalen Durchsatz bei minimaler Latenz bieten. Beachten Sie die folgenden Empfehlungen:

Empfehlung Vorgeschlagene Techniken für die Implementierung
VPC-Netzwerke optimieren
VMs näher beieinander platzieren.
VMs für höhere Netzwerkgeschwindigkeiten konfigurieren

Um Innovationen zu entwickeln, Fehler zu beheben und Leistungsprobleme zu untersuchen, müssen Sie eine klare Verbindung zwischen Designentscheidungen und Leistungsergebnissen herstellen. Sie benötigen einen zuverlässigen Datensatz zur Herkunft von ML-Assets, Bereitstellungen, Modellausgaben sowie der entsprechenden Konfigurationen und Eingaben, die die Ausgaben erzeugt haben.

System für Daten- und Modellherkunft erstellen

Um die Leistung zuverlässig zu verbessern, müssen Sie jede Modellversion auf die genauen Daten, den Code und die Konfigurationen zurückführen können, die zum Erstellen des Modells verwendet wurden. Wenn Sie ein Modell skalieren, wird die Nachverfolgung schwierig. Sie benötigen ein Lineage-System, das den Prozess automatisiert und für jeden Test einen klaren, abfragbaren Datensatz erstellt. Mit diesem System können Ihre Teams effizient die Entscheidungen identifizieren und reproduzieren, die zu den leistungsstärksten Modellen führen.

Zum Aufrufen und Analysieren der Herkunft von Pipeline-Artefakten für Arbeitslasten auf der Agent Platform können Sie Vertex ML Metadata oder den Knowledge Catalog verwenden. Mit beiden Optionen können Sie Ereignisse oder Artefakte registrieren, um Governance-Anforderungen zu erfüllen und bei Bedarf Metadaten abzufragen und Informationen abzurufen. In diesem Abschnitt erhalten Sie einen Überblick über die beiden Optionen. Ausführliche Informationen zu den Unterschieden zwischen Vertex ML Metadata und Knowledge Catalog finden Sie unter Herkunft von Pipeline-Artefakten verfolgen.

Standardimplementierung: Vertex ML Metadata

Bei der ersten Pipelineausführung oder dem ersten Test in der Agent Platform wird ein standardmäßiger Vertex ML Metadata-Dienst erstellt. Die Parameter und Artefaktmetadaten, die von der Pipeline verwendet und generiert werden, werden automatisch in einem Vertex ML Metadata-Speicher registriert. Das Datenmodell, das zum Organisieren und Verknüpfen der gespeicherten Metadaten verwendet wird, enthält die folgenden Elemente:

  • Kontext: Eine Gruppe von Artefakten und Ausführungen, die einen Testlauf darstellt.
  • Ausführung: Ein Schritt in einem Workflow, z. B. Datenvalidierung oder Modelltraining.
  • Artefakt: Eine Eingabe- oder Ausgabeeinheit, ein Objekt oder ein Datenelement, das von einem Workflow erzeugt und genutzt wird.
  • Ereignis: Eine Beziehung zwischen einem Artefakt und einer Ausführung.

Standardmäßig erfasst und verfolgt Vertex ML Metadata alle Eingabe- und Ausgabeartefakte einer Pipelineausführung. Diese Artefakte werden in Experiments on Agent Platform, Model Registry und Agent Platform managed datasets eingebunden.

Autologging ist ein integriertes Feature in Agent Platform Managed Training, mit dem Daten automatisch in Experimenten auf der Agent Platform protokolliert werden. Um Experimente zur Leistungsoptimierung effizient zu verfolgen, verwenden Sie die integrierten Integrationen zwischen Experiments on Agent Platform und dem zugehörigen Vertex ML Metadata-Dienst.

Vertex ML Metadata bietet eine Filtersyntax und Operatoren zum Ausführen von Abfragen zu Artefakten, Ausführungen und Kontexten. Bei Bedarf können Ihre Teams effizient Informationen zum Registrierungslink eines Modells und zum zugehörigen Dataset oder zur zugehörigen Bewertung für einen bestimmten Experimentlauf abrufen. Diese Metadaten können dazu beitragen, die Suche nach Optionen zu beschleunigen, die die Leistung optimieren. Sie können beispielsweise Pipelineausführungen vergleichen, Modelle vergleichen und Testläufe vergleichen. Weitere Informationen, einschließlich Beispielabfragen, finden Sie unter Vertex ML-Metadaten analysieren.

Alternative Implementierung: Knowledge Catalog

Knowledge Catalog erkennt Metadaten aus Google Cloud -Ressourcen, einschließlich Agent Platform-Artefakten. Sie können auch eine benutzerdefinierte Datenquelle einbinden.

Knowledge Catalog kann Metadaten in mehreren Regionen und organisationsweiten Speichern lesen, während Vertex ML Metadata eine projektspezifische Ressource ist. Im Vergleich zu Vertex ML Metadata ist für Knowledge Catalog mehr Einrichtungsaufwand erforderlich. Knowledge Catalog kann jedoch sinnvoll sein, wenn Sie eine Integration mit Ihrem gesamten Datenportfolio in Google Cloud und mit organisationsweiten Speichern benötigen.

Knowledge Catalog ermittelt und erfasst Metadaten für Projekte, in denen die Data Lineage API aktiviert ist. Die Metadaten im Katalog sind mithilfe eines Datenmodells organisiert, das aus Projekten, Eintragsgruppen, Einträgen und Aspekten besteht. Knowledge Catalog bietet eine spezifische Syntax, mit der Sie Artefakte ermitteln können. Bei Bedarf können Sie Vertex ML-Metadatenartefakte Knowledge Catalog zuordnen.

Tools für die Erklärbarkeit verwenden

Das Verhalten eines KI-Modells basiert auf den Daten, mit denen es trainiert wurde. Dieses Verhalten wird als Parameter in mathematischen Funktionen codiert. Es kann schwierig sein, genau zu verstehen, warum ein Modell eine bestimmte Leistung erbringt. Diese Informationen sind jedoch entscheidend für die Leistungsoptimierung.

Stellen Sie sich beispielsweise ein Bildklassifizierungsmodell vor, dessen Trainingsdaten nur Bilder von roten Autos enthalten. Das Modell lernt möglicherweise, das Label „car“ (Auto) anhand der Farbe des Objekts zu identifizieren und nicht anhand der räumlichen Attribute und Formattribute des Objekts. Wenn das Modell mit Bildern getestet wird, auf denen Autos unterschiedlicher Farben zu sehen sind, kann sich die Leistung des Modells verschlechtern. In den folgenden Abschnitten werden Tools beschrieben, mit denen Sie solche Probleme erkennen und diagnostizieren können.

Datenverzerrungen erkennen

In der explorativen Datenanalyse (EDA) eines ML-Projekts identifizieren Sie Probleme mit den Daten, z. B. Klassenungleichgewichte und Bias.

In Produktionssystemen werden Modelle häufig neu trainiert und es werden Tests mit verschiedenen Datasets durchgeführt. Um Daten zu standardisieren und Tests zu vergleichen, empfehlen wir einen systematischen Ansatz für die explorative Datenanalyse, der die folgenden Merkmale umfasst:

  • Automatisierung: Wenn ein Trainingssatz immer größer wird, muss der EDA-Prozess automatisch im Hintergrund ausgeführt werden.
  • Umfassende Abdeckung: Wenn Sie neue Funktionen hinzufügen, muss die explorative Datenanalyse Erkenntnisse zu den neuen Funktionen liefern.

Viele EDA-Aufgaben sind spezifisch für den Datentyp und den geschäftlichen Kontext. Um den EDA-Prozess zu automatisieren, können Sie BigQuery oder einen verwalteten Datenverarbeitungsdienst wie Dataflow verwenden. Weitere Informationen finden Sie unter Klassifizierung auf Grundlage unausgewogener Daten und Messwerte für Datenbias für die Agent Platform.

Modellmerkmale und ‑verhalten verstehen

Sie müssen nicht nur die Verteilung der Daten in den Trainings- und Validierungssets und deren Verzerrungen verstehen, sondern auch die Merkmale und das Verhalten eines Modells zum Zeitpunkt der Vorhersage. Mit den folgenden Tools können Sie das Verhalten von Modellen nachvollziehen:

Tool Beschreibung Zwecke
Beispielgestützte Erklärungen Sie können beispielbasierte Erläuterungen in Vertex Explainable AI verwenden, um eine Vorhersage zu verstehen, indem Sie die ähnlichsten Beispiele aus den Trainingsdaten finden. Dieser Ansatz basiert auf dem Prinzip, dass ähnliche Eingaben ähnliche Ausgaben ergeben.
  • Lücken in den Trainingsdaten identifizieren und beheben, indem Sie ähnliche Beispiele für eine falsche Vorhersage finden.
  • Eingaben klassifizieren, für die das Modell ursprünglich nicht trainiert wurde, indem Nachbarn aus einem Referenzset verwendet werden.
  • Anomalien erkennen, indem Eingaben gefunden werden, die sich deutlich von allen bekannten Trainingsbeispielen unterscheiden.
  • Die Datenerhebung wird effizienter, wenn Sie mehrdeutige Fälle erkennen, z. B. wenn benachbarte Segmente unterschiedliche Labels haben. Priorisieren Sie solche Fälle für die manuelle Überprüfung.
Featurebasierte Erklärungen

Bei Vorhersagen, die auf tabellarischen Daten oder Bildern basieren, zeigen featurebasierte Erklärungen, wie stark sich jedes Feature auf eine Vorhersage auswirkt, wenn es mit einer Baseline verglichen wird.

Vertex Explainable AI bietet je nach Modelltyp und Aufgabe verschiedene Methoden zur Feature-Attribution. Die Methoden basieren in der Regel auf Stichproben und Sensitivitätsanalysen, um zu messen, wie stark sich die Ausgabe als Reaktion auf Änderungen an einem Eingabefeature ändert.

  • Identifizieren Sie Bias, die bei einem Validierungsschritt möglicherweise nicht berücksichtigt werden.
  • Leistung optimieren, indem Sie die für eine Vorhersage wichtigsten Features ermitteln. Um die Qualität und Leistung eines Modells zu steigern, können ML-Ingenieure absichtlich Features hinzufügen, entfernen oder entwickeln.
What-If-Tool Das What-If-Tool wurde von der People + AI Research (PAIR) Initiative von Google entwickelt, um Ihnen zu helfen, das Verhalten von Bild- und Tabellenmodellen zu verstehen und zu visualisieren. Beispiele für die Verwendung des Tools finden Sie unter What-If Tool Web Demos.
  • Fehlerbehebung und Ermittlung der Ursache für falsche Vorhersagen
  • Untersuchen Sie, wie ein Modell in verschiedenen Teilmengen von Daten funktioniert, indem Sie Verzerrungen durch eine Fairness-Analyse ermitteln.
  • Das Verhalten eines Modells nachvollziehen, insbesondere die Beziehung zwischen den Vorhersagen eines Modells und den Eingabefeatures.
  • Vergleichen Sie Vorhersagen mit einem visuellen Vergleichstool, für das entweder zwei Modelle oder eine Ground-Truth-Baseline erforderlich sind.

Beitragende

Autor*innen:

Weitere Beitragende: