KI und ML: Leistungsoptimierung

Last reviewed 2026-10-29 UTC

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

KI- und ML-Systeme ermöglichen erweiterte Automatisierungs- und Entscheidungsfunktionen für Ihr Unternehmen. 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 basierend auf Ihren Geschäftszielen und technischen Anforderungen optimieren. Der Prozess der Leistungsoptimierung erfordert oft Kompromisse. Beispielsweise kann eine Designentscheidung, die die erforderliche Leistung bietet, zu höheren Kosten führen. Bei den Empfehlungen in diesem Dokument wird die Leistung gegenüber anderen Überlegungen priorisiert.

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

Die Empfehlungen in diesem Dokument sind den folgenden Grundprinzipien zugeordnet:

Leistungsziele und Bewertungsmethoden festlegen

Ihre Geschäftsstrategie und -ziele sind die Grundlage für die Nutzung von KI- und ML-Technologien. Übersetzen Sie Ihre Geschäftsziele in messbare Leistungskennzahlen (KPIs). Beispiele für KPIs sind Gesamteinnahmen, Kosten, Conversion-Rate, Bindungs- 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 Funktionsleistung realistisch sein müssen.

Unrealistische Ziele können zu einer Verschwendung von Ressourcen bei minimalen Leistungssteigerungen führen. 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 erfordern.

Wenn Sie Ziele definieren, sollten Sie zwischen Qualitäts- und Leistungszielen unterscheiden und diese priorisieren:

  • Qualität bezieht sich auf inhärente Merkmale, die den Wert einer Entität bestimmen. So können Sie beurteilen, ob die Entität Ihren Erwartungen und Standards entspricht.
  • Leistung bezieht sich darauf, wie effizient und effektiv eine Entität 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-Entwickler ein standardisiertes und wiederholbares Tracking von Qualitätsmesswerten implementieren können. Die Vorhersageeffizienz eines Modells gibt an, wie gut ein Modell in der Produktion oder bei der Inferenz abschneidet. Verwenden Sie zum Überwachen der Leistung Cloud Monitoring und Model Monitoring auf der Gemini Enterprise Agent Platform. 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.

Das folgende Beispiel für ein KI-basiertes Betrugserkennungssystem zeigt, wie Sie realistische Ziele festlegen und geeignete Leistungsmesswerte ermitteln:

  • Geschäftsziel: Für ein Betrugserkennungssystem ist es ein unrealistisches Geschäftsziel, 100 % der betrügerischen Transaktionen innerhalb einer Nanosekunde bei einem Spitzen-Traffic von 100 Milliarden Transaktionen pro Sekunde 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: Die Betrugserkennung ist ein Klassifizierungsproblem. Sie können die Qualität eines Betrugserkennungssystems anhand von Messwerten wie Recall, F1-Wert und Accuracy messen. Wenn Sie die Systemleistung oder -geschwindigkeit im Blick behalten möchten, können Sie die Inferenzlatenz messen. Die Erkennung 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 überwachen

Überwachen Sie während der Experimente und des Trainings sowie nach der Modellbereitstellung Ihre KPIs und achten Sie auf Abweichungen von den Geschäftszielen. Eine umfassende Monitoring-Strategie hilft Ihnen, wichtige Entscheidungen zur Modellqualität und Ressourcennutzung zu treffen, z. B.:

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

Monitoring während des Experimentierens und Trainings

Das Ziel der Testphase besteht darin, den optimalen Gesamtansatz, die optimale Modellarchitektur und die optimalen Hyperparameter für eine bestimmte Aufgabe zu finden. Durch Experimente können Sie iterativ die Konfiguration ermitteln, die eine optimale Leistung bietet, und herausfinden, wie das Modell trainiert werden sollte. Durch Monitoring können Sie potenzielle Verbesserungsmöglichkeiten effizient erkennen.

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

  • Visualisieren Sie die Messwerte für Modellqualität und -leistung für jeden Test.
  • Visualisieren Sie Modelldiagramme und Messwerte, z. B. Histogramme von Gewichtungen und Verzerrungen.
  • Trainingsdaten visuell darstellen
  • Trainingsalgorithmen auf unterschiedlicher Hardware profilieren.

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

  • Modellqualität: Verwenden Sie TensorBoard, um Testmesswerte wie die Accuracy zu visualisieren und zu verfolgen und um die Modellarchitektur oder Trainingsdaten zu visualisieren. TensorBoard ist eine Open-Source-Suite von Tools, die mit ML-Frameworks wie den folgenden kompatibel ist:

  • Experiment-Tracking: Experimente auf der Gemini Enterprise Agent Platform werden in verwaltete Agent Platform TensorBoard-Instanzen auf Unternehmensniveau eingebunden, um das Experiment-Tracking zu unterstützen. Diese Integration ermöglicht die zuverlässige Speicherung und Freigabe von Logs und Messwerten. Damit mehrere Teams und Einzelpersonen Tests im Blick behalten können, empfehlen wir die Verwendung des Prinzips der geringsten Berechtigung.

  • Effizienz beim Training und bei Experimenten: Die Agent Platform exportiert Messwerte nach Monitoring und erfasst Telemetriedaten und Logs mithilfe eines Beobachtbarkeits-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 das GPU-Monitoring 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 Suite 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.

  • Deep Debugging: Wenn Sie Probleme mit dem Trainingscode oder der Konfiguration eines verwalteten Trainingsjobs der Gemini Enterprise Agent Platform beheben möchten, können Sie den Trainingscontainer mithilfe 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 Model Monitoring auf der Agent Platform 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 Trainings-Datensatz sein oder auf früheren Verteilungen des Produktions-Traffics basieren. Eine Änderung der Bereitstellungsverteilung kann im Vergleich zum Training eine Verringerung der Vorhersageleistung bedeuten.

  • Monitoring-Ziel auswählen: Je nachdem, wie empfindlich ein Anwendungsfall auf Änderungen der Daten reagiert, die dem Modell bereitgestellt werden, können Sie verschiedene Arten von Zielen überwachen: Eingabefeature-Drift, Ausgabedrift und Feature-Attribution. Mit Model Monitoring auf der Agent Platform v2 können Sie Modelle überwachen, die Sie auf einer verwalteten Bereitstellungsplattform wie der Agent Platform und auch auf selbst gehosteten Diensten wie der Google Kubernetes Engine (GKE) bereitstellen. Darüber hinaus können Sie für ein detailliertes Leistungstracking Parameter auf Modellebene statt für einen Endpunkt überwachen.
  • Bereitstellung von generativen KI-Modellen überwachen: Richten Sie einen robusten Monitoring-Stack ein, um die Stabilität zu gewährleisten und die Latenz zu minimieren, insbesondere für LLM-Endpunkte. Gemini-Modelle bieten integrierte Messwerte wie die Zeit bis zum ersten 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

