Bases des modèles conversationnels III : multilinguisme, fenêtre de contexte, tokens…

Dans cet article, vous trouverez quelques compléments d’information utiles sur les modèles de langage conversationnels, bons à savoir avant de se lancer dans les cas d’utilisation proprement dits.

1. Multilinguisme

ChatGPT est capable de converser dans 95 langages différents, et ce dans leur alphabet natif (latin, cyrillique, mandarin…). Il est également capable de combiner les langages au cours d’une même conversation, comme par exemple dans le cas d’une demande de traduction.

Cependant, le degré d’expertise dans chaque langage varie en fonction du volume de données d’entraînement. En pratique, la compétence est maximale en Anglais, suivi par l’ Allemand, le Russe, le Français, le Chinois et l’Espagnol…pour vous donner une idée, vous trouverez sur ce lien la répartition linguistique de la base de données Common Crawl qui est une des principales sources de données d’entraînement. L’ Anglais à lui seul représente 45% du volume total, le second étant l’Allemand avec….6%.

La capacité à combiner les langues au sein d’un même dialogue offre des perspectives tout à fait originales: il est possible de demander à un modèle de langage de jouer le rôle de professeur de langues, et vous pouvez laisser parler votre créativité….regardez plutôt ceci :

Figure 1 – Dialogue avec ChatGP4 : un poème d’amour multilingue

Pour remédier à l’asymétrie des compétences linguistiques, certains Grands Modèles de Langage comme Bloom visent à une représentation plus égalitaire entre les langages d’entraînement. Si vous intéressés, je vous invite à en lire plus sur cet intéressant projet ici.

Enfin, les Modèles de Langage sont également entraînés sur différents langages de programmation, qu’ils « parlent » donc avec une éloquence variable. C’est un sujet passionnant, au potentiel applicatif énorme, sur lequel je reviendrai ultérieurement.

2. Fenêtre de contexte et tokens

Contrairement à ce que vous pourriez croire, les Modèles de Langage sont amnésiques. Après chaque réponse, ils oublient tout! Mais direz-vous, ceci n’est pas possible, puisqu’ ils sont capables de soutenir un dialogue…

Eh bien en fait il y a un truc : a chaque fois que vous posez une question au modèle, le programme réinjecte au modèle la totalité du dialogue depuis le début, avec les questions-réponses précédentes, et ce jusqu’à la dernière question.

Peu importe, direz-vous, c’est un détail invisible pour l’utilisateur. Eh bien pas tout à fait, cela joue un rôle important à cause de la limitation de taille des fenêtres de contexte.

Tous les modèles de langage actuels fonctionnent avec une fenêtre de contexte limitée, c’ est une contrainte de leur architecture technique. Cela veut dire que la totalité du texte qui est analysé par le modèle, à la fois dans la question (qui reprend les questions-réponses passées) et dans la réponse qui va être générée, ne peut dépasser la taille de la fenêtre de contexte sous peine de résultats fantaisistes.

Et ces fenêtes de contexte ne sont pas énormes. 4096 tokens pour chatGPT v3.5, 8192 tokens pour chatGPT4. Ces tailles excluent l’analyse d’un livre ou d’un long article. Elles signifient aussi que vous devez viser une certaine efficacité dans vos dialogues avec le système (le prompt engineering – sujet pour un article futur), et qu’il vaut mieux entamer un nouveau dialogue si vous décidez de changer de sujet en cours de conversation.

C’est un peu regrettable, mais les interfaces utilisateurs web disponibles (chatGPT, Bing) n’affichent pas le nombre de tokens soumis et générés, ce qui signifie que vous naviguez en aveugle sur ce point.

Mais que sont donc ces tokens (jetons en anglais) ? Il s’agit de groupes de lettres qui ressemblent à des syllabes. Vous pouvez jouer ici avec le générateur de tokens d’OpenAI : tapez un texte et il vous montrera la découpe de votre texte en tokens multicolores, comme ceci :

Figure 2 : Découpe d’une phrase en tokens

Il y a 50.257 tokens possibles au total, et c’est en réalité l’identifiant du token qui est passé au générateur, soit un nombre entier. Le modèle de langage se base sur la suite des nombre entiers correspondants aux tokens précédents pour prédire le l’identifiant du prochain token. Un générateur de langage effectue en réalité une opération purement mathématique : il prolonge une suite donnée de nombre entiers. C’est tout de suite moins romantique…

Figure 3 : La séquence correspondante d’identifiants des tokens

