Malt
Amphi 2 - SESSION 2.2 - 07/02/2018 13h45 > 14h15


IA générative: une solution miracle pour la classification de texte?



Introduction

Il y a un peu plus d'un an, OpenAI sortait son ChatBot nommé ChatGPT. Son accessibilité et la communication qui en a été faite, ont permis au grand public de découvrir ou d'actualiser leur connaissance sur l'état actuel des méthodes de traitement du langage naturel et plus particulièrement des intelligences artificielles conversationnelles.

Le public a ainsi pu s'acclimater et s'approprier cette technologie pour imaginer des usages et créer de nouveaux produits, ce qui a incité et stimulé l'industrie à investir dans le “GenAI” (abus de langage pour nommer ces méthodes de génération de texte reposant sur des LLM “Large Language Model”). On ne compte plus les alternatives, Claude pour Anthropic, Bard pour Google… pour en citer quelques-unes.

Cependant, cette course effrénée, mais surtout certaines communications et compréhensions hasardeuses alimentent de nombreux fantasmes quant aux capacités réelles de ces modèles. En effet, des capacités émergentes ont pu être observées (exemple: calcul, …), certains y voient alors de la stratégie et du raisonnement, d'autres vont plus loin en rêvant d'AGI (intelligence artificielle générale).

Beaucoup pensent alors que l'IA générative pourrait répondre à toutes les tâches, et de façon extrême, qu'il ne serait potentiellement plus nécessaire d'avoir recours à des méthodes d'apprentissages spécifiques. Nous proposons ici une piste de réponse avec un contre-exemple dans le domaine de classification de texte sur un cas réel traiter à Malt: déterminer la catégorie métier d'un freelancer à partir de son titre de profil.
Méthodologie

Tout d'abord, afin d'évaluer l'IA générative pour prédire des catégories professionnelles, nous avons utilisé PaLM2 mis à disposition par Google au travers de son API Vertex AI. L'utilisation de ce type de méthode repose principalement sur correctement concevoir les prompts d'entrée et digérer les résultats fournis. Nous montrerons les obstacles pratiques rencontrés lors de cette utilisation: latence, impact environnemental et contraintes budgétaires.

Dans une seconde partie, nous verrons comment nous avons surmonté ces obstacles en construisant un petit modèle dédié à partir d'un modèle pré entraîné SentenceBERT [1], un modèle entraîné sur la similarité sémantique. Cela signifie pour notre cas d'usage que les embeddings de deux intitulés de poste similaire sont proches dans l'espace latent et éloignés pour deux intitulés différents. Nous expliquerons ensuite comment l'entraînement d'un réseau de classification par dessus ce modèle préserve l'alignement linguistique original [2], permettant ainsi une généralisation multilingue.

Ensuite, nous dévoilerons comment rendre le modèle encore plus efficient via des techniques de quantization et d'optimisation de graphes grâce à l'écosystème ONNX [3]. Ces optimisations, tout en réduisant encore la latence et la consommation de ressources de ce modèle dédié, lui permettent d'être déployé avec un simple CPU.

Finalement, nous verrons que tout n'est pas à jeter dans l'IA générative pour la classification de texte. En effet, nous présenterons comment ses capacités inégalées en “zero-shot” nous permettent d'adapter continuellement notre modèle dédié, en veillant à ce qu'il reste pertinent au sein d'un produit en constante évolution.

Originalité / perspective
Cette présentation a le mérite de tempérer certains bruits et rumeurs circulant autour de l'IA générative à partir d'un cas concret industriel tout en montrant que ces approches ne sont pas dénuées d'intérêt pour autant.

Références
[1] Reimers, N., & Gurevych, I. (2019). Sentence-BERT: Sentence embeddings using Siamese BERT-networks.
[2] Reimers, N., & Gurevych, I. (2020). Making monolingual sentence embeddings multilingual using knowledge distillation.
[3] https://onnx.ai/onnx


Revoir le live :



Warren JOUANNEAU
Research Data Scientist


Marc PALYART
Staff Data Scientist
S'inscrire !
Nos sponsors

Les stands partenaires

{\rtf1}