Wenn Sie Batch-Vorhersagen überwachen möchten, können Sie Standardbewertungsjobs im Agent Platform Evaluation Service ausführen. Das Modellmonitoring auf der Agent Platform unterstützt das Monitoring von Batch-Inferenzen. Wenn Sie Batch zum Ausführen Ihrer Bereitstellungsarbeitslast verwenden, können Sie den Ressourcenverbrauch mithilfe der Messwerte im Metrics Explorer überwachen.

Bewertung für Reproduzierbarkeit und Standardisierung automatisieren

Um Modelle von Prototypen in zuverlässige Produktionssysteme zu überführen, benötigen Sie einen standardisierten Bewertungsprozess. So können Sie den Fortschritt über Iterationen hinweg verfolgen, verschiedene Modelle vergleichen, Verzerrungen erkennen und minimieren und dafür sorgen, dass Sie die gesetzlichen Anforderungen erfüllen. Um Reproduzierbarkeit und Skalierbarkeit zu gewährleisten, müssen Sie den Bewertungsprozess automatisieren.

Führen Sie die folgenden Schritte aus, um den Bewertungsprozess für die ML-Leistung zu standardisieren und zu automatisieren:

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

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 Bewertungsmesswerten unterscheiden können, die für Geschäftsziele relevant sind. Beispielsweise kann ein Modell, das für die überwachte Betrugserkennung verwendet wird, den Kreuzentropieverlust für das Training verwenden. Zur Bewertung der Inferenzleistung ist jedoch möglicherweise ein relevanterer Messwert der Recall, der die Abdeckung betrügerischer Transaktionen angibt. Die Agent Platform bietet einen Bewertungsdienst für Messwerte wie Recall, Precision und die Fläche unter der Precision-Recall-Kurve (AuPRC). Weitere Informationen finden Sie unter Modellbewertung in der Agent Platform.

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 LLM-as-a-judge-Strategie oder Dienste für die manuelle Labelerstellung wie Labelbox verwenden.

2. Geeignete Datenquellen und Techniken auswählen

Eine Bewertung ist statistisch signifikant, wenn sie für eine bestimmte Mindestanzahl unterschiedlicher Beispiele ausgeführt wird. Wählen Sie die Datasets und Techniken für Bewertungen aus, indem Sie Ansätze wie die folgenden verwenden:

  • Golden Dataset: Verwenden Sie vertrauenswürdige, konsistente und genaue Datenstichproben, die die Wahrscheinlichkeitsverteilung eines Modells in der Produktion widerspiegeln.
  • LLM-as-a-judge: Bewerten Sie die Ausgabe eines generativen Modells mithilfe eines LLM. Dieser Ansatz ist nur für Aufgaben relevant, bei denen ein LLM ein Modell bewerten kann.
  • Nutzerfeedback: Erfassen Sie direktes Nutzerfeedback im Rahmen des Produktionstraffics, um zukünftige Verbesserungen zu planen.

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

3. Bewertungspipeline standardisieren

Wenn Sie den Bewertungsprozess automatisieren möchten, sollten 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: Ermöglicht Ihnen, alle auf generativer KI basierenden Modelle oder Anwendungen zu bewerten und die Ergebnisse anhand eigener Bewertungskriterien mit Ihrer eigenen Einschätzung zu vergleichen. Dieser Dienst unterstützt Sie auch bei speziellen Aufgaben wie Prompt Engineering, Retrieval-Augmented Generation (RAG) und der Optimierung von KI-Agenten.
  • Automatic Side-by-Side-Tool (AutoSxS) 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 dedizierte, leistungsstarke und interaktive Plattform für Tests. Die Plattform muss die folgenden Funktionen bieten:

  • Iterative Entwicklung ermöglichen, damit Teams schnell, zuverlässig und im großen Maßstab von der Idee zu validierten Ergebnissen gelangen können.
  • Teams können effizient optimale Konfigurationen finden, mit denen sie Trainingsjobs auslösen können.
  • Kontrollierten Zugriff auf relevante Daten, Funktionen und Tools gewähren, um Tests durchzuführen und zu verfolgen.
  • Unterstützung von Reproduzierbarkeit und Data Lineage-Tracking

Daten als Dienst behandeln

Isolieren Sie experimentelle Arbeitslasten von Produktionssystemen und richten Sie mit den folgenden Techniken geeignete Sicherheitskontrollen für Ihre Datenbestände ein:

