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 Entscheidungsfindungsfunktionen. Die Leistung dieser Systeme kann sich direkt auf wichtige Geschäftstreiber wie Umsatz, Kosten und Kundenzufriedenheit auswirken. Damit Sie das volle Potenzial von KI- und ML-Systemen ausschöpfen können, 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, in Umgebungen mit begrenzter Kapazität wie Mobilgeräten jedoch nicht.

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. Vertex AI bietet einen Bewertungsdienst, mit dem ML-Ingenieure die 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 Vertex AI Model Monitoring, 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.

Um zu verstehen, wie Sie realistische Ziele festlegen und geeignete Leistungsmesswerte ermitteln, sehen Sie sich das folgende Beispiel für ein KI-basiertes System zur Betrugserkennung an:

  • Geschäftsziel: Für ein System zur Betrugserkennung wäre es ein unrealistisches Geschäftsziel, 100% der betrügerischen Transaktionen bei einem Spitzenverkehr 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.

  • Entscheiden, wann ein Trainingsjob beendet werden soll
  • Feststellen, ob die Leistung eines Modells in der Produktion nachlässt.
  • Kosten und Markteinfü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 festlegen, wie das Modell trainiert werden soll. Mithilfe von Monitoring können Sie potenzielle Bereiche mit Verbesserungspotenzial effizient identifizieren.

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:

Monitoring-Aspekt Empfehlung
Modellqualität

Mit TensorBoard können Sie Testmesswerte wie die Genauigkeit 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 Vertex AI Experiments wird in verwaltete Vertex AI TensorBoard-Instanzen auf Unternehmensniveau eingebunden, um das Tracking von Tests 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 Vertex AI exportiert Messwerte in 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 Vertex AI.
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 Vertex AI Training-Jobs beheben 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 Vertex AI Model Registry exportiert haben, können Sie einen Vertex AI-Endpunkt erstellen. Dieser Endpunkt stellt einen HTTP-Endpunkt für das Modell bereit.

Mit Modellmonitoring können Sie große Änderungen in der Verteilung von Eingabe- oder Ausgabefeatures erkennen. Sie können auch Feature-Attributionen 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 Model Monitoring v2 können Sie Modelle überwachen, die Sie auf einer verwalteten Bereitstellungsplattform wie Vertex AI 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.
  • Bereitstellung generativer KI-Modelle überwachen: Um 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: Batchvorhersage

Um Batchvorhersagen zu überwachen, können Sie Standardbewertungsjobs im Vertex AI Evaluation Service ausführen. Model Monitoring unterstützt das Monitoring von Batchinferenzen. Wenn Sie Batch verwenden, um Ihre Serving-Arbeitslast auszuführen, 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. Trainingsverlust-Messwerte können sich von den Bewertungs-Messwerten unterscheiden, die für Geschäftsziele relevant sind. Ein Modell, das für die überwachte Betrugserkennung verwendet wird, kann beispielsweise den Cross-Entropy-Verlust für das Training verwenden. 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. Vertex AI bietet einen Bewertungsdienst für Messwerte wie Recall, Precision und Fläche unter der Precision-Recall-Kurve (AuPRC). Weitere Informationen finden Sie unter Modellbewertung in Vertex AI.

Qualitative Indikatoren wie die Flüssigkeit oder der Unterhaltungswert generierter Inhalte können nicht objektiv berechnet werden. Um diese Indikatoren zu bewerten, 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: Erfassen Sie direktes Nutzerfeedback als Teil des Produktionsverkehrs, um zukünftige Verbesserungen zu ermöglichen.

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 Vertex AI-Bewertungsdienst.

