La compréhension du langage naturel est appliquée dans un large éventail de cas d'utilisation, des chatbots et des assistants virtuels à la traduction automatique et au résumé de texte. Pour garantir que ces applications s'exécutent au niveau de performances attendu, il est important que les données des environnements de formation et de production proviennent de la même distribution. Lorsque les données utilisées pour l'inférence (données de production) diffèrent des données utilisées lors de la formation du modèle, nous rencontrons un phénomène appelé dérive des données. Lorsque la dérive des données se produit, le modèle n'est plus pertinent pour les données en production et fonctionne probablement moins bien que prévu. Il est important de surveiller en permanence les données d'inférence et de les comparer aux données utilisées pendant la formation.
Vous pouvez utiliser Amazon Sage Maker pour créer, former et déployer rapidement des modèles d'apprentissage automatique (ML) à n'importe quelle échelle. Comme mesure proactive contre la dégradation du modèle, vous pouvez utiliser Moniteur de modèle Amazon SageMaker pour surveiller en permanence la qualité de vos modèles ML en temps réel. Avec Model Monitor, vous pouvez également configurer des alertes pour notifier et déclencher des actions si une dérive des performances du modèle est observée. La détection précoce et proactive de ces déviations vous permet de prendre des mesures correctives, telles que la collecte de nouvelles données de formation de vérité terrain, le recyclage des modèles et l'audit des systèmes en amont, sans avoir à surveiller manuellement les modèles ou à créer des outils supplémentaires.
Model Monitor propose quatre types différents de capacités de surveillance pour détecter et atténuer la dérive du modèle en temps réel:
- Qualité des données – Aide à détecter les changements dans les schémas de données et les propriétés statistiques des variables indépendantes et alerte lorsqu'une dérive est détectée.
- Qualité du modèle – Pour surveiller les caractéristiques de performance du modèle telles que l'exactitude ou la précision en temps réel, Model Monitor vous permet d'ingérer les étiquettes de vérité terrain collectées à partir de vos applications. Model Monitor fusionne automatiquement les informations de vérité terrain avec les données de prédiction pour calculer les métriques de performance du modèle.
- Biais du modèle –Modèle Monitor est intégré avec Amazon SageMaker Clarifier pour améliorer la visibilité sur les biais potentiels. Bien que vos données ou votre modèle initiaux puissent ne pas être biaisés, les changements dans le monde peuvent entraîner le développement d'un biais au fil du temps dans un modèle qui a déjà été formé.
- Explicabilité du modèle - La détection de dérive vous alerte lorsqu'un changement se produit dans l'importance relative des attributions de fonctionnalités.
Dans cet article, nous discutons des types de dérive de la qualité des données applicables aux données textuelles. Nous présentons également une approche pour détecter la dérive des données dans les données textuelles à l'aide de Model Monitor.
Dérive des données en PNL
La dérive des données peut être classée en trois catégories selon que le décalage de distribution se produit du côté de l'entrée ou du côté de la sortie, ou si la relation entre l'entrée et la sortie a changé.
Changement de covariable
Dans un changement de covariable, la distribution des entrées change dans le temps, mais la distribution conditionnelle P(y|x) ne change pas. Ce type de dérive est appelé décalage de covariable car le problème se pose en raison d'un décalage dans la distribution des covariables (caractéristiques). Par exemple, dans un modèle de classification des spams par e-mail, la distribution des données d'entraînement (corpus d'e-mails) peut diverger de la distribution des données lors de la notation.
Changement d'étiquette
Alors que le changement de covariable se concentre sur les changements dans la distribution des caractéristiques, changement d'étiquette se concentre sur les changements dans la distribution de la variable de classe. Ce type de déplacement est essentiellement l'inverse du déplacement covariable. Une façon intuitive d'y penser pourrait être de considérer un ensemble de données déséquilibré. Si le ratio spam/non-spam des e-mails de notre ensemble de formation est de 50 %, mais qu'en réalité 10 % de nos e-mails ne sont pas des spams, alors la distribution des étiquettes cibles a changé.
Changement de concept
Changement de concept est différent du changement de covariable et d'étiquette en ce sens qu'il n'est pas lié à la distribution des données ou à la distribution de classe, mais plutôt à la relation entre les deux variables. Par exemple, les spammeurs utilisent souvent une variété de concepts pour passer les modèles de filtre anti-spam, et le concept des e-mails utilisés pendant la formation peut changer au fil du temps.
Maintenant que nous comprenons les différents types de dérive de données, voyons comment nous pouvons utiliser Model Monitor pour détecter le changement de covariable dans les données textuelles.
Vue d'ensemble de la solution
Contrairement aux données tabulaires, qui sont structurées et délimitées, les données textuelles sont complexes, de grande dimension et de forme libre. Pour détecter efficacement la dérive en PNL, nous travaillons avec encastrements, qui sont des représentations de faible dimension du texte. Vous pouvez obtenir des incorporations en utilisant divers modèles de langage tels que Word2Vec et des modèles basés sur des transformateurs tels que BERT. Ces modèles projettent des données de grande dimension dans des espaces de faible dimension tout en préservant les informations sémantiques du texte. Les résultats sont des vecteurs denses et contextuellement significatifs, qui peuvent être utilisés pour diverses tâches en aval, y compris la surveillance de la dérive des données.
Dans notre solution, nous utilisons des intégrations pour détecter le décalage covariable des phrases anglaises. Nous utilisons Model Monitor pour faciliter la surveillance continue d'un classificateur de texte déployé dans un environnement de production. Notre approche comprend les étapes suivantes :
- Affinez un modèle BERT à l'aide de SageMaker.
- Déployez un classificateur BERT affiné en tant que point de terminaison en temps réel avec la saisie des données activée.
- Créez un ensemble de données de base composé d'un échantillon des phrases utilisées pour former le classificateur BERT.
- Créer un tâche de surveillance SageMaker personnalisée pour calculer la similarité cosinusoïdale entre les données capturées en production et l'ensemble de données de référence.
Le diagramme suivant illustre le workflow de la solution :
Affiner un modèle BERT
Dans ce post, nous utilisons Corpus d'acceptabilité linguistique (CoLA), un ensemble de données de 10,657 XNUMX phrases anglaises étiquetées comme grammaticales ou non grammaticales issues de la littérature linguistique publiée. Nous utilisons la formation SageMaker pour affiner un modèle BERT à l'aide de l'ensemble de données CoLa en définissant une classe d'estimateur PyTorch. Pour plus d'informations sur l'utilisation de ce SDK avec PyTorch, voir Utiliser PyTorch avec le SDK Python SageMaker. Appeler le fit()
méthode de l'estimateur lance la tâche d'apprentissage :
Déployer le modèle
Après avoir formé notre modèle, nous l'hébergeons sur un point de terminaison SageMaker. Pour que le point de terminaison charge le modèle et serve les prédictions, nous implémentons quelques méthodes dans train_deploy.py:
- modèle_fn() – Charge le modèle enregistré et renvoie un objet de modèle qui peut être utilisé pour la diffusion de modèles. Le serveur de modèle SageMaker PyTorch charge notre modèle en appelant
model_fn
. - input_fn () – Désérialise et prépare l'entrée de prédiction. Dans cet exemple, notre corps de requête est d'abord sérialisé en JSON, puis envoyé au point de terminaison de diffusion du modèle. Par conséquent, dans
input_fn()
, nous désérialisons d'abord le corps de la demande au format JSON et renvoyons l'entrée en tant quetorch.tensor
, comme requis pour le BERT. - prédire_fn () – Effectue la prédiction et renvoie le résultat.
Activer la capture de données Model Monitor
Nous permettons Capture de données du moniteur de modèle pour enregistrer les données d'entrée dans le Service de stockage simple Amazon (Amazon S3) pour le référencer ultérieurement :
Ensuite, nous créons un point de terminaison SageMaker en temps réel avec le modèle créé à l'étape précédente :
Inférence
Nous exécutons la prédiction à l'aide de l'objet prédicteur que nous avons créé à l'étape précédente. Nous définissons le sérialiseur et le désérialiseur JSON, qui sont utilisés par le point de terminaison d'inférence :
Le point de terminaison en temps réel est configuré pour capturer les données de la demande, et la réponse et les données sont stockées dans Amazon S3. Vous pouvez afficher les données capturées dans le calendrier de surveillance précédent.
Créer une ligne de base
Nous utilisons un modèle BERT affiné pour extraire les caractéristiques d'intégration de phrases à partir des données de formation. Nous utilisons ces vecteurs comme entrées de caractéristiques de haute qualité pour comparer la distance cosinus car BERT produit une représentation dynamique des mots avec un contexte sémantique. Effectuez les étapes suivantes pour obtenir l'intégration de phrases :
- Utilisez un tokenizer BERT pour obtenir les ID de jeton pour chaque jeton (
input_id
) dans la phrase d'entrée et le masque pour indiquer quels éléments de la séquence d'entrée sont des jetons par rapport aux éléments de remplissage (attention_mask_id
). Nous utilisons le BERTtokenizer.encode_plus
pour obtenir ces valeurs pour chaque phrase d'entrée :
input_ids
ainsi que le attention_mask_ids
sont passés au modèle et récupèrent les états cachés du réseau. La hidden_states
a quatre dimensions dans l'ordre suivant :
- Numéro de couche (BERT a 12 couches)
- Numéro de lot (1 phrase)
- Index de mots symboliques
- Unités cachées (768 fonctionnalités)
- Utilisez les deux dernières couches masquées pour obtenir un seul vecteur (incorporation de phrase) en calculant la moyenne de tous les jetons d'entrée dans la phrase :
- Convertissez la phrase incorporée en tant que tableau NumPy et stockez-la dans un emplacement Amazon S3 en tant que ligne de base utilisée par Model Monitor :
Scénario d'évaluation
Model Monitor fournit un conteneur prédéfini avec la possibilité d'analyser les données capturées à partir des points de terminaison pour les ensembles de données tabulaires. Si vous souhaitez apporter votre propre conteneur, Model Monitor fournit des points d'extension que vous pouvez utiliser. Lorsque vous créez un MonitoringSchedule
, Model Monitor lance finalement les tâches de traitement. Par conséquent, le conteneur doit connaître le contrat de travail de traitement. Nous devons créer un script d'évaluation compatible avec le conteneur intrants contractuels ainsi que le sorties.
Model Monitor utilise le code d'évaluation sur tous les échantillons qui sont capturés pendant le programme de surveillance. Pour chaque point de données d'inférence, nous calculons l'incorporation de phrase en utilisant la même logique décrite précédemment. La similarité cosinus est utilisée comme métrique de distance pour mesurer la similarité d'un point de données d'inférence et d'incorporations de phrases dans la ligne de base. Mathématiquement, il mesure l'angle cosinus entre deux vecteurs d'intégration de phrases. Un score de similarité cosinus élevé indique des plongements de phrases similaires. Un score de similarité cosinus inférieur indique une dérive des données. Nous calculons une moyenne de tous les scores de similarité cosinus, et si elle est inférieure au seuil, elle est capturée dans le rapport de violation. En fonction du cas d'utilisation, vous pouvez utiliser d'autres mesures de distance telles que manhattan
or euclidean
pour mesurer la similarité des plongements de phrases.
Le diagramme suivant montre comment nous utilisons SageMaker Model Monitoring pour établir une ligne de base et détecter la dérive des données à l'aide de la similarité de distance cosinus.
Voici le code pour calculer les violations ; le script d'évaluation complet est disponible sur GitHub:
Mesurer la dérive des données à l'aide de Model Monitor
Dans cette section, nous nous concentrons sur la mesure de la dérive des données à l'aide de Model Monitor. Les moniteurs pré-construits Model Monitor sont alimentés par Deequ, qui est une bibliothèque construite sur Apache Spark pour définir des tests unitaires pour les données, qui mesurent la qualité des données dans de grands ensembles de données. Vous n'avez pas besoin de codage pour utiliser ces capacités de surveillance prédéfinies. Vous avez également la possibilité de surveiller les modèles par codage pour fournir une analyse personnalisée. Vous pouvez collecter et consulter toutes les métriques émises par Model Monitor dans Amazon SageMakerStudio, afin que vous puissiez analyser visuellement les performances de votre modèle sans écrire de code supplémentaire.
Dans certains scénarios, par exemple lorsque les données ne sont pas tabulaires, la tâche de traitement par défaut (propulsée par Deequ) ne suffit pas car il ne prend en charge que les jeux de données tabulaires. Les moniteurs pré-construits peuvent ne pas être suffisants pour générer des métriques sophistiquées pour détecter les dérives, et peuvent nécessiter d'apporter vos propres métriques. Dans les sections suivantes, nous décrivons la configuration pour intégrer vos métriques en créant un conteneur personnalisé.
Créer le conteneur Model Monitor personnalisé
Nous utilisons les scénario d'évaluation de la section précédente pour créer un conteneur Docker et le pousser vers Registre des conteneurs élastiques Amazon (Amazon ECR) :
Lorsque le conteneur Docker client se trouve dans Amazon ECR, nous pouvons planifier une tâche Model Monitoring et générer un rapport de violations, comme illustré dans les sections suivantes.
Planifier une tâche de surveillance de modèle
Pour planifier une tâche de surveillance de modèle, nous créons une instance de Model Monitor et dans le image_uri
, nous nous référons au conteneur Docker que nous avons créé dans la section précédente :
Nous planifions le travail de surveillance à l'aide du create_monitoring_schedule
API. Vous pouvez planifier la tâche de surveillance sur une base horaire ou quotidienne. Vous configurez le travail à l'aide de la destination
paramètre, comme indiqué dans le code suivant :
Pour décrire et répertorier le planning de surveillance et ses exécutions, vous pouvez utiliser les commandes suivantes :
Rapport de violation de dérive de données
Lorsque la tâche de surveillance du modèle est terminée, vous pouvez accéder au chemin S3 de destination pour accéder aux rapports de violation. Ce rapport contient toutes les entrées dont le cosinus moyen (avg_cosine_score
) est inférieur au seuil configuré en tant que variable d'environnement THRESHOLD:0.5
dans l' ModèleMonitor exemple. Ceci indique que les données observées pendant l'inférence dérivent au-delà de la ligne de base établie.
Le code suivant affiche le rapport de non-respect généré :
Enfin, sur la base de ce constat, vous pouvez configurer votre modèle pour le réapprentissage. Vous pouvez également activer Service de notification simple d'Amazon (Amazon SNS) pour envoyer des alertes lorsque des violations se produisent.
Conclusion
Model Monitor vous permet de maintenir la haute qualité de vos modèles en production. Dans cet article, nous avons mis en évidence les défis liés à la surveillance de la dérive des données sur des données non structurées comme le texte, et fourni une approche intuitive pour détecter la dérive des données à l'aide d'un script de surveillance personnalisé. Vous pouvez trouver le code associé à la publication dans ce qui suit GitHub référentiel. De plus, vous pouvez personnaliser la solution pour utiliser d'autres mesures de distance telles que écart moyen maximal (MMD), une métrique de distance non paramétrique pour calculer la distribution marginale entre la distribution source et cible sur l'espace intégré.
À propos des auteurs
Vikram Elango est architecte de solutions spécialisées en IA/ML chez Amazon Web Services, basé en Virginie, aux États-Unis. Vikram aide les clients des secteurs de la finance et de l'assurance avec la conception et le leadership éclairé pour créer et déployer des applications d'apprentissage automatique à grande échelle. Il se concentre actuellement sur le traitement du langage naturel, l'IA responsable, l'optimisation des inférences et la mise à l'échelle du ML dans l'entreprise. Dans ses temps libres, il aime voyager, faire de la randonnée, cuisiner et camper avec sa famille.
Raghu Ramesha est un architecte de solutions ML au sein de l'équipe Amazon SageMaker Service. Il se concentre sur l'aide aux clients pour migrer les charges de travail de production ML vers SageMaker à grande échelle. Il est spécialisé dans les domaines de l'apprentissage automatique, de l'IA et de la vision par ordinateur, et est titulaire d'une maîtrise en informatique de l'UT Dallas. Pendant son temps libre, il aime voyager et photographier.
Tony Chen est un architecte de solutions d'apprentissage automatique chez Amazon Web Services, aidant les clients à concevoir des capacités d'apprentissage automatique évolutives et robustes dans le cloud. En tant qu'ancien data scientist et ingénieur de données, il met à profit son expérience pour aider à résoudre certains des problèmes les plus difficiles auxquels les organisations sont confrontées avec l'opérationnalisation de l'apprentissage automatique.
- '
- "
- 100
- 11
- 7
- Qui sommes-nous
- accès
- Compte
- à travers
- actes
- Supplémentaire
- AI
- Tous
- déjà
- Bien que
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- selon une analyse de l’Université de Princeton
- Apache
- Apache Spark
- en vigueur
- applications
- disponibles
- moyen
- AWS
- Baseline
- corps
- construire
- Développement
- au camping
- cas
- Causes
- globaux
- Change
- Chatbots
- classification
- le cloud
- code
- Codage
- Collecte
- complexe
- calcul
- Informatique
- Vision par ordinateur
- Contenant
- contient
- continu
- contrat
- cuisine
- La création
- Clients
- Dallas
- données
- qualité des données
- Data Scientist
- Conception
- Détection
- développer
- différent
- discuter
- distance
- Docker
- Conteneur Docker
- Ne fait pas
- domaines
- conduite
- pendant
- Dynamic
- "Early Bird"
- rencontre
- Endpoint
- ingénieur
- Anglais
- Entreprise
- Environment
- établies
- exemple
- Découvrez
- Visage
- famille
- Fonctionnalité
- Fonctionnalités:
- la traduction de documents financiers
- Prénom
- Flexibilité
- Focus
- concentré
- formulaire
- Avant
- Test d'anglais
- fonction
- générer
- GitHub
- ayant
- vous aider
- aide
- Haute
- Surbrillance
- randonnée
- Accueil
- Comment
- How To
- HTTPS
- image
- Mettre en oeuvre
- important
- Y compris
- industrie
- d'information
- Assurance
- secteur de l'assurance
- IT
- Emploi
- Emplois
- Etiquettes
- langue
- gros
- Nouveautés
- lance
- Leadership
- apprentissage
- Niveau
- les leviers
- Bibliothèque
- linguistique
- Liste
- littérature
- charge
- emplacement
- machine learning
- traduction automatique
- masque
- mesurer
- Métrique
- ML
- modèle
- numériques jumeaux (digital twin models)
- Stack monitoring
- PLUS
- Langage naturel
- Traitement du langage naturel
- réseau et
- nlp
- déclaration
- Offres Speciales
- de commander
- organisations
- Autre
- performant
- photographie
- La précision
- prédiction
- Prédictions
- représentent
- Problème
- Vidéo
- Projet
- fournir
- fournit
- Python
- pytorch
- qualité
- gamme
- en temps réel
- Réalité
- record
- rapport
- Rapports
- réponse
- Résultats
- recyclage
- Retours
- inverser
- Avis
- Courir
- pour le running
- sagemaker
- Escaliers intérieurs
- mise à l'échelle
- Sciences
- Sdk
- Services
- service
- set
- décalage
- similaires
- étapes
- So
- Solutions
- Space
- espaces
- le spam
- spécialise
- États
- storage
- Boutique
- Les soutiens
- Système
- Target
- tester
- Essais
- tests
- le monde
- pensée
- leadership éclairé
- fiable
- jeton
- Tokens
- top
- torche
- circulation
- Formation
- Traduction
- États-Unis
- Voir
- Virginie
- Salle de conférence virtuelle
- définition
- vision
- attendez
- web
- services Web
- Wikipédia
- sans
- Activités principales
- workflow
- world
- écriture