Technik Beschreibung Vorteile
Ressourcenisolation Isolieren Sie die Ressourcen für verschiedene Umgebungen in separaten Google Cloud -Projekten. Stellen Sie beispielsweise die Ressourcen für Entwicklungs-, Staging- und Produktionsumgebungen in separaten Projekten wie ml-dev, ml-staging und ml-prod bereit. Die Ressourcenisolation trägt dazu bei, dass experimentelle Arbeitslasten keine Ressourcen verbrauchen, die von Produktionssystemen benötigt werden. Wenn Sie beispielsweise ein einzelnes Projekt für Tests und die Produktion verwenden, kann ein Test alle verfügbaren NVIDIA A100-GPUs für das verwaltete Training der Agent Platform verbrauchen. Dies kann zu Unterbrechungen beim erneuten Training eines kritischen Produktionsmodells führen.
Identitäts- und Zugriffssteuerung Wenden Sie die Prinzipien von Zero Trust und geringster Berechtigung an und verwenden Sie arbeitslastspezifische Dienstkonten. Gewähren Sie Zugriff mithilfe vordefinierter IAM-Rollen (Identity and Access Management) wie Agent Platform User (roles/aiplatform.user). Dieser Ansatz hilft, versehentliche oder böswillige Aktionen zu verhindern, die Tests beschädigen könnten.
Netzwerksicherheit Isolieren Sie den Netzwerkverkehr mithilfe von VPC-Netzwerken (Virtual Private Cloud) und erzwingen Sie Sicherheitsbereiche mithilfe von VPC Service Controls. Dieser Ansatz trägt zum Schutz sensibler Daten bei und verhindert, dass sich experimenteller Traffic auf Produktionsdienste auswirkt.
Datenisolation Speichern Sie experimentelle Daten in separaten Cloud Storage-Buckets und BigQuery-Datasets. Durch die Datenisolation wird verhindert, dass Produktionsdaten versehentlich geändert werden. Ohne Datenisolation könnte ein Experiment beispielsweise versehentlich die Featurewerte in einer freigegebenen BigQuery-Tabelle ändern, was zu einer erheblichen Verschlechterung der Modellgenauigkeit in der Produktionsumgebung führen könnte.

Teams mit geeigneten Tools ausstatten

Mit den folgenden Techniken können Sie eine ausgewählte Reihe von Tools einrichten, um den gesamten Lebenszyklus von Experimenten zu beschleunigen – von der Datenexploration bis hin zum Modelltraining und der Analyse:

  • Interaktives Prototyping: Für schnelle Datenexploration, Hypothesentests und Code-Prototyping 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 in einem verwalteten Dienst aus, der verteiltes Training und skalierbare Rechenressourcen wie GPUs und Cloud TPU unterstützt. So lässt sich die Trainingszeit von Tagen auf Stunden reduzieren und es können mehr parallele Tests durchgeführt werden. Weitere Informationen finden Sie unter Spezielle Komponenten für das Training verwenden.
  • Datenbankinternes ML: Trainieren Sie Modelle direkt in BigQuery ML mit SQL. Diese Technik hilft, Datenbewegungen zu vermeiden, und beschleunigt das Experimentieren für Analysten und SQL-orientierte Nutzer.
  • Tests verfolgen: Erstellen Sie einen durchsuchbaren und vergleichbaren Verlauf von Testdaten, indem Sie Parameter, Messwerte und Artefakte für jede Testausführung protokollieren. Weitere Informationen finden Sie unter Daten- und Modellherkunftssystem 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 verwenden Sie Agent Studio auf der Gemini Enterprise Agent Platform. Wenn Sie mit Foundation Models (wie Gemini) experimentieren und ein Modell finden möchten, das für Ihren Anwendungsfall und Ihre Geschäftsziele geeignet ist, verwenden Sie Model Garden.

Standardisierung für Reproduzierbarkeit und Effizienz

Damit Tests Ressourcen effizient verbrauchen und konsistente und vertrauenswürdige Ergebnisse liefern, sollten Sie Tests mit den folgenden Ansätzen standardisieren und automatisieren:

  • Konsistente Umgebungen mit Containern sicherstellen: 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 Maschinen reproduzieren, indem Sie Tests in identischen Umgebungen wiederholen. Die Agent Platform bietet vordefinierte Container für serverloses Training.
  • ML-Workflows als Pipelines automatisieren: Orchestrieren Sie den gesamten 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 in Agent Platform ML Metadata automatisch zu verfolgen.
  • 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 standardisierte Konfigurationen für Sicherheit, Netzwerke und Governance einhält.

Infrastruktur für Training und Bereitstellung 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 hilft, die Leistung zu beschleunigen, 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 erfassen und vorbereiten, die für das Training, die Tests und die Validierung erforderlich sind. Die Daten können aus verschiedenen Quellen stammen und unterschiedliche Datentypen haben. Außerdem müssen Sie relevante Daten in verschiedenen Trainingsläufen wiederverwenden und Features für verschiedene Teams freigeben. Beachten Sie die folgenden Empfehlungen, um die Wiederholbarkeit der Datenerhebungs- und Vorbereitungsphase zu verbessern:

Trainingsausführung

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. Sie müssen auch entscheiden, wie Sie die Trainingsmodelle beibehalten, den Trainingsfortschritt verfolgen, das Modell bewerten und die Ergebnisse präsentieren. Beachten Sie die folgenden Empfehlungen, um die Wiederholbarkeit des Trainings zu verbessern:

Trainingsorchestrierung

Trainingsarbeitslasten mit Agent Platform Pipelines als Phasen einer Pipeline bereitstellen. 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. Beachten Sie die folgenden Empfehlungen, um die Effizienz Ihrer Pipeline zu optimieren:

Spezialisierte Infrastruktur für Vorhersagen verwenden

Automatisieren Sie die wiederholbaren Aufgabenabläufe, um den Aufwand für die Verwaltung der Infrastruktur und der Modellbereitstellungen zu reduzieren. Mit einem dienstorientierten Ansatz können Sie sich auf die Geschwindigkeit und eine schnellere Amortisierung konzentrieren. Beachten Sie die folgenden Empfehlungen:

Automatische Bereitstellung implementieren

  • Nachdem ein Modell trainiert wurde, verwenden Sie die Automatisierung, um das Modell bereitzustellen. Agent Platform Pipelines bietet spezialisierte Komponenten für die Bereitstellung von Modellen auf Agent Platform-Endpunkten. Sie können die automatische Bereitstellung mit Kubeflow-Steuerungsflüssen verwalten.
  • Wenn Sie entscheiden möchten, ob ein Modell basierend auf einer Bewertung anhand eines Validierungs-Datasets bereitgestellt werden soll, können Sie die Bewertungskomponenten der Pipeline verwenden. Sie können die Bereitstellung für die Batch-Inferenz automatisieren, indem Sie spezielle Batch-Vorhersagekomponenten in der Agent Platform verwenden.

