Dieses Dokument im Well-Architected Framework: AI & ML Perspective bietet einen Überblick über die Prinzipien und Empfehlungen zum Entwerfen und Betreiben zuverlässiger KI- und ML-Systeme auf Google Cloud. Es wird erläutert, wie Sie erweiterte Zuverlässigkeitsverfahren und Beobachtbarkeit in Ihre Architekturpläne integrieren. Die Empfehlungen in diesem Dokument entsprechen der Zuverlässigkeitssäule des Google Cloud Well-Architected Framework.
In der sich schnell entwickelnden KI- und ML-Landschaft sind zuverlässige Systeme unerlässlich, um die Kundenzufriedenheit zu gewährleisten und Geschäftsziele zu erreichen. Sie benötigen KI- und ML-Systeme, die robust, zuverlässig und anpassungsfähig sind, um den besonderen Anforderungen von prädiktivem ML und generativer KI gerecht zu werden. Um die Komplexität von MLOps zu bewältigen – von der Entwicklung über die Bereitstellung bis hin zur kontinuierlichen Verbesserung –, müssen Sie einen zuverlässigkeitsorientierten Ansatz verfolgen. Google Cloud bietet eine speziell entwickelte KI-Infrastruktur, die auf den Prinzipien von Site Reliability Engineering (SRE) basiert und eine leistungsstarke Grundlage für zuverlässige KI- und ML-Systeme bietet.
Sorgen Sie dafür, dass die Infrastruktur skalierbar und hochverfügbar ist.
Wenn Sie Ihre Anwendungen auf Skalierbarkeit und Verfügbarkeit auslegen, können sie unterschiedliche Anforderungen ohne Dienstunterbrechungen oder Leistungseinbußen bewältigen. Das bedeutet, dass Ihre KI-Dienste Nutzern auch bei Infrastrukturausfällen und bei sehr hohem Traffic weiterhin zur Verfügung stehen.
Beachten Sie die folgenden Empfehlungen:
- Entwerfen Sie Ihre KI-Systeme mit automatischen und dynamischen Skalierungsfunktionen, um Schwankungen bei der Nachfrage zu bewältigen. So wird eine optimale Leistung gewährleistet, auch bei Trafficspitzen.
- Ressourcen proaktiv verwalten und zukünftige Anforderungen durch Lasttests und Leistungsüberwachung antizipieren. Verwenden Sie Verlaufsdaten und Vorhersageanalysen, um fundierte Entscheidungen zur Ressourcenzuweisung zu treffen.
- Entwerfen Sie für Hochverfügbarkeit und Fehlertoleranz, indem Sie die Archetypen für die Bereitstellung in mehreren Zonen und Regionen in Google Cloud verwenden und Redundanz und Replikation implementieren.
- Eingehenden Traffic auf mehrere Instanzen Ihrer KI- und ML-Dienste und ‑Endpunkte verteilen Load-Balancing trägt dazu bei, dass keine einzelne Instanz überlastet wird, und sorgt für eine gleichbleibende Leistung und Verfügbarkeit.
Modulare und lose gekoppelte Architektur verwenden
Um Ihre KI-Systeme widerstandsfähiger gegen Fehler in einzelnen Komponenten zu machen, sollten Sie eine modulare Architektur verwenden. Entwerfen Sie beispielsweise die Datenverarbeitungs- und Datenvalidierungskomponenten als separate Module. Wenn eine bestimmte Komponente ausfällt, trägt die modulare Architektur dazu bei, Ausfallzeiten zu minimieren. Außerdem können Ihre Teams schneller Korrekturen entwickeln und bereitstellen.
Beachten Sie die folgenden Empfehlungen:
- Teilen Sie Ihr KI- und ML-System in kleine, in sich geschlossene Module oder Komponenten auf. Dieser Ansatz fördert die Wiederverwendbarkeit von Code, vereinfacht das Testen und die Wartung und ermöglicht es Ihnen, einzelne Komponenten unabhängig voneinander zu entwickeln und bereitzustellen.
- Entwerfen Sie die lose gekoppelten Module mit klar definierten Schnittstellen. Dieser Ansatz minimiert Abhängigkeiten und ermöglicht es Ihnen, unabhängige Updates und Änderungen vorzunehmen, ohne das gesamte System zu beeinträchtigen.
- Planen Sie Graceful Degradation ein. Wenn eine Komponente ausfällt, müssen die anderen Teile des Systems weiterhin ein angemessenes Maß an Funktionalität bieten.
- Verwenden Sie APIs, um klare Grenzen zwischen Modulen zu schaffen und die Implementierungsdetails auf Modulebene zu verbergen. So können Sie einzelne Komponenten aktualisieren oder ersetzen, ohne dass sich dies auf die Interaktionen mit anderen Teilen des Systems auswirkt.
Automatisierte MLOps-Plattform erstellen
Mit einer automatisierten MLOps-Plattform sind die Phasen und Ausgaben Ihres Modelllebenszyklus zuverlässiger. Durch die Förderung von Konsistenz, loser Kopplung und Modularität sowie durch die Darstellung von Vorgängen und Infrastruktur als Code werden anfällige manuelle Schritte vermieden und KI- und ML-Systeme, die robuster und zuverlässiger sind, können gewartet werden.
Beachten Sie die folgenden Empfehlungen:
- Automatisieren Sie den Lebenszyklus der Modellentwicklung, von der Datenvorbereitung und ‑validierung bis hin zum Modelltraining, zur ‑bewertung, ‑bereitstellung und zum ‑monitoring.
- Infrastruktur als Code (IaC) verwalten Dieser Ansatz ermöglicht eine effiziente Versionskontrolle, schnelle Rollbacks bei Bedarf und wiederholbare Bereitstellungen.
- Prüfen Sie, ob sich Ihre Modelle mit relevanten Daten wie erwartet verhalten. Automatisieren Sie die Leistungsüberwachung Ihrer Modelle und richten Sie entsprechende Benachrichtigungen für unerwartete Ausgaben ein.
- Validieren Sie die Ein- und Ausgaben Ihrer KI- und ML-Pipelines. Beispiele: Daten, Konfigurationen, Befehlsargumente, Dateien und Vorhersagen validieren. Benachrichtigungen für unerwartete oder unzulässige Werte konfigurieren
- Verwenden Sie eine verwaltete Versionsverwaltungsstrategie für Ihre Modellendpunkte. Diese Art von Strategie ermöglicht inkrementelle Releases und eine schnelle Wiederherstellung im Falle von Problemen.
Vertrauen und Kontrolle durch Data und Model Governance aufrechterhalten
Die Zuverlässigkeit von KI- und ML-Systemen hängt von den Vertrauens- und Governance-Funktionen Ihrer Daten und Modelle ab. KI-Ausgaben können Erwartungen auf stille Weise nicht erfüllen. Die Ausgaben können beispielsweise formal konsistent, aber trotzdem falsch oder unerwünscht sein. Durch die Implementierung von Rückverfolgbarkeit und einer starken Governance können Sie sicherstellen, dass die Ausgaben zuverlässig und vertrauenswürdig sind.
Beachten Sie die folgenden Empfehlungen:
- Verwenden Sie einen Daten- und Modellkatalog, um Ihre Assets effektiv zu verfolgen und zu verwalten. Um die Rückverfolgung und Prüfungen zu erleichtern, sollten Sie während des gesamten Lebenszyklus einen umfassenden Datensatz mit Daten- und Modellversionen führen.
- Implementieren Sie strenge Zugriffssteuerungen und Prüfpfade, um sensible Daten und Modelle zu schützen.
- Das kritische Problem von Bias in KI, insbesondere in Anwendungen für generative KI, wird behandelt. Um Vertrauen aufzubauen, sollten Sie für Transparenz und Nachvollziehbarkeit bei den Modellausgaben sorgen.
- Automatisieren Sie die Generierung von Feature-Statistiken und implementieren Sie die Anomalieerkennung, um Datenprobleme proaktiv zu erkennen. Um die Zuverlässigkeit des Modells zu gewährleisten, müssen Sie Mechanismen einrichten, um die Auswirkungen von Änderungen in den Datenverteilungen zu erkennen und zu minimieren.
Ganzheitliche Verfahren für die Beobachtbarkeit und Zuverlässigkeit von KI und ML implementieren
Um Ihre KI-Vorgänge kontinuierlich zu verbessern, müssen Sie aussagekräftige Zuverlässigkeitsziele definieren und den Fortschritt messen. Die Beobachtbarkeit ist ein grundlegendes Element zuverlässiger Systeme. Mit der Beobachtbarkeit können Sie laufende Vorgänge und kritische Ereignisse verwalten. Eine gut implementierte Beobachtbarkeit hilft Ihnen, einen zuverlässigen Dienst für Ihre Nutzer zu entwickeln und zu warten.
Beachten Sie die folgenden Empfehlungen:
- Infrastrukturmesswerte für Prozessoren (CPUs, GPUs und TPUs) und für andere Ressourcen wie Arbeitsspeichernutzung, Netzwerklatenz und Festplattennutzung im Blick behalten. Führen Sie Lasttests durch und überwachen Sie die Leistung. Mithilfe der Testergebnisse und Messwerte aus der Überwachung können Sie die Skalierung und Kapazität Ihrer KI- und ML-Systeme verwalten.
- Zuverlässigkeitsziele festlegen und Anwendungsstatistiken im Blick behalten Messwerte wie Durchsatz und Latenz für die von Ihnen entwickelten KI-Anwendungen messen. Nutzungsmuster Ihrer Anwendungen und der bereitgestellten Endpunkte überwachen.
- Legen Sie modellspezifische Messwerte wie Genauigkeit oder Sicherheitsindikatoren fest, um die Zuverlässigkeit des Modells zu bewerten. Behalten Sie diese Messwerte im Zeitverlauf im Blick, um Abweichungen oder Beeinträchtigungen zu erkennen. Für eine effiziente Versionsverwaltung und Automatisierung sollten Sie die Monitoring-Konfigurationen als Code definieren.
- Definieren und verfolgen Sie Messwerte auf Geschäftsebene, um die Auswirkungen Ihrer Modelle und die Zuverlässigkeit auf die Geschäftsergebnisse zu verstehen. Wenn Sie die Zuverlässigkeit Ihrer KI- und ML-Dienste messen möchten, sollten Sie den SRE-Ansatz übernehmen und Service Level Objectives (SLOs) definieren.
Beitragende
Autoren:
- Rick (Rugui) Chen | AI Infrastructure Solutions Architect
- Filipe Gracio, PhD | Customer Engineer
Weitere Beitragende:
- Jose Andrade | Enterprise Infrastructure Customer Engineer
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marwan Al Shawi | Partner Customer Engineer