Une IA ne lit pas. Elle calcule.

Prenez cette phrase : "Le chat mange la souris."

Pour vous, c'est immédiat. Vous voyez la scène, vous comprenez qui fait quoi, vous savez ce que sont un chat et une souris.

Pour une IA, cette phrase n'existe pas. Elle ne voit que des nombres. Avant de comprendre quoi que ce soit, elle doit d'abord transformer chaque mot et/ou chaque lettre en quelque chose qu'elle peut calculer.

C'est là que tout commence.

Étape 1 : le tokenizer: transformer le texte en nombres

La première chose qu'un LLM fait avec votre texte, c'est le découper en morceaux appelés tokens, puis convertir chaque morceau en un nombre.

"Hello" → [20, 43, 50, 50, 53]

Pas des lettres. Des nombres.

Il existe trois façons de découper :

Lettre par lettre : simple, mais inefficace. Shakespeare en entier = 65 tokens. Chaque lettre a son numéro, mais le modèle doit apprendre que "c", "h", "a", "t" mis ensemble signifient quelque chose.

Mot par mot : plus intuitif, mais problématique. Il faudrait un numéro pour chaque mot de chaque langue — plus de 170 000 rien qu'en français. Et un mot inconnu ? Impossible à traiter.

Par morceaux de mots (BPE,ce qu'utilise GPT-4) : le compromis intelligent. "Anticonstitutionnellement" devient plusieurs morceaux reconnaissables. Les mots courants ont leur propre token. Les mots rares sont découpés en fragments connus. Environ 100 000 tokens suffisent pour couvrir presque tout.

Résultat : chaque texte devient une suite de nombres. Mais un nombre seul, par exemple chat = 42 — ne dit rien. Il ne permet aucun calcul utile.

C'est là qu'intervient l'étape suivante.

Étape 2 : les embeddings — donner un sens aux nombres

chat = 42 et chien = 87. Ces deux nombres ne disent rien de la relation entre un chat et un chien. Pourtant, tout le monde sait qu'ils sont proches, ce sont deux animaux de compagnie, qui vont chez le vétérinaire et qui mangent des croquettes.

Les embeddings résolvent ce problème. Au lieu d'un seul nombre, chaque token devient une liste de coordonnées: des centaines de dimensions dans lesquelles chaque mot trouve sa place (certains modèles peuvent avoir 2048 coordonnées).

Imaginez un espace immense, comme une carte en 3D mais avec des centaines de directions possibles. Chaque mot y a une position. Et les mots qui apparaissent souvent dans les mêmes contextes se retrouvent proches les uns des autres.

"chat" et "chien" apparaissent souvent avec "vétérinaire", "croquettes", "animal" → leurs positions sont proches.

"chat" et "machine-outil" n'apparaissent presque jamais ensemble → leurs positions sont loin.

C'est ce qu'on appelle l'hypothèse distributionnelle: un concept savant pour dire quelque chose de simple :

Un mot est défini par la compagnie qu'il fréquente.

Important : au départ, toutes ces positions sont aléatoires. C'est pendant l'entraînement (c'est à dire des milliards de phrases lues et relues) que les mots s'organisent progressivement dans cet espace. Personne ne programme que "chat" et "chien" sont proches. Le modèle le découvre seul, à force de lire.

Ce que ça veut dire concrètement

À ce stade, le modèle sait que "chat" et "chien" sont proches. Il sait que "chat" est loin de "machine-outil".

Mais il ne sait pas ce qu'est un chat. Il ne l'a jamais vu. Il n'a jamais entendu ronronner. Il sait uniquement comment le mot "chat" se comporte dans le langage, avec qui il apparaît, dans quels contextes, après quels autres mots.

C'est à la fois la force et la limite fondamentale de ces systèmes.

La force : ça suffit pour être remarquablement utile. Un modèle qui a lu des millions de phrases sur les chats peut répondre à des questions sur les chats mieux que la plupart des humains.

La limite : si les données d'entraînement sont biaisées, par exemple les loups sont souvent photographiés dans la neige, le modèle apprend la mauvaise chose. Il associe "loup" à "neige" plutôt qu'à la morphologie d'un museau: un bouledogue au museau plat mais tout blanc sera peut-être reconnu comme un loup. Ce n'est pas de la bêtise. C'est de la fidélité aveugle aux données.

Garbage in, garbage out: ce que vous lui donnez à apprendre, il l'apprend. En revanche c'est très dur de comprendre ce que le modèle apprend.

Ce que nous avons vu jusqu'ici

Le texte devient des nombres (tokenizer). Les nombres deviennent des positions dans un espace de sens (embeddings). Le modèle sait que certains mots sont proches, d'autres sont loin.

Mais il ne comprend pas encore une phrase entière. Il ne sait pas encore que dans "La souris que le chat a mangée était petite", le mot "petite" parle de la souris, pas du chat.

C'est le sujet de l'épisode suivant.

Prochain épisode : comment une IA comprend le sens d'une phrase entière, et pourquoi "avocat" n'a pas le même sens partout.