Partie 1 | Traitement du langage naturel : quand naturel ne rime pas avec green

Posté le : 18/03/2022

Partager

La question du green NLP

AI nlp green-min

La question de la réduction de l’empreinte carbone au cours du processus de développement logiciel, en particulier lors de la construction de modèles d’apprentissage automatique, fait actuellement l’objet d’un débat animé. Néanmoins, nous constatons que la question dépasse de loin le cadre de la simple optimisation, car il existe un grand nombre d’autres facteurs (par exemple, sociaux, économiques ou environnementaux) qui doivent absolument être pris en considération.

De plus, il existe des scénarios inhabituels qui suggèrent d’utiliser le traitement automatique des langues pour des choses comme la prédiction de la qualité de l’air. Dans cet article, nous allons étudier ce problème du point de vue du chercheur NLP, et voir comment nous, en tant qu’ingénieurs, pouvons contribuer à la construction d’un Internet plus vert par des efforts modestes mais constants.

Le traitement automatique des langues, gourmand en ressources informatiques

 

Si nous jetons un coup d’œil à l’histoire du traitement du langage naturel (NLP), nous pouvons constater que la complexité informatique a augmenté au cours des dernières décennies.

Évidemment, on peut se demander pourquoi cette complexité devrait augmenter, alors que nous parlons toujours la même langue. Nous aborderons cette question dans le chapitre suivant, mais tout d’abord, un peu de théorie.

L’objectif principal de tout projet NLP est d’obtenir des informations utiles à partir de vos données textuelles. Nous parlons tous, et nous écoutons tous, le langage est donc l’un des éléments les plus importants de notre vie quotidienne.

Il n’est pas surprenant que les propriétaires d’entreprises souhaitent obtenir la plupart des informations textuelles, car une grande partie des données se présente sous un format verbal (critiques, commentaires, etc.). En outre, même les actifs graphiques peuvent être convertis en texte.

 

Alors, quel est le problème avec le NLP ?

 

Dans tout problème d’apprentissage automatique, l’une des tâches les plus cruciales consiste à représenter vos données dans un format lisible par une machine. Par exemple, si vous construisez un modèle de notation pour le service de crédit de votre banque, vous pouvez obtenir des paramètres utilisateur tels que le revenu annuel, l’état civil, le nombre d’enfants, le nombre de dettes, etc.

Presque tous ces paramètres sont au format numérique, et même ceux qui ne le sont pas peuvent être facilement convertis en chiffres, par exemple, l’état civil peut être célibataire, marié ou divorcé, nous créons donc trois colonnes, et mettons des 1 ou des 0 dans les cellules correspondantes. Et, comme notre modèle ML est une fonction qui accepte un vecteur numérique en entrée, nous pouvons simplement introduire un tas de nos profils d’utilisateurs vectorisés dans le moteur et laisser l’algorithme faire sa magie.

Cependant, avec le NLP, la tâche n’est pas aussi triviale.

 

Comment pouvons-nous convertir un texte en un ensemble de chiffres ?

 

Ce qui est vraiment fascinant avec le NLP, c’est qu’il n’y a pas de réponse correcte. L’extraction de caractéristiques a toujours été un art pur et la technique de vectorisation peut varier d’une tâche à l’autre, rendant le processus plus artisanal que scientifique. Si nous faisons une synthèse de toutes les méthodes, nous pouvons définir trois grandes catégories.

Jusqu’en 2013, toutes les techniques de vectorisation étaient basées sur des statistiques pures et pouvaient être décrites comme un « codage à chaud ». Ces méthodes incluent les n-grams, tf-idf, Bag-Of-Words, les algorithmes de hachage, etc. Les caractéristiques étaient définies par le corpus lui-même et, selon votre algorithme, les mots étaient convertis en un vecteur numérique basé sur leur fréquence et leur importance.

Supposons que vous ayez un ensemble de 160 000 tweets et que vous utilisiez les bigrammes et l’algorithme de hachage Murmurhash v3 pour vectoriser vos données. Cela génère une collection de 40 000 caractéristiques, mais pour éviter le fléau de la dimensionnalité, vous appliquez une technique de réduction des caractéristiques (par exemple, basée sur le Khi-deux) pour ne laisser que 5 000 caractéristiques les plus importantes qui sont ensuite introduites dans le modèle (par exemple, le classificateur SVM).

 

La technique Word2vec : l’approche Word Embeddings

 

En 2013, un groupe de chercheurs de Google, dirigé par Tomas Mikolov, a proposé une nouvelle technique appelée word2vec. Dans leur article, ils ont présenté l’approche word embeddings, qui convertit le texte en vecteurs denses.

Supposons que vous entraîniez un classificateur de sentiments pour les évaluations en ligne. Vous avez deux classes, positive et négative. Chacune des critiques est composée de mots. Par exemple, vous avez le mot « love », qui est proche de la classe positive, vous attribuez donc 0,9 à ce jeton. Le mot « déçu » est plus proche de la classe négative, donc vous attribuez -0,8 à ce terme. Le terme « alright » se situe quelque part entre le positif et le négatif, vous pourriez donc lui attribuer une valeur de 0,2.

