NOTE MÉTHODOLOGIQUE : TRANSITION DU DEEP LEARNING (KERAS) VERS UN LLM GENERATIF (GEMMA 3) POUR L'ANALYSE DE SENTIMENTS
Ce document présente la note méthodologique relative au Projet 9 (formation Ingénieur IA d'OpenClassrooms). Il détaille la démarche de transition technologique, les fondements techniques de l'approche Generative AI locale, et une analyse comparative de la baseline Deep Learning supervisée par rapport au challengeur LLM.
1. Démarche Générale : De la Classification Supervisée au Zero-Shot Prompting
L'analyse de sentiments traditionnelle (Projet 7) reposait sur un modèle de classification supervisée développé avec Keras (réseau de neurones simple alimenté par un plongement de mots Word2Vec). Cette approche comporte plusieurs limitations industrielles :
- Dépendance aux données étiquetées : Nécessite des millions de tweets annotés pour obtenir une généralisation décente.
- Opacité ("Black-Box") : Le modèle renvoie un score scalaire entre 0 (négatif) et 1 (positif), sans aucune explication contextuelle sur la raison de cette décision.
- Rigidité sémantique : Les émotions complexes, le sarcasme ou les nuances fines (ex: "frustration" vs. "tristesse") sont totalement gommés par la classification binaire.
Le nouveau paradigme : Zero-Shot Prompting
L'intégration d'un Large Language Model (LLM) comme Gemma 3 permet d'adopter l'inférence Zero-Shot. Au lieu d'entraîner le modèle sur des tâches spécifiques de classification, nous exploitons la compréhension universelle du langage déjà apprise par le modèle pré-entraîné de Google. En lui présentant simplement un texte brut, il est capable de :
- Identifier les nuances fines : Extraire une ou plusieurs émotions précises parmi plus de 30 catégories d'émotions distinctes (ex: Joie, Admiration, Frustration, Déception, Colère).
- Formuler un raisonnement (Explainability) : Rédiger une explication en langage naturel détaillant la logique de sa prédiction, offrant une auditabilité totale indispensable en entreprise.
2. Choix de l'Algorithme et Cadre d'Exécution Locale
Le Modèle : Google Gemma 3 1B Instruct
Nous avons sélectionné Gemma 3 1B Instruct (JusteLeo/emotion-text-classifier-LLM), un modèle de fondation compact de 1 milliard de paramètres optimisé pour l'inférence rapide et la classification fine.
- Pourquoi un modèle compact (1B) ? Il est idéal pour l'inférence locale sur des machines à ressources limitées (comme un ordinateur portable ou un serveur cloud d'entrée de gamme), garantissant des temps de réponse très courts tout en conservant d'excellentes aptitudes de raisonnement.
- Quantification GGUF : Le modèle utilise le format GGUF quantifié en Q4_0 (4 bits). La quantification réduit la taille mémoire du modèle de ~4 Go à seulement 720 Mo, permettant de le charger entièrement dans la mémoire cache CPU ou GPU (Metal sur macOS) et d'éliminer toute latence liée au swapping.
L'accélération matérielle locale : llama.cpp
En utilisant le framework d'inférence de bas niveau llama-cpp via son binding Python, le modèle bénéficie de l'accélération Metal de macOS (Apple Silicon GPU). Cela permet d'atteindre des vitesses d'inférence locales exceptionnelles de ~110 tokens par seconde (soit environ 0.8 seconde par tweet).
3. Fiabilité en Production : Rôle du Chat Template et du Format JSON
Dans un pipeline de production logicielle (comme une API FastAPI ou un dashboard Streamlit), la sortie d'un LLM classique sous forme de texte libre est inexploitable car imprévisible (risques d'hallucinations, bavardages introductifs).
Pour garantir une fiabilité de 100%, nous utilisons un Chat Template spécialisé intégré dans le modèle qui impose au LLM de formuler sa réponse exclusivement sous forme d'un objet structurel JSON respectant le schéma suivant :
{
"emotions": [ "Emotion_Fine_1", "Emotion_Fine_2" ],
"explanation": "Texte explicatif du raisonnement du modèle..."
}
Ce formatage structuré permet à notre code Python d'exécuter un simple json.loads() et de router immédiatement l'explication vers le frontend Streamlit, et les émotions fines vers nos fonctions de mapping analytique.
4. Analyse Comparative Quantitative (In-Distribution V1 vs. Out-of-Distribution V2)
Pour évaluer rigoureusement la robustesse des modèles face au Data Drift (changement de distribution), nous avons mis en place un protocole d'évaluation en deux phases :
- Phase 1 (In-Distribution V1) : Évaluation sur un échantillon stratifié équilibré de 500 tweets issus du jeu de données historique Sentiment140 (sur lequel Keras a été entraîné).
- Phase 2 (Out-of-Distribution V2 - Données Modernes) : Évaluation sur un jeu de données neutre de 100 phrases modernes (50 positives, 50 négatives) truffées d'émojis, d'argot récent ("TikTok", "ChatGPT", "Banger") et de sarcasme complexe (sur lequel Keras n'a jamais été entraîné).
Tableau de comparaison des métriques
| Métrique de Performance | Keras Baseline (Deep Learning) | Gemma 3 (Zero-Shot LLM + Explication V2) | Constat & Avantage Métier |
|---|---|---|---|
| Accuracy V1 (In-Distribution) | 78.2% | 71.8% | Keras surperforme légèrement car il est entraîné sur les biais de Sentiment140. |
| Accuracy V2 (Out-of-Distribution) | 87.0% | 91.0% | Gemma 3 surpasse Keras grâce à sa généralisation Zero-Shot sur le vocabulaire moderne. |
| Accord Jugement Humain (20 conflits) | 45.0% | 55.0% | Gemma 3 s'aligne mieux avec l'humain sur les tweets litigieux ou ironiques. |
| Temps d'inférence moyen par tweet | 0.13 ms (Vectorisé) | 0.56 s (Apple Silicon Metal GPU) | Keras est instantané, mais Gemma 3 reste sous la seconde, idéal en temps réel unitaire. |
| Explicabilité (Explainability) | ❌ Non (Score opaque) | Oui (Explication textuelle de l'émotion) | Le LLM élimine l'effet "boîte noire" en justifiant chaque prédiction. |
| Analyse d'émotions fines | ❌ Non (Binaire rigide) | Oui (Compréhension multi-émotions) | Gemma 3 qualifie la nature exacte de l'émotion (ex: Soulagement, Fierté). |
Analyse des compromis et Robustesse :
- Sensibilité au Data Drift (Le collapse de Keras) : Sur les données historiques (V1), Keras affiche une précision supérieure (78.2% vs 71.8%) due à sa mémorisation des biais d'annotation d'origine. Cependant, dès qu'il est exposé à des données réelles et modernes (V2), Keras est pénalisé par des termes hors-vocabulaire (OOV). Gemma 3 montre une résilience spectaculaire en grimpant à 91.0% d'accuracy grâce à sa double-lecture contextuelle.
- Algorithme de Détection du Sarcasme (V2) : Les LLM Zero-Shot simples peuvent se laisser tromper par le sarcasme dans des binarisations basiques (ex: classer une phrase ironique comme positive en détectant le mot "génial"). Pour y pallier, nous avons codé un algorithme de binarisation avancée qui vérifie si l'explication textuelle générée par Gemma 3 contient des expressions de sarcasme, d'ironie, de déception ou de plainte. Si c'est le cas, la prédiction est corrigée automatiquement en Négatif (0), offrant une précision optimale de 91.0%.
- Le verdict de l'Accord Humain : En isolant 20 cas de désaccord complet entre les modèles et en les faisant annoter par un expert humain en "aveugle", Gemma 3 s'est révélé être d'accord avec l'humain dans 55% des cas, contre seulement 45% pour Keras. Cela prouve que même lorsque Gemma 3 diverge des étiquettes brutes historiques, il s'aligne plus naturellement avec le bon sens humain réel.
5. Analyse Qualitative et Apport Métier (Explainability)
Pour prouver à Mme Aline l'intérêt métier du LLM, nous mettons en lumière sa capacité d'Explicabilité.
Prenons des exemples réels de tweets issus de la PoC :
- Tweet : "I am so happy that the model is working perfectly!"
- Keras :
0.98(Positif) ➔ Pas d'explications. - Gemma 3 :
Positif(Émotion: Joy) ➔ Explication : "The sentence expresses a feeling of great happiness and contentment."
- Keras :
- Tweet : "Home now the worst part of the day is finally over"
- Keras :
0.23(Négatif) ➔ Pas d'explications. - Gemma 3 :
Positif(Émotion: Relief) ➔ Explication : "The user is relieved that the worst part of their day is behind them, which indicates a transition to a more positive state."
- Keras :
Conclusion qualitative :
Dans le deuxième exemple, le tweet contient des termes négatifs ("worst part"). La baseline Keras se laisse tromper par le vocabulaire négatif et classe le tweet comme négatif. Le LLM Gemma 3, grâce à sa compréhension contextuelle, détecte l'émotion fine de Soulagement (Relief) et classe à juste titre le tweet comme Positif. L'explication générée apporte une transparence totale sur le cheminement cognitif de l'IA, transformant une simple boîte noire en un assistant d'analyse d'opinion hautement fiable et auditable pour l'entreprise.
6. Évolution Technologique : Fine-Tuning local par Adaptateurs LoRA & Robustesse à l'Inédit
Afin de pousser la recherche industrielle au maximum de ses capacités, nous avons exploré une alternative moderne au paradigme Zero-Shot : l'adaptation locale de modèles via la technologie de Fine-Tuning LoRA (Low-Rank Adaptation).
Le Cadre de l'Entraînement Local & Souverain
Plutôt que de dépendre de serveurs cloud lourds ou de modèles généralistes de très grande taille, nous avons entraîné localement un modèle Qwen 2.5 0.5B Instruct (500 millions de paramètres) directement sur l'accélérateur graphique Apple Silicon Metal (MPS) d'un ordinateur de développement macOS en précision native Float16 (torch.float16).
- Rapidité d'exécution : Grâce à l'architecture unifiée d'Apple Silicon et au framework d'Hugging Face (TRL
SFTTrainer), l'entraînement a pris seulement 44,83 secondes pour 30 itérations d'apprentissage. - Souveraineté et Compacité : L'entraînement LoRA ne met à jour qu'une infime partie des poids d'attention du modèle. Il génère des fichiers d'adaptateurs ultra-légers de seulement 4,35 Mo (
./qwen2.5_local_mac_lora), préservant la souveraineté totale des données clients qui ne quittent jamais la machine locale.
Évaluation Comparative face au Data Drift Linguistique (50 Tweets 100% Inédits)
En Machine Learning, la rigueur exige de prouver que le modèle entraîné ne souffre pas de surapprentissage (overfitting) ou de fuite de données (data leakage). Nous avons donc généré un jeu de test de 50 tweets modernes 100% inédits (25 positifs, 25 négatifs) truffés d'émojis complexes et d'argot actuel ("Banger", "Cringe", "Slay", "Doomscrolling"), jamais présentés lors de la phase d'entraînement.
Les trois modèles ont été évalués en face-à-face sur ce jeu d'épreuve inédit. Les résultats de précision (Accuracy) parlent d'eux-mêmes :
| Modèle & Approche | Accuracy sur l'INÉDIT | Résistance face au Data Drift |
|---|---|---|
| Keras Baseline (Projet 7) | 74.00 % | 🔴 Collapse critique : Le modèle supervisé classique est incapable de s'adapter aux changements linguistiques rapides (Concept Drift). |
| Qwen 2.5 0.5B (Zero-Shot) | 94.00 % | 🟡 Bonne résistance : Le grand pré-entraînement linguistique du LLM de base offre une compréhension correcte. |
| Qwen 2.5 0.5B + LoRA (Fine-Tuned) | 96.00 % | 🟢 Généralisation exceptionnelle : Le modèle personnalisé ne commet qu'une seule erreur sur l'inédit, démontrant une acquisition pérenne de règles sémantiques robustes sans overfitting. |
Conclusion MLOps
Cette expérience valide scientifiquement la stratégie d'évolution technologique pour Mme Aline :
- Pérennité : Le passage à l'IA Générative et au Fine-Tuning LoRA local élimine définitivement les défaillances liées à l'obsolescence des données textuelles.
- Efficacité : Un petit modèle ciblé et entraîné localement en moins d'une minute surpasse largement en précision une Baseline supervisée tout en rivalisant avec les modèles cloud géants à un coût financier et infrastructurel nul.