
Les trois âges de la science des données : quand utiliser l’apprentissage automatique traditionnel, l’apprentissage profond ou un LLM (expliqué avec un exemple)
de l’univers (réalisé par l’un des chanteurs les plus emblématiques de tous les temps) dit ceci :
J’aimerais pouvoir y retourner
Et changer ces années
je traverse des changementsSabbat noir – Changements
Cette chanson est incroyablement puissante et raconte comment la vie peut changer si rapidement sous vos yeux.
Cette chanson parle d’un cœur brisé et d’une histoire d’amour. Cependant, cela me rappelle aussi beaucoup des changements qu’a subi mon métier de Data Scientist au cours des 10 dernières années de ma carrière :
- Quand j’ai commencé à étudier la physique, la seule chose à laquelle je pensais quand quelqu’un disait « Transformer » était Optimus Prime. Pour moi, l’apprentissage automatique consistait avant tout Régression linéaire, SVM, forêt aléatoire etc… [2016]
- Lorsque j’ai fait mon Master en Big Data et Physique des Systèmes Complexes, j’ai entendu parler pour la première fois de «BERTE » et diverses technologies de Deep Learning qui semblaient très prometteuses à l’époque. Les premiers modèles GPT sont sortis, et ils semblaient très intéressants, même si personne ne s’attendait à ce qu’ils soient aussi puissants qu’aujourd’hui. [2018-2020]
- Avance rapide vers ma vie maintenant en tant que Data Scientist à temps plein. Aujourd’hui, si vous ne savez pas ce que signifie GPT et que vous n’avez jamais lu « L’attention est tout ce dont vous avez besoin » vous avez très peu de chances de réussir un entretien de conception de systèmes de science des données. [2021 – today]
Quand les gens affirment que les outils et la vie quotidienne d’une personne travaillant avec des données sont sensiblement différents de ceux d’il y a 10 (voire 5) ans, je suis entièrement d’accord. Quoi je ne suis pas d’accord avec l’idée que les outils utilisés dans le passé devraient être effacés simplement parce que tout semble désormais pouvoir être résolu avec GPT, LLM ou Agentic AI.
Le but de cet article est de considérer une seule tâche, qui est classer l’intention amour/haine/neutre d’un Tweet. Nous le ferons notamment avec Machine Learning traditionnel, Deep Learning, et Grands modèles de langage.
Nous ferons cela de manière pratique, en utilisant Python, et nous décrirons pourquoi et quand utiliser chaque approche. J’espère qu’après cet article, vous apprendrez :
- Le outils utilisés au début doivent encore être considérés, étudiés et parfois adoptés.
- Latence, précision et coût doit être évalué lors du choix du meilleur algorithme pour votre cas d’utilisation
- Changements dans le monde du Data Scientist sont nécessaires et à adopter sans crainte 🙂
Commençons !
1. Le cas d’utilisation
Le cas auquel nous traitons est en fait très adopté dans les applications Data Science/IA : analyse des sentiments. Cela signifie que, étant donné un texte, nous voulons extrapoler le « sentiment » qui se cache derrière l’auteur de ce texte. Ceci est très utile dans les cas où vous souhaitez recueillir les retours derrière une critique donnée d’un objet, d’un film, d’un article que vous recommandez, etc…
Dans cet article de blog, nous utilisons un exemple d’analyse des sentiments très « célèbre », qui classe le sentiment derrière un tweet. Comme je souhaitais plus de contrôle, nous ne travaillerons pas avec des tweets organiques récupérés sur le web (où les étiquettes sont incertaines). Au lieu de cela, nous utiliserons le contenu généré par Grands modèles de langage que nous pouvons contrôler.
Cette technique permet également de régler la difficulté et la variété du problème et d’observer comment réagissent les différentes techniques.
- Cas facile: les tweets d’amour ressemblent à des cartes postales, ceux de haine sont directs et les messages neutres parlent de météo et de café. Si un modèle a du mal ici, quelque chose d’autre ne va pas.
- Cas plus difficile: toujours de l’amour, de la haine, du neutre, mais maintenant nous injectons du sarcasme, des tons mélangés et des allusions subtiles qui exigent une attention particulière au contexte. Nous avons également moins données, pour avoir un ensemble de données plus petit avec lequel s’entraîner.
- Étui extra rigide : nous passons à cinq émotions : l’amour, la haine, la colère, le dégoût, l’envie, le modèle doit donc analyser des phrases plus riches et plus complexes. De plus, nous avons 0 entrée pour entraîner les données : nous ne pouvons faire aucun entraînement.
J’ai généré les données et placé chacun des fichiers dans un dossier spécifique du public Dossier GitHub J’ai créé pour ce projet [data].
Notre objectif est de construire un système de classification intelligent qui sera capable d’appréhender efficacement les sentiment derrière les tweets. Mais comment allons-nous procéder ? Voyons cela.
2. Conception du système
Une image qu’il est toujours extrêmement utile de considérer est la suivante :