Verwaltete Skalierungsfunktionen nutzen

Latenz und Durchsatz auf Agent Platform-Endpunkten optimieren

Ressourcennutzung optimieren

Modellbereitstellung optimieren

  • Um funktionsgefährdende Änderungen zu vermeiden, können Sie eine schrittweise Migration durchführen und A/B-Tests implementieren, indem Sie automatisch mehrere Modelle auf demselben Endpunkt bereitstellen. Die Agent Platform entkoppelt die Endpunktebene von den Modellen, sodass Sie den Traffic zwischen Modellversionen aufteilen können.
  • Wenn Sie ein bereitgestelltes Modell ersetzen möchten, verwenden Sie eine Rolling-Deployment-Strategie.

Leistungsbewertung

Wenn Sie die Bereitstellungsleistung in der Produktion verbessern möchten, sollten Sie die Logs und Inferenzmesswerte für Agent Platform-Endpunkte im Blick behalten. Um das Verhalten von Modellen in der Produktion zu verstehen, benötigen Sie Tools zum Überwachen 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 zur Verbesserung der Leistung treffen, sollten Sie prüfen, ob diese Entscheidungen Ihre Geschäftsanforderungen unterstützen oder verschwenderisch und kontraproduktiv sind. Um die geeignete Infrastruktur, Modelle und Konfigurationen auszuwählen, müssen Sie Leistungsengpässe identifizieren und bewerten, wie sie mit Leistungsmesswerten zusammenhängen. Beispielsweise kann es selbst auf sehr leistungsstarken GPU-Beschleunigern zu Leistungsengpässen bei Trainingsaufgaben kommen. Diese Engpässe können durch Daten-E/A-Probleme in der Speicherebene oder durch Leistungseinschränkungen des Modells verursacht werden.

Fokus auf die ganzheitliche Leistung des ML-Ablaufs

Mit zunehmenden Trainingsanforderungen in Bezug auf Modell- und Clustergröße können die Fehlerrate und die Infrastrukturkosten steigen. Daher können die Kosten für einen Ausfall quadratisch steigen. Sie können sich nicht ausschließlich auf herkömmliche Messwerte zur 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ärtspropagierung verwendet.
  4. Unterbrechung: Der Trainingsprozess wird während der Erstellung von Modellprüfpunkten oder aufgrund von Worker-Knoten-Preemptions unterbrochen.

Nach jeder Unterbrechung wird der vorherige Ablauf wiederholt.

Der Schritt zur Trainingsausführung macht nur einen Bruchteil des Lebenszyklus eines ML-Jobs aus. Daher gibt die Auslastung der Worker-Knoten für den Schritt der Trainingsausführung 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, das Training nach Unterbrechungen fortzusetzen.

Goodput-Messwerte übernehmen und verfolgen

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

Der Schwerpunkt 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.

Der Goodput bietet Ihnen anhand der folgenden Messwerte einen detaillierten Einblick in potenzielle Effizienzverluste:

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

Planungs-Goodput optimieren

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

  • Batch-Inferenzarbeitslasten können einige Unterbrechungen und Verzögerungen bei der Ressourcenverfügbarkeit tolerieren.
  • Streaming-Inferenzarbeitslasten erfordern eine zustandslose Infrastruktur.
  • Trainingsarbeitslasten erfordern längerfristige Infrastrukturzusicherungen.
Geeignete Verfügbarkeitsmodi auswählen

Beim Cloud-Computing ist die Verfügbarkeit die Möglichkeit, Ressourcen bei Bedarf bereitzustellen. 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 hängt von der Verfügbarkeit von Ressourcen wie GPUs ab. 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.Google Cloud kann Spot-VMs jedoch jederzeit vorzeitig beenden. Wir empfehlen, Spot-VMs für zustandslose Arbeitslasten zu verwenden, die ordnungsgemäß fehlschlagen können, wenn die Host-VMs vorzeitig beendet werden.
  • Reservierungen: Sie reservieren Kapazität als Pool von VMs. Reservierungen sind ideal für Arbeitslasten, die eine Kapazitätsgarantie erfordern. Verwenden Sie Reservierungen, um den Planungs-Goodput zu maximieren, indem Sie dafür sorgen, dass Ressourcen bei Bedarf verfügbar sind.
  • Dynamic Workload Scheduler: Dieser Bereitstellungsmechanismus stellt Anfragen für GPU-basierte VMs in einen dedizierten Pool. Mit dem Dynamic Workload Scheduler können Sie die Einschränkungen der anderen Verfügbarkeitsmodi vermeiden:

    • Situationen, in denen im On-Demand-Modus keine Bestände mehr vorhanden sind.
    • Zustandslosigkeit und Risiko des vorzeitigen Beendens von Spot-VMs.
    • Kosten- und Verfügbarkeitsauswirkungen von Reservierungen.

In der folgenden Tabelle sind die Beschaffungsmodi für Google Cloud-Dienste zusammengefasst und Links zur relevanten Dokumentation aufgeführt:

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-, Cloud TPU- und H4D-Nutzung mit dem Bereitstellungsmodus „Flex-Start“
Batch Job erstellen und ausführen Batchjob mit Spot-VMs Ressourcenverfügbarkeit mit VM-Reservierungen sicherstellen GPUs und Flex-Start-VMs verwenden
Verwaltetes Training auf der 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 Batch-Inferenzen und Online-Inferenzen von benutzerdefinierten Modellen abrufen. Spot-VMs für die Inferenz verwenden Reservierungen für die Online-Inferenz verwenden Flex-Start-VMs für die Inferenz verwenden
Wartungsereignisse planen

