Un développeur a effectué une petite expérience très intéressante récemment : il a employé un grand modèle de langage (LLM, ce qui est souvent appelé IA, même si c'est un abus de langage) pour compresser du texte. Et le résultat est assez impressionnant, malgré quelques limites.
L'exemple porte le nom de Drink Me, pour une bonne raison : Julian a effectué ses essais sur le premier chapitre du livre Les Aventures d'Alice au pays des merveilles. Il a employé llaman.cpp, un logiciel open source qui peut utiliser les modèles LLaMA de Meta.
Le fonctionnement exact est expliqué dans son sujet, mais l'idée est de ne stocker que le nécessaire pour que le logiciel puisse générer le texte à partir des informations stockées dans le modèle. Sur le premier chapitre du livre, qui contient 11 994 caractères, la version compressée ne nécessite que 986 caractères, soit 8 % seulement de la valeur d'origine. C'est très nettement mieux que les programmes de compression classiques, mais avec évidemment quelques contraintes et limites.
Un problème de taille
Le premier défaut est évident : la puissance nécessaire est élevée, et sur plusieurs niveaux. Il a en effet fallu créer le modèle lui-même, et tant la compression que la décompression nécessitent beaucoup de mémoire vive et une bonne puissance de calcul. Le second défaut est un peu différent : la compression est beaucoup moins efficace si le modèle ne contient pas les données au départ (le post d'origine de Julian passe de 3 436 à 2 691 caractères). Ce défaut peut être présenté dans l'autre sens : si le texte à compresser a été employé pour créer le modèle — ce qui est a priori le cas de la version originale d'Alice's Adventures in Wonderland —, la compression est extrêmement efficace.
Cet autre post montre bien les gains : le modèle LLaMA-3-8B (8 milliards de paramètres) permet d'obtenir un fichier 58,4 x plus petit pour le même premier chapitre ou 131 x plus petit pour un texte très courant comme le contenu de la licence GPL v2. Mais pour du texte produit par l'auteur, les résultats sont plus faibles (4,4 x, 5,76 x ou 6,93 x). Dans tous les cas, la compression avec les outils classiques comme GZIP (certes plus rapide) est nettement moins efficace, avec des fichiers environ 2 x plus petits que les originaux.
Dans la pratique, il ne s'agit évidemment pour le moment que d'une sorte de démonstration technologique. Mais qui sait, peut-être que les sociétés qui développent les grands modèles de langage pourraient s'intéresser à cette solution dans le futur, pour ajouter une nouvelle corde à l'arc de « l'IA ».