Précision, coûtet échelle dans un système d’apprentissage automatique, formez un triangle. Vous ne pouvez en optimiser pleinement que deux à la fois.
Vous pouvez avoir un modèle très précis qui s’adapte très bien à des millions d’entrées, mais ce ne sera pas rapide. Vous pouvez avoir un modèle rapide qui évolue avec des millions d’entrées, mais il ne sera pas aussi précis. Vous pouvez avoir un modèle précis et rapide, mais il ne fonctionnera pas très bien.
Ces considérations sont abstraites du problème spécifique, mais elles aident à déterminer la conception du système ML à créer. Nous y reviendrons.
De plus, la puissance de notre modèle doit être proportionnelle à la taille de notre ensemble de formation. De manière générale, on essaie d’éviter que l’erreur de l’ensemble d’apprentissage ne diminue au prix d’une augmentation de l’ensemble de test (le fameux surapprentissage).

Nous ne voulons pas être dans la zone du sous-ajustement ou du surajustement. Laissez-moi vous expliquer pourquoi.
En termes simples, le sous-apprentissage se produit lorsque votre modèle est trop simple pour apprendre le modèle réel de vos données. C’est comme essayer de tracer une ligne droite dans une spirale. Le surapprentissage est le contraire. Le modèle apprend trop bien les données d’entraînement, y compris tout le bruit, de sorte qu’il fonctionne très bien sur ce qu’il a déjà vu mais mal sur les nouvelles données. Le point idéal est le juste milieu, où votre modèle comprend la structure sans la mémoriser.
Nous reviendrons également sur celui-ci.
3. Cas simple : apprentissage automatique traditionnel
Nous commençons par le scénario le plus convivial : un ensemble de données hautement structuré de 1 000 tweets que nous avons générés et étiquetés. Les trois classes (positive, neutre, négative) sont volontairement équilibrées, le langage est très explicite et chaque ligne vit dans un CSV propre.
Commençons par un simple bloc de code d’importation.
Voyons à quoi ressemble l’ensemble de données :

Maintenant, nous prévoyons que cela ne sera pas mis à l’échelle pour des millions de lignes (car l’ensemble de données est trop structuré pour être diversifié). Cependant, nous pouvons créer une méthode très rapide et précise pour ce cas d’utilisation minuscule et spécifique. Commençons par la modélisation. Trois points principaux à considérer :
- Nous faisons répartition train/test avec 20 % de l’ensemble de données dans l’ensemble de test.
- Nous allons utiliser un TF-IDF approche pour obtenir les intégrations des mots. TF-IDF signifie Fréquence des termes – Fréquence inverse des documents. Il s’agit d’une technique classique qui transforme le texte en nombres en attribuant à chaque mot un poids en fonction de son importance dans un document par rapport à l’ensemble des données.
- Nous combinerons cette technique avec deux modèles ML : Régression logistique et Machines à vecteurs de supportdepuis scikit-apprendre. La régression logistique est simple et interprétable, souvent utilisée comme base de référence solide pour la classification de textes. Les machines à vecteurs de support se concentrent sur la recherche de la meilleure limite entre les classes et fonctionnent généralement très bien lorsque les données ne sont pas trop bruyantes.
Et les performances sont essentiellement parfaites pour les deux modèles.

Pour ce cas très simple, où nous disposons d’un ensemble de données cohérent de 1 000 lignes, une approche traditionnelle fait l’affaire. Pas besoin de milliards de modèles de paramètres comme GPT.
4. Cas difficile : apprentissage profond
Le deuxième ensemble de données est toujours synthétique, mais il est volontairement conçu pour être ennuyeux. Les étiquettes restent amoureuses, haineuses et neutres, mais les tweets s’appuient sur le sarcasme, le ton mitigé et les compliments détournés. De plus, le pool de formation est plus petit tandis que la tranche de validation reste grande, de sorte que les modèles fonctionnent avec moins de preuves et plus d’ambiguïté.
Maintenant que nous sommes confrontés à cette ambiguïté, nous devons sortir les plus gros canons. Il existe des modèles d’intégration de Deep Learning qui maintiennent une grande précision tout en restant bien évolutifs dans ces cas (rappelez-vous le triangle et le graphique erreur/complexité !). En particulier, les modèles d’intégration du Deep Learning apprennent la signification des mots à partir de leur contexte au lieu de les traiter comme des jetons isolés.
Pour cet article de blog, nous utiliserons BERTEqui est l’un des modèles d’intégration les plus célèbres. Importons d’abord quelques bibliothèques :
… et quelques aides.
Grâce à ces fonctions, nous pouvons évaluer rapidement notre modèle d’intégration par rapport à l’approche TF-IDF.