Sie können den Scheduling-Goodput verbessern, indem Sie Wartungsarbeiten und Upgrades an der Infrastruktur antizipieren und einplanen.

  • Mit der 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.

  • Die 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 steuern möchten, wie eine Instanz reagiert, wenn der zugrunde liegende Host gewartet werden muss oder einen Fehler aufweist, können Sie für die Instanz eine Hostwartungsrichtlinie festlegen.
  • Informationen zur Planung von Hostereignissen im Zusammenhang mit großen Trainingsclustern in AI Hypercomputer finden Sie unter Hostereignisse auf Compute-Instanzen verwalten.

Laufzeit-Goodput optimieren

Der Modelltrainingsprozess wird häufig durch Ereignisse wie Modellprüfpunkte und 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, sobald die erforderliche Infrastruktur bereit ist und nach jeder Unterbrechung.

Während des Modelltrainings verwenden KI-Forscher Checkpointing, um den Fortschritt zu verfolgen und den Lernverlust aufgrund von Ressourcen-Preemptions zu minimieren. Größere Modelle führen zu längeren Unterbrechungen beim Prüfpunkt, was die Gesamteffizienz weiter beeinträchtigt. Nach Unterbrechungen muss die Trainingsanwendung auf jedem Knoten im Cluster neu gestartet werden. Diese Neustarts können einige Zeit dauern, da die erforderlichen Artefakte neu geladen werden müssen.

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

Technik Beschreibung
Implementieren Sie automatische Prüfpunkte.

Durch häufiges Speichern von Prüfpunkten 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 Prüfpunkterstellung einrichten. Dabei wird durch das SIGTERM-Signal des Hosts die Erstellung eines Prüfpunkts ausgelöst. Bei diesem Ansatz werden Prüfpunktunterbrechungen auf den Zeitraum beschränkt, in dem der Host gewartet werden muss. Beachten Sie, dass einige Hardwarefehler möglicherweise keine SIGTERM-Signale auslösen. Daher müssen Sie ein geeignetes Gleichgewicht zwischen automatischem Checkpointing und SIGTERM-Ereignissen finden.

Sie können die automatische Prüfpunkterstellung mit den folgenden Techniken 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 Knoten Trainingsjobs fortsetzen können. Mit den folgenden Techniken können Sie die Zeit reduzieren, die zum erneuten Laden von Daten und zum Fortsetzen des Trainings erforderlich ist:

Kompilierungs-Cache verwenden. Wenn für das Training ein kompilierungsbasierter Stack erforderlich ist, prüfen Sie, ob Sie einen Kompilierungs-Cache verwenden können. Wenn Sie einen Kompilierungs-Cache verwenden, wird der Berechnungsgraph nach jeder Trainingsunterbrechung nicht neu kompiliert. Die daraus resultierenden Zeit- und Kosteneinsparungen sind besonders vorteilhaft, wenn Sie Cloud TPU verwenden. Mit JAX können Sie den Kompilierungscache in einem Cloud Storage-Bucket speichern und die im Cache gespeicherten Daten im Falle von Unterbrechungen verwenden.

Programm-Goodput optimieren

Der Programm-Goodput stellt die maximale Ressourcenauslastung während des Trainings dar. Dies ist die herkömmliche Methode, um die Trainings- und Bereitstellungseffizienz zu messen. Um den Programmdurchsatz zu verbessern, benötigen Sie eine optimierte Verteilungsstrategie, eine effiziente Überschneidung von Computing und Kommunikation, einen optimierten Speicherzugriff und effiziente Pipelines.

Verwenden Sie die folgenden Strategien, um den Goodput des Programms zu optimieren:

Strategie Beschreibung
Verwenden Sie Anpassungsoptionen auf Framework-Ebene. Frameworks oder Compiler wie Accelerated Linear Algebra (XLA) stellen viele wichtige Komponenten des Programm-Goodputs bereit. Wenn Sie die Leistung weiter optimieren möchten, können Sie grundlegende Komponenten des Berechnungsgraphen anpassen. Pallas unterstützt beispielsweise benutzerdefinierte Kernel für Cloud TPU und GPUs.
Arbeitsspeicher auf den Host-DRAM auslagern. Für umfangreiches Training, das einen erheblichen Arbeitsspeicher von Beschleunigern erfordert, können Sie einen Teil der Arbeitsspeichernutzung auf den Host-DRAM auslagern. Mit JAX und XLA können Sie beispielsweise Modellaktivierungen vom 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.
Nutzen Sie die Quantisierung während des Trainings.

Sie können die Trainingseffizienz und den Programmdurchsatz verbessern, indem Sie die Modellquantisierung während des Trainings nutzen. Diese Strategie reduziert die Genauigkeit der Gradienten oder Gewichtungen während bestimmter Schritte des Trainings. 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 Parallelisierungsstrategien auf Modellebene verwenden.

Informationen zur Modellparallelität finden Sie hier:

Für die Datenparallelität können Sie Tools wie die folgenden verwenden:

Fokus auf arbeitslastspezifische Anforderungen

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

Arbeitslastspezifische Anforderungen ermitteln

Bewerten Sie die Anforderungen und Einschränkungen Ihrer Arbeitslasten in den folgenden Bereichen:

Gebiet Beschreibung
Anforderungen an Aufgaben und Qualität

Definieren Sie die Hauptaufgabe der Arbeitslast und die Leistungsbaseline. Beantworten Sie Fragen wie die folgenden:

  • Geht es bei der Aufgabe um Regression, Klassifizierung oder Generierung?
  • Was ist die akzeptable Mindestqualität, z. B. Accuracy, Precision oder Recall?
Kontext der Bereitstellung