Tokens et multilinguisme

Les tokens ont été choisis pour avoir une efficacité maximale en Anglais; selon OpenAI il faut en moyenne 100 tokens pour encoder 75 mots. Les autres langues utilisant l’alphabet latin (comme le Français) seront encodées de manière encore assez efficace, quoique moindre que l’ Anglais. Par contre, l’encodage est peu efficace pour les langues utilisant un autre alphabet.

Je me suis amusé à extraire le texte du préambule de la Déclaration Universelle des Droits de l’Homme – qui est le texte le plus traduit au monde et accessible ici – dans 16 langues différentes pour voir l’efficacité du tokenizer sur ce texte. Voici les résultats :

Figure 4 – Performance du tokenizer d’OpenAI pour 16 langages

On voit bien que le nombre de tokens nécessaire par mot est minimal pour l’ Anglais (1,17 token/mot), suivi par les autres langues utilisant l’alphabet latin (2 à 3 tokens/mot), jusqu’à l’ Indonésien. Ensuite viennent les langues utilisant d’autres alphabets (Arabe, Grec, Cyrillique) pour terminer par les langages asiatiques. Pour ces dernières, il vaut mieux se baser sur le nombre d’ idéogrammes on voit qu’il faut environ 2 tokens pour encoder un idéogramme.

Différents encodeurs de tokens existent. La description ci-dessus utilise le générateur de tokens d’OpenAI mais les autres tokenizers ont des caractéristiques similaires.

3. Détecteurs de texte généré par un modèle

Depuis l’ apparition des modèles générationnels grand public, un certain nombre d’acteurs utilisent ces derniers pour générer du contenu sans nécessairement le déclarer, ce qui peut poser des problèmes de véracité de contenu, de paternité ou de droits d’auteur. Pensez aux dissertations rédigées par ChatGPT pour vous faire une idée du problème…

Et comme il est en principe nettement plus facile d’auto-générer du texte que de le rédiger à la main, ces manipulations se prêtent à des actions à grande échelle, visant par exemple à donner une visibilité artificielle à une marque ou à une information (vraie ou fausse). Dans un monde où la désinformation est répandue, il y a manifestement un potentiel d’utilisation nuisible des modèles.

Un autre problème est que, les modèles de langage étant eux-même entraînés sur des bases de donnée extraites d’Internet, on court le risque d’aboutir à un cercle vicieux dans lequel du contenu auto-généré sert à entraîner la génération suivantes de modèles de langage qui se déconnectent progressivement de la réalité humaine…

Tout ceci réclame une capacité à détecter automatiquement si un texte a été rédigé par un modèle de langage ou non. Et les premiers outils permettant de le faire sont disponibles, mais ils sont encore de nature expérimentale et les recherches pour améliorer ces détecteurs vont bon train. Un raffinement possible est de modifier le générateur lui-même pour qu’il modifie sont algorithme de génération de texte mot à mot pour rendre ce dernier plus aisément identifiable par la suite.

Vous pouvez essayer le détecteur fourni par OpenAI ici mais ses limitations sont clairement exposées, et il n’est pas d’une grande fiabilité. C’est une technique potentiellement promise à un grand avenir mais encore en phase d’émergence et il sera intéressant de suivre à la fois ses progrès techniques futurs et son exploitation dans le cadre du futur cadre réglementaire qui ne manquera pas d’apparaître.

4. Modèles de langage locaux ou dans le cloud

Les modèles conversationnels disponibles au grand public comme ChatGPT, Bing Chat, Google Bard… sont tous exécutés dans le cloud. La raison en est que les besoins en puissance de calcul et en mémoire pour l’exécution dépassent de loin les capacités des ordinateurs personnels ou des smartphones. L’ exécution se fait donc sur des serveurs surpuissants situés dans des datacenters.

Mais cela veut aussi dire que ces derniers constituent un sérieux goulet d’étranglement. Que ce soit à cause d’une demande trop forte ou d’une perte de connectivité, vous restez tributaire à tout instant de la santé de l’ infrastructure du fournisseur et de la connectivité qui vous y lie. Pas moyen de travailler de manière autonome.

C’est pourquoi de nombreuses recherches actuelles ont pour but de rendre des modèles moins gourmands pour leur permettre de fonctionner de manière autonome sur un ordinateur de bureau. L’utilisateur averti pourra installer l’application faraday.dev, qui permet de télécharger certains modèles et de les faire tourner localement. Attention, il vaut mieux posséder une machine puissante…

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.