Das Verständnis natürlicher Sprache wird in einer Vielzahl von Anwendungsfällen eingesetzt, von Chatbots und virtuellen Assistenten bis hin zu maschineller Übersetzung und Textzusammenfassung. Um sicherzustellen, dass diese Anwendungen mit der erwarteten Leistung ausgeführt werden, ist es wichtig, dass die Daten in den Trainings- und Produktionsumgebungen aus derselben Verteilung stammen. Wenn sich die für die Inferenz verwendeten Daten (Produktionsdaten) von den beim Modelltraining verwendeten Daten unterscheiden, tritt ein Phänomen auf, das als Datendrift bekannt ist. Wenn eine Datendrift auftritt, ist das Modell für die Daten in der Produktion nicht mehr relevant und weist wahrscheinlich eine schlechtere Leistung als erwartet auf. Es ist wichtig, die Inferenzdaten kontinuierlich zu überwachen und sie mit den während des Trainings verwendeten Daten zu vergleichen.
Sie können verwenden Amazon Sage Maker um schnell Modelle für maschinelles Lernen (ML) in jeder Größenordnung zu erstellen, zu trainieren und bereitzustellen. Als proaktive Maßnahme gegen Modellverschlechterung können Sie verwenden Amazon SageMaker-Modellmonitor um die Qualität Ihrer ML-Modelle kontinuierlich in Echtzeit zu überwachen. Mit Model Monitor können Sie auch Warnungen konfigurieren, um zu benachrichtigen und Aktionen auszulösen, wenn eine Abweichung in der Modellleistung beobachtet wird. Durch die frühzeitige und proaktive Erkennung dieser Abweichungen können Sie Korrekturmaßnahmen ergreifen, z. B. das Sammeln neuer Ground-Truth-Trainingsdaten, das Umschulen von Modellen und das Auditieren vorgelagerter Systeme, ohne Modelle manuell überwachen oder zusätzliche Tools erstellen zu müssen.
Model Monitor bietet vier verschiedene Arten von Überwachungsfunktionen, um Modelldrift in Echtzeit zu erkennen und zu verringern:
- Datenqualität – Hilft bei der Erkennung von Änderungen in Datenschemata und statistischen Eigenschaften unabhängiger Variablen und warnt, wenn eine Abweichung erkannt wird.
- Modellqualität – Zur Überwachung von Modellleistungsmerkmalen wie Genauigkeit oder Präzision in Echtzeit ermöglicht Ihnen Model Monitor die Aufnahme der aus Ihren Anwendungen gesammelten Ground-Truth-Labels. Model Monitor führt die Ground-Truth-Informationen automatisch mit Vorhersagedaten zusammen, um die Modellleistungsmetriken zu berechnen.
- Modellbias –Model Monitor ist integriert mit Amazon SageMaker klären um die Sichtbarkeit potenzieller Vorurteile zu verbessern. Auch wenn Ihre ursprünglichen Daten oder Ihr ursprüngliches Modell möglicherweise nicht verzerrt sind, können Änderungen in der Welt dazu führen, dass sich im Laufe der Zeit in einem bereits trainierten Modell eine Verzerrung entwickelt.
- Modell Erklärbarkeit – Die Drifterkennung warnt Sie, wenn sich die relative Wichtigkeit von Feature-Attributionen ändert.
In diesem Beitrag diskutieren wir die Arten der Datenqualitätsabweichung, die auf Textdaten anwendbar sind. Wir stellen außerdem einen Ansatz zur Erkennung von Datendrift in Textdaten mithilfe von Model Monitor vor.
Datendrift im NLP
Datendrift kann in drei Kategorien eingeteilt werden, je nachdem, ob die Verteilungsverschiebung auf der Eingabe- oder auf der Ausgabeseite stattfindet oder ob sich die Beziehung zwischen Eingabe und Ausgabe geändert hat.
Kovariatenverschiebung
In einer Kovariatenverschiebung, die Verteilung der Eingaben ändert sich im Laufe der Zeit, aber die bedingte Verteilung P(y|x) ändert sich nicht. Diese Art der Drift wird als Kovariatenverschiebung bezeichnet, da das Problem durch eine Verschiebung der Verteilung der Kovariaten (Merkmale) entsteht. Beispielsweise kann in einem E-Mail-Spam-Klassifizierungsmodell die Verteilung der Trainingsdaten (E-Mail-Korpora) von der Verteilung der Daten während der Bewertung abweichen.
Etikettenverschiebung
Während sich die Kovariatenverschiebung auf Änderungen in der Merkmalsverteilung konzentriert, Etikettenverschiebung konzentriert sich auf Änderungen in der Verteilung der Klassenvariablen. Diese Art der Verschiebung ist im Wesentlichen die Umkehrung der Kovariatenverschiebung. Eine intuitive Möglichkeit, darüber nachzudenken, könnte darin bestehen, einen unausgeglichenen Datensatz zu betrachten. Wenn das Spam-zu-Nicht-Spam-Verhältnis der E-Mails in unserem Trainingssatz 50 % beträgt, in Wirklichkeit jedoch 10 % unserer E-Mails Nicht-Spam sind, dann hat sich die Zielbezeichnungsverteilung verschoben.
Konzeptwechsel
Konzeptwechsel unterscheidet sich von Kovariate und Label-Shift dadurch, dass es nicht mit der Datenverteilung oder der Klassenverteilung zusammenhängt, sondern mit der Beziehung zwischen den beiden Variablen. Beispielsweise verwenden E-Mail-Spammer häufig unterschiedliche Konzepte, um die Spam-Filtermodelle zu passieren, und das während der Schulung verwendete E-Mail-Konzept kann sich im Laufe der Zeit ändern.
Nachdem wir nun die verschiedenen Arten der Datendrift verstanden haben, wollen wir sehen, wie wir Model Monitor verwenden können, um Kovariatenverschiebungen in Textdaten zu erkennen.
Lösungsüberblick
Im Gegensatz zu Tabellendaten, die strukturiert und begrenzt sind, sind Textdaten komplex, hochdimensional und haben eine freie Form. Um Drift im NLP effizient zu erkennen, arbeiten wir mit Einbettungen, Dabei handelt es sich um niedrigdimensionale Darstellungen des Textes. Sie können Einbettungen mit verschiedenen Sprachmodellen wie Word2Vec und transformatorbasierten Modellen wie erhalten BERT. Diese Modelle projizieren hochdimensionale Daten in niedrigdimensionale Räume und bewahren dabei die semantischen Informationen des Textes. Das Ergebnis sind dichte und kontextbedeutende Vektoren, die für verschiedene nachgelagerte Aufgaben verwendet werden können, einschließlich der Überwachung auf Datendrift.
In unserer Lösung verwenden wir Einbettungen, um die Kovariatenverschiebung englischer Sätze zu erkennen. Wir verwenden Model Monitor, um die kontinuierliche Überwachung eines Textklassifikators zu ermöglichen, der in einer Produktionsumgebung bereitgestellt wird. Unser Ansatz besteht aus folgenden Schritten:
- Optimieren Sie ein BERT-Modell mit SageMaker.
- Stellen Sie einen fein abgestimmten BERT-Klassifikator als Echtzeit-Endpunkt bereit mit Datenerfassung aktiviert.
- Erstellen Sie einen Basisdatensatz, der aus einer Stichprobe der Sätze besteht, die zum Trainieren des BERT-Klassifikators verwendet werden.
- Erstellen Sie benutzerdefinierter SageMaker-Überwachungsjob um die Kosinusähnlichkeit zwischen den in der Produktion erfassten Daten und dem Basisdatensatz zu berechnen.
Das folgende Diagramm veranschaulicht den Lösungsworkflow:
Feinabstimmung eines BERT-Modells
In diesem Beitrag verwenden wir Korpus der sprachlichen Akzeptanz (CoLA), ein Datensatz von 10,657 englischen Sätzen, die aus veröffentlichter linguistischer Literatur als grammatikalisch oder ungrammatisch gekennzeichnet sind. Wir verwenden das SageMaker-Training, um ein BERT-Modell mithilfe des CoLa-Datensatzes zu optimieren, indem wir eine PyTorch-Schätzerklasse definieren. Weitere Informationen zur Verwendung dieses SDK mit PyTorch finden Sie unter Verwenden Sie PyTorch mit dem SageMaker Python SDK. Rufen Sie an fit()
Methode des Schätzers startet den Trainingsjob:
Stellen Sie das Modell bereit
Nachdem wir unser Modell trainiert haben, hosten wir es auf einem SageMaker-Endpunkt. Damit der Endpunkt das Modell lädt und Vorhersagen liefert, implementieren wir einige Methoden in train_deploy.py:
- model_fn () – Lädt das gespeicherte Modell und gibt ein Modellobjekt zurück, das für die Modellbereitstellung verwendet werden kann. Der SageMaker PyTorch-Modellserver lädt unser Modell durch Aufrufen von
model_fn
. - input_fn () – Deserialisiert und bereitet die Vorhersageeingabe vor. In diesem Beispiel wird unser Anfragetext zuerst in JSON serialisiert und dann an den Modellbereitstellungsendpunkt gesendet. Daher in
input_fn()
Zunächst deserialisieren wir den JSON-formatierten Anforderungshauptteil und geben die Eingabe als zurücktorch.tensor
, wie für BERT erforderlich. - Predict_FN () – Führt die Vorhersage durch und gibt das Ergebnis zurück.
Aktivieren Sie die Datenerfassung von Model Monitor
Wir ermöglichen Datenerfassung des Modellmonitors um die Eingabedaten im aufzuzeichnen Amazon Simple Storage-Service (Amazon S3)-Bucket, um später darauf zu verweisen:
Anschließend erstellen wir einen Echtzeit-SageMaker-Endpunkt mit dem im vorherigen Schritt erstellten Modell:
Inferenz
Wir führen die Vorhersage mit dem Vorhersageobjekt aus, das wir im vorherigen Schritt erstellt haben. Wir legen den JSON-Serialisierer und Deserialisierer fest, der vom Inferenzendpunkt verwendet wird:
Der Echtzeitendpunkt ist so konfiguriert, dass er Daten aus der Anfrage erfasst. Die Antwort und die Daten werden in Amazon S3 gespeichert. Sie können die im vorherigen Überwachungsplan erfassten Daten anzeigen.
Erstellen Sie eine Grundlinie
Wir verwenden ein fein abgestimmtes BERT-Modell, um Satzeinbettungsmerkmale aus den Trainingsdaten zu extrahieren. Wir verwenden diese Vektoren als hochwertige Merkmalseingaben zum Vergleich des Kosinusabstands, da BERT eine dynamische Wortdarstellung mit semantischem Kontext erzeugt. Führen Sie die folgenden Schritte aus, um die Satzeinbettung zu erhalten:
- Verwenden Sie einen BERT-Tokenizer, um Token-IDs für jedes Token zu erhalten (
input_id
) im Eingabesatz und in der Maske, um anzugeben, welche Elemente in der Eingabesequenz Token oder Auffüllelemente sind (attention_mask_id
). Wir verwenden das BERTtokenizer.encode_plus
Funktion, um diese Werte für jeden Eingabesatz zu erhalten:
input_ids
und attention_mask_ids
werden an das Modell übergeben und rufen die verborgenen Zustände des Netzwerks ab. Der hidden_states
hat vier Dimensionen in der folgenden Reihenfolge:
- Layer-Nummer (BERT hat 12 Layer)
- Chargennummer (1 Satz)
- Word-Token-Indizes
- Versteckte Einheiten (768 Funktionen)
- Verwenden Sie die letzten beiden verborgenen Ebenen, um einen einzelnen Vektor (Satzeinbettung) zu erhalten, indem Sie den Durchschnitt aller Eingabetoken im Satz berechnen:
- Konvertieren Sie die Satzeinbettung als NumPy-Array und speichern Sie sie an einem Amazon S3-Speicherort als Basislinie, die von Model Monitor verwendet wird:
Bewertungsskript
Model Monitor bietet einen vorgefertigten Container mit der Möglichkeit, die von Endpunkten erfassten Daten für tabellarische Datensätze zu analysieren. Wenn Sie Ihren eigenen Container mitbringen möchten, bietet Model Monitor Erweiterungspunkte, die Sie verwenden können. Wenn Sie eine erstellen MonitoringSchedule
, Model Monitor startet schließlich die Verarbeitung von Jobs. Daher muss der Container den Verarbeitungsauftragsvertrag kennen. Wir müssen ein Evaluierungsskript erstellen, das mit dem Container kompatibel ist Vertragseingaben und Ausgänge.
Model Monitor verwendet Auswertungscode für alle Proben, die während des Überwachungsplans erfasst werden. Für jeden Inferenzdatenpunkt berechnen wir die Satzeinbettung unter Verwendung derselben zuvor beschriebenen Logik. Kosinusähnlichkeit wird als Distanzmetrik verwendet, um die Ähnlichkeit eines Inferenzdatenpunkts und Satzeinbettungen in der Grundlinie zu messen. Mathematisch misst es den Kosinuswinkel zwischen zwei Satzeinbettungsvektoren. Ein hoher Kosinus-Ähnlichkeitswert weist auf ähnliche Satzeinbettungen hin. Ein niedrigerer Kosinus-Ähnlichkeitswert weist auf eine Datendrift hin. Wir berechnen einen Durchschnitt aller Kosinus-Ähnlichkeitswerte, und wenn er unter dem Schwellenwert liegt, wird er im Verstoßbericht erfasst. Je nach Anwendungsfall können Sie andere Distanzmetriken verwenden, z manhattan
or euclidean
um die Ähnlichkeit von Satzeinbettungen zu messen.
Das folgende Diagramm zeigt, wie wir SageMaker Model Monitoring verwenden, um eine Basislinie festzulegen und Datendrift mithilfe der Kosinus-Distanzähnlichkeit zu erkennen.
Im Folgenden finden Sie den Code zur Berechnung der Verstöße. Das vollständige Evaluierungsskript finden Sie unter GitHub:
Messen Sie die Datendrift mit Model Monitor
In diesem Abschnitt konzentrieren wir uns auf die Messung der Datendrift mit Model Monitor. Vorgefertigte Monitore von Model Monitor werden mit Strom versorgt Deequ, eine auf Apache Spark basierende Bibliothek zum Definieren von Komponententests für Daten, die die Datenqualität in großen Datensätzen messen. Sie benötigen keine Programmierung, um diese vorgefertigten Überwachungsfunktionen zu nutzen. Sie haben außerdem die Flexibilität, Modelle durch Codierung zu überwachen, um benutzerdefinierte Analysen bereitzustellen. Sie können alle von Model Monitor ausgegebenen Metriken sammeln und überprüfen Amazon SageMaker-Studio, sodass Sie die Leistung Ihres Modells visuell analysieren können, ohne zusätzlichen Code schreiben zu müssen.
In bestimmten Szenarien, beispielsweise wenn die Daten nicht tabellarisch sind, wird der Standardverarbeitungsauftrag (unterstützt von Deequ) reicht nicht aus, da es nur tabellarische Datensätze unterstützt. Die vorgefertigten Monitore reichen möglicherweise nicht aus, um anspruchsvolle Metriken zur Erkennung von Abweichungen zu generieren, und erfordern möglicherweise die Verwendung eigener Metriken. In den nächsten Abschnitten beschreiben wir die Einrichtung zum Einbringen Ihrer Metriken durch Erstellen eines benutzerdefinierten Containers.
Erstellen Sie den benutzerdefinierten Model Monitor-Container
Wir nutzen die Bewertungsskript aus dem vorherigen Abschnitt, um einen Docker-Container zu erstellen und dorthin zu pushen Amazon Elastic Container-Registrierung (Amazon ECR):
Wenn sich der Docker-Container des Kunden in Amazon ECR befindet, können wir einen Modellüberwachungsauftrag planen und einen Verstoßbericht erstellen, wie in den nächsten Abschnitten gezeigt.
Planen Sie einen Modellüberwachungsauftrag
Um einen Modellüberwachungsauftrag zu planen, erstellen wir eine Instanz von Model Monitor und in der image_uri
, wir beziehen uns auf den Docker-Container, den wir im vorherigen Abschnitt erstellt haben:
Wir planen den Überwachungsauftrag mithilfe von create_monitoring_schedule
API. Sie können den Überwachungsauftrag stündlich oder täglich planen. Sie konfigurieren den Job mithilfe von destination
Parameter, wie im folgenden Code gezeigt:
Um den Überwachungszeitplan und seine Ausführungen zu beschreiben und aufzulisten, können Sie die folgenden Befehle verwenden:
Bericht über Verstöße gegen die Datendrift
Wenn der Modellüberwachungsauftrag abgeschlossen ist, können Sie zum S3-Zielpfad navigieren, um auf die Verstoßberichte zuzugreifen. Dieser Bericht enthält alle Eingaben, deren durchschnittlicher Kosinuswert (avg_cosine_score
) liegt unter dem als Umgebungsvariable konfigurierten Schwellenwert THRESHOLD:0.5
der ModelMonitor Beispiel. Dies ist ein Hinweis darauf, dass die während der Inferenz beobachteten Daten über die festgelegte Basislinie hinaus abweichen.
Der folgende Code zeigt den generierten Verstoßbericht:
Basierend auf dieser Beobachtung können Sie schließlich Ihr Modell für die Neuschulung konfigurieren. Sie können auch aktivieren Amazon Simple Notification Service (Amazon SNS)-Benachrichtigungen zum Versenden von Warnungen, wenn Verstöße auftreten.
Zusammenfassung
Mit Model Monitor können Sie die hohe Qualität Ihrer Modelle in der Produktion aufrechterhalten. In diesem Beitrag haben wir die Herausforderungen bei der Überwachung der Datendrift bei unstrukturierten Daten wie Text hervorgehoben und einen intuitiven Ansatz zur Erkennung von Datendrift mithilfe eines benutzerdefinierten Überwachungsskripts bereitgestellt. Den mit dem Beitrag verknüpften Code finden Sie im Folgenden GitHub-Repository. Darüber hinaus können Sie die Lösung anpassen, um andere Entfernungsmetriken zu verwenden, z maximale mittlere Abweichung (MMD), eine nichtparametrische Distanzmetrik zur Berechnung der Randverteilung zwischen Quell- und Zielverteilung im eingebetteten Raum.
Über die Autoren
Vikram Elango ist ein KI/ML-Spezialist für Lösungsarchitekten bei Amazon Web Services mit Sitz in Virginia, USA. Vikram unterstützt Kunden aus der Finanz- und Versicherungsbranche mit Design und Vordenkertum beim Erstellen und Bereitstellen von Anwendungen für maschinelles Lernen in großem Maßstab. Derzeit konzentriert er sich auf die Verarbeitung natürlicher Sprache, verantwortungsvolle KI, Inferenzoptimierung und die Skalierung von ML im gesamten Unternehmen. In seiner Freizeit reist, wandert, kocht und campt er gerne mit seiner Familie.
Raghu Ramesha ist ML Solutions Architect im Amazon SageMaker Service-Team. Er konzentriert sich darauf, Kunden dabei zu helfen, ML-Produktions-Workloads in großem Maßstab auf SageMaker zu migrieren. Er ist auf die Bereiche maschinelles Lernen, KI und Computer Vision spezialisiert und verfügt über einen Master-Abschluss in Informatik von der UT Dallas. In seiner Freizeit reist und fotografiert er gerne.
Tony Chen ist Machine Learning Solutions Architect bei Amazon Web Services und unterstützt Kunden bei der Entwicklung skalierbarer und robuster Machine Learning-Funktionen in der Cloud. Als ehemaliger Datenwissenschaftler und Dateningenieur nutzt er seine Erfahrung, um einige der schwierigsten Probleme zu bewältigen, mit denen Unternehmen bei der Operationalisierung von maschinellem Lernen konfrontiert sind.
- '
- "
- 100
- 11
- 7
- Über uns
- Zugang
- Konto
- über
- Aktionen
- Zusätzliche
- AI
- Alle
- bereits
- Obwohl
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- Analyse
- Apache
- Apache Funken
- anwendbar
- Anwendungen
- verfügbar
- durchschnittlich
- AWS
- Baseline
- Körper
- bauen
- Building
- Camping
- Fälle
- Verursachen
- Herausforderungen
- Übernehmen
- Chatbots
- Einstufung
- Cloud
- Code
- Programmierung
- Das Sammeln
- Komplex
- Berechnen
- Computerwissenschaften
- Computer Vision
- Container
- enthält
- kontinuierlich
- Vertrag
- Kochen
- Erstellen
- Kunden
- Dallas
- technische Daten
- Datenqualität
- Datenwissenschaftler
- Design
- Entdeckung
- entwickeln
- anders
- diskutieren
- Abstand
- Docker
- Docker-Container
- Tut nicht
- Domains
- Fahren
- im
- dynamisch
- Früh
- Begegnung
- Endpunkt
- Ingenieur
- Englisch
- Unternehmen
- Arbeitsumfeld
- etablierten
- Beispiel
- ERFAHRUNGEN
- Gesicht
- Familie
- Merkmal
- Eigenschaften
- Revolution
- Vorname
- Flexibilität
- Setzen Sie mit Achtsamkeit
- konzentriert
- unten stehende Formular
- vorwärts
- Frei
- Funktion
- erzeugen
- GitHub
- mit
- Hilfe
- hilft
- High
- Besondere
- Wandern
- Startseite
- Ultraschall
- Hilfe
- HTTPS
- Image
- implementieren
- wichtig
- Einschließlich
- Energiegewinnung
- Information
- Versicherung
- Versicherungswirtschaft
- IT
- Job
- Jobs
- Etiketten
- Sprache
- grosse
- neueste
- startet
- Leadership
- lernen
- Niveau
- Hebelwirkungen
- Bibliothek
- Linguistik
- Liste
- Kataloge
- Belastung
- Standorte
- Maschinelles Lernen
- Maschinenübersetzung
- Maske"
- messen
- Metrik
- ML
- Modell
- für
- Überwachung
- mehr
- Natürliche Sprache
- Verarbeitung natürlicher Sprache
- Netzwerk
- Nlp
- Benachrichtigung
- Angebote
- Auftrag
- Organisationen
- Andere
- Leistung
- Fotografie
- Präzision
- Prognose
- Prognosen
- Gegenwart
- Aufgabenstellung:
- Produktion
- Projekt
- die
- bietet
- Python
- Pytorch
- Qualität
- Angebot
- Echtzeit
- Realität
- Rekord
- berichten
- Meldungen
- Antwort
- Die Ergebnisse
- Umschulung
- Rückgabe
- rückgängig machen
- Überprüfen
- Führen Sie
- Laufen
- sagemaker
- Skalieren
- Skalierung
- Wissenschaft
- Sdk
- Leistungen
- Dienst
- kompensieren
- verschieben
- ähnlich
- Einfacher
- So
- Lösungen
- Raumfahrt
- Räume
- Spam
- spezialisiert
- Staaten
- Lagerung
- speichern
- Unterstützt
- Systeme und Techniken
- Target
- Test
- Testen
- Tests
- die Welt
- dachte
- Gedankenführung
- Zeit
- Zeichen
- Tokens
- Top
- Fackel
- der Verkehr
- Ausbildung
- Übersetzungen
- USA
- Anzeigen
- Virginia
- Assistent
- Sichtbarkeit
- Seh-
- warten
- Netz
- Web-Services
- Wikipedia
- ohne
- Arbeiten
- Arbeitsablauf.
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- Schreiben