Analysieren Sie die Betriebsumgebung, in der Sie das Modell bereitstellen möchten. Der Bereitstellungskontext hat oft erhebliche Auswirkungen auf Designentscheidungen. Berücksichtigen Sie die folgenden Faktoren:

  • Latenz: Benötigt das System synchrone Vorhersagen in Echtzeit oder ist ein asynchroner Batchverarbeitungsprozess akzeptabel?
  • Konnektivität: Müssen Sie das Modell offline oder auf einem Edge-Gerät ausführen?
  • Volumen: Wie hoch sind die erwarteten durchschnittlichen und maximalen Werte für die Vorhersagelast? Die Laststufen beeinflussen Ihre Entscheidungen in Bezug auf Skalierungsstrategien und Infrastruktur.
Teamfähigkeiten und Wirtschaftlichkeit Bewerten Sie den Geschäftswert des Kaufs der Lösung im Vergleich zu den Kosten und der Komplexität der Erstellung und Wartung. Finden Sie heraus, ob Ihr Team über die speziellen Fähigkeiten verfügt, die für die Entwicklung benutzerdefinierter Modelle erforderlich sind, oder ob ein verwalteter Dienst schneller zu Ergebnissen führen könnte.

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

  • Wählen Sie für modalitätsspezifische Aufgaben wie optische Zeichenerkennung (OCR), Labeling und Inhaltsmoderation ML APIs wie die folgenden aus:

  • Für generative KI-Anwendungen können Sie Google-Modelle wie Gemini, Imagen und Veo verwenden.

    Entdecken Sie Model Garden und wählen Sie aus einer kuratierten Sammlung von Foundation Models und aufgabenspezifischen Google-Modellen aus. Model Garden bietet auch offene Modelle wie Gemma und Drittanbietermodelle, die Sie in der Agent Platform ausführen oder in Laufzeiten 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 als kleinere Modelle bieten.

Qualität durch bessere Prompts verbessern

Mit dem Prompt-Optimierer der Agent Platform können Sie die Qualität Ihrer Prompts im großen Maßstab verbessern. Sie müssen Systemanweisungen und Prompts nicht manuell umschreiben. 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.
  • Datengestützte Optimierung: Ein fortschrittlicher Ansatz, bei dem Prompts verbessert werden, indem die Antworten eines Modells auf Beispiel-Prompts anhand bestimmter Bewertungsmesswerte bewertet werden.

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

Leistung für ML- und generative KI-Endpunkte verbessern

Beachten Sie die folgenden Empfehlungen, um die Latenz oder den Durchsatz (Tokens pro Sekunde) für ML- und generative KI-Endpunkte zu verbessern:

Low-Code-Lösungen und Abstimmung verwenden

Wenn vortrainierte Modelle Ihre Anforderungen nicht erfüllen, können Sie ihre Leistung für bestimmte Domains 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 technischem Aufwand verbessern lassen. Mit AutoML können Sie Modelle erstellen, die in mehreren Dimensionen optimiert sind: Architektur, Leistung und Trainingsphase (durch Prüfpunkte).
  • Abstimmung hilft Ihnen, eine höhere Qualität, eine stabilere Generierung und eine geringere Latenz mit kürzeren Prompts und ohne viele Daten zu erreichen. Wir empfehlen, die Abstimmung mit den Standardwerten für Hyperparameter zu beginnen. Weitere Informationen finden Sie unter Überwachte Feinabstimmung für Gemini.

Selbstverwaltetes Training 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 Modell, Framework und Ressourcen, die Sie verwenden, fortgeschrittene Kenntnisse und zusätzliche Zeit.

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 in Google Cloudausführen:

    • Mit Ray on Gemini Enterprise Agent Platform können Sie das verteilte Trainings-Framework von Ray in Compute Engine oder GKE verwenden 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.
  • Trainingsarbeitslasten auf einem Compute-Cluster bereitstellen, den Sie mit dem Open-Source-Cluster Toolkit bereitstellen. Verwenden Sie YAML-basierte Blueprints, um leistungsoptimierte Cluster effizient bereitzustellen. Verwalten Sie die Cluster mit Schedulern wie Slurm und GKE.

  • Trainieren Sie Standardmodellarchitekturen mit GPU-optimierten Rezepten.

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

  • Verteiltes Training auf der Agent Platform oder mit den zuvor beschriebenen Frameworks implementieren. Verteiltes Training ermöglicht Modellparallelität und Datenparallelität, was dazu beitragen kann, die Größe des Trainings-Datasets und des Modells zu erhöhen und die Trainingszeit zu verkürzen.
  • Führen Sie für ein effizientes Modelltraining und zum Erkunden verschiedener Leistungskonfigurationen in geeigneten Intervallen Prüfpunkte aus. 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: Reduzieren Sie die Modellgröße, indem Sie die Parameter in einem Format mit geringerer Genauigkeit darstellen. Dieser Ansatz hilft, den Speicherverbrauch und die Latenz zu reduzieren. Eine Quantisierung nach dem Training kann jedoch die Modellqualität verändern. Beispielsweise kann die Quantisierung nach dem Training zu einer Verringerung der Genauigkeit führen.

    • Die Quantisierung nach dem Training (PTQ) ist eine wiederholbare Aufgabe. Wichtige ML-Frameworks wie PyTorch und TensorFlow unterstützen PTQ.
    • Sie können PTQ mit einer Pipeline auf Agent Platform Pipelines orchestrieren.
    • Wenn Sie die Modellleistung stabilisieren und von einer Reduzierung der Modellgröße profitieren möchten, können Sie Qwix verwenden.
  • 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 Wahl der Computing-Plattform kann erhebliche Auswirkungen auf die Trainingseffizienz eines Modells haben.

  • Deep-Learning-Modelle funktionieren gut auf GPUs und Cloud TPU, da solche Modelle große Mengen an Arbeitsspeicher und parallele Matrixberechnungen erfordern. Weitere Informationen zu Arbeitslasten, die für CPUs, GPUs und Cloud TPU geeignet sind, finden Sie unter Wann sollte Cloud TPU verwendet werden?.
  • Computing-optimierte VMs sind ideal für HPC-Arbeitslasten.

Training und Bereitstellung auf GPUs optimieren