3. Bewertungspipeline standardisieren

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

  • Vertex AI Evaluation Service: Bietet sofort einsatzbereite Primitiven, um die Modellleistung als Teil des ML-Lebenszyklus in Vertex AI zu verfolgen.
  • Gen AI Evaluation Service: Damit 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 KI-Agentenoptimierung.
  • Vertex AI AutoSxS-Tool: 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 eine iterative Entwicklung, damit Teams schnell, zuverlässig und in großem Umfang von der Idee zu validierten Ergebnissen gelangen können.
  • Teams können effizient optimale Konfigurationen ermitteln, mit denen sie Trainingsjobs auslösen können.
  • Kontrollierten Zugriff auf relevante Daten, Funktionen und Tools für die Durchführung und Analyse von Tests ermöglichen.
  • Reproduzierbarkeit und Data Lineage-Tracking unterstützen.

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 Experimente und die Produktion verwenden, kann ein Experiment alle verfügbaren NVIDIA A100-GPUs für Vertex AI Training belegen. 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 wie Vertex AI-Nutzer (roles/aiplatform.user). So lassen sich versehentliche oder böswillige Aktionen verhindern, die sich negativ auf Ihre 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 Testdaten auf Produktionsdienste auswirken.
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 einen Test 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 Experimentierzyklus beschleunigt werden kann – von der Datenexploration über das Modelltraining bis hin zur Analyse –, verwenden Sie die folgenden Techniken:

  • Interaktives Prototyping: Für die schnelle Datenanalyse, das Testen von Hypothesen und das Prototyping von Code können Sie Colab Enterprise oder verwaltete JupyterLab-Instanzen in Vertex AI 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 wird die Datenübertragung 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 Nachvollziehbarkeit von Daten und Modellen erstellen.
  • Generative KI optimieren: Um die Leistung von generativen KI-Anwendungen zu optimieren, müssen Sie mit Prompts, der Modellauswahl und der Feinabstimmung experimentieren. Für schnelles Prompt Engineering verwenden Sie Vertex AI Studio. 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.

Standardisieren für Reproduzierbarkeit und Effizienz

Damit Ressourcen in Tests effizient genutzt werden und konsistente und zuverlässige Ergebnisse erzielt werden, sollten Sie Tests standardisieren und automatisieren. Verwenden Sie dazu die folgenden Ansätze:

  • Für konsistente Umgebungen sorgen, indem Container verwendet werden: 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. Vertex AI bietet vordefinierte Container für serverloses Training.
  • ML-Workflows als Pipelines automatisieren: Orchestrieren Sie den End-to-End-ML-Workflow als codifizierte Pipeline mit Vertex AI 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

Um KI-Modelle zu trainieren und bereitzustellen, müssen Sie eine robuste Plattform einrichten, 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, um wiederholbare Aufgaben im ML-Lebenszyklus zu automatisieren – 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 das Training, das Testen und die 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 nutzen. 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:

  • Orchestrierung des Trainings: Stellen Sie Trainingsarbeitslasten als Phasen einer Pipeline mit Vertex AI 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
    Implementieren Sie die Kernautomatisierung.
    Schneller und kosteneffizienter arbeiten
    • Um die Geschwindigkeit von Iterationen zu erhöhen und die Kosten zu senken, können Sie den Ausführungscache von Vertex AI Pipelines verwenden.
    • 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 verringern, sollten Sie wiederholbare Aufgabenabläufe automatisieren. Mit einem serviceorientierten Ansatz können Sie sich auf Geschwindigkeit und eine schnellere Amortisierung konzentrieren. Beachten Sie die folgenden Empfehlungen:

Empfehlung Techniken
Automatische Bereitstellung implementieren
  • Nachdem ein Modell trainiert wurde, können Sie es mithilfe von Automatisierung bereitstellen. Vertex AI Pipelines bietet spezialisierte Komponenten zum Bereitstellen von Modellen für Vertex AI-Endpunkte. Sie können die automatische Bereitstellung mit Kubeflow-Kontrollflüssen verwalten.
  • Wenn Sie entscheiden möchten, ob ein Modell auf Grundlage einer Bewertung anhand eines Validierungssatzes bereitgestellt werden soll, können Sie die Bewertungskomponenten der Pipeline verwenden. Sie können die Bereitstellung für die Batchinferenz automatisieren, indem Sie spezielle Batchvorhersagekomponenten in Vertex AI verwenden.