Mais comment obtenir ces valeurs ? Les embeddings sont entraînés au préalable et sont téléchargés dans un fichier unique qui est ensuite utilisé pour l’extraction de caractéristiques. Comme ces embeddings ne changent pas dynamiquement pendant la vectorisation, il est intéressant d’avoir autant de mots différents que possible.

C’est pourquoi, pour former de bons embeddings, d’énormes ensembles de données sont utilisés, tels que Google News, Wikipedia, des livres et des articles scientifiques.

Il n’est pas surprenant que l’entraînement de tels embeddings nécessite du temps et de la puissance de calcul, et qu’ils doivent être entraînés pour chaque langue séparément. Cependant, l’avantage d’une telle approche est une meilleure classification car les embeddings permettent de capturer les relations sémantiques entre les mots et de réduire l’impact des mots fonctionnels (to, this, it, of etc.) qui sont utilisés plus souvent que les termes significatifs. Outre word2vec, cette technique comprend le skip-gram et GloVe.

 

L’arrivée de BERT

 

Les word embeddings ont permis d’améliorer considérablement la qualité de la classification des textes, mais comme il y a toujours quelque chose à améliorer, l’équipe de recherche de Google, en 2018, a introduit une nouvelle approche basée sur l’architecture des transformateurs, appelée BERT (Bidirectional Encoder Representations from Transformers), qui permet de construire des représentations contextuelles.

Contrairement à word2vec, BERT analyse le contexte dans les deux sens (gauche et droite), ce qui permet d’obtenir des représentations plus significatives. Par conséquent, dans deux phrases « I run a marathon » et « I run a business », BERT attribuera des valeurs différentes au mot « run », car sa signification change en fonction du contexte.

Outre l’amélioration de la qualité de la classification, cette approche a défini une tendance vers des représentations linguistiques pré-entraînées avec une architecture agnostique. Ce paradigme a conduit à des progrès substantiels dans de nombreuses tâches de TAL et a inspiré de nouvelles architectures et de nouveaux algorithmes avec plusieurs couches de représentation et d’état contextuel.

Certes, ces solutions nécessitaient une sérieuse puissance de calcul, ainsi chaque nouvel algorithme était un compromis entre l’efficacité et la qualité souhaitée. Par exemple, même en 2018, il existait des modèles bien plus puissants que BERT, mais leur coût les rendait commercialement inefficaces. BERT, quant à lui, permettait d’obtenir un résultat supérieur à un coût abordable. Selon Devlin et al (2019), un modèle BERT de base avec 110 M de paramètres a nécessité 96 heures sur 16 puces TPU. Si les approches précédentes traitaient principalement des problèmes de base comme la classification ou la modélisation de sujets, les chercheurs se sont désormais concentrés sur des tâches aussi difficiles que la compréhension de la lecture, la réponse à des questions ou l’implication textuelle.

 

Le modèle Turing

 

En 2020, grâce aux progrès de l’optimisation du matériel, les ingénieurs ont réussi à former d’énormes modèles avec davantage de capacités. La première révolution a été le modèle de Turing, qui comptait 17 milliards (!) de paramètres et était capable d’effectuer des tâches aussi sophistiquées que le résumé de texte et la réponse à des questions.

Aujourd’hui, les chercheurs tentent de créer un modèle de langage aussi proche que possible du cerveau humain.

L’un des grands avantages de BERT était la possibilité d’affiner directement un modèle spécifique à une tâche en fournissant des milliers d’exemples (au lieu de millions), ce que l’on appelle « l’apprentissage par transfert ».

Aujourd’hui, nous essayons d’imiter le cerveau humain qui n’a pas besoin de grands ensembles de données supervisées pour apprendre des tâches linguistiques, mais simplement d’une brève directive en langage naturel (« dites-moi si la phrase décrit quelque chose de joyeux ou de triste », etc.). Ce concept est appelé « méta-apprentissage » et est plus attrayant pour les ingénieurs car il ne nécessite pas de données d’entraînement pour un réglage fin.

Pour atteindre cet objectif, les chercheurs d’OpenAI ont entraîné un modèle de langage autorégressif de 175 milliards de paramètres, appelé GTP 3, qui a donné des résultats prometteurs dans les configurations « zero-shot » et « one-shot » (c’est-à-dire sans aucun exemple ou avec un seul exemple fourni). Pour entraîner un modèle aussi monstrueux, il a fallu 3640 pétaflop-jours sur des GPU V100 faisant partie d’un cluster à large bande passante fourni par Microsoft.

 

Dans cette première partie nous avons pu voir l’histoire et les évolutions du NLP. Dans une seconde partie qui sera bientôt publiée nous aborderons les modèles NLP sous un prisme éthique et éco-responsable.

Ecrit par Alibek JAKUPOV, Data Scientis & Microsoft MVP Artificial Intelligence @ Expertime

Contactez-nous Postuler Nos offres d'emploi