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

Last reviewed 2022-02-17 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 Erstellung, Bereitstellung und dem Betrieb von ML-Lösungen beteiligt sind. In diesem Dokument wird davon ausgegangen, dass Sie mit MLOps im Allgemeinen vertraut sind. Dabei wird nicht davon ausgegangen, dass Sie mit einer bestimmten ML-Plattform vertraut sind.

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

Beim Softwareengineering wurden viele Standards, Prozesse, Tools und Praktiken entwickelt, um die Softwarequalität zu gewährleisten. Das Ziel ist, dass die Software wie vorgesehen in der Produktion funktioniert und dass sie 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 sind diese Vorgehensweisen normalerweise in CI/CD-Prozesse eingebunden 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.

  • Dual-Trainings-Bereitstellungssysteme. ML-Arbeitslasten bestehen in der Regel aus zwei unterschiedlichen, aber verwandten Produktionssystemen: dem Trainingssystem und dem Bereitstellungssystem. Eine Pipeline für kontinuierliches Training erzeugt 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. Darüber hinaus 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 die Verfolgung der Wirksamkeit 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 erzeugt, kann die schlechte ML-Qualität das Ergebnis einer breiten Palette von Problemen sein. Einige dieser Probleme können durch die typischen Fehler in einem 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 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 fehlschlagen, wenn sie nicht ordnungsgemäß überwacht wird. Daher sollten Sie verschiedene Arten von Tests und Monitoring für ML-Modelle und -Systeme während der Entwicklung, während der Bereitstellung und in der 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:

  • 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 Messwerte zur Anspruchserfüllung 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, die wichtig ist, wenn Sie das Modell auf Hardware mit geringer Leistung 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 alle durchgeführten Tests, um Ihnen bei der Reproduzierbarkeit und inkrementellen Verbesserungen zu helfen. Speichern Sie für jeden Test Hyperparameter-Werte, Featureauswahl und zufällige Werte.

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 eine separate Testdatenaufteilung (Holdout) für die endgültige Bewertung des Modells haben. Die Testaufteilung sollte während des Trainings nicht angezeigt werden und sollte nicht für die Hyperparameter-Abstimmung 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 Splits in einer Mischung vorverarbeitet werden, führt dies zu Datenlecks. Wenn Sie beispielsweise Statistiken verwenden, um Daten für die Normalisierung zu transformieren, oder um numerische Features zusammenzufassen, 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 die 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.
  • Sie haben ein separates Validierungs-Dataset für die Hyperparameter-Abstimmung und Modellauswahl. Sie können das Validierungs-Dataset auch verwenden, um ein frühzeitiges Anhalten durchzuführen. Andernfalls können Sie das Modell für das gesamte Set der maximalen Iterationen trainieren lassen. Speichern Sie jedoch nur dann einen neuen Snapshot des Modells, wenn sich dessen 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. Durch Visualisierung der Änderungen der Gewichtungswerte im Zeitverlauf können Sie interne kovariative Verschiebungen erkennen, die das Training verlangsamen. Sie können die Batchnormalisierung 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, führen Sie die entsprechenden Verbesserungen durch. Wenn beispielsweise eine Unteranpassung auftritt, können Sie die Lernkapazität des Modells erhöhen. Wenn es eine Überanpassung gibt, können Sie die 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 abläuft. Sie nehmen diese Prüfungen vor, 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 der 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

Bei dem kontinuierlichen Trainingsprozess geht es um die Orchestrierung und Automatisierung der Ausführung von Trainingspipelines. Typische Trainings-Workflows sind Schritte wie Datenaufnahme und -aufteilung, Datentransformation, Modelltraining, Modellbewertung und Modellregistrierung. Einige Trainingspipelines bestehen aus komplexeren Workflows. Weitere Aufgaben können das Durchführen eines selbstüberwachten Modelltrainings sein, das Daten ohne Label verwendet, oder das Erstellen eines ungefähren Nachbarnindex für Einbettungen. Die Haupteingabe einer Trainingspipeline sind neue Trainingsdaten. 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. Mit diesen Schritten werden die Eingaben und Ausgaben der Pipelines validiert.

Sie fügen den Datenvalidierungsschritt nach dem Datenaufnahmeschritt im Trainingsworkflow hinzu. Mit dem Schritt zur Datenvalidierung wird ein Profil der neuen Eingabetrainingsdaten erstellt, die in die Pipeline aufgenommen werden. Bei 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 aus dem Dataset ignorieren oder einfach entfernen. Andere Probleme in den neu aufgenommenen Daten können jedoch die Ausführung der Trainingspipeline anhalten. Daher müssen Sie diese Probleme 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 für jedes Feature den maximalen Anteil der fehlenden Werte. Ein großer Teil der fehlenden Werte in einem bestimmten Feature kann sich auf das Modelltraining auswirken. Fehlende Werte weisen normalerweise auf eine unzuverlässige Featurequelle hin.
  • Validieren Sie die Domains der Eingabefeatures. Prüfen Sie beispielsweise, ob Änderungen an einem Vokabular von kategorialen Features oder Änderungen im Bereich numerischer Features vorliegen, 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 externe Änderung wie diese erfordert möglicherweise Änderungen in Ihrem Modell.

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 an wichtigen Datensegmenten wie Nutzern nach Land oder Filmen nach Genre. Durch das Testen von segmentierten Daten vermeiden Sie ein Problem, bei dem detaillierte Leistungsprobleme durch einen globalen Zusammenfassungsmesswert maskiert 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 auf den Anspruchserfüllungsmesswert 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, kann die kontinuierliche Trainingspipeline zwei oder mehr Modelle trainieren, wobei jedes Modell für seine Zielbereitstellungsumgebung optimiert ist. Weitere Informationen und ein Beispiel finden Sie unter Dual Deployments 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 Modell-Registry gespeichert und kann für die 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 den Laufzeitabhängigkeiten geladen und 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 für die Modelldienst-API aus, nachdem sie in der Zielumgebung bereitgestellt wurde. Senden Sie zum Ausführen dieses Tests eine einzelne Instanz oder einen Batch von Instanzen an den Modelldienst und validieren 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. Dieser Test misst die Leistung des neuen Modells im Vergleich zum aktuellen Modell. Nachdem Sie die Leistung des neuen Modells mit der Leistung des aktuellen Modells verglichen haben, können Sie das neue Modell vollständig freigeben, um alle Live-Vorhersageanfragen zu bedienen. Zu den Online-Testtechniken gehören A/B Testing 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 Abweichungen 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 während der Bereitstellung jedoch der Produktname und nicht der Produktcode übergeben, da die Anwendung aktualisiert wurde, die den Modelldienst nutzt.

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.
  • Beobachten Sie die Diensteffizienz, um sicherzustellen, dass Ihr Modell in der Produktion in großem Umfang bereitgestellt werden kann. Mit diesem Monitoring können Sie auch die Kapazitätsplanung vorhersagen und verwalten und die Kosten Ihrer Bereitstellungsinfrastruktur 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.

Leitlinien

  • 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.
  • Evaluieren Sie das Modell für Benchmark-Datasets (auch als goldene Datasets bezeichnet), die sowohl Standard- als auch Grenzfälle abdecken. Außerdem sollten Sie das Modell auf Fairness-Indikatoren prüfen, 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