Beachten 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, wählen Sie Spezifikationen für den Arbeitsspeicher basierend auf den folgenden Faktoren aus:
  • 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.
  • Trainings-Batchgröße: Bei größeren Batches werden mehr Aktivierungen gespeichert und der Arbeitsspeicherbedarf ist höher.
  • Datentyp: Arbeitslasten, die hochwertige Bilder verarbeiten oder hochpräzise Arithmetik verwenden, erfordern Maschinentypen mit größeren Arbeitsspeicherspezifikationen.
Anforderungen an Kern- und Speicherbandbreite 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 das Training und die Bereitstellung sind möglicherweise unterschiedliche GPU-Maschinentypen erforderlich.

  • Trainingsjobs benötigen eine oder mehrere GPUs oder sogar mehrere Knoten mit erheblichem Arbeitsspeicher und großer Bandbreite.
  • Inferenzarbeitslasten erfordern relativ wenig Arbeitsspeicher und weniger leistungsstarke GPUs.

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

GPU-Freigabe in GKE nutzen

In einigen Fällen kann es ineffizient sein, eine vollständige GPU einem einzelnen Container zuzuweisen. Um diese Ineffizienz zu beheben, unterstützt GKE die folgenden GPU-Freigabestrategien:

Für eine optimale Ressourcennutzung empfehlen wir, eine geeignete Kombination dieser Strategien zu verwenden. Wenn Sie beispielsweise eine große H100-GPU mithilfe der GPU-Zeitfreigabe und der GPU-Strategien mit mehreren Instanzen virtualisieren, kann die Bereitstellungsplattform je nach Traffic hoch- und herunterskaliert 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 das GKE Inference Gateway für optimiertes Routing und Load Balancing verwenden. Das Inference Gateway erweitert die Routingmechanismen der Kubernetes Gateway API um die 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 Cloud TPU optimieren

Cloud TPU bietet Google-Chips, mit denen sich umfangreiche Herausforderungen für ML-Algorithmen lösen lassen. Diese Chips bieten eine optimale Leistung für KI-Trainings- und Inferenzarbeitslasten. Im Vergleich zu GPUs bietet die Cloud TPU eine höhere Effizienz für das Training und die Bereitstellung von Deep Learning. Informationen zu den Anwendungsfällen, die für Cloud TPU geeignet sind, finden Sie unter Wann Cloud TPU verwendet werden sollte. Cloud TPU ist mit ML-Frameworks wie TensorFlow, PyTorch und JAX kompatibel.

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

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

Training auf Cloud TPU und Bereitstellung auf GPUs optimieren

Cloud TPU unterstützt effizientes Training. GPUs bieten Vielseitigkeit und eine breitere Verfügbarkeit für Inferenzarbeitslasten. Wenn Sie die Stärken von Cloud TPU und GPUs kombinieren möchten, können Sie Modelle auf Cloud TPU 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 Cloud TPU- und GPU-Maschinentypen verfügbar sind, finden Sie unter Cloud TPU-Regionen und -Zonen und GPU-Standorte.

Speicherebene optimieren

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

  • Daten werden geladen und verarbeitet.
  • Prüfpunkte für das Modell während des Trainings erstellen.
  • Binärdateien werden neu geladen, um das Training nach Knoten-Preemptions fortzusetzen.
  • Modell effizient laden, um Inferenzen in großem Umfang zu verarbeiten.

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

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

Wenn sich Ihre Trainingsdaten in Cloud Storage befinden, können Sie die Latenz beim Laden der Daten reduzieren, indem Sie das Datei-Caching in Cloud Storage FUSE verwenden. Mit Cloud Storage FUSE können Sie einen Cloud Storage-Bucket auf Compute-Knoten 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 für Lese- und Schreibvorgänge. 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 Persistent Disk-Typen. Mit Google Cloud Hyperdisk ML können Sie den erforderlichen Durchsatz und die IOPS basierend auf den Trainingsanforderungen bereitstellen. Wenn Sie die Laufwerksleistung optimieren möchten, passen Sie zuerst die Größe der Laufwerke an und ändern Sie dann den Maschinentyp. Weitere Informationen finden Sie unter Leistung von Persistent Disk optimieren. Zum Lasttest der Lese-/Schreibleistung und Latenz auf der Speicherebene können Sie Tools wie Flexible I/O Tester (FIO) verwenden.

Weitere Informationen zum Auswählen und Optimieren von Speicherdiensten für Ihre KI- und ML-Arbeitslasten finden Sie unter Übersicht über Speicherdienste für KI- und ML-Arbeitslasten in AI Hypercomputer.

Netzwerkschicht optimieren

Um die Leistung von KI- und ML-Arbeitslasten zu optimieren, konfigurieren Sie Ihre VPC-Netzwerke so, dass sie eine ausreichende 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 der Herkunft von ML-Assets, Bereitstellungen, Modellausgaben und den entsprechenden Konfigurationen und Eingaben, die die Ausgaben erzeugt haben.

Daten- und Modellherkunftssystem 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 zur Erstellung des Modells verwendet wurden. Wenn Sie ein Modell skalieren, wird ein solches Tracing schwierig. Sie benötigen ein Herkunftssystem, das den Tracing-Prozess automatisiert und einen Datensatz erstellt, der klar ist und für jedes Experiment abgefragt werden kann. Mit diesem System können Ihre Teams die Entscheidungen, die zu den leistungsstärksten Modellen führen, effizient identifizieren und reproduzieren.

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

Standardimplementierung: Agent Platform ML Metadata

Bei der ersten Pipelineausführung oder dem ersten Experiment in der Agent Platform wird ein Standard-ML-Metadatendienst der Agent Platform erstellt. Die Parameter und Artefaktmetadaten, die die Pipeline nutzt und generiert, werden automatisch in einem Agent Platform 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 Agent Platform ML Metadata alle Eingabe- und Ausgabeartefakte einer Pipelineausführung. Diese Artefakte werden in Experimente auf der Agent Platform, Model Registry und von der Agent Platform verwaltete Datasets eingebunden.