Comme nous pouvons le voir, le modèle TF-IDF est extrêmement sous-performant dans les étiquettes positives, alors qu’il préserve une grande précision lors de l’utilisation du modèle d’intégration (BERT).
5. Cas extra rigide : Agent LLM
Ok, maintenant rendons les choses TRÈS difficiles :
- Nous avons seulement 100 lignes.
- Nous supposons nous ne connaissons pas les étiquettesce qui signifie que nous ne pouvons entraîner aucun modèle d’apprentissage automatique.
- Nous avons cinq étiquettes : envie, haine, amour, dégoût, colère.

Comme nous ne pouvons rien entraîner, mais que nous voulons quand même effectuer notre classification, nous devons adopter une méthode qui, d’une manière ou d’une autre, contient déjà les classifications. Grands modèles de langage sont le meilleur exemple d’une telle méthode.
Notez que si nous utilisions des LLM pour les deux autres cas, cela reviendrait à tirer sur une mouche avec un canon. Mais ici, cela est parfaitement logique : la tâche est difficile et nous n’avons aucun moyen de faire quoi que ce soit d’intelligent, car nous ne pouvons pas entraîner notre modèle (nous n’avons pas l’ensemble d’entraînement).
Dans ce cas, nous avons une précision à grande échelle. Cependant, l’API prend un certain temps, nous devons donc attendre une seconde ou deux avant que la réponse ne revienne (rappelez-vous le triangle !).
Importons quelques bibliothèques :
Et voici l’appel de l’API de classification :
Et on voit que le LLM fait un travail de classification époustouflant :
6. Conclusions
Au cours de la dernière décennie, le rôle du Data Scientist a changé de manière aussi radicale que la technologie elle-même. Cela pourrait conduire à l’idée d’utiliser uniquement les outils les plus puissants disponibles, mais ce n’est PAS la meilleure solution dans de nombreux cas.
Au lieu de chercher d’abord le plus gros modèle, nous avons testé un problème sous un angle simple : la précision, la latence et le coût.
Voici notamment ce que nous avons fait, étape par étape :
- Nous avons défini notre cas d’utilisation comme la classification des sentiments des tweets, visant à détecter l’amour, la haine ou l’intention neutre.. Nous avons conçu trois ensembles de données de difficulté croissante : un propre, un sarcastique et un sans entraînement.
- Nous avons abordé le cas simple en utilisant TF-IDF avec Logistic Regression et SVM. Les tweets étaient clairs et directs, et les deux modèles fonctionnaient presque parfaitement.
- Nous sommes passés au cas difficile, où le sarcasme, le ton mitigé et le contexte subtil ont rendu la tâche plus complexe.. Nous avons utilisé les intégrations BERT pour capturer le sens au-delà des mots individuels.
- Enfin, pour le cas très difficile sans données de formation, nous avons utilisé un grand modèle de langage pour classer les émotions directement via un apprentissage zéro.
Chaque étape a montré comment le bon outil dépend du problème. Le ML traditionnel est rapide et fiable lorsque les données sont structurées. Les modèles de Deep Learning sont utiles lorsque le sens se cache entre les lignes. Les LLM sont puissants lorsque vous n’avez pas d’étiquettes ou que vous avez besoin d’une large généralisation.
7. Avant de partir !
Merci encore pour votre temps. Cela signifie beaucoup ❤️
Je m’appelle Piero Paialunga et je suis ce type ici :

Je suis originaire d’Italie, je suis titulaire d’un doctorat. de la Université de Cincinnatiet travaille comme Data Scientist chez The Trade Desk à New York. J’écris sur IA, apprentissage automatique et rôle évolutif des data scientists à la fois ici sur TDS et sur LinkedIn. Si l’article vous a plu et souhaitez en savoir plus sur le machine learning et suivre mes études, vous pouvez :
A. Suivez-moi sur Linkedinoù je publie toutes mes histoires
B. Suivez-moi sur GitHuboù vous pouvez voir tout mon code
C. Pour toute question, vous pouvez m’envoyer un email à piero.paialunga@hotmail



