Surveillance des données non structurées pour LLM et NLP
Surveillance LLM et NLP données non structurées
Un tutoriel de code sur l’utilisation de descripteurs de texte

Une fois que vous déployez une solution basée sur NLP ou LLM, vous avez besoin d’un moyen de la surveiller. Mais comment surveiller les données non structurées pour comprendre la pile de textes?
Il existe quelques approches ici, de la détection de dérive dans les données textuelles brutes et l’incorporation de la dérive à l’utilisation d’expressions régulières pour effectuer des vérifications basées sur des règles.
Dans ce tutoriel, nous plongerons dans une approche particulière – le suivi des descripteurs de texte interprétables qui aident à attribuer des propriétés spécifiques à chaque texte.
Tout d’abord, nous couvrirons un peu de théorie:
- Erreur d’étalonnage attendue (ECE) – une explication visuelle étape par étape
- Suivi des données non structurées pour LLM et NLP
- Entités nommées et les actualités
- Qu’est-ce qu’un descripteur de texte et quand les utiliser.
- Exemples de descripteurs de texte.
- Comment sélectionner des descripteurs personnalisés.
Ensuite, passons au code! Vous travaillerez avec des données de commentaires d’e-commerce et suivrez les étapes suivantes:
- Obtenez un aperçu des données textuelles.
- Évaluez la dérive des données textuelles en utilisant des descripteurs standard.
- Ajoutez un descripteur de texte personnalisé en utilisant un modèle pré-entraîné externe.
- Mettez en œuvre des tests de pipeline pour surveiller les changements de données.
Nous utiliserons la bibliothèque Python open-source Evidently pour générer des descripteurs de texte et évaluer les changements dans les données.
Exemple de code: Si vous préférez aller directement au code, voici le cahier d’exemple.
Qu’est-ce qu’un descripteur de texte?
Un descripteur de texte est toute fonctionnalité ou propriété qui décrit les objets dans l’ensemble de données textuelles. Par exemple, la longueur des textes ou le nombre de symboles qu’ils contiennent.
Vous avez peut-être déjà des métadonnées utiles accompagnant vos textes qui serviront de descripteurs. Par exemple, les avis des utilisateurs d’e-commerce peuvent être accompagnés de notes attribuées par les utilisateurs ou d’étiquettes de sujet.
Sinon, vous pouvez générer vos propres descripteurs! Vous le faites en ajoutant des “fonctionnalités virtuelles” à vos données textuelles. Chacune aide à décrire ou à classer vos textes en utilisant des critères significatifs.

En créant ces descripteurs, vous créez essentiellement votre propre “embedding” simple et mappez chaque texte sur plusieurs dimensions interprétables. Cela aide à donner un sens aux données autrement non structurées.
Vous pouvez ensuite utiliser ces descripteurs de texte:
- Pour surveiller les modèles NLP en production. Vous pouvez suivre les propriétés de vos données dans le temps et détecter quand elles changent. Par exemple, les descripteurs aident à détecter les pics de longueur de texte ou la dérive de sentiment.
- Pour tester les modèles lors des mises à jour. Lorsque vous itérez sur des modèles, vous pouvez comparer les propriétés des ensembles de données d’évaluation et les réponses du modèle. Par exemple, vous pouvez vérifier que les longueurs des réponses générées par LLM restent similaires et qu’elles incluent systématiquement les mots que vous vous attendez à voir.
- Pour déboguer la dérive des données ou la dégradation du modèle. Si vous détectez une dérive d’incorporation ou si vous observez directement une baisse de la qualité du modèle, vous pouvez utiliser des descripteurs de texte pour explorer d’où elle provient.
Exemples de descripteurs de texte
Voici quelques descripteurs de texte que nous considérons comme de bons choix par défaut:
Longueur du texte

