KI und ML – Zuverlässigkeit

Last reviewed 2024-10-11 UTC

Dieses Dokument im Architektur-Framework: KI- und ML-Perspektive bietet einen Überblick über die Prinzipien und Empfehlungen zum Entwerfen und Betreiben zuverlässiger KI- und ML-Systeme in Google Cloud. Es wird erläutert, wie Sie erweiterte Zuverlässigkeitspraktiken und Beobachtbarkeit in Ihre Architekturentwürfe einbinden. Die Empfehlungen in diesem Dokument stimmen mit der Zuverlässigkeitssäule des Architektur-Frameworks überein.

In der sich schnell entwickelnden KI- und ML-Branche 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 die individuellen Anforderungen sowohl von prädiktivem ML als auch von generativer KI zu erfüllen. Um die Komplexität von MLOps zu bewältigen – von der Entwicklung bis zur Bereitstellung und kontinuierlichen Verbesserung –, müssen Sie einen Ansatz verfolgen, bei dem Zuverlässigkeit an erster Stelle steht. Google Cloud bietet eine speziell für KI entwickelte Infrastruktur, die den SRE-Prinzipien (Site Reliability Engineering) entspricht und eine solide 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 Architektur auf Skalierbarkeit und Verfügbarkeit ausrichten, können Ihre Anwendungen unterschiedliche Anforderungen bewältigen, ohne dass es zu Dienstunterbrechungen oder Leistungseinbußen kommt. So sind Ihre KI-Dienste auch bei Infrastrukturausfällen und bei sehr hohem Traffic für Nutzer verfügbar.

Beachten Sie die folgenden Empfehlungen:

  • Entwerfen Sie Ihre KI-Systeme mit automatischen und dynamischen Skalierungsfunktionen, um Schwankungen der Nachfrage zu bewältigen. So lässt sich die Leistung auch bei Spitzenlasten optimieren.
  • Ressourcen proaktiv verwalten und zukünftige Anforderungen durch Lasttests und Leistungsüberwachung antizipieren. Verwenden Sie Verlaufsdaten und Prognoseanalysen, um fundierte Entscheidungen über die Ressourcenzuweisung zu treffen.
  • Sorgen 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.
  • Sie können den eingehenden Traffic auf mehrere Instanzen Ihrer KI- und ML-Dienste und ‑Endpunkte verteilen. Load Balancing hilft, eine Überlastung einzelner Instanzen zu verhindern und für eine gleichbleibende Leistung und Verfügbarkeit zu sorgen.

Modulare und lose gekoppelte Architektur verwenden

Verwenden Sie eine modulare Architektur, um Ihre KI-Systeme widerstandsfähig gegen Ausfälle einzelner Komponenten zu machen. Entwerfen Sie beispielsweise die Komponenten für die Datenverarbeitung und Datenvalidierung als separate Module. Wenn eine bestimmte Komponente ausfällt, hilft die modulare Architektur, Ausfallzeiten zu minimieren und Ihre Teams können schneller Fehler beheben und Lösungen implementieren.

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 Tests und Wartung und ermöglicht die unabhängige Entwicklung und Bereitstellung einzelner Komponenten.
  • Entwerfen Sie die lose gekoppelten Module mit klar definierten Schnittstellen. Dieser Ansatz minimiert Abhängigkeiten und ermöglicht unabhängige Updates und Änderungen, ohne dass das gesamte System beeinträchtigt wird.
  • Planen Sie für eine schrittweise Fehlertoleranz. Wenn eine Komponente ausfällt, müssen die anderen Teile des Systems weiterhin eine ausreichende Funktionalität bieten.
  • Verwenden Sie APIs, um klare Grenzen zwischen Modulen zu schaffen und die Implementierungsdetails auf Modulebene auszublenden. 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 entwickeln

Mit einer automatisierten MLOps-Plattform sind die Phasen und Ausgaben des Modelllebenszyklus zuverlässiger. Wenn Sie für Konsistenz, lose Kopplung und Modularität sorgen und Vorgänge und Infrastruktur als Code ausdrücken, können Sie fehleranfällige manuelle Schritte entfernen und KI- und ML-Systeme verwalten, die robuster und zuverlässiger sind.

Beachten Sie die folgenden Empfehlungen:

  • Automatisieren Sie den gesamten Lebenszyklus der Modellentwicklung – von der Datenvorbereitung und Validierung bis hin zum Modelltraining, zur Bewertung, Bereitstellung und Überwachung.
  • Verwalten Sie Ihre Infrastruktur als Code (IaC). 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 erstellen Sie entsprechende Benachrichtigungen für unerwartete Ergebnisse.
  • Prüfen Sie die Eingaben und Ausgaben Ihrer KI- und ML-Pipelines. Sie können beispielsweise Daten, Konfigurationen, Befehlszeilenargumente, Dateien und Vorhersagen validieren. Benachrichtigungen für unerwartete oder nicht zulässige Werte konfigurieren
  • Verwenden Sie eine verwaltete Versionskontrollstrategie für Ihre Modellendpunkte. Diese Art von Strategie ermöglicht inkrementelle Releases und eine schnelle Wiederherstellung bei Problemen.

Vertrauen und Kontrolle durch Daten- und Modellverwaltung aufrechterhalten

Die Zuverlässigkeit von KI- und ML-Systemen hängt von den Vertrauens- und Governance-Funktionen Ihrer Daten und Modelle ab. KI-Ergebnisse können auf unerwartete Weise nicht den Erwartungen entsprechen. Die Ausgabe kann beispielsweise formal konsistent, aber falsch oder unerwünscht sein. Durch die Implementierung von Rückverfolgbarkeit und einer strengen Governance können Sie dafür sorgen, dass die Ergebnisse zuverlässig und vertrauenswürdig sind.

Beachten Sie die folgenden Empfehlungen:

  • Mit einem Daten- und Modellkatalog können Sie Ihre Assets effektiv verfolgen und verwalten. Um die Nachverfolgung und Prüfung zu erleichtern, sollten Sie während des gesamten Lebenszyklus einen umfassenden Daten- und Modellversionsverlauf aufbewahren.
  • Implementieren Sie strenge Zugriffssteuerungen und Prüfpfade, um sensible Daten und Modelle zu schützen.
  • Das wichtige Thema Voreingenommenheit bei KI angehen, insbesondere bei Anwendungen mit generativer KI. Um Vertrauen aufzubauen, sollten Sie für Transparenz und Erklärbarkeit bei den Modellergebnissen sorgen.
  • Automatisieren Sie die Generierung von Funktionsstatistiken und implementieren Sie die Anomalieerkennung, um Datenprobleme proaktiv zu erkennen. Um die Zuverlässigkeit des Modells zu gewährleisten, sollten Sie Mechanismen einrichten, mit denen sich Änderungen der Datenverteilungen erkennen und abmildern lassen.

Ganzheitliche Verfahren zur Beobachtbarkeit und Zuverlässigkeit von KI und ML implementieren

Wenn Sie Ihre KI-Anwendungen kontinuierlich verbessern möchten, müssen Sie sinnvolle Zuverlässigkeitsziele definieren und den Fortschritt messen. Die Beobachtbarkeit ist ein grundlegendes Element zuverlässiger Systeme. Mithilfe 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 erstellen und zu verwalten.

Beachten Sie die folgenden Empfehlungen:

  • Infrastrukturmesswerte für Prozessoren (CPUs, GPUs und TPUs) und andere Ressourcen wie Arbeitsspeichernutzung, Netzwerklatenz und Laufwerknutzung erfassen Führen Sie Lasttests und Leistungsüberwachung durch. Verwenden Sie die Testergebnisse und Messwerte aus der Überwachung, um die Skalierung und Kapazität Ihrer KI- und ML-Systeme zu verwalten.
  • Legen Sie Zuverlässigkeitsziele fest und erfassen Sie Anwendungsmesswerte. Messen Sie Messwerte wie Durchsatz und Latenz für die von Ihnen erstellten KI-Anwendungen. Beobachten Sie das Nutzungsverhalten Ihrer Anwendungen und der freigegebenen Endpunkte.
  • Legen Sie modellspezifische Messwerte wie Genauigkeits- oder Sicherheitsmesswerte fest, um die Zuverlässigkeit des Modells zu bewerten. Beobachten Sie diese Messwerte im Zeitverlauf, um Abweichungen oder Leistungseinbußen zu erkennen. Für eine effiziente Versionskontrolle und Automatisierung sollten Sie die Monitoringkonfigurationen als Code definieren.
  • Definieren und erfassen Sie Messwerte auf Unternehmensebene, um die Auswirkungen Ihrer Modelle und deren 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 verwenden und Service Level Objectives (SLOs) definieren.

Beitragende

Autoren:

Weitere Beitragende: