Avant qu'un modèle de langage puisse lire un texte, celui-ci doit être découpé en fragments qu'il peut compter. Ces fragments sont appelés tokens, et la tokenisation correspond à ce découpage. Un token peut être un mot entier, un fragment comme « ing » ou « pre », un signe de ponctuation, ou même un caractère isolé. Le modèle ne voit jamais le texte brut ; il voit une séquence d'identifiants numériques associés à ces tokens.
Chaque méthode présente des avantages et des inconvénients. La tokenisation au niveau des mots préserve le sens, mais génère des millions de mots rares et est sensible aux fautes de frappe. La tokenisation au niveau des caractères, quant à elle, possède un vocabulaire restreint mais produit des séquences très longues. Les méthodes de segmentation par sous-mots, comme l'encodage par paires d'octets, se situent entre les deux : elles partent des caractères et fusionnent itérativement les paires les plus fréquentes jusqu'à atteindre la taille de vocabulaire cible.
Pourquoi c'est important
- La taille du vocabulaire détermine la table d'intégration du modèle et son empreinte mémoire.
- Le nombre de jetons définit la fenêtre de contexte et le coût de chaque appel d'API.
- Une mauvaise tokenisation divise les mots de manière à nuire aux performances multilingues
- Les langues utilisant des alphabets non latins nécessitent souvent beaucoup plus de mots par phrase
Une phrase en anglais peut utiliser 20 tokens ; la même phrase en thaï ou en hindi peut en contenir 60, voire plus, avec un tokenizer occidental. Ce déséquilibre affecte la vitesse, le coût et la précision de la traduction pour des milliards de locuteurs.
Comments
No comments yet. Be the first to share a thought.
Leave a comment