Un monstre de technologie de Google battu par un programme de 14 lignes
Ce titre est putassier. À ma gauche, un programme de 14 lignes qui utilise un
outil préhistorique, avec 0 paramètre. À ma droite, BERT
, un monstre de
technologie made in Google boosté aux GPUS, avec 110 millions de
paramètres. Qui va gagner ?
La Fontaine aurait adoré
L’intelligence contre la puissance de calcul.
La frugalité contre la débauche de ressources.
La grenouille et le boeuf.
Classification de textes
La classification de textes est une tâche importante. Elle permet de classer des informations et de proposer des contenus adaptés, en attribuant des étiquettes prédéfinies à un texte (improbabilité, cachalot, pétunia). C’est une technique classique en traitement du langage, et une fonction de base pour le fonctionnement des agents conversationnels.
Les réseaux de neurones ont changé la donne. Les performances se sont considérablement améliorées depuis une dizaine d’années. Conçu par Google, BERT est le plus connu et probablement le plus utilisé. Ce type d’algorithme d’apprentissage automatique est très gourmand en données, et ses millions de paramètres doivent être soigneusement réglés à partir du traitement d’énormes corpus de texte. Cet ajustage requiert est glouton et consomme de grandes quantités de ressources, notamment en puissance de calcul et capacité mémoire. Ces programmes sont donc extrêmement complexes … et coûteux à entraîner.
Overkill ?
Il est légitime de se demander si la classification de textes, relativement bien maîtrisée aujourd’hui, peut ếtre réalisée en utilisant des approches plus légères. C’est ce qu’a fait une équipe de scientifiques canadiens.
In this paper, we propose a non-parametric alternative to Deep neural networks (DNNs) that’s easy, lightweight, and universal in text classification: a combination of a simple compressor like gzip with a k-nearest-neighbor classifier. Without any training parameters, our method achieves results that are competitive with non-pretrained deep learning methods on six in-distribution datasets. It even outperforms BERT on all five OOD datasets, including four low-resource languages. Jiang et al., Findings 2023
Astucieux, efficace, court
Ils ont construit un programme très astucieux, très efficace et très court.
Ce programme est astucieux car il utilise un outil de compression de texte bien connu et très fiable. Il s’agit de GZIP
. C’est un programme de compression très commun dans le monde informatique, dont la fonction est de réduire l’empreinte d’un fichier sur le disque dur. GZIP
est antérieur à WINZIP
ou 7-ZIP
. Sa première implémentation date de 1992. Il utilise deux algorithmes de compression (LZ77 et le codage de Huffman) qui datent respectivement de 1977-78 et de 1952.
Ce programme est efficace, car il montre des performances très proches des meilleurs programmes dits intelligents dont BERT
. Il le surpasse même dans certains cas.
Ce programme est court, enfin. Son écriture en Python tient en 14 lignes. Il est composé d’un calcul de normalisation très simple et fait principalement appel au programme GZIP
. Il est donc très facile à analyser, à comprendre et à maintenir.
Rafraichissant
Cette approche ne demande aucun paramètre et aucun entraînement. En ce temps de frénésie liée aux technologies d’apprentissage automatique, c’est un point à souligner. On sent poindre, peut-être, une volonté de se moquer gentiment des fanas de GPUS et des grosses machineries à base de réseaux de neurones. Forcément, ici, on adore.
L’idée
Ce programme fonctionne sur une hypothèse et une idée, toutes les deux simples.
L’hypothèse est la suivante : si deux textes traitent un même sujet, alors les mots employés et leurs articulations seront similaires. Autrement dit, le contenu en information sera proche. Les mathématiciens ont des outils qui permettent de quantifier un contenu informationnel, grâce à la complexité de Kolmogorov. Si j’appelle C la fonction qui permet d’estimer ce contenu informationnel, alors l’algorithme se ramène à calculer un écart de contenu informationnel entre le texte qu’on cherche à classer (T), et des textes de références bien identifiés (T1, T2) :
Opérations réalisées : C(T+T1) - C(T) > C(T+T2) - C(T) ?
L’idée est d’utiliser un outil de compression de texte pour estimer cet écart de contenu informationnel. C’est ici que GZIP
est utilisé. Son processus de compression analyse les textes pour identifier des motifs récurrents et des similarités dont le programme tire ensuite parti pour réduire la taille du texte en le codant. Une fois ces écarts calculés, un algorithme classique des plus proches voisins (kNN) est utilisé.
GZIP fait jeu égal avec BERT
Au-delà de l’anecdote, cette performance fait réfléchir.
En sciences, il y a souvent plusieurs façons de résoudre un problème. L’approche utilisée par l’équipe canadienne s’appuie sur unr observation : certains algorithmes de compression exploitent les régularités d’un texte et la structure interne des phrases. Ces motifs peuvent-ils être utilisés pour classer efficacement des textes, autrement dit la compression permet-elle de construire une métrique efficace ? La réponse est oui, et ils l’ont prouvé.
Un compresseur de texte comme GZIP
est capable de classer efficacement des textes. Notons que cette voie de recherche n’est pas nouvelle. Un avantage de ces approches est l'explicabilité : les algorithmes sont connus et maîtrisés, on comprend les traitements et on peut étudier les représentations internes. Les réseaux de neurones sont, rappelons-le, des boîtes noires dont le fonctionnement est obscur.
David contre Goliath. Les résultats obtenus avec une utilisation démesurée de ressources (puissance de calcul, espace mémoire, matériel spécifique), tout en faisant appel à des techniques complexes en ingénierie des données (donc en ressources humaines) ne sont pas vraiment meilleurs que des résultats obtenus avec une méthode beaucoup plus économe.
Suivre la mode n’est, en aucun cas, la garantie de faire les meilleurs choix.
Voici quelques liens si le sujet vous intéresse :
-
des doutes sur le calcul des performances ?