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 einer bestimmten 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 sicherzustellen. Ziel ist es, sicherzustellen, dass die Software in der Produktionsumgebung wie vorgesehen funktioniert und sowohl die funktionalen als auch die nicht funktionalen Anforderungen erfüllt. Diese Methoden behandeln Themen wie Softwaretests, Software-Verifizierung und -Validierung und Software-Logging und Monitoring. Im 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.

  • Duale Systeme für Training und Bereitstellung: ML-Arbeitslasten bestehen in der Regel aus zwei unterschiedlichen, aber miteinander verbundenen Produktionssystemen: dem Trainingssystem und dem Bereitstellungssystem. Eine Pipeline für kontinuierliches Training generiert 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. 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 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. 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 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 Serving API. Außerdem verschlechtert sich die Modellleistung im Laufe der Zeit auch ohne diese Probleme und kann unbemerkt fehlschlagen, wenn sie nicht richtig überwacht wird. Daher sollten Sie während der Entwicklung, Bereitstellung und Produktion verschiedene Arten von Tests und Überwachung für ML-Modelle und ‑Systeme 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 gibt die Vorhersageeffektivität des Modells an. Der Messwert enthält Genauigkeit und F-Measure in Klassifizierungsaufgaben, den mittleren absoluten Fehler in Prozent für Regressions- und Prognoseaufgaben, den diskontierten kumulativen 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 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 Ihr Modell auf Low-End-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.
  • Dokumentieren Sie alle durchgeführten Tests, um die Reproduzierbarkeit und inkrementelle Verbesserung zu unterstützen. Speichern Sie für jedes Experiment Hyperparameterwerte, die Feature-Auswahl und Zufalls-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 eine separate Testdatenaufteilung (Holdout) für die endgültige Bewertung des Modells haben. Die Testaufteilung sollte während des Trainings nicht verwendet werden und 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 Aufteilungen in einer Mischung vorverarbeitet werden, führt das zu Datenlecks. Wenn Sie beispielsweise Statistiken verwenden, um Daten zur Normalisierung oder zur Einteilung numerischer Merkmale in Klassen 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 weiterhin den Anforderungen für das Modelltraining entsprechen. Diese Aufgabe kann beispielsweise auf positive und negative Instanzverteilungen angewendet werden.
  • Sie benötigen ein separates Validierungs-Dataset für die Hyperparameter-Abstimmung und die Modellauswahl. Sie können das Validierungs-Dataset auch für das Early Stopping 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 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 Verteilung der Gewichtungswerte im Zeitverlauf visualisieren, können Sie interne Kovariatverschiebungen erkennen, die das Training verlangsamen. Sie können die Batch-Normalisierung anwenden, um diese Verlangsamung 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. Bei einer Überanpassung können Sie 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 sicherstellen, dass der Verlust abnimmt und die Ausführungszeit des Trainingsschritts wie erwartet ist. Sie führen diese Prüfungen durch, weil Änderungen am Modellcode Fehler verursachen 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

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. Zu den zusätzlichen Aufgaben kann das selbstüberwachte Modelltraining mit Daten ohne Label oder das Erstellen eines ANN-Index (Approximate Nearest Neighbor) für Einbettungen gehören. Die Haupteingabe einer Trainingspipeline sind neue Trainingsdaten und die Hauptausgabe ist ein neues Kandidatenmodell für die Bereitstellung in der Produktion.

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 Ein- und Ausgaben der Pipelines validiert.

Sie fügen den Schritt zur Datenvalidierung nach dem Schritt zur Datenerfassung in den Trainingsworkflow ein. Im Schritt zur Datenvalidierung werden die neuen Trainingsdaten für die Eingabe, die in die Pipeline aufgenommen werden, profiliert. Während des Profilings verwendet die Pipeline ein vordefiniertes Datenschema, das während der ML-Entwicklung erstellt wurde, um Anomalien zu erkennen. Je nach Anwendungsfall können Sie einige ungültige Datensätze im Dataset ignorieren oder einfach entfernen. Andere Probleme in den neu aufgenommenen Daten können jedoch die Ausführung der Trainingspipeline stoppen. 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.
  • Prüfen Sie die Datentypen und 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 Attribut. Ein großer Anteil fehlender Werte in einem bestimmten Feature kann sich auf das Modelltraining auswirken. Fehlende Werte deuten in der Regel auf eine unzuverlässige Funktionsquelle hin.
  • Überprüfen Sie die Domains der Eingabefunktionen. 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 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 erforderlich machen.

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 für wichtige Datensegmente wie Nutzer nach Land oder Filme nach Genre. Wenn Sie Tests mit segmentierten Daten durchführen, vermeiden Sie das Problem, dass 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 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 planen, Varianten desselben Modells in verschiedenen Bereitstellungsumgebungen oder für verschiedene Arbeitslasten bereitzustellen, kann es sinnvoll sein, die Validierung anhand des Anspruchserfüllungsmesswerts aufzuschieben. 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 seine Zielbereitstellungsumgebung optimiert ist. 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. An diesem Punkt 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 CI/CD-Routine für Modelle 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 für die Modellservice-API durch, nachdem sie in der Zielumgebung bereitgestellt wurde. Senden Sie für diesen Test 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 Serving-Population 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 das neue Modell vollständig freigeben, um alle Ihre Live-Vorhersageanfragen zu verarbeiten. Zu den Online-Testverfahren 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 zurückzuführen sein, die zwischen den Bereitstellungs- und den vom Modell erwarteten Features eingeführt wurden. 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 Bereitstellung 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 der Produktion skaliert werden kann. Dieses Monitoring 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 Goldstandard-Datasets genannt), die sowohl Standard- als auch Grenzfälle abdecken. Prüfen Sie das Modell außerdem auf 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

Beitragende

Autor: Mike Styer | Generative AI Solution Architect

Weitere Mitwirkende: Amanda Brinhosa | Customer Engineer