Un excellent point de départ est les statistiques textuelles simples. Par exemple, vous pouvez regarder la longueur des textes mesurée en mots, symboles ou phrases. Vous pouvez évaluer la longueur moyenne et min-max et regarder les distributions.
Vous pouvez fixer des attentes en fonction de votre cas d’utilisation. Par exemple, les avis sur les produits ont tendance à contenir entre 5 et 100 mots. S’ils sont plus courts ou plus longs, cela peut signaler un changement de contexte. S’il y a une augmentation des avis de longueur fixe, cela peut signaler une attaque de spam. Si vous savez que les avis négatifs sont souvent plus longs, vous pouvez suivre la part des avis dépassant une certaine longueur.
Il existe également des vérifications rapides de bon sens : si vous exécutez un chatbot, vous pouvez vous attendre à des réponses non nulles ou à ce qu’il y ait une longueur minimale pour la sortie significative.
Mots hors vocabulaire

Évaluer la part des mots en dehors du vocabulaire défini est une bonne mesure “grossière” de la qualité des données. Vos utilisateurs ont-ils commencé à rédiger des critiques dans une nouvelle langue ? Les utilisateurs parlent-ils à votre chatbot en Python et non en anglais ? Les utilisateurs remplissent-ils les réponses avec des “ggg” au lieu de mots réels ?
C’est une seule mesure pratique pour détecter toutes sortes de changements. Une fois que vous avez repéré un changement, vous pouvez ensuite effectuer un débogage plus approfondi.
Vous pouvez vous faire une idée de la part des mots hors vocabulaire en fonction des exemples de données de production “bonnes” accumulées au fil du temps. Par exemple, si vous examinez le corpus des critiques de produits précédentes, vous pouvez vous attendre à ce que la part des mots hors vocabulaire soit inférieure à 10 % et surveiller si cette valeur dépasse ce seuil.
Caractères non alphabétiques
Relatif, mais avec une nuance : ce descripteur comptabilisera toutes sortes de symboles spéciaux qui ne sont ni des lettres ni des chiffres, y compris les virgules, les parenthèses, les dièses, etc.
Parfois, vous vous attendez à une part équitable de symboles spéciaux : vos textes peuvent contenir du code ou être structurés comme un JSON. Parfois, vous n’attendez que des signes de ponctuation dans un texte lisible par l’homme.
Détecter un changement dans les caractères non alphabétiques peut mettre en évidence des problèmes de qualité de données, comme des codes HTML qui s’échappent dans les textes des critiques, des attaques de spam, des cas d’utilisation inattendus, etc.
Sentiment

Le sentiment du texte est un autre indicateur. Il est utile dans divers scénarios : des conversations de chatbot aux critiques des utilisateurs et à la rédaction de textes marketing. Vous pouvez généralement définir une attente concernant le sentiment des textes avec lesquels vous travaillez.
Même si le sentiment “ne s’applique pas”, cela peut se traduire par l’attente d’une tonalité principalement neutre. L’apparition potentielle d’une tonalité négative ou positive mérite d’être suivie et examinée. Cela peut indiquer des scénarios d’utilisation inattendus : l’utilisateur utilise-t-il votre conseiller hypothécaire virtuel comme canal de plainte ?
Vous pouvez également vous attendre à un certain équilibre : par exemple, il y a toujours une part de conversations ou de critiques avec une tonalité négative, mais vous vous attendez à ce qu’elle ne dépasse pas un certain seuil ou que la distribution globale du sentiment des critiques reste stable.
Mots déclencheurs

