Comment le texte devient les morceaux qu'un modèle lit.

SRC·04 Source
Le modèle ne voit jamais une lettre. Ni un mot.

Le modèle ne voit jamais une lettre. Ni un mot.

Avant même de 'penser' la moindre pensée, votre phrase est fracassée en morceaux — et chaque morceau devient un simple nombre. Le monde entier du modèle, c'est ce flux d'entiers : pas des lettres, pas des mots, mais des tokens. Tout ce qu'il sait du langage, il le sait sur ces morceaux.
Pourquoi ne pas simplement lui donner des mots ? Ou des lettres ?

Pourquoi ne pas simplement lui donner des mots ? Ou des lettres ?

Deux choix évidents, tous deux ratés. Une case par mot, c'est un dictionnaire sans fin — et il bute encore sur le premier nom, la première faute de frappe ou le premier emoji jamais vu. À l'inverse, une lettre à la fois, et une courte phrase enfle en cent étapes presque vides. Comme couper des légumes : entiers, ils ne cuisent pas à cœur ; réduits en purée, le plat est perdu. La bonne coupe est entre les deux.
La solution : découper en <em>morceaux</em>, ni mots ni lettres.

La solution : découper en morceaux, ni mots ni lettres.

Gardez les mots courants entiers ; cassez les rares en parties réutilisables. Ainsi 'tokenization' se découpe en 'token' + 'ization' — et ce 'ization' revient dans 'civilization,' 'organization.' Quelques milliers de parties standard peuvent épeler presque tout. Comme des briques de construction : vous ne moulez jamais une pièce neuve pour chaque forme — vous emboîtez celles que vous avez déjà.
D'où viennent les morceaux ? De l'avidité, une fusion à la fois.

D'où viennent les morceaux ? De l'avidité, une fusion à la fois.

(x,y)  =  argmax(x,y)count(x,y)(x,y)^{\star} \;=\; \arg\max_{(x,y)} \, \mathrm{count}(x,y)
Partez des caractères bruts. Parcourez une montagne de texte, trouvez la paire voisine la plus fréquente et fusionnez-la en un nouveau morceau. Puis recommencez — des milliers de fois. 't'+'h' donnent 'th' ; plus tard 'th'+'e' donnent 'the.' En clair : les deux symboles le plus souvent vus côte à côte sont collés ensemble, encore et encore, jusqu'à obtenir votre vocabulaire. Comme le soudage à la forge d'un forgeron : les deux barres que vous saisissez ensemble sans cesse, vous finissez par les marteler en une seule — et ne les joignez plus jamais à la main.
Chaque morceau fini n'est qu'un nombre.

Chaque morceau fini n'est qu'un nombre.

ids=[id(t)  :  ttokens],id(t){0,1,,V1}\text{ids} = \big[\, \mathrm{id}(t) \;:\; t \in \text{tokens} \,\big], \quad \mathrm{id}(t) \in \{0, 1, \dots, V-1\}
Un réseau fait des calculs, et on ne peut pas multiplier 'cat.' Alors chaque morceau du vocabulaire reçoit un ID fixe — un numéro de ligne parmi V. Votre phrase devient une courte liste d'entiers, et c'est tout ce qui entre. En clair : une table figée échange chaque morceau contre son numéro. Comme un vestiaire : vous remettez votre manteau, prenez un jeton numéroté, et dès lors tout le monde ne traite plus qu'avec des jetons — jamais des manteaux.
Voilà pourquoi il ne sait pas compter les r de 'strawberry.'

Voilà pourquoi il ne sait pas compter les r de 'strawberry.'

Les morceaux ignorent les coutures qui nous importent. 'strawberry' arrive en deux ou trois blocs, jamais en dix lettres distinctes — alors le modèle ne peut tout simplement pas voir les trois r pour les compter. Une espace au début fait même de ' dog' un token différent de 'dog.' Il lit par blocs, jamais par lettres. Comme une mosaïque de près : on peut lire toute l'image, mais chaque tesselle est un bloc compact de couleur — demandez quelle lettre se cache dans une tesselle, il n'y en a aucune.
Un token est donc le véritable alphabet du modèle — un code appris.

Un token est donc le véritable alphabet du modèle — un code appris.

tokenscharacters4(English, on average)\text{tokens} \approx \dfrac{\text{characters}}{4} \quad (\text{English, on average})
Mettez tout ensemble : le vocabulaire — souvent de 50 000 à 100 000 morceaux — est un code de compression, bâti une fois puis figé. Le texte courant reçoit un token court ; le texte rare s'épelle avec plusieurs. En clair : en moyenne, environ quatre caractères anglais se replient en un seul token. Longueur de contexte, vitesse, coût — tout se compte en tokens, pas en mots. Le modèle ne lit pas l'anglais ; il lit ce code que l'anglais traverse. Comme presser le foin : la paille en vrac est sans fin, alors on la presse en bottes serrées — puis on compte, on transporte et on facture tout le champ en bottes, pas en brins.
🌱 Il ne rencontre jamais un mot. Seulement les morceaux qu'on a choisis pour lui.

🌱 Il ne rencontre jamais un mot. Seulement les morceaux qu'on a choisis pour lui.

Son monde entier est fait de cent mille fragments, figés en place avant même qu'il apprenne à penser. Il ne rencontre jamais une lettre, jamais un mot entier — seulement ces morceaux, et les nombres derrière eux. Alors quand il nous lit, lit-il notre langue ? Ou un dialecte privé, cousu de fragments, que nos mots ne font que traverser au passage ?
touchez →balayez ↑ pour approfondirbalayez ↓ pour quitter