CONCEPT · DÉMONSTRATION EXÉCUTABLE
Avant de parler de sens, il faut savoir ce qu’un modèle de langue a sous les yeux. Ce ne sont ni des lettres, ni des mots.
Les trois conférences répètent une formule : « LLM: predict the next available word ». Elle est juste dans son intention et fausse dans son détail. Un modèle ne prédit pas le prochain mot : il prédit le prochain token — un fragment de texte qui peut être un mot entier, une syllabe, une lettre, un espace, ou un morceau de mot qui ne veut rien dire tout seul.
Ce n’est pas une pédanterie. Presque tout ce qui surprend le public dans le comportement des modèles vient de là.
Personne ne décide de la liste des fragments. Elle est apprise sur un corpus, par une méthode simple : on part des caractères isolés, on cherche la paire de symboles voisins la plus fréquente, on la fusionne en un nouveau symbole, et on recommence — quelques dizaines de milliers de fois dans un vrai modèle.
La démonstration ci-dessous fait exactement cela, sur un corpus minuscule et quarante fusions. Sortie exacte du script :
=== ETAT INITIAL : le modele ne connait que des caracteres === vocabulaire de depart : 19 symboles 'constitutionnellement' -> c · o · n · s · t · i · t · u · t · i · o · n · n · e · l · l · e · m · e · n · t · _ === APPRENTISSAGE : 40 fusions, la plus frequente d'abord === fusion 1 : 'e' + '_' -> 'e_' (vu 13 fois) fusion 2 : 't' + 'i' -> 'ti' (vu 12 fois) fusion 3 : 'o' + 'n' -> 'on' (vu 11 fois) fusion 4 : 't' + '_' -> 't_' (vu 9 fois) fusion 5 : 'ti' + 'on' -> 'tion' (vu 8 fois) fusion 6 : 'l' + 'e_' -> 'le_' (vu 6 fois) fusion 7 : 'm' + 'a' -> 'ma' (vu 6 fois) fusion 8 : 'ma' + 'n' -> 'man' (vu 5 fois) fusion 9 : 'man' + 'g' -> 'mang' (vu 5 fois) fusion 10 : 'e' + 'n' -> 'en' (vu 5 fois) fusion 11 : 'a' + 'tion' -> 'ation' (vu 5 fois) fusion 12 : 'c' + 'h' -> 'ch' (vu 4 fois) fusion 20 : 'c' + 'on' -> 'con' (vu 3 fois) fusion 30 : 'ch' + 'a' -> 'cha' (vu 2 fois) fusion 40 : 'd' + 'o' -> 'do' (vu 2 fois)
La fusion no 5 est le moment intéressant : la machine vient de découvrir
tion. Elle ne sait pas que c’est un suffixe, elle ne sait pas ce qu’est un
suffixe : elle a simplement constaté que ti et on se suivent souvent.
Six fusions plus loin elle trouve ation. La morphologie du français apparaît
toute seule, comme un sous-produit du comptage.
| Mot | Découpage appris | Fragments |
|---|---|---|
constitutionnellement |
constitution · nel · lement | 3 |
rationnellement |
r · ation · nel · lement | 4 |
mangeoire |
mang · e · o · i · r · e |
6 |
chat | chat | 1 |
fromage |
f · r · o · ma · g · e |
6 |
Un mot de vingt et une lettres tient en trois fragments ; un mot de sept lettres en demande six.
La différence n’est pas la longueur, c’est la fréquence dans le corpus d’entraînement.
constitutionnellement est long mais ses morceaux sont partout ; fromage
est court mais n’apparaît qu’une fois, donc il reste en miettes. Et chat, vu trois
fois, a mérité son propre symbole.
| Ce qu’on observe | Pourquoi |
|---|---|
| Le modèle compte mal les lettres d’un mot | Il ne voit pas les lettres. Demander « combien de r dans fromage » revient à
demander à quelqu’un qui lit f·r·o·ma·g·e de recompter — et pour un mot fréquent, qui
tient en un seul fragment, l’information des lettres n’est tout simplement plus là. |
| Il est meilleur en anglais | Les vocabulaires sont majoritairement appris sur des corpus anglophones. Un même texte demande souvent plus de fragments en français, en allemand ou en turc qu’en anglais : il coûte plus cher et remplit plus vite la fenêtre de (fiche 4). |
| Il bute sur les chiffres | Un nombre est découpé selon la fréquence de ses chiffres, pas selon sa valeur. 1024
peut devenir un seul fragment et 1025 en devenir trois. L’arithmétique n’a aucune
raison de bien se comporter là-dessus — et c’est exactement ce que Jansma observe dans son
expérience, dont les seules erreurs sont des phrases arithmétiques
(fiche 7). |
| Le prix se compte en tokens | La facturation des modèles commerciaux et la taille maximale d’un texte se comptent en fragments, jamais en mots. D’où des écarts de coût que rien dans le texte ne laisse deviner. |
Mais l’opération est la même, et c’est tout ce qu’on demande à une démonstration : être petite assez pour tenir sous les yeux, et structurellement identique.
Le fichier : demos-complementaires/demo-tokens.py
— Python pur, aucune dépendance, exécutable sur une machine vierge.
La sortie : resultat-tokens.txt.