Vous pouvez également vérifier si les textes contiennent des mots d’une liste spécifique ou de plusieurs listes et considérer cela comme une caractéristique binaire.
C’est un moyen puissant d’encoder plusieurs attentes concernant vos textes. Vous devez fournir un certain effort pour créer des listes manuellement, mais vous pouvez concevoir de nombreuses vérifications pratiques de cette manière. Par exemple, vous pouvez créer des listes de mots déclencheurs tels que :
- Mentions de produits ou de marques.
- Mentions de concurrents.
- Mentions de lieux, de villes, de lieux, etc.
- Mentions de mots représentant des sujets particuliers.
Vous pouvez créer (et étendre en continu) des listes de ce type spécifiques à votre cas d’utilisation.
Par exemple, si un chatbot conseiller aide à choisir entre les produits proposés par l’entreprise, vous pouvez vous attendre à ce que la plupart des réponses contiennent les noms de l’un des produits de la liste.
Correspondances RegExp
L’inclusion de mots spécifiques de la liste est un exemple de motif que vous pouvez formuler sous la forme d’une expression régulière. Vous pouvez en trouver d’autres : attendez-vous à ce que vos textes commencent par “bonjour” et se terminent par “merci” ? Inclure des courriels ? Contenir des éléments nommés connus ?
Si vous vous attendez à ce que les entrées ou les sorties du modèle correspondent à un format spécifique, vous pouvez utiliser une correspondance d’expressions régulières comme autre descripteur.
Descripteurs personnalisés
Vous pouvez pousser cette idée plus loin. Par exemple :
- Évaluer d’autres propriétés de texte : toxicité, subjectivité, formalité du ton, score de lisibilité, etc. Vous pouvez souvent trouver des modèles pré-entraînés ouverts pour faire l’affaire.
- Compter des composants spécifiques : e-mails, URL, emojis, dates et parties du discours. Vous pouvez utiliser des modèles externes ou même des expressions régulières simples.
- Obtenir des statistiques détaillées : vous pouvez suivre des statistiques de texte très détaillées si elles sont pertinentes pour votre cas d’utilisation, par exemple suivre les longueurs moyennes des mots, s’ils sont en majuscules ou en minuscules, le rapport de mots uniques, etc.
- Surveiller les informations d’identification personnelles : par exemple, lorsque vous ne vous attendez pas à ce qu’elles apparaissent dans les conversations avec un chatbot.
- Utiliser la reconnaissance des entités nommées : pour extraire des entités spécifiques et les traiter comme des balises.
- Utiliser la modélisation de sujets pour construire un système de surveillance des sujets. Il s’agit de l’approche la plus laborieuse mais puissante lorsqu’elle est bien réalisée. C’est utile lorsque vous vous attendez à ce que les textes restent principalement sur le sujet et que vous disposez du corpus d’exemples précédents pour entraîner le modèle. Vous pouvez utiliser le regroupement de sujets non supervisé et créer un modèle pour attribuer de nouveaux textes aux clusters connus. Vous pouvez ensuite traiter les classes attribuées comme des descripteurs pour surveiller les changements dans la distribution des sujets dans les nouvelles données.