Verwenden Sie Funktionen für die verwaltete Skalierung.
Latenz und Durchsatz an Vertex AI-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 Vertex AI 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 Vertex AI 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 beobachten
  • Um die Bereitstellungsleistung in der Produktion zu verbessern, sollten Sie Logs und Inferenzmesswerte für Vertex AI-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 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 die richtige Infrastruktur, die richtigen 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 bei 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 Trainingsanforderungen in Bezug auf Modellgröße und Clustergröße steigen, können sich die Fehlerrate und die Infrastrukturkosten erhöhen. Die Kosten für einen Fehler können daher quadratisch steigen. Sie können sich nicht nur auf herkömmliche Messwerte für die Ressourceneffizienz wie die FLOP-Auslastung des Modells (MFU) verlassen. Um zu verstehen, warum 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 sich nicht mehr auf herkömmliche Kennzahlen für die Ressourceneffizienz wie die MFU konzentrieren, sondern auf den effektiven Durchsatz. 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 Batch-Inferenz-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 Zugänglichkeitsmodi 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 ermäßigten 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 können Sie die Einschränkungen der anderen Modi für die Verfügbarkeit umgehen:

    • 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 Verfügbarkeitsmodi für Google Cloud-Dienste 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
Vertex AI Training Serverlosen Trainingsjob erstellen Spot-VMs für Trainingsjobs verwenden Reservierungen für Trainingsjobs verwenden Trainingsjobs basierend auf der Ressourcenverfügbarkeit planen
Vertex AI 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:

  • Informationen zum Planen 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 Speichern von Modellprüfpunkten und die Ressourcenunterbrechung 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 Prüfpunkten einrichten. Das SIGTERM-Signal des Hosts löst dann die Erstellung eines Prüfpunkts 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 automatische Prüfpunkte 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 Modell-Checkpoints geladen sind, bevor die Knoten Trainingsjobs fortsetzen können. Verwenden Sie die folgenden Techniken, um die Zeit zu verkürzen, die zum erneuten Laden von Daten und zum 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.

Kompilierungs-Cache 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 Bei umfangreichen Trainings, die einen erheblichen Arbeitsspeicher von Beschleunigern erfordern, 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 Durchsatz des Programms 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 der Auslieferung

Analysieren Sie die Betriebsumgebung, in der Sie das Modell bereitstellen möchten. Der Bereitstellungskontext 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), Labeling 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 Drittanbietermodelle, die Sie in Vertex AI 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 Vertex AI Prompt Optimizer können Sie die Qualität Ihrer Prompts skalierbar verbessern. Sie müssen Systemanweisungen und Prompts nicht manuell neu schreiben. Der Prompt-Optimierer unterstützt die folgenden Ansätze:

  • Zero-Shot-Optimierung: Ein Ansatz mit niedriger Latenz, der einen einzelnen Prompt oder eine Systemanweisung in Echtzeit verbessert.
  • Datengetriebene Optimierung: Ein fortschrittlicher 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 für Endpunkte 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 Vertex AI 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 in Vertex AI oder in den oben beschriebenen Frameworks implementieren. Das verteilte Training ermöglicht Modell- und Datenparallelität, wodurch die Größe des Trainingsdatasets und des Modells erhöht und die Trainingszeit verkürzt werden kann.
  • 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).