Autologging ist eine integrierte Funktion im verwalteten Training der Agent Platform, mit der Daten automatisch in Experimenten auf der Agent Platform protokolliert werden. Wenn Sie Tests zur Leistungsoptimierung effizient verfolgen möchten, verwenden Sie die integrierten Einbindungen zwischen Tests auf der Agent Platform und dem zugehörigen ML-Metadatendienst der Agent Platform.

Agent Platform 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 Registry-Link eines Modells und zu dessen Dataset oder Bewertung für einen bestimmten Testlauf abrufen. Diese Metadaten können dazu beitragen, die Auswahl von Optionen zur Leistungsoptimierung zu beschleunigen. Sie können beispielsweise Pipelineausführungen vergleichen, Modelle vergleichen und Testläufe vergleichen. Weitere Informationen, einschließlich Beispielabfragen, finden Sie unter 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 aus mehreren Regionen und organisationsweiten Speichern lesen, während Agent Platform ML Metadata eine projektspezifische Ressource ist. Im Vergleich zu Agent Platform ML Metadata erfordert Knowledge Catalog mehr Einrichtungsaufwand. Knowledge Catalog kann jedoch geeignet sein, wenn Sie eine Integration in Ihr breiteres Datenportfolio in Google Cloud und in organisationsweite Speicher benötigen.

Knowledge Catalog erkennt und erfasst Metadaten für Projekte, in denen die Data Lineage API aktiviert ist. Die Metadaten im Katalog werden mithilfe eines Datenmodells organisiert, das aus Projekten, Eintragsgruppen, Einträgen und Aspekten besteht. Knowledge Catalog bietet eine spezifische Syntax, mit der Sie Artefakte finden können. Bei Bedarf können Sie 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 in mathematischen Funktionen als Parameter codiert. Es kann schwierig sein, genau zu verstehen, warum ein Modell eine bestimmte Leistung erbringt. Dieses Wissen ist jedoch für die Leistungsoptimierung entscheidend.

Stellen Sie sich beispielsweise ein Bildklassifizierungsmodell vor, bei dem die Trainingsdaten nur Bilder von roten Autos enthalten. Das Modell lernt möglicherweise, das Label „Auto“ anhand der Farbe des Objekts zu identifizieren, anstatt anhand der räumlichen und Formattribute des Objekts. Wenn das Modell mit Bildern getestet wird, die Autos in verschiedenen Farben zeigen, kann sich die Leistung des Modells verschlechtern. In den folgenden Abschnitten werden Tools beschrieben, mit denen Sie solche Probleme identifizieren und diagnostizieren können.

Datenverzerrungen erkennen

In der Phase der explorativen Datenanalyse (EDA) eines ML-Projekts identifizieren Sie Probleme mit den Daten, z. B. Datasets mit unausgewogenen Klassen und Verzerrungen.

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

  • Automatisierung: Wenn ein Trainings-Dataset größer wird, muss der EDA-Prozess automatisch im Hintergrund ausgeführt werden.
  • Breite Abdeckung: Wenn Sie neue Features hinzufügen, muss die EDA Informationen zu den neuen Features liefern.

Viele EDA-Aufgaben sind spezifisch für den Datentyp und den Geschäftskontext. Wenn Sie den EDA-Prozess automatisieren möchten, verwenden Sie BigQuery oder einen verwalteten Datenverarbeitungsdienst wie Dataflow. Weitere Informationen finden Sie unter Klassifizierung bei unausgewogenen Daten und Messwerte für Datenverzerrung für die Agent Platform.

Modelleigenschaften und -verhalten verstehen

Neben der Verteilung der Daten in den Trainings- und Validierungs-Datasets und deren Verzerrungen müssen Sie auch die Merkmale und das Verhalten eines Modells zum Zeitpunkt der Vorhersage kennen. Verwenden Sie die folgenden Tools, um das Modellverhalten zu verstehen:

Tool Beschreibung Zwecke
Beispielgestützte Erklärungen Sie können beispielbasierte Erklärungen oder die Suche nach dem nächsten Nachbarn 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 liefern.
  • Identifizieren und beheben Sie Lücken in den Trainingsdaten, indem Sie ähnliche Beispiele für eine falsche Vorhersage finden.
  • Eingaben klassifizieren, für die das Modell ursprünglich nicht trainiert wurde, indem Sie Nachbarn aus einem Referenzsatz verwenden.
  • Anomalien identifizieren, indem Eingaben gefunden werden, die sich erheblich von allen bekannten Trainingsbeispielen unterscheiden.
  • Die Datenerhebung wird effizienter, wenn Sie mehrdeutige Fälle identifizieren, z. B. wenn Nachbarn unterschiedliche Labels haben. Solche Fälle für die manuelle Überprüfung priorisieren.
Featurebasierte Erklärungen

Bei Vorhersagen, die auf tabellarischen Daten oder Bildern basieren, zeigen featurebasierte Erläuterungen, wie stark sich jedes Feature im Vergleich zu einer Baseline auf eine Vorhersage auswirkt.

Erklärbarkeitstechniken und tabellarische Erklärungen bieten Methoden zur Feature-Attribution, die vom Modelltyp und der Aufgabe abhängen. 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.

  • Verzerrungen identifizieren, die bei einem Validierungsschritt möglicherweise übersehen werden.
  • Optimieren Sie die Leistung, indem Sie die Features identifizieren, die für eine Vorhersage am wichtigsten sind. Um die Qualität und Leistung eines Modells zu verbessern, können ML-Entwickler Features gezielt 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 – Webdemos.
  • Fehler beheben und die Ursache für falsche Vorhersagen finden.
  • Untersuchen Sie, wie ein Modell in verschiedenen Teilmengen von Daten abschneidet, indem Sie Verzerrungen durch eine Fairness-Analyse identifizieren.
  • Das Verhalten eines Modells verstehen, 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 Grundwahrheits-Baseline erforderlich sind.

Beitragende

Autor*innen:

Weitere Beitragende: