20250327 141153

20250327 141153

Introduction au TP de classification de texte

Mise à disposition des ressources

  • Le formateur mentionne qu'il a mis à disposition une version zip contenant les ressources nécessaires pour le TP, permettant aux participants de les récupérer facilement.
  • Il précise que le zip contient trois ressources et qu'une fois téléchargées sur Google Drive, elles devraient être prêtes à l'emploi.

Préparation du travail collaboratif

  • Les participants discutent de la nécessité d'extraire les fichiers du zip avant de les placer dans Google Drive pour un accès facile.
  • L'importance d'ouvrir le fichier "TP tex classification complete" dans Google Colab est soulignée, avec une question sur l'exécution automatique des blocs de code.

Accès et organisation des fichiers

Utilisation de Google Drive

  • Un participant demande s'il faut créer un dossier spécifique ou si les fichiers peuvent être placés à la racine du drive. La flexibilité est suggérée pour gagner du temps.
  • Un autre participant confirme avoir importé deux fichiers essentiels dans son drive, soulignant l'importance d'avoir tous les documents nécessaires.

Dépôt des fichiers dans l'environnement de travail

  • Le formateur recommande aux participants de déposer le fichier Amazon Alexa dans la zone dédiée aux fichiers pour faciliter son utilisation lors du TP.

Objectif et méthodologie du TP

Présentation des objectifs

  • L'objectif principal du TP est expliqué : prédire si une revue produit sur Amazon est positive ou non en utilisant un texte fourni par l'utilisateur.
  • Environ 3000 revues clients sont disponibles comme données d'entrée, incluant étoiles, date et feedback.

Exécution des cellules de code

  • Le formateur encourage l'exécution séquentielle des cellules de code, en commençant par installer certaines bibliothèques essentielles comme ML Flow pour suivre les entraînements.

Importance des outils utilisés

Introduction aux bibliothèques de traitement de données

Présentation des outils utilisés

  • Le présentateur mentionne l'utilisation d'un dossier contenant un notebook ML qui inclut plusieurs itérations, modèles sauvegardés et métriques.
  • Hyperopt est introduit comme une bibliothèque pour la recherche d'hyperparamètres, bien que son utilisation ne soit pas approfondie ici.
  • XGBoost est présenté comme une bibliothèque de classification générale, spécifiquement utilisée pour classifier du texte.
  • NLTK est décrit comme une bibliothèque pour le traitement du langage naturel, utile pour le nettoyage et la détermination des catégories morphosyntaxiques.
  • Imbellearn est mentionné pour traiter les problèmes d'équilibrage dans les données, notamment en cas de classes déséquilibrées.

Chargement et vérification des données

  • Le chargement des données à partir d'un fichier CSV (Amazonalexa.csv) est abordé, avec un rappel sur l'importance de vérifier leur intégrité.
  • Les champs présents dans le tableau sont décrits : rating (note), date, variation du produit et feedback (positif ou négatif).
  • La taille des données est précisée : 3550 lignes et 5 colonnes. Une observation sur la présence majoritaire de feedback positif est faite.
  • L'importance d'analyser le contenu du fichier CSV pour obtenir des statistiques descriptives sur les valeurs numériques (feedback et rating).
  • Une analyse de la distribution des étiquettes montre un déséquilibre entre les classes positives et négatives.

Interprétation des étiquettes

  • Les étiquettes représentent les évaluations humaines sur le texte : positif ou négatif. Cela sert à entraîner un classificateur.
  • L'objectif final est de déterminer si un nouveau commentaire utilisateur est positif ou négatif afin de classer les produits en conséquence.
  • La connaissance humaine derrière l'étiquetage permet d'améliorer la précision du modèle lors de nouvelles évaluations.
  • Chaque utilisateur a contribué à l'évaluation en attribuant une étiquette au texte, ce qui enrichit le processus d'apprentissage automatique.

Analyse des jeux de données et des algorithmes

Importance de la qualité des données

  • Les revues sont généralement positives, mais l'interprétation dépend du jeu de données utilisé.
  • Les étiquettes peuvent être numériques ou catégorielles; les algorithmes nécessitent une transformation pour traiter les valeurs catégorielles.

Problèmes d'équilibre dans les classes

  • Un déséquilibre entre avis positifs et négatifs peut poser problème lors de la collecte de données.
  • Deux solutions possibles : suréchantillonnage (gonfler la classe négative) ou sous-échantillonnage (réduire la classe positive).

Conséquences du déséquilibre

  • Le sous-échantillonnage peut entraîner une perte d'informations précieuses, tandis que le suréchantillonnage par copie peut introduire un biais.
  • L'absence d'équilibre entre les classes peut influencer le classificateur, favorisant les phrases ambiguës.

Représentation des données textuelles

  • Les algorithmes nécessitent des structures avec uniquement des valeurs numériques; il est donc essentiel de transformer le texte en représentation vectorielle.
  • Deux principales représentations : sac de mots et vecteurs associés à chaque mot via identifiants.

Nettoyage et préparation des données

  • Lorsqu'on utilise le sac de mots, il est crucial d'éliminer les mots vides et fréquents qui n'apportent pas d'information significative.

Analyse des mots vides et vectorisation de texte

Introduction aux mots vides

  • L'intervenant explique que certains mots en anglais, appelés "mots vides", n'apportent pas d'informations significatives dans un contexte donné.
  • Bien que ces mots puissent sembler inutiles, ils peuvent avoir une influence dans certaines analyses, notamment lors de l'utilisation de modèles simples.

Processus de vectorisation

  • La vectorisation consiste à transformer un texte brut en une forme numérique qui peut être analysée. Cela implique le comptage des mots présents dans le texte.
  • L'objectif est d'obtenir une représentation structurée du texte qui recense tous les mots du vocabulaire et leur fréquence d'apparition.

Utilisation des classes pour la vectorisation

  • Deux classes sont mentionnées pour effectuer la vectorisation : la classe Confectorizor, qui compte les occurrences des mots.
  • L'intervenant montre comment exécuter cette classe pour obtenir les dix mots les plus fréquents dans un ensemble de données.

Résultats de la vectorisation

  • Après l'exécution du processus, on obtient un tableau contenant différentes revues transformées en vecteurs numériques.
  • Il est noté qu'une partie du vocabulaire est extraite, avec une limite fixée à 500 mots les plus fréquents.

Débogage et vérification des erreurs

  • Un problème technique survient lors de l'exécution d'un code spécifique, nécessitant une vérification minutieuse des valeurs nulles dans le jeu de données.

Introduction à la Vectorisation de Texte

Problèmes de Vectorisation

  • Discussion sur un souci lié à la vectorisation, avec une suggestion d'utiliser drop in place pour résoudre le problème.
  • Confirmation que les modifications seront effectuées directement dans le tableau.

Processus de Vectorisation

  • Explication du fonctionnement du code qui balaye tous les éléments du tableau et collecte les mots importants dans le vocabulaire.
  • Transformation des textes en vecteurs, illustrée par un exemple avec cinq revues pour démontrer le processus.

Structure des Matrices

  • Présentation d'une matrice de 5 lignes et 2000 colonnes, où chaque colonne représente un mot et chaque ligne un document.
  • Importance de comprendre que chaque colonne correspond à un mot collecté par le vectoriseur, permettant ainsi une représentation vectorielle des textes.

Apprentissage Automatique avec Vecteurs

Objectif du Classificateur

  • L'objectif est d'associer chaque texte à son vecteur correspondant afin que le classificateur puisse apprendre à prédire les étiquettes pour de nouveaux textes.

Méthodes de Pondération

  • Deux approches sont discutées : comptage simple ou pondération par l'importance des mots dans l'ensemble du corpus (ex. TDF-IDF).

Création des Données d'Entraînement

Séparation des Données

  • Importance de séparer les données en ensembles d'entraînement et de test pour évaluer le modèle appris.
  • Utilisation de train_test_split pour décomposer les données en jeux d'entraînement et de test.

Préparation des Étiquettes

  • Les étiquettes sont mises en place avant l'entraînement, garantissant que toutes les informations nécessaires sont disponibles.

Mise en Place d'un Pipeline

Étapes du Pipeline

  • Description d'un pipeline typique comprenant nettoyage, transformation et classification via régression logistique.

Entraînement du Modèle

Analyse des Prédictions de Modèles

Précision sur les Données de Test

  • La précision sur les données de test est élevée, mais elle varie selon la classe. La classe positive montre une meilleure performance que la classe négative.

Évaluation des Classes

  • L'intervenant souligne l'importance d'examiner les classes positives et négatives pour comprendre le modèle. Il mentionne qu'il va utiliser un outil pour visualiser ces classes.

Affichage des Résultats

  • Les résultats affichés incluent les étiquettes positives associées à chaque texte dans le jeu de données. Cela permet d'analyser la vérité terrain par rapport aux prédictions.

Analyse du Déséquilibre des Données

  • Un déséquilibre dans les données est observé, avec une majorité d'échantillons positifs soumis à l'entraînement, ce qui influence les prédictions du modèle.

Métriques de Performance

  • La précision et le rappel sont utilisés pour évaluer le modèle en comparant la vérité terrain (y de test) avec les prédictions. Des exemples concrets illustrent comment déterminer les vrais positifs et faux négatifs.

Gestion du Déséquilibre des Classes

Problèmes Liés au Support des Données

  • Le support montre un nombre disproportionné d'échantillons : 584 positifs contre seulement 46 négatifs, ce qui biaise l'évaluation globale du modèle.

Stratégies d'Équilibrage

  • L'intervenant évoque différentes méthodes pour gérer le déséquilibre, comme le rééchantillonnage ou l'utilisation de filtres pour équilibrer les jeux de données avant l'entraînement.

Suréchantillonnage vs Sous-échantillonnage

  • Le suréchantillonnage consiste à copier des exemples de la classe minoritaire afin d'augmenter leur représentation dans le jeu de données. Cependant, cela peut réduire la diversité et affecter la généralisation du modèle.

Amélioration par Augmentation des Données

Techniques d'AUGMENTATION

Comment reformuler des phrases avec des outils modernes ?

Utilisation de ChatGPT pour la reformulation

  • L'intervenant explique comment utiliser des outils comme ChatGPT pour reformuler des phrases, permettant ainsi d'obtenir plusieurs formulations d'un même concept.
  • En fournissant une phrase à l'outil, il est possible de générer jusqu'à 50 reformulations, ce qui aide à mieux comprendre et résoudre un problème donné.

Suivi des expériences avec MFO

  • L'utilisation de MFO (Machine Learning Framework Optimization) est mentionnée pour le suivi des expériences, facilitant l'analyse des résultats.
  • Les métriques sont enregistrées dans un tableau, permettant de suivre les itérations et la recherche d'hyperparamètres.

Recherche d'hyperparamètres

  • Chaque algorithme a ses hyperparamètres qui peuvent prendre différentes valeurs ; l'objectif est de trouver la meilleure configuration.
  • Bien que l'intervenant ne puisse pas montrer les détails visuellement, il souligne l'importance d'analyser les entraînements pour optimiser les performances du modèle.

Comment évaluer les performances du modèle ?

Identification du meilleur run

  • À la fin du processus expérimental, il est possible de déterminer quelle expérimentation a donné les meilleurs résultats en termes de performance.
  • Le meilleur run est identifié par son ID et inclut divers paramètres tels que le nombre d'estimateurs et le taux d'apprentissage.

Prédictions et résultats

  • Après avoir configuré le modèle avec les meilleurs hyperparamètres, des prédictions sont effectuées sur de nouvelles données.
  • Les résultats montrent que certaines prédictions ne sont pas précises, ce qui peut être dû à un manque d'entraînement complet sur ces textes spécifiques.

Introduction aux Transformers

Présentation générale

  • L'intervenant annonce qu'il va aborder le sujet des Transformers dans la suite de sa présentation.

Classification de texte avec Transformers

  • Il démontre comment créer une pipeline simple utilisant la bibliothèque Transformer pour effectuer une classification textuelle efficace.

Classification de texte et modèles d'analyse

Introduction à la classification de texte

  • L'intervenant exprime son intérêt pour la classification de texte, mentionnant également la possibilité de faire une classification de token et de trouver des réponses à des questions dans un texte.
  • Il présente un modèle fourni par la société Tabulars, qui est prêt à l'emploi, capable d'effectuer une analyse de sentiment dans plusieurs langues.

Détails sur le modèle

  • Le modèle classifie les sentiments en cinq catégories : très négatif, négatif, neutre, positif et très positif.
  • L'intervenant utilise un échantillon d'Amazon Verified Reviews pour démontrer comment chaque revue est analysée via une "pipe" qui retourne les résultats.

Analyse des résultats

  • Les résultats affichent l'étiquette prédite avec un score associé pour chaque revue. Cela permet d'estimer quelle étiquette a obtenu le score le plus élevé.
  • Un exemple montre que le modèle a mal classé une revue ("love it can stop using it") comme très négative, ce qui soulève des préoccupations quant à sa précision.

Évaluation du modèle

  • Bien que certaines erreurs soient présentes, l'intervenant estime que le modèle fonctionne globalement bien malgré quelques faiblesses dans les prédictions.
  • Il souligne l'importance de comprendre comment utiliser la fonction pipeline pour effectuer diverses tâches telles que la traduction ou les résumés.

Exploration des fonctionnalités avancées

  • Le modèle peut être utilisé non seulement pour la classification de texte mais aussi pour d'autres tâches comme la traduction et la similarité de phrases.
  • L'intervenant note qu'il existe différents modèles prêts à l'emploi selon les tâches spécifiques souhaitées.

Détails techniques sur le tokenizer et le modèle

  • En ouvrant "la boîte", il explique comment créer des objets tels qu'un tokenizer qui transforme le texte en séquences de tokens.
  • La création du modèle inclut tout le code nécessaire pour réaliser une classification efficace des séquences.

Structure interne du modèle

  • Une exploration du contenu du modèle révèle qu'il comprend une couche d'embedding correspondant au vocabulaire utilisé lors de son entraînement (119147 mots).
  • Chaque token génère un vecteur dimensionnel (768), essentiel pour les calculs effectués par le réseau neuronal sous-jacent.

Composants supplémentaires du modèle

Analyse des Tokens et de leur Transformation

Introduction aux Tokens

  • Le vocabulaire contient 116 tokens, qui ne correspondent pas nécessairement à des mots complets, mais peuvent inclure des segments de mots en différentes langues, y compris le cyrillique.
  • Certains mots peuvent être décomposés en plusieurs tokens. Par exemple, le mot "hello" n'a pas d'identifiant direct dans le vocabulaire.

Processus de Tokenisation

  • La cellule prend deux phrases et les transforme en une liste de tokens via un tokenizer. Cela montre que le nombre de tokens peut dépasser celui des mots.
  • Les tokens peuvent inclure des classes spécifiques ou des sous-tokens pour certains mots, ce qui nécessite une interprétation attentive.

Identification et Vecteurs

  • Chaque mot a un identifiant unique. Lorsqu'une phrase est donnée, elle est convertie en une séquence de tokens qui devient ensuite un vecteur lors du passage à la couche d'embedding.
  • Chaque token est transformé en vecteur avant d'être traité par la couche transformer du modèle.

Architecture du Modèle

  • La structure interne comprend plusieurs couches : attention, normalisation (layer norm), et feed-forward. Ces éléments sont essentiels pour le traitement efficace des données textuelles.
  • Après transformation par les couches linéaires et l'attention, chaque phrase produit un vecteur d'entiers correspondant aux IDs des tokens.

Sortie et Interprétation

  • Pour chaque phrase traitée, on obtient non seulement un vecteur d'IDs mais aussi un masque indiquant quels éléments doivent être masqués durant l'attention.
  • Les résultats produits par le modèle montrent les classes associées à chaque phrase (négatif, neutre, positif). Ces résultats nécessitent encore une transformation pour devenir exploitables.

Probabilités et Fonction Softmax

  • Les sorties initiales contiennent cinq éléments représentant différentes classes émotionnelles. Il est crucial de transformer ces valeurs en probabilités pour identifier la classe la plus probable.

Analyse de Sentiment et Modèles de Langage

Introduction à l'Analyse de Sentiment

  • L'analyse des "props" montre que la classe la plus probable est déterminée par un indice, où les valeurs vont de très négatif à très positif. La première phrase est classée comme plutôt positive.
  • Pour la deuxième phrase, le résultat est négatif. La somme des valeurs indique une distribution correcte, totalisant 1.

Utilisation d'Argmax pour Identifier les Étiquettes

  • L'utilisation de la fonction Argmax permet d'obtenir l'indice correspondant à la valeur maximale, qui est ensuite traduit en étiquette via une fonction ID to label.
  • Une boucle exécute le processus pour chaque phrase, indiquant si elle est positive ou négative. Le modèle détecte correctement les sentiments associés aux phrases.

Impact des Modifications sur le Sentiment

  • En modifiant l'entrée avec "don't" devant "love", le modèle retourne un sentiment très négatif, démontrant sa capacité à inverser le sentiment initial.
  • Contrairement aux modèles basés sur un sac de mots, ce modèle prend en compte le contexte et les nuances apportées par des particules comme "don't".

Contextualisation et Vecteurs dans l'Analyse

  • Les vecteurs générés par le réseau montrent que même un simple préfixe peut transformer significativement le vecteur associé au mot.

Amélioration des Modèles et Techniques Avancées

  • Bien que les modèles soient déjà entraînés et performants, il est possible d'améliorer leurs résultats grâce au fine-tuning sur des données spécifiques.
  • Une autre méthode pour classifier du texte consiste à utiliser des LLM (modèles de langage large), bien que cela soit plus lent pour traiter de grandes quantités de texte.

Classification Générative avec LLM

  • Il existe une tendance vers une classification générative du texte qui pourrait devenir prédominante dans les années à venir.

Analyse des Transformers et de leur Performance

Subtilités et Performances des Modèles

  • Discussion sur l'ironie dans les modèles d'analyse de texte, soulignant la difficulté de compréhension. Les modèles sont puissants pour le sentiment mais moins performants pour le classement de grands volumes de textes.
  • Question sur l'application des Transformers au-delà de l'analyse textuelle, avec une réponse affirmant leur présence dans divers domaines.

Applications Pratiques des Transformers

  • Exploration des tâches disponibles sur la plateforme Face, incluant la détection d'objets parmi d'autres applications.
  • Clarification sur la terminologie entre classification et détection d'objets, indiquant que ces concepts sont souvent confondus.

Classification vs Détection

  • Explication que la classification peut inclure l'identification de noms dans un texte, tandis que la détection d'objets implique prédire les zones où un objet est identifié.
  • L'intervenant partage son expérience personnelle en utilisant à la fois la classification d'images et la détection d'objets dans ses projets.

Architecture des Transformers

  • Détails sur l’architecture Transformer qui permet diverses tâches comme la détection d’objets et l’explication de texte. L'accent est mis sur le fait que c'est une architecture empilée avec attention.
  • Description du fonctionnement général des Transformers : couches d'encodage et décodage selon les tâches spécifiques.

Multimodalité et Exemples Concrets

  • Mention des architectures multimodales où une image peut être transformée en texte ou vice versa, illustrant ainsi leur flexibilité.

Discussion sur les Hyperparamètres dans les Transformateurs

Introduction aux Hyperparamètres

  • L'intervenant mentionne qu'il teste un modèle sans avoir encore reçu de réponse, soulignant l'importance des hyperparamètres dans le processus d'entraînement.

Outils pour Affiner les Hyperparamètres

  • Il aborde la question des outils disponibles pour affiner les hyperparamètres lors de l'utilisation de modèles comme les transformateurs, en lien avec son projet d'analyse boursière sur 15 ans.
  • Des outils tels qu'Optuna et Hyperopt sont cités comme moyens efficaces pour explorer l'espace des hyperparamètres. L'intervenant exprime ses préoccupations quant à la qualité des résultats obtenus.

Importance de l'Architecture du Modèle

  • La complexité des architectures de transformateurs nécessite souvent plusieurs couches d'encodage et de décodage, ce qui influence directement le choix des hyperparamètres.
  • Le nombre de couches est identifié comme un hyperparamètre crucial. Les grandes entreprises utilisent des outils d'automatisation pour optimiser ces paramètres efficacement.

Exemples Pratiques et Méthodes

  • Un exemple est donné avec le classifieur Gradient Boosting, où divers hyperparamètres tels que le taux d'apprentissage et le nombre d'estimateurs doivent être ajustés pour améliorer la performance du modèle.
  • Trouver un bon ensemble d'hyperparamètres est difficile; c'est pourquoi on utilise des outils comme Hyperopt qui permettent une exploration systématique de différents paramètres.

Évaluation et Optimisation

  • L'utilisation d'Hyperopt permet aux utilisateurs de définir un espace de recherche spécifique pour leurs hyperparamètres, facilitant ainsi l'identification automatique des meilleurs paramètres après plusieurs évaluations.
  • Les approches aléatoires et par grille sont discutées comme méthodes possibles pour naviguer dans l'espace complexe des hyperparamètres.

Conclusion sur la Détermination des Paramètres Optimaux

Problèmes d'encodage et modèles numériques

Aperçu des défis en encodage

  • L'intervenant souligne l'importance de passer à la suite, indiquant que le temps imparti est limité pour aborder tous les sujets.
  • Il mentionne qu'il s'agit d'un aperçu rapide, suggérant que des discussions plus approfondies seraient nécessaires pour une compréhension complète.
  • Un point clé abordé est le problème d'encodage, qui concerne la conversion du texte en valeurs numériques.
  • L'intervenant évoque également les architectures et les modèles associés à ces processus d'encodage.