Voici quelques points à garder à l’esprit lors de la conception de descripteurs de surveillance :
- Il est préférable de rester concentré et d’essayer de trouver un petit nombre d’indicateurs de qualité appropriés qui correspondent au cas d’utilisation plutôt que de surveiller toutes les dimensions possibles. Pensez aux descripteurs comme des fonctionnalités du modèle. Vous voulez en trouver quelques-uns solides plutôt que de générer beaucoup de fonctionnalités faibles ou inutiles. Beaucoup d’entre elles sont susceptibles d’être corrélées : langue et part de mots hors vocabulaire, longueur en phrases et en symboles, etc. Choisissez vos préférées !
- Utilisez l’analyse exploratoire des données pour évaluer les propriétés du texte dans les données existantes (par exemple, les journaux des conversations précédentes) afin de tester vos hypothèses avant de les ajouter à la surveillance du modèle.
- Apprenez des échecs du modèle. Chaque fois que vous rencontrez un problème de qualité du modèle de production que vous vous attendez à voir réapparaître (par exemple, des textes dans une langue étrangère), réfléchissez à la façon de développer un cas de test ou un descripteur à ajouter pour le détecter à l’avenir.
- Faites attention au coût de calcul. Utiliser des modèles externes pour évaluer vos textes selon chaque dimension possible est tentant, mais cela a un coût. Tenez-en compte lorsque vous travaillez avec des ensembles de données plus importants : chaque classificateur externe est un modèle supplémentaire à exécuter. Vous pouvez souvent vous en sortir avec moins de vérifications ou des vérifications plus simples.
Tutoriel étape par étape
Pour illustrer l’idée, parcourons le scénario suivant : vous construisez un modèle de classification pour évaluer les avis que les utilisateurs laissent sur un site de commerce électronique et les étiqueter par sujet. Une fois en production, vous souhaitez détecter les changements dans les données et l’environnement du modèle, mais vous n’avez pas les vraies étiquettes. Vous devez exécuter un processus d’étiquetage séparé pour les obtenir.
Comment pouvez-vous suivre les changements sans les étiquettes ?
Prenons un jeu de données d’exemple et parcourons les étapes suivantes :
Exemple de code : rendez-vous dans le cahier d’exemple pour suivre toutes les étapes.
💻 1. Installer Evidently
Tout d’abord, installez Evidently. Utilisez le gestionnaire de packages Python pour l’installer dans votre environnement. Si vous travaillez dans Colab, exécutez !pip install. Dans le bloc-notes Jupyter, vous devez également installer nbextension. Consultez les instructions pour votre environnement.
Vous devrez également importer quelques autres bibliothèques comme pandas et des composants Evidently spécifiques. Suivez les instructions dans le cahier.
🔡 2. Préparer les données
Une fois que tout est prêt, regardons les données ! Vous travaillerez avec un ensemble de données ouvert provenant d’avis sur le commerce électronique.
Voici à quoi ressemble le jeu de données :

Nous nous concentrerons sur la colonne “Review_Text” à des fins de démonstration. En production, nous voulons surveiller les changements dans les textes des critiques.
Vous devrez spécifier la colonne qui contient les textes en utilisant la correspondance des colonnes :
column_mapping = ColumnMapping( numerical_features=['Age', 'Positive_Feedback_Count'], categorical_features=['Division_Name', 'Department_Name', 'Class_Name'], text_features=['Review_Text', 'Title'])
Vous devez également diviser les données en deux parties : référence et actuelle. Imaginez que les données “référence” sont les données pour une période passée représentative (par exemple, le mois précédent) et que les données “actuelle” sont les données de production actuelles (par exemple, ce mois-ci). Ce sont les deux jeux de données que vous comparerez à l’aide des descripteurs.
Remarque : il est important d’établir une référence historique appropriée. Choisissez la période qui reflète vos attentes quant à l’apparence des données à l’avenir.
Nous avons sélectionné 5000 exemples pour chaque échantillon. Pour pimenter les choses, nous avons introduit un décalage artificiel en sélectionnant les critiques négatives pour notre jeu de données actuel.
reviews_ref = reviews[reviews.Rating > 3].sample(n=5000, replace=True, ignore_index=True, random_state=42)reviews_cur = reviews[reviews.Rating < 3].sample(n=5000, replace=True, ignore_index=True, random_state=42)
📊 3. Analyse exploratoire des données
Pour mieux comprendre les données, vous pouvez générer un rapport visuel à l’aide d’Evidently. Il existe un préréglage Aperçu du texte pré-construit qui permet de comparer rapidement deux ensembles de données textuelles. Il combine diverses vérifications descriptives et évalue la dérive globale des données (dans ce cas, à l’aide d’une méthode de détection de dérive basée sur un modèle).
Ce rapport comprend également quelques descripteurs standard et vous permet d’ajouter des descripteurs à l’aide de listes de mots déclencheurs. Nous examinerons les descripteurs suivants dans le cadre du rapport :
- Longueur des textes
- Part de mots hors vocabulaire (OOV)
- Part de symboles non alphabétiques
- Le sentiment des critiques
- Les critiques qui incluent les mots “robe” ou “gown”
- Les critiques qui incluent les mots “blouse” ou “shirt”
Consultez la documentation d’Evidently sur les descripteurs pour plus de détails.
Voici le code dont vous avez besoin pour exécuter ce rapport. Vous pouvez donner des noms personnalisés à chaque descripteur.
text_overview_report = Report(metrics=[ TextOverviewPreset(column_name="Review_Text", descriptors={ "Textes de critiques - % OOV" : OOV(), "Textes de critiques - % de caractères non alphabétiques" : NonLetterCharacterPercentage(), "Textes de critiques - Longueur des symboles" : TextLength(), "Textes de critiques - Nombre de phrases" : SentenceCount(), "Textes de critiques - Nombre de mots" : WordCount(), "Textes de critiques - Sentiment" : Sentiment(), "Critiques sur les robes" : TriggerWordsPresence(words_list=['robe', 'gown']), "Critiques sur les blouses" : TriggerWordsPresence(words_list=['blouse', 'shirt']), }) ]) text_overview_report.run(reference_data=reviews_ref, current_data=reviews_cur, column_mapping=column_mapping) text_overview_report
Exécuter un rapport comme celui-ci permet d’explorer les motifs et de façonner vos attentes quant à certaines propriétés particulières, telles que la distribution de la longueur des textes.
La distribution du descripteur “sentiment” expose rapidement la manipulation que nous avons effectuée lors de la division des données. Nous avons mis les critiques ayant un classement supérieur à 3 dans les données “référence” et des critiques plus négatives dans les jeux de données “actuels”. Les résultats sont visibles :