Um Ihr Modell für die Inferenz zu optimieren, können Sie die folgenden Ansätze in Betracht ziehen:

  • Quantisierung: Reduzieren 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 Vertex AI Pipelines orchestrieren.
    • Mit Qwix können Sie die Modellleistung stabilisieren und von einer kleineren 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 Compute-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 Inferenzarbeitslasten 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 bei denen hochpräzise Arithmetik verwendet wird, 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 Speicherbandbreite. 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 erheblich großen Arbeitsspeicher und einer erheblich 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 Serving-Plattform 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 Routingmechanismen der Kubernetes Gateway API durch die folgenden Funktionen:
Ressourcen für Vertex AI-Endpunkte freigeben: Sie können mehrere Vertex AI-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 im Leerlauf sind. Implementieren Sie beispielsweise parallele Datenlesevorgänge.
  • Optimieren des XLA-Compilers Passen Sie die Tensor-Dimensionen nach Bedarf an und vermeiden Sie das Auffüllen. 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
  • Häufigkeit der Checkpoints
  • 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 großer 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 zum Auswählen und Optimieren von Speicherdiensten für Ihre KI- und ML-Arbeitslasten finden Sie in der folgenden Dokumentation:

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 Implementierungstechniken
VPC-Netzwerke optimieren
VMs näher beieinander platzieren.
VMs für höhere Netzwerkgeschwindigkeiten konfigurieren

Um Innovationen zu schaffen, 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 und den 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 Tracing-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 in Vertex AI können Sie Vertex ML Metadata oder Dataplex Universal 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 Dataplex Universal Catalog finden Sie unter Herkunft von Pipeline-Artefakten verfolgen.

Standardimplementierung: Vertex AI ML Metadata

Bei der ersten Pipelineausführung oder dem ersten Test in Vertex AI wird ein Standarddienst für Vertex ML Metadata 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 Ausgabeentität, 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 Vertex AI Experiments, Model Registry und von Vertex AI verwaltete Datasets eingebunden.

Autologging ist ein integriertes Feature in Vertex AI Training, mit dem Daten automatisch in Vertex AI Experiments protokolliert werden. Um Tests zur Leistungsoptimierung effizient zu verfolgen, verwenden Sie die integrierten Integrationen zwischen Vertex AI Experiments 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 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: Dataplex Universal Catalog

Dataplex Universal Catalog erkennt Metadaten aus Google Cloud -Ressourcen, einschließlich Vertex AI-Artefakten. Sie können auch eine benutzerdefinierte Datenquelle einbinden.

Dataplex Universal Catalog kann Metadaten aus mehreren Regionen und organisationsweiten Speichern lesen, während Vertex ML Metadata eine projektspezifische Ressource ist. Im Vergleich zu Vertex ML Metadata ist der Einrichtungsaufwand für Dataplex Universal Catalog höher. Dataplex Universal Catalog ist jedoch möglicherweise besser geeignet, wenn Sie eine Integration mit Ihrem gesamten Datenportfolio in Google Cloud und mit organisationsweiten Speichern benötigen.

Dataplex Universal 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. Dataplex Universal Catalog bietet eine spezifische Syntax, mit der Sie Artefakte finden können. Bei Bedarf können Sie Vertex Vertex ML Metadata-Metadatenartefakte Dataplex Universal 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 von Autos in verschiedenen Farben getestet wird, 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 Phase der explorativen Datenanalyse (Exploratory Data Analysis, EDA) eines ML-Projekts identifizieren Sie Probleme mit den Daten, z. B. Datasets mit unausgewogenen Klassen und Bias.

In Produktionssystemen werden Modelle häufig neu trainiert und es werden Experimente 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 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 mit unausgewogenen Daten und Messwerte für Datenverzerrung für Vertex AI.

Modellmerkmale und ‑verhalten verstehen

Sie müssen nicht nur die Verteilung der Daten in den Trainings- und Validierungssätzen 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 Datenerfassung 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 AI bietet je nach Modelltyp und Aufgabe verschiedene Methoden zur Attributzuordnung. 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 wichtigsten Features für eine Vorhersage 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 identifizieren.
  • 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

Autoren:

Weitere Beitragende: