In diesem Dokument finden Sie Leitlinien, die Ihnen beim Evaluieren, Beibehalten und Steuern der Qualität von Lösungen für die Prognose mit maschinellem Lernen helfen. Es enthält Vorschläge für jeden Schritt des Prozesses, von der Entwicklung Ihrer ML-Modelle bis hin zur Bereitstellung Ihrer Trainings- und Bereitstellungssysteme für die Produktion. Das Dokument erweitert die im Leitfaden für maschinelles Lernen zu MLOps erläuterten Informationen durch Hervorheben und Erläutern der Qualitätsaspekte in jedem MLOps-Lebenszyklus.
Dieses Dokument richtet sich an alle, die mit dem Erstellen, Bereitstellen und Betreiben von ML-Lösungen befasst sind. In diesem Dokument wird davon ausgegangen, dass Sie mit MLOps im Allgemeinen vertraut sind. Es wird nicht davon ausgegangen, dass Sie mit einer bestimmten ML-Plattform vertraut sind.
Überblick über die Qualität der ML-Lösung
Im Software Engineering wurden viele Standards, Prozesse, Tools und Praktiken entwickelt, um die Softwarequalität zu gewährleisten. Ziel ist es, dafür zu sorgen, dass die Software in der Produktionsumgebung wie vorgesehen funktioniert und sowohl funktionale als auch nicht funktionale Anforderungen erfüllt. Diese Methoden behandeln Themen wie Softwaretests, Software-Verifizierung und -Validierung und Software-Logging und Monitoring. Bei DevOps werden diese Praktiken in der Regel in CI/CD-Prozesse integriert und automatisiert.
MLOps umfasst einen Satz standardisierter Prozesse und Funktionen, mit denen Sie ML-Systeme schnell und zuverlässig erstellen, bereitstellen und betreiben können. Ähnlich wie bei anderen Softwarelösungen müssen Sie diese Best Practices für die Softwarequalität in die ML-Softwarelösungen einbinden und während des MLOps-Lebenszyklus anwenden. Durch die Anwendung dieser Best Practices sorgen Sie dafür, dass die Vertrauenswürdigkeit und Planbarkeit Ihrer Modelle gewährleistet ist und die Modelle Ihren Anforderungen entsprechen.
Die Aufgaben zum Erstellen, Bereitstellen und Ausführen von ML-Systemen sind jedoch mit zusätzlichen Herausforderungen verbunden, wofür bestimmte Qualitätsverfahren erforderlich sind, die für andere Softwaresysteme möglicherweise nicht relevant sind. Zusätzlich zu den Merkmalen der meisten anderen Softwaresysteme haben ML-Systeme folgende Merkmale:
Datenabhängige Systeme Die Qualität der trainierten Modelle und ihrer Vorhersagen hängt von der Gültigkeit der Daten ab, die für das Training verwendet und für Vorhersageanfragen eingereicht werden. Jedes Softwaresystem hängt von gültigen Daten ab. ML-Systeme leiten jedoch automatisch die Logik für die Entscheidungsfindung aus den Daten ab. Daher hängen sie besonders von der Qualität der Daten ab.
Zwei Systeme für Training und Bereitstellung ML-Arbeitslasten bestehen in der Regel aus zwei separaten, aber verwandten Produktionssystemen: dem Trainingssystem und dem Bereitstellungssystem. Eine Pipeline für kontinuierliches Training generiert neu trainierte Modelle, die dann für die Vorhersagebereitstellung bereitgestellt werden. Jedes System benötigt einen anderen Satz von Qualitätsverfahren, die Effektivität und Effizienz ausgleichen, um ein leistungsfähiges Modell in der Produktion zu erstellen und zu verwalten. Außerdem führen Inkonsistenzen zwischen diesen beiden Systemen zu Fehlern und schlechter Vorhersageleistung.
Anfällig für Veraltung. Modelle verschlechtern sich häufig, nachdem sie in der Produktion bereitgestellt wurden, da sie nicht an Änderungen der Umgebung angepasst werden, die sie darstellen, z. B. saisonale Änderungen des Kaufverhaltens. Die Modelle können auch möglicherweise nicht an Änderungen der Daten angepasst werden, z. B. für neue Produkte und Standorte. Daher ist die Beobachtung der Effektivität des Modells in der Produktion eine zusätzliche Herausforderung für ML-Systeme.
Automatisierte Entscheidungssysteme. Im Gegensatz zu anderen Softwaresystemen, bei denen Aktionen für eine Reihe von Anforderungen und Geschäftsregeln sorgfältig manuell codiert werden, erlernen ML-Modelle Regeln aus Daten, um eine Entscheidung zu treffen. Implizite Verzerrungen der Daten können dazu führen, dass Modelle zu unfairen Ergebnissen führen.
Wenn ein bereitgestelltes ML-Modell schlechte Vorhersagen liefert, kann die schlechte ML-Qualität auf eine Vielzahl von Problemen zurückzuführen sein. Einige dieser Probleme können durch die üblichen Fehler in jedem Programm verursacht werden. ML-spezifische Probleme können aber auch Datenverzerrungen und Anomalien sowie das Fehlen ordnungsgemäßer Verfahren zur Modellevaluierung- und validierung als Teil des Trainingsprozesses umfassen. Ein weiteres potenzielles Problem ist das inkonsistente Datenformat zwischen der integrierten Schnittstelle des Modells und der Bereitstellungs-API. Außerdem verschlechtert sich die Modellleistung mit der Zeit auch ohne diese Probleme und es kann zu Fehlern kommen, wenn es nicht richtig überwacht wird. Daher sollten Sie verschiedene Arten von Tests und Überwachungen für ML-Modelle und -Systeme während der Entwicklung, Bereitstellung und Produktion einbeziehen.
Qualitätsleitlinien für die Modellentwicklung
Wenn Sie während der Testphase ein ML-Modell entwickeln, können Sie die Leistung des Modells mit den folgenden beiden Gruppen von Zielmesswerten bewerten:
- Die Optimierungsmesswerte des Modells Dieser Messwert spiegelt die Vorhersageeffektivität des Modells wider. Der Messwert enthält Genauigkeit und F-Measure in Klassifizierungsaufgaben, den mittleren absoluten Fehler in Prozent für Regressions- und Prognoseaufgaben, den diskontierten kumulierten Gewinn für Rankingaufgaben und Komplexität und BLEU-Werte in Sprachmodellen. Je besser der Wert dieses Messwerts, desto besser ist das Modell für eine bestimmte Aufgabe. In manchen Anwendungsfällen ist es wichtig, die Vorhersagegenauigkeit in verschiedenen Segmenten der Daten zu erreichen, z. B. bei verschiedenen demografischen Gruppen von Kunden, um Fairness zu gewährleisten.
- Die Anspruchserfüllungsmesswerte des Modells Dieser Messwert spiegelt eine operative Einschränkung wider, die das Modell erfüllen muss, z. B. die Vorhersagelatenz. Sie legen einen Latenzschwellenwert auf einen bestimmten Wert fest, z. B. 200 Millisekunden. Ein Modell, das den Grenzwert nicht erfüllt, wird nicht akzeptiert. Ein weiteres Beispiel für einen Anspruchserfüllungsmesswert ist die Größe des Modells. Dies ist wichtig, wenn Sie Ihr Modell auf leistungsschwacher Hardware wie Mobilgeräten und eingebetteten Geräten bereitstellen möchten.
Während der Testphase entwickeln, trainieren, bewerten und debuggen Sie Ihr Modell, um seine Effektivität in Bezug auf die Optimierungsmesswerte zu verbessern, ohne die Grenzwerte der Anspruchserfüllungsmesswerte zu überschreiten.
Leitlinien zum Testen
- Sie haben vordefinierte und feste Grenzwerte für Optimierungsmesswerte und für Messwerte zur Anspruchserfüllung.
- Implementieren Sie eine optimierte Bewertungsroutine, die anhand eines Modells und Datensatzes eine Reihe von Bewertungsmesswerten erzeugt. Implementieren Sie die Routine, damit sie unabhängig vom Typ (z. B. Entscheidungsbäume oder neuronale Netzwerke) oder dem Framework des Modells (z. B. TensorFlow oder Scikit-learn) funktioniert.
- Für den Vergleich benötigen Sie ein Referenzmodell. Dieses Referenzmodell kann aus hartcodierter Heuristik bestehen oder ein einfaches Modell sein, das den Mittelwert oder den Zielwert des Modus vorhersagt. Verwenden Sie das Referenzmodell, um die Leistung des ML-Modells zu prüfen. Wenn das ML-Modell nicht besser als das Referenzmodell ist, besteht ein grundlegendes Problem mit dem ML-Modell.
- Behalten Sie alle durchgeführten Tests im Blick, um die Reproduzierbarkeit und die kontinuierliche Verbesserung zu unterstützen. Speichern Sie für jeden Test die Hyperparameterwerte, die Featureauswahl und die Zufallszahlen.
Leitlinien für Datenqualität
- Beheben Sie alle unausgeglichenen Klassen früh in der Testphase, indem Sie den richtigen Bewertungsmesswert auswählen. Verwenden Sie außerdem Techniken wie das Hochstufen von Minderheitsklasseninstanzen oder das Herunterstufen von Mehrheitsklasseninstanzen.
- Machen Sie sich mit der jeweiligen Datenquelle vertraut und führen Sie die entsprechenden Aufgaben zur Datenvorverarbeitung und Feature Engineering aus, um das Trainings-Dataset vorzubereiten. Diese Art von Prozess muss wiederholbar und automatisierbar sein.
- Achten Sie darauf, dass Sie für die endgültige Bewertung des Modells eine separate Testdatenaufteilung (Hold-out-Daten) haben. Die Testaufteilung sollte während des Trainings nicht verwendet werden. Verwenden Sie sie auch nicht für die Hyperparameter-Abstimmung.
- Achten Sie darauf, dass Trainings-, Validierungs- und Testaufteilungen repräsentativ für die Eingabedaten sind. Die Stichprobenerfassung einer solchen Testaufteilung hängt von der Art der Daten und der vorliegenden ML-Aufgabe ab. Beispielsweise ist die geschichtete Aufteilung für Klassifizierungsaufgaben relevant, die chronologische Aufteilung für Zeitachsenaufgaben.
- Achten Sie darauf, dass die Validierungs- und Testaufteilungen getrennt von der Trainingsdatenaufteilung vorverarbeitet werden. Wenn die Teilmengen in einer Mischung vorverarbeitet werden, kommt es zu Datenlecks. Wenn Sie beispielsweise Statistiken verwenden, um Daten für die Normalisierung oder die Bucket-Analyse numerischer Merkmale zu transformieren, berechnen Sie die Statistiken aus den Trainingsdaten und wenden Sie sie an, um die Validierungs- und Testaufteilungen zu normalisieren.
- Generieren Sie ein Dataset-Schema, das die Datentypen und einige statistische Attribute der Features enthält. Mit diesem Schema können Sie beim Testen und Trainieren anomale oder ungültige Daten finden.
- Achten Sie darauf, dass Ihre Trainingsdaten in Batches richtig gemischt werden, aber auch die Anforderungen für das Modelltraining erfüllen. Diese Aufgabe kann beispielsweise für positive und negative Instanzverteilungen gelten.
- Verwenden Sie ein separates Validierungs-Dataset für die Hyperparameter-Abstimmung und die Modellauswahl. Sie können den Validierungsdatensatz auch für ein vorzeitiges Beenden verwenden. Andernfalls können Sie das Modell für die gesamte Anzahl der angegebenen maximalen Iterationen trainieren lassen. Speichern Sie jedoch nur dann einen neuen Snapshot des Modells, wenn sich seine Leistung auf dem Validierungsdatensatz im Vergleich zum vorherigen Snapshot verbessert.
Leitlinien für die Modellqualität
- Achten Sie darauf, dass Ihre Modelle keine grundlegenden Probleme haben, die sie daran hindern, eine Beziehung zwischen den Eingaben und Ausgaben zu erlernen. Sie können dieses Ziel erreichen, indem Sie das Modell mit sehr wenigen Beispielen trainieren. Wenn das Modell für diese Beispiele keine hohe Accuracy erreicht, kann dies an einem Fehler in der Modellimplementierung oder in der Trainingsroutine liegen.
- Achten Sie beim Trainieren neuronaler Netzwerke auf
NaN
-Werte beim Verlust und auf den Prozentsatz der Gewichtungen, die während des gesamten Modelltrainings Nullwerte haben. DieseNaN
- oder Nullwerte können Hinweise auf fehlerhafte arithmetische Berechnungen oder schwindende oder explodierende Gradienten sein. Wenn Sie Änderungen bei der Verteilung der Gewichtswerte im Zeitverlauf visualisieren, können Sie Verschiebungen der internen Kovariaten erkennen, die das Training verlangsamen. Sie können die Batchnormalisierung anwenden, um diese Geschwindigkeitsminderung zu verringern. - Vergleichen Sie Ihre Modellleistung für die Trainingsdaten und die Testdaten, um festzustellen, ob Ihr Modell über- oder unterangepasst ist. Wenn eines dieser Probleme auftritt, nehmen Sie die entsprechenden Verbesserungen vor. Wenn beispielsweise eine Unteranpassung vorliegt, können Sie die Lernkapazität des Modells erhöhen. Wenn es zu Überanpassung gekommen ist, können Sie eine Regularisierung anwenden.
- Analysieren Sie falsch klassifizierte Instanzen, insbesondere Instanzen mit einer hohen Vorhersagekonfidenz und einer hohen Anzahl von verwechselten Klassen in der Wahrheitsmatrix für mehrere Klassen. Diese Fehler können ein Hinweis auf falsch beschriftete Trainingsbeispiele sein. Die Fehler können auch eine Möglichkeit der Datenvorverarbeitung bieten, z. B. das Entfernen von Ausreißern oder die Erstellung neuer Features, um zwischen diesen Klassen zu unterscheiden.
- Analysieren Sie die Scores der Feature-Wichtigkeit und bereinigen Sie Features, die nicht ausreichend zur Verbesserung der Modellqualität beitragen. Einfache Modelle werden gegenüber komplexen Modellen bevorzugt.
Qualitätsrichtlinien für die Bereitstellung von Trainingspipelines
Während Sie Ihr Modell und Ihre Modelltrainingspipeline implementieren, müssen Sie eine Reihe von Tests in einer CI/CD-Routine erstellen. Diese Tests werden automatisch beim Übertragen neuer Codeänderungen oder vor der Bereitstellung der Trainingspipeline in der Zielumgebung ausgeführt.
Leitlinien
- Führen Sie einen Unittest der Feature-Engineering-Funktionalität aus.
- Führen Sie einen Unittest der Codierung der Eingaben in das Modell aus.
- Führen Sie einen unabhängigen Unittest der von Nutzer implementierten (benutzerdefinierten) Modulen der Modelle aus, z. B. benutzerdefinierte Layer für Diagrammfaltung (Graph Convolution) oder Pooling oder benutzerdefinierte Attention-Layer.
- Führen Sie einen Unittest für benutzerdefinierte Verlust- oder Auswertungsfunktionen aus.
- Führen Sie einen Unittest der Ausgabetypen und -formen Ihres Modells anhand der erwarteten Eingaben aus.
- Führen Sie anhand einiger kleiner Datenbatches einen Unittest aus, um zu prüfen, ob die Funktion
fit
des Modells fehlerfrei funktioniert. Die Tests sollten dafür sorgen, dass der Verlust sinkt und die Ausführungszeit des Trainingsschritts wie erwartet ist. Sie führen diese Prüfungen durch, da Änderungen am Modellcode zu Fehlern führen können, die den Trainingsvorgang verlangsamen. - Führen Sie einen Unittest der Speicher- und Ladefunktion des Modells aus.
- Führen Sie einen Unittest der exportierten Modellbereitstellungsschnittstellen anhand von Roheingaben und erwarteten Ausgaben aus.
- Testen Sie die Komponenten der Pipelineschritte mit simulierten Eingaben und mit Ausgabeartefakten.
- Die Pipeline in einer Testumgebung bereitstellen und Integrationstests für die End-to-End-Pipeline durchführen. Verwenden Sie für diesen Prozess einige Testdaten, um sicherzustellen, dass der Workflow während der gesamten Ausführung ordnungsgemäß ausgeführt wird und die erwarteten Artefakte erzeugt.
- Verwenden Sie die Schattenbereitstellung, wenn Sie eine neue Version der Trainingspipeline in der Produktionsumgebung bereitstellen. Durch die Schattenbereitstellung können Sie dafür sorgen, dass die neu bereitgestellte Pipelineversion parallel zu den vorherigen Pipelineversionen für Livedaten ausgeführt wird.
Qualitätsleitlinien für kontinuierliches Training
Beim kontinuierlichen Training geht es darum, die Ausführung von Trainingspipelines zu orchestrieren und zu automatisieren. Typische Trainingsabläufe umfassen Schritte wie Datenaufnahme und ‑aufteilung, Datentransformation, Modelltraining, Modellbewertung und Modellregistrierung. Einige Trainingspipelines bestehen aus komplexeren Workflows. Zu den zusätzlichen Aufgaben kann das Training eines selbstüberwachten Modells mithilfe von nicht gekennzeichneten Daten oder das Erstellen eines Index für ungefähre Nächste-Nachbarn-Berechnungen für Einbettungen gehören. Die Haupteingabe jeder Trainingspipeline sind neue Trainingsdaten und die Hauptausgabe ist ein neues Kandidatenmodell, das in der Produktion bereitgestellt werden soll.
Die Trainingspipeline wird automatisch anhand eines Zeitplans (z. B. täglich oder wöchentlich) in der Produktion ausgeführt oder basierend auf einem Trigger (z. B. wenn neue mit Labels versehene Daten verfügbar sind). Daher müssen Sie dem Trainingsworkflow Schritte zur Qualitätskontrolle hinzufügen, insbesondere Schritte zur Datenvalidierung und Modellvalidierung. Bei diesen Schritten werden die Eingaben und Ausgaben der Pipelines validiert.
Sie fügen den Schritt zur Datenvalidierung nach dem Schritt zur Datenaufnahme im Trainingsworkflow hinzu. Im Schritt „Datenvalidierung“ werden die neuen Eingabetrainingsdaten, die in die Pipeline aufgenommen werden, profiliert. Während des Profilings verwendet die Pipeline ein vordefiniertes Datenschema, das während des ML-Entwicklungsprozesses erstellt wurde, um Anomalien zu erkennen. Je nach Anwendungsfall können Sie einige ungültige Einträge ignorieren oder einfach aus dem Datensatz entfernen. Andere Probleme in den neu aufgenommenen Daten können jedoch die Ausführung der Trainingspipeline stoppen. Sie müssen diese Probleme daher identifizieren und beheben.
Leitlinien für die Datenvalidierung
- Prüfen Sie, ob die Features der extrahierten Trainingsdaten vollständig sind und mit dem erwarteten Schema übereinstimmen, also keine Features fehlen oder hinzugefügt wurden. Prüfen Sie außerdem, ob Features den projizierten Volumes entsprechen.
- Prüfen Sie die Datentypen und die Formen der Features im Dataset, die in die Trainingspipeline aufgenommen werden.
- Prüfen Sie, ob die Formate bestimmter Features (z. B. Datumsangaben, Uhrzeiten, URLs, Postleitzahlen und IP-Adressen) den erwarteten regulären Ausdrücken entsprechen. Prüfen Sie auch, ob die Features innerhalb der gültigen Bereiche liegen.
- Prüfen Sie den maximalen Anteil der fehlenden Werte für jedes Feature. Ein hoher Anteil an fehlenden Werten in einem bestimmten Feature kann sich auf die Modelltraining auswirken. Fehlende Werte weisen in der Regel auf eine unzuverlässige Datenquelle hin.
- Prüfen Sie die Domains der Eingabefeatures. Prüfen Sie beispielsweise, ob sich das Vokabular kategorialer Merkmale oder der Bereich numerischer Merkmale geändert hat, und passen Sie die Datenvorverarbeitung entsprechend an. Ein weiteres Beispiel wäre, dass sich Bereiche für numerische Features ändern können, wenn eine Aktualisierung im vorgelagerten System, das die Features ausfüllt, unterschiedliche Maßeinheiten verwendet. Beispielsweise kann das vorgelagerte System die Währung von Dollar in Yen oder Entfernungen von Kilometern zu Metern ändern.
- Prüfen Sie, ob die Verteilungen der einzelnen Funktionen Ihren Erwartungen entsprechen.
Sie können beispielsweise testen, ob der häufigste Wert eines Features für den Zahlungstyp
cash
ist und dass dieser Zahlungstyp 50 % aller Werte ausmacht. Dieser Test kann jedoch fehlschlagen, wenn eine Änderung des häufigsten Zahlungstyps zucredit_card
vorgenommen wird. Eine solche externe Änderung kann Änderungen an Ihrem Modell erfordern.
Sie fügen vor dem Schritt zur Modellregistrierung einen Schritt zur Modellvalidierung hinzu, damit nur Modelle, die die Validierungskriterien erfüllen, für die Produktionsbereitstellung registriert werden.
Leitlinien für die Modellvalidierung
- Verwenden Sie zur abschließenden Modellbewertung eine separate Testaufteilung, die für das Modelltraining oder die Hyperparameter-Feinabstimmung noch nicht verwendet wurde.
- Bewerten Sie das Kandidatenmodell anhand der Testdatenaufteilung, berechnen Sie die relevanten Bewertungsmesswerte und prüfen Sie, ob das Kandidatenmodell vordefinierte Qualitätsgrenzwerte überschreitet.
- Achten Sie darauf, dass die Testdatenaufteilung repräsentativ für die Daten als Ganzes ist, um unterschiedliche Datenmuster zu berücksichtigen. Achten Sie bei Zeitachsendaten darauf, dass die Testaufteilung neuere Daten als die Trainingsaufteilung enthält.
- Testen Sie die Modellqualität anhand wichtiger Datenschnitte wie Nutzer nach Land oder Filme nach Genre. Wenn Sie Tests mit gefilterten Daten durchführen, vermeiden Sie Probleme, bei denen detaillierte Leistungsprobleme durch einen globalen Zusammenfassungsmesswert verdeckt werden.
- Bewerten Sie das aktuelle Modell (Champion) anhand der Testdatenaufteilung und vergleichen Sie das Modell mit dem Kandidatenmodell (Challenger), das von der Trainingspipeline erzeugt wird.
- Prüfen Sie das Modell auf Fairness-Indikatoren, um implizite Verzerrungen zu erkennen. Implizite Verzerrungen können beispielsweise durch unzureichende Vielfalt in den Trainingsdaten verursacht werden. Fehlerindikatoren können auf Problemen hinweisen, deren Ursache Sie beheben müssen, bevor Sie das Modell in der Produktion bereitstellen.
Während des kontinuierlichen Trainings können Sie das Modell sowohl anhand von Optimierungsmesswerten als auch von Messwerten zur Anspruchserfüllung validieren. Alternativ können Sie das Modell nur anhand der Optimierungsmesswerte validieren und die Messwerte zur Anspruchserfüllung bis zur Modellbereitstellungsphase auf später verschieben. Wenn Sie Varianten desselben Modells in verschiedenen Bereitstellungsumgebungen oder Arbeitslasten bereitstellen möchten, ist es möglicherweise besser, die Validierung anhand des Anspruchserfüllungsmesswerts zu verschieben. Unterschiedliche Bereitstellungsumgebungen oder Arbeitslasten (z. B. Cloudumgebungen im Vergleich zu Geräteumgebungen oder Echtzeitumgebungen und Batchbereitstellungsumgebungen) erfordern möglicherweise unterschiedliche Anspruchserfüllungsschwellenwerte. Wenn Sie die Bereitstellung in mehreren Umgebungen vornehmen, werden in Ihrer Pipeline für kontinuierliches Training möglicherweise zwei oder mehr Modelle trainiert, wobei jedes Modell für die jeweilige Zielbereitstellungsumgebung optimiert wird. Weitere Informationen und ein Beispiel finden Sie unter Duale Bereitstellungen in Vertex AI.
Wenn Sie Pipelines für kontinuierliches Training mit komplexen Workflows in die Produktion aufnehmen, müssen Sie die Metadaten und die Artefakte erfassen, die von den Pipeline-Ausführungen erzeugt werden. Das Tracking dieser Informationen hilft Ihnen, jedes Problem in der Produktion zu verfolgen und Fehler zu beheben. Wenn Sie die Informationen verfolgen, können Sie außerdem die Ausgaben der Pipelines reproduzieren, um ihre Implementierung in nachfolgenden Iterationen der ML-Entwicklung zu verbessern.
Leitlinien für das Tracking von ML-Metadaten und -Artefakten
- Erfassen Sie die Herkunft des Quellcodes, der bereitgestellten Pipelines, der Komponenten der Pipelines, der Pipelineausführungen, des verwendeten Datasets und der erzeugten Artefakte.
- Erfassen Sie die Hyperparameter und der Konfigurationen der Pipelineausführungen.
- Erfassen Sie wichtige Eingabe- und Ausgabeartefakte der Pipelineschritte, z. B. Dataset-Statistiken, Dataset-Anomalien (falls vorhanden), transformierte Daten und Schemas, Modellprüfpunkte und Modellbewertungsergebnisse.
- Erfassen Sie die bedingten Pipelineschritte als Reaktion auf die Bedingungen und sorgen Sie für Beobachtbarkeit, indem Sie Änderungsmechanismen hinzufügen, falls wichtige Schritte nicht ausgeführt werden oder fehlschlagen.
Qualitätsleitlinien für die Modellbereitstellung
Angenommen, Sie haben ein trainiertes Modell, das aus Sicht der Optimierungsmesswerte validiert wurde und das aus Modellaspekt-Governance genehmigt wurde (siehe später im Abschnitt Modell-Governance). Das Modell wird in der Modellregistrierung gespeichert und kann in der Produktion bereitgestellt werden. Jetzt müssen Sie eine Reihe von Tests implementieren, um zu prüfen, ob das Modell für die Zielumgebung geeignet ist. Außerdem müssen Sie diese Tests in einer CI/CD-Routine für das Modell automatisieren.
Leitlinien
- Prüfen Sie, ob das Modellartefakt mit seinen Laufzeitabhängigkeiten geladen und erfolgreich aufgerufen werden kann. Sie können diese Überprüfung durchführen, indem Sie das Modell in einer Sandboxversion der Bereitstellungsumgebung bereitstellen. Mit dieser Prüfung wird sichergestellt, dass die vom Modell verwendeten Vorgänge und Binärprogramme in der Umgebung vorhanden sind.
- Validieren Sie die Messwerte zur Anspruchserfüllung des Modells (falls vorhanden) in einer Staging-Umgebung, z. B. Modellgröße und Latenz.
- Führen Sie einen Unittest der Schnittstellen zur Bereitstellung von Modellartefakten in einer Staging-Umgebung aus –anhand von Roheingaben und erwarteten Ausgaben.
- Führen Sie einen Unittest des Modellartefakts in einer Staging-Umgebung für eine Reihe typischer Fälle und Grenzfälle von Vorhersageanfragen aus. Führen Sie beispielsweise einen Unittest für eine Anfrageinstanz aus, bei der alle Features auf
None
gesetzt sind. - Führen Sie einen Smoke-Test der API des Modelldiensts durch, nachdem sie in der Zielumgebung bereitgestellt wurde. Senden Sie dazu eine einzelne Instanz oder mehrere Instanzen an den Modelldienst und prüfen Sie die Dienstantwort.
- Führen Sie einen Canary-Test der neu bereitgestellten Modellversion für einen kleinen Stream von Live-Bereitstellungsdaten aus. Mit diesem Test wird dafür gesorgt, dass der neue Modelldienst keine Fehler erzeugt, bevor das Modell einer großen Anzahl von Nutzern zugänglich gemacht wird.
- Testen Sie es in einer Staging-Umgebung, die Sie schnell und sicher auf eine vorherige Bereitstellungsversion zurücksetzen können.
- Führen Sie Onlinetests durch, um das neu trainierte Modell mit einer kleinen Teilmenge der Zielgruppe zu testen. Bei diesem Test wird die Leistung des neuen Modells mit der des aktuellen Modells verglichen. Nachdem Sie die Leistung des neuen Modells mit der Leistung des aktuellen Modells verglichen haben, können Sie entscheiden, das neue Modell vollständig freizugeben, damit alle Ihre Live-Vorhersageanfragen damit verarbeitet werden. Zu den Online-Testmethoden gehören A/B-Tests und Multi-Armed Bandit (MAB).
Qualitätsleitlinien für die Modellbereitstellung
Die Vorhersageleistung der ML-Modelle, die in der Produktion bereitgestellt werden, nimmt in der Regel im Laufe der Zeit ab. Diese Verschlechterung kann auf Inkonsistenzen zwischen den Bereitstellungsfeatures und den vom Modell erwarteten Features zurückzuführen sein. Diese Inkonsistenzen werden als Diskrepanz zwischen Training und Bereitstellung bezeichnet. Ein Empfehlungsmodell könnte beispielsweise einen alphanumerischen Eingabewert für ein Feature erwarten, z. B. einen zuletzt angesehenen Produktcode. Stattdessen wird bei der Auslieferung der Produktname anstelle des Produktcodes übergeben, da die Anwendung, die den Modelldienst nutzt, aktualisiert wurde.
Darüber hinaus kann das Modell veraltet sein, da die statistischen Attribute der Bereitstellungsdaten mit der Zeit abweichen. Die vom aktuellen bereitgestellten Modell erkannten Muster sind nicht mehr genau. In beiden Fällen kann das Modell keine genauen Vorhersagen mehr liefern.
Um diese Verschlechterung der Vorhersageleistung des Modells zu vermeiden, müssen Sie die Effektivität des Modells kontinuierlich überwachen. Mit Monitoring können Sie regelmäßig und proaktiv prüfen, ob sich die Leistung des Modells verschlechtert.
Leitlinien
- Loggen Sie ein Beispiel für die Bereitstellungs-/Antwort-Nutzlasten in einem Datenspeicher für regelmäßige Analysen. Die Anfrage ist die Eingabeinstanz und die Antwort ist die Vorhersage, die vom Modell für diese Dateninstanz erzeugt wird.
- Implementieren Sie einen automatisierten Prozess zur Profilerstellung für die gespeicherten Anfrage-Antwort-Daten. Dazu berechnen Sie deskriptive Statistiken. Berechnen und speichern Sie diese Bereitstellungsstatistiken in regelmäßigen Abständen.
- Ermitteln Sie Abweichungen zwischen Training und Bereitstellung, die durch Daten-Shift und -Drift verursacht werden, indem die Bereitstellungsdatenstatistiken mit den Referenzstatistiken der Trainingsdaten verglichen werden. Darüber hinaus können Sie analysieren, wie sich die Statistiken für Bereitstellungsdaten im Zeitverlauf ändern.
- Erkennen Sie Konzept-Drifts, indem Sie analysieren, wie sich die Feature-Attributionen für die Vorhersagen im Zeitverlauf ändern.
- Erkennen Sie Instanzen von Bereitstellungsdaten, die in Bezug auf die Trainingsdaten als Ausreißer betrachtet werden. Um diese Ausreißer zu ermitteln, verwenden Sie neue Erkennungsmechanismen, und verfolgen Sie, wie sich der Prozentsatz von Ausreißern bei den Bereitstellungsdaten im Zeitverlauf ändert.
- Legen Sie Benachrichtigungen fest, wenn das Modell Grenzwerte zum Verzerrungs-Score für die wichtigsten Vorhersagefeatures in Ihrem Dataset erreicht.
- Wenn Labels verfügbar sind (d. h. Ground Truth), verknüpfen Sie die tatsächlichen Labels mit den vorhergesagten Labels der Bereitstellungsinstanzen, um eine kontinuierliche Evaluierung durchzuführen. Dieser Ansatz ähnelt dem Bewertungssystem, das Sie als A/B-Tests während der Onlinetests implementieren. Die kontinuierliche Evaluierung kann nicht nur die Vorhersageleistung Ihres Modells in der Produktion erkennen, sondern auch bestimmen, mit welcher Art von Anfrage es gut und schlecht funktioniert.
- Legen Sie Ziele für Systemmesswerte fest, die für Sie relevant sind, und messen Sie die Leistung der Modelle gemäß diesen Zielen.
- Behalten Sie die Diensteffizienz im Blick, damit Ihr Modell in großem Umfang in der Produktion eingesetzt werden kann. Diese Überwachung hilft Ihnen auch, die Kapazitätsplanung vorherzusagen und zu verwalten sowie die Kosten Ihrer Bereitstellungsinfrastruktur zu schätzen. Beobachten Sie Effizienzmesswerte, einschließlich CPU-Auslastung, GPU-Auslastung, Speicherauslastung, Dienstlatenz, Durchsätzen und Fehlerrate.
Modell-Governance
Die Modell-Governance ist eine zentrale Funktion in Unternehmen, die Leitlinien und Prozesse zur Implementierung der KI-Prinzipien des Unternehmens bereitstellt. Zu diesen Prinzipien zählt beispielsweise das Vermeiden von Modellen, die Verzerrungen erzeugen oder erzwingen, und die Möglichkeit, KI-Entscheidungen rechtfertigen zu können. Die Funktion der Modell-Governance sorgt für ein "Human in the Loop". Manuelle Prüfungen sind besonders wichtig für vertrauliche und wichtige (häufig auf Nutzer ausgerichtete) Arbeitslasten. Zu diesen Arbeitslasten gehören das Bewerten des Kreditrisikos, das Ranking von Jobkandidaten, das Genehmigen von Versicherungsrichtlinien und das Weiterleiten von Informationen in sozialen Medien.
Richtlinien
- Für jedes Modell ist eine Matrix für Verantwortlichkeiten nach Aufgabe vorhanden. Diese Matrix sollte funktionsübergreifende Teams (Geschäftsbereiche, Data Engineering, Data Science, ML-Entwicklung, Risiko und Compliance usw.) in der gesamten Organisationshierarchie berücksichtigen.
- Verwalten Sie die Dokumentation und Berichterstellung zum Modell in der Modell-Registry, die mit der Modellversion verknüpft ist, z. B. mithilfe von Modellkarten. Diese Metadaten enthalten Informationen zu den Daten, die zum Trainieren des Modells verwendet wurden, sowie zur Modellleistung und zu allen bekannten Einschränkungen.
- Implementieren Sie einen Überprüfungsprozess für das Modell, bevor Sie es für die Bereitstellung in der Produktion genehmigen. Bei dieser Art von Prozess speichern Sie folgende Informationen: die Versionen der Checkliste des Modells, ergänzende Dokumentation und alle weiteren Informationen, die von diesen Interessenvertretern möglicherweise angefordert werden.
- Bewerten Sie das Modell anhand von Benchmark-Datasets (auch Gold-Datasets genannt), die sowohl Standard- als auch Grenzfälle abdecken. Prüfen Sie das Modell außerdem anhand von Fairness-Indikatoren, um implizite Verzerrungen zu erkennen.
- Erklären Sie den Nutzern des Modells das Vorhersageverhalten des Modells als Ganzes und für bestimmte Beispieleingabeinstanzen. Die Bereitstellung dieser Informationen hilft Ihnen, wichtige Features und mögliche unerwünschte Verhaltensweisen des Modells zu verstehen.
- Analysieren Sie das Vorhersageverhalten des Modells mit What-If-Analysetools, um die Bedeutung verschiedener Datenfeatures zu verstehen. Diese Analyse kann auch dabei helfen, das Modellverhalten für mehrere Modelle und Teilmengen von Eingabedaten zu visualisieren.
- Testen Sie das Modell hinsichtlich kontradiktorischer Angriffe, um es vor einer Ausnutzung in der Produktion zu schützen.
- Erfassen Sie Benachrichtigungen zur Vorhersageleistung von Modellen, die sich in der Produktion, in Dataset-Shifts und in Drifts befinden. Konfigurieren Sie Benachrichtigungen so, dass Modellinhaber benachrichtigt werden.
- Verwalten Sie Onlinetests, Rollouts und Rollbacks der Modelle.
Nächste Schritte
- The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction von Google Research
- A Short Guide to Running ML Systems in Production von O'Reilly
- Regeln für maschinelles Lernen
- Training zum Testen und Debuggen für maschinelles Lernen
- Whitepaper Data Validation in Machine Learning
- Siehe das Code-Repository E2E MLOps on Google Cloud.
- Eine Übersicht über architektonische Prinzipien und Empfehlungen, die speziell für KI- und ML-Arbeitslasten in Google Cloudgelten, finden Sie im Architektur-Framework unter KI und ML.
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.
Beitragende
Autor: Mike Styer | Solution Architect für generative KI
Weiterer Mitwirkender: Amanda Brinhosa | Customer Engineer