Leitlinien für die Entwicklung hochwertiger prädiktiver ML-Lösungen

Last reviewed 2024-07-08 UTC

In diesem Dokument finden Sie Leitlinien, die Ihnen beim Evaluieren, Beibehalten und Steuern der Qualität von ML-Lösungen (maschinelles 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 in 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 an der Entwicklung, Bereitstellung und dem Betrieb von ML-Lösungen beteiligt sind. In diesem Dokument wird davon ausgegangen, dass Sie mit MLOps im Allgemeinen vertraut sind. Es wird nicht davon ausgegangen, dass Sie Kenntnisse über eine bestimmte ML-Plattform haben.

Überblick über die Qualität der ML-Lösung

In der Softwareentwicklung wurden viele Standards, Prozesse, Tools und Praktiken entwickelt, um die Softwarequalität zu gewährleisten. Ziel ist es, sicherzustellen, dass die Software in der Produktion 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. In 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 gesendet 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.

  • Duale Trainings- und Bereitstellungssysteme. ML-Arbeitslasten bestehen in der Regel aus zwei unterschiedlichen, aber miteinander verbundenen Produktionssystemen: dem Trainingssystem und dem Bereitstellungssystem. Eine Pipeline für kontinuierliches Training erzeugt neu trainierte Modelle, die dann für die Bereitstellung von Vorhersagen 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 einer schlechten 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 es eine zusätzliche Herausforderung für ML-Systeme, die Effektivität des Modells in der Produktion im Blick zu behalten.

  • 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. Impliziter Bias in den Daten kann 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 typischen Fehler entstehen, die in jedem Programm auftreten. 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 ein inkonsistentes Datenformat zwischen der integrierten Schnittstelle des Modells und der Bereitstellungs-API. Darüber hinaus verschlechtert sich die Modellleistung im Laufe der Zeit auch ohne diese Probleme und kann ohne ordnungsgemäßes Monitoring unbemerkt fehlschlagen. Daher sollten Sie verschiedene Arten von Tests und Monitoring 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-Scores 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 Satisficing-Messwerte des Modells. Dieser Messwert spiegelt eine betriebliche 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 Satisficing-Messwert ist die Größe des Modells. Diese 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.
  • Verfolgen Sie jedes Experiment, das durchgeführt wurde, um die Reproduzierbarkeit und schrittweise Verbesserung zu unterstützen. Speichern Sie für jeden Test Hyperparameterwerte, die Featureauswahl und zufällige Seeds.

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 (Holdout) haben. Die Testaufteilung sollte während des Trainings nicht sichtbar sein und nicht für die Hyperparameter-Feinabstimmung verwendet werden.
  • 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 Aufteilungen in einer Mischung vorverarbeitet werden, führt dies zu Datenlecks. Wenn Sie beispielsweise Statistiken verwenden, um Daten für die Normalisierung oder für die Bucket-Erstellung numerischer Features 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 ordnungsgemäß gemischt werden, aber auch die Anforderungen für das Modelltraining erfüllen. Diese Aufgabe kann beispielsweise auf positive und negative Instanzverteilungen angewendet werden.
  • Verwenden Sie ein separates Validierungs-Dataset für die Hyperparameter-Abstimmung und die Modellauswahl. Sie können das Validierungs-Dataset auch für einen vorzeitigen Abbruch verwenden. Andernfalls können Sie das Modell für die gesamte Anzahl der maximalen Iterationen trainieren lassen. Speichern Sie jedoch nur dann einen neuen Snapshot des Modells, wenn sich die Leistung im Validierungs-Dataset 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. Diese NaN- oder Nullwerte können Hinweise auf fehlerhafte arithmetische Berechnungen oder schwindende oder explodierende Gradienten sein. Wenn Sie die Änderungen der Verteilung der Gewichtungswerte im Zeitverlauf visualisieren, können Sie die internen Kovariatenverschiebungen erkennen, die das Training verlangsamen. Sie können die Batch-Normalisierung anwenden, um diese Geschwindigkeitsreduzierung 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 eine Überanpassung vorliegt, 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. Mit den Tests sollte sichergestellt werden, dass der Verlust abnimmt und die Ausführungszeit des Trainingsschritts wie erwartet ist. Diese Prüfungen sind erforderlich, da Änderungen am Modellcode zu Fehlern führen können, die den Trainingsprozess 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.
  • Stellen Sie die Pipeline in einer Testumgebung bereit und führen Sie Integrationstests für die End-to-End-Pipeline durch. 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 Trainingsworkflows umfassen Schritte wie Datenaufnahme und -aufteilung, Datentransformation, Modelltraining, Modellbewertung und Modellregistrierung. Einige Trainingspipelines bestehen aus komplexeren Workflows. Zusätzliche Aufgaben können das Durchführen eines selbstüberwachten Modelltrainings mit Daten ohne Label oder das Erstellen eines Index für ungefähre nächste Nachbarn für Einbettungen sein. Die Haupteingabe einer 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. In diesen Schritten werden die Ein- und Ausgaben der Pipelines validiert.

Sie fügen den Schritt zur Datenvalidierung nach dem Schritt zur Datenaufnahme im Trainingsworkflow hinzu. Im Schritt zur Datenvalidierung werden die neuen Eingabe-Trainingsdaten profiliert, die in die Pipeline aufgenommen werden. Während der Profilerstellung 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 Datensätze ignorieren oder einfach aus dem Dataset entfernen. Andere Probleme in den neu aufgenommenen Daten können jedoch die Ausführung der Trainingspipeline anhalten. Sie müssen diese Probleme also 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.
  • Validieren 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.
  • Validieren Sie den maximalen Anteil der fehlenden Werte für jedes Feature. Ein großer Anteil fehlender Werte in einem bestimmten Feature kann sich auf das Modelltraining auswirken. Fehlende Werte weisen in der Regel auf eine unzuverlässige Featurequelle hin.
  • Validieren Sie die Domains der Eingabefeatures. Prüfen Sie beispielsweise, ob sich das Vokabular kategorialer Features oder der Bereich numerischer Features 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 Features 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 zu credit_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 Datensegmente wie Nutzer nach Land oder Filme nach Genre. Durch das Testen mit segmentierten Daten vermeiden Sie ein Problem, bei dem detaillierte Leistungsprobleme durch einen globalen zusammenfassenden Messwert 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 impliziten Bias zu erkennen. Impliziter Bias kann beispielsweise durch unzureichende Vielfalt in den Trainingsdaten verursacht werden. Fairnessindikatoren können auf Probleme 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, kann es sinnvoller sein, 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 in mehreren Umgebungen bereitstellen, werden in Ihrer Pipeline für kontinuierliches Training möglicherweise zwei oder mehr Modelle trainiert, wobei jedes Modell für die Zielbereitstellungsumgebung optimiert ist.

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 Modell-Registry gespeichert und kann in der Produktion bereitgestellt werden. An dieser Stelle müssen Sie eine Reihe von Tests implementieren, um zu prüfen, ob das Modell für die Bereitstellung in der Zielumgebung geeignet ist. Außerdem müssen Sie diese Tests in einer Modell-CI/CD-Routine 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 Sandbox-Version 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 Model Service API durch, nachdem sie in der Zielumgebung bereitgestellt wurde. Senden Sie dazu eine einzelne Instanz oder einen Batch von 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 Bereitstellungspopulation zu testen. In 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 das neue Modell vollständig veröffentlichen, um alle Ihre Live-Vorhersageanfragen zu verarbeiten. Zu den Onlinetesttechniken 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 Abweichung 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 aufgrund einer Aktualisierung der Anwendung, die den Modelldienst nutzt, während der Bereitstellung der Produktname und nicht der Produktcode übergeben.

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. Grundwahrheit), 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.
  • Überwachen Sie die Effizienz des Dienstes, um sicherzustellen, dass Ihr Modell in der Produktion in großem Umfang bereitgestellt werden kann. Dieses Monitoring hilft Ihnen auch, die Kapazitätsplanung vorherzusagen und zu verwalten, und die Kosten Ihrer Bereitstellungsinfrastruktur zu schätzen. Beobachten Sie Effizienzmesswerte, einschließlich CPU-Auslastung, GPU-Auslastung, Arbeitsspeicherauslastung, 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 bereichsübergreifende Teams (Lines of Business, 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 als Golden Datasets bezeichnet), die sowohl Standard- als auch Sonderfälle abdecken. Prüfen Sie das Modell außerdem auf Fairness-Indikatoren, um impliziten Bias 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

Beitragende

Autor: Mike Styer | Generative AI Solution Architect

Weitere Mitwirkende: Amanda Brinhosa | Customer Engineer