Le rapport par défaut est très complet et permet d’examiner de nombreuses propriétés textuelles en même temps. Il permet même d’explorer les corrélations entre descripteurs et autres colonnes dans le jeu de données !
Vous pouvez l’utiliser pendant la phase exploratoire, mais ce n’est probablement pas quelque chose que vous aurez besoin de consulter tout le temps.
Heureusement, il est facile à personnaliser.
Manifestement, Préréglages et Métriques. Manifestement a des préréglages de rapport qui génèrent rapidement les rapports prêts à l’emploi. Cependant, il y a beaucoup de métriques individuelles parmi lesquelles choisir ! Vous pouvez les combiner pour créer un rapport personnalisé. Parcourez les préréglages et les métriques pour comprendre ce qui est disponible.
📈 4. Surveiller la dérive des descripteurs
Disons que, sur la base de l’analyse exploratoire et de votre compréhension du problème commercial, vous décidez de suivre uniquement un petit nombre de propriétés :
Vous souhaitez remarquer quand il y a un changement statistique : les distributions de ces propriétés diffèrent de la période de référence. Pour le détecter, vous pouvez utiliser des méthodes de détection de dérive mises en œuvre dans Manifestement. Par exemple, pour les fonctionnalités numériques telles que “sentiment”, il surveillera par défaut le changement en utilisant la distance de Wasserstein. Vous pouvez également choisir une méthode différente.
Voici comment vous pouvez créer un rapport de dérive simple pour suivre les changements dans les trois descripteurs.
descriptors_report = Report(metrics=[ ColumnDriftMetric(WordCount().for_column("Review_Text")), ColumnDriftMetric(Sentiment().for_column("Review_Text")), ColumnDriftMetric(TriggerWordsPresence(words_list=['robe', 'robe']).for_column("Review_Text")), ]) descriptors_report.run(reference_data=reviews_ref, current_data=reviews_cur, column_mapping=column_mapping) descriptors_report
Une fois que vous avez exécuté le rapport, vous obtiendrez des visualisations combinées pour tous les descripteurs choisis. En voici une :

La ligne vert foncé représente le sentiment moyen dans l’ensemble de données de référence. La zone verte couvre un écart-type à partir de la moyenne. Vous pouvez remarquer que la distribution actuelle (en rouge) est visiblement plus négative.
Note : Dans ce scénario, il est également logique de surveiller la dérive de la sortie : en suivant les changements dans les classes prédites. Vous pouvez utiliser des méthodes de détection de dérive de données catégorielles, comme la divergence JS. Nous n’abordons pas cela dans le tutoriel, car nous nous concentrons uniquement sur les entrées et ne générons pas de prédictions. En pratique, la dérive des prédictions est souvent le premier signal pour réagir.
😍 5. Ajouter un descripteur “émotion”
Disons que vous avez décidé de suivre une autre propriété significative : l’émotion exprimée dans la critique. Le sentiment global est une chose, mais cela aide aussi à distinguer les critiques “tristes” des critiques “en colère”, par exemple.
Ajoutons ce descripteur personnalisé ! Vous pouvez trouver un modèle externe open-source approprié pour évaluer votre ensemble de données. Ensuite, vous travaillerez avec cette propriété en tant que colonne supplémentaire.
Nous utiliserons le modèle Distilbert de Huggingface, qui classe le texte selon cinq émotions.
Vous pouvez envisager d’utiliser n’importe quel autre modèle pour votre cas d’utilisation, tel que la reconnaissance d’entités nommées, la détection de langue, la détection de toxicité, etc.
Vous devez installer transformers pour pouvoir exécuter le modèle. Consultez les instructions pour plus de détails. Ensuite, appliquez-le à l’ensemble de données de critiques :
from transformers import pipeline classifier = pipeline("text-classification", model='bhadresh-savani/distilbert-base-uncased-emotion', top_k=1) prediction = classifier("J'adore utiliser manifestement ! C'est facile à utiliser", ) print(prediction)
Note : cette étape évaluera l’ensemble de données à l’aide du modèle externe. Cela prendra du temps à s’exécuter, selon votre environnement. Pour comprendre le principe sans attendre, consultez la section “Exemple simple” dans le notebook d’exemple.
Après avoir ajouté la nouvelle colonne “émotion” à l’ensemble de données, vous devez le refléter dans Column Mapping. Vous devez spécifier qu’il s’agit d’une nouvelle variable catégorielle dans l’ensemble de données.
column_mapping = ColumnMapping( numerical_features=['Âge', 'Nombre_retours_positifs'], categorical_features=['Nom_Division', 'Nom_Departement', 'Nom_Classe', 'émotion'], text_features=['Texte_Critique', 'Titre'] )
Maintenant, vous pouvez ajouter la surveillance de la dérive de la distribution “émotion” au Rapport.
descriptors_report = Report(metrics=[ ColumnDriftMetric(WordCount().for_column("Texte_Critique")), ColumnDriftMetric(Sentiment().for_column("Texte_Critique")), ColumnDriftMetric(TriggerWordsPresence(words_list=['robe', 'robe']).for_column("Texte_Critique")), ColumnDriftMetric('émotion'), ]) descriptors_report.run(reference_data=reviews_ref, current_data=reviews_cur, column_mapping=column_mapping) descriptors_report
Voici ce que vous obtenez!

Vous pouvez constater une augmentation significative des avis “tristes” et une diminution des avis “joyeux”.
Cela semble-t-il utile de suivre dans le temps? Vous pouvez continuer à exécuter cette vérification en évaluant les nouvelles données au fur et à mesure de leur arrivée.
🏗️ 6. Exécutez les tests du pipeline
Pour effectuer une analyse régulière de vos entrées de données, il est logique de regrouper les évaluations sous forme de tests. Vous obtenez un résultat clair “pass” ou “fail” dans ce scénario. Vous n’avez probablement pas besoin de regarder les graphiques si tous les tests passent. Vous êtes seulement intéressé lorsque les choses changent!
Manifestement, il existe une interface alternative appelée Test Suite qui fonctionne de cette manière.
Voici comment vous créez une Test Suite pour vérifier la distribution statistique dans les mêmes quatre descripteurs:
descriptors_test_suite = TestSuite(tests=[ TestColumnDrift(column_name = 'emotion'), TestColumnDrift(column_name = WordCount().for_column("Review_Text")), TestColumnDrift(column_name = Sentiment().for_column("Review_Text")), TestColumnDrift(column_name = TriggerWordsPresence(words_list=['dress', 'gown']).for_column("Review_Text")), ]) descriptors_test_suite.run(reference_data=reviews_ref, current_data=reviews_cur, column_mapping=column_mapping) descriptors_test_suite
Note: nous allons avec les valeurs par défaut, mais vous pouvez également définir des méthodes et des conditions de dérive personnalisées.
Voici le résultat. La sortie est soigneusement structurée afin que vous puissiez voir quels descripteurs ont dérivé.

La détection de la dérive de la distribution statistique est l’une des façons de surveiller les changements dans la propriété textuelle. Il y en a d’autres! Parfois, il est pratique d’exécuter des attentes basées sur des règles sur les valeurs minimales, maximales ou moyennes du descripteur.
Disons que vous voulez vérifier que tous les textes d’évaluation comportent plus de deux mots. Si au moins une évaluation comporte moins de deux mots, vous voulez que le test échoue et voir le nombre de textes courts dans la réponse.
Voici comment vous faites cela! Vous pouvez choisir une vérification TestNumberOfOutRangeValues(). Cette fois, vous devez définir une limite personnalisée: le côté “gauche” de la plage attendue est de deux mots. Vous devez également définir une condition de test: eq=0. Cela signifie que vous vous attendez à ce que le nombre d’objets en dehors de cette plage soit de 0. S’il est plus élevé, vous voulez que le test échoue.
descriptors_test_suite = TestSuite(tests=[ TestNumberOfOutRangeValues(column_name = WordCount().for_column("Review_Text"), left=2, eq=0), ]) descriptors_test_suite.run(reference_data=reviews_ref, current_data=reviews_cur, column_mapping=column_mapping) descriptors_test_suite
Voici le résultat. Vous pouvez également voir les détails du test qui montrent l’attente définie.

Vous pouvez suivre ce principe pour concevoir d’autres vérifications.
Soutenez Evidently
Vous avez apprécié le tutoriel? Donnez une étoile à Evidently sur GitHub pour contribuer en retour! Cela nous aide à continuer à créer des outils et du contenu gratuits et open-source pour la communauté. ⭐️ Donnez une étoile sur GitHub ⟶
En conclusion
Les descripteurs de texte permettent de mapper les données textuelles sur des dimensions interprétables que vous pouvez exprimer comme une caractéristique numérique ou catégorielle. Ils aident à décrire, évaluer et surveiller les données non structurées.
Dans ce tutoriel, vous avez appris à surveiller les données textuelles à l’aide de descripteurs.
Vous pouvez utiliser cette approche pour surveiller le comportement des modèles alimentés par NLP et LLM en production. Vous pouvez personnaliser et combiner vos descripteurs avec d’autres méthodes, telles que la surveillance de la dérive de l’embedding.
Y a-t-il d’autres descripteurs que vous considérez universellement utiles ? Faites-le nous savoir ! Rejoignez notre communauté Discord pour partager vos réflexions.
Publié à l’origine sur https://www.evidentlyai.com le 27 juin 2023. Merci à Olga Filippova d’avoir co-écrit l’article.
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Aliasing Votre série temporelle vous ment
- Les meilleures entreprises de sécurité à domicile à surveiller en 2023
- 4 ajustements faciles à mettre en œuvre et à fort impact pour optimiser les performances de votre code Python
- Les meilleures entreprises de sécurité résidentielle à surveiller en 2023
- IA générative et l’avenir de l’ingénierie des données
- L’IA devrait également apprendre à oublier
- Comment les banques doivent tirer parti de l’IA responsable pour lutter contre la criminalité financière