Comprendre les jetons
Les jetons sont des mots, des jeux de caractères ou des combinaisons de mots et de ponctuation utilisés par de grands modèles de langage (LLMs) pour décomposer du texte. La tokenisation est la première étape de l’apprentissage. Le LLM analyse les relations sémantiques entre les jetons, telles que la fréquence à laquelle ils sont utilisés ensemble ou s’ils sont utilisés dans des contextes similaires. Après l’entraînement, le LLM utilise ces modèles et relations pour générer une séquence de jetons de sortie en fonction de la séquence d’entrée.
Transformer du texte en jetons
L’ensemble de jetons uniques sur utilisant un LLM est appelé vocabulaire.
Considérons par exemple la phrase suivante :
I heard a dog bark loudly at a cat (J’ai entendu un chien aboyer après un chat)
Ce texte peut être tokenisé comme suit :
- I
- entendu
- a
- dog
- aboyer
- fort
- at
- a
- cat
En ayant un ensemble suffisamment volumineux de texte d’apprentissage, la tokenisation peut compiler un vocabulaire de plusieurs milliers de jetons.
Méthodes de jeton courantes
La méthode de tokenisation spécifique varie selon LLM. Les méthodes courantes de tokenisation sont les suivantes :
- La tokenisation Mot (le texte est divisé en mots individuels en fonction d’un délimiteur)
- La tokenisation caractère (le texte est divisé en caractères individuels)
- La tokenisation Sous-mot (le texte est divisé en mots partiels ou jeux de caractères)
Par exemple, les modèles GPT, développés par OpenAI, utilisent un type de jeton de sous-mot appelé encodage de paire d’octets (BPE). OpenAI fournit un outil pour visualiser la façon dont le texte sera tokenisé.
Il existe des avantages et des inconvénients pour chaque méthode de jeton :
Taille des jetons | Avantages | Inconvénients |
---|---|---|
Jetons plus petits (tokenization caractère ou sous-mot) | - Permet au modèle de gérer une plus grande gamme d’entrées, telles que des mots inconnus, des fautes de frappe ou une syntaxe complexe. - Peut permettre à la taille du vocabulaire d’être réduite, nécessitant moins de ressources de mémoire. |
- Un texte donné est divisé en jetons supplémentaires, nécessitant des ressources de calcul supplémentaires lors du traitement - Compte tenu d’une limite de jeton fixe, la taille maximale de l’entrée et de la sortie du modèle est plus petite |
Jetons plus volumineux (tokenisation mot) | - Un texte donné est divisé en moins de jetons, nécessitant moins de ressources de calcul lors du traitement. - Étant donné la même limite de jeton, la taille maximale de l’entrée et de la sortie du modèle est supérieure. |
- Peut entraîner une taille de vocabulaire accrue, nécessitant davantage de ressources de mémoire. - Peut limiter la capacité des modèles à gérer des mots inconnus, des fautes de frappe ou une syntaxe complexe. |
Utilisation des jetons par les LLM
Une fois que le LLM a terminé la tokenisation, il affecte un ID à chaque jeton unique.
Considérez notre exemple de phrase :
I heard a dog bark loudly at a cat (J’ai entendu un chien aboyer après un chat)
Une fois que le modèle utilise une méthode de jeton de mot, il peut affecter des ID de jeton comme suit :
- I (1)
- heard (2)
- a (3)
- dog (4)
- bark (5)
- loudly (6)
- at (7)
- a (le jeton « a » est déjà affecté à un ID de 3)
- cat (8)
En affectant des ID, le texte peut être représenté sous la forme d’une séquence d’ID de jeton. L’exemple de phrase serait représenté sous la forme [1, 2, 3, 4, 5, 6, 7, 3, 8]. La phrase « J’ai entendu un chat » serait représentée comme [1, 2, 3, 8].
Au fur et à mesure que l’entraînement se poursuit, le modèle ajoute tous les nouveaux jetons dans le texte d’entraînement à son vocabulaire et lui attribue un ID. Par exemple :
- meow (9)
- exécuter (10)
Les relations sémantiques entre les jetons peuvent être analysées à l’aide de ces séquences d’ID de jeton. Les vecteurs numériques à valeurs multiples, appelés incorporations, sont utilisés pour représenter ces relations. Un indice d'intégration est attribué à chaque token en fonction de la fréquence à laquelle il est utilisé avec les autres tokens ou dans des contextes similaires.
Une fois entraîné, un modèle peut calculer une incorporation pour un texte contenant plusieurs jetons. Le modèle tokenise le texte, puis calcule une valeur d’incorporation globale en fonction des incorporations apprises des jetons individuels. Cette technique peut être utilisée pour la recherche sémantique de documents ou l'ajout de magasins de vecteurs à une IA.
Pendant la génération de sortie, le modèle prédit une valeur vectorielle pour le jeton suivant dans la séquence. Le modèle sélectionne ensuite le jeton suivant dans son vocabulaire en fonction de cette valeur vectorielle. Dans la pratique, le modèle calcule plusieurs vecteurs à l’aide de différents éléments des incorporations des jetons précédents. Le modèle évalue ensuite tous les jetons potentiels de ces vecteurs et sélectionne le plus probable pour continuer la séquence.
La génération de sortie est une opération itérative. Le modèle ajoute le jeton prédit à la séquence jusqu’à présent et utilise celui-ci comme entrée pour l’itération suivante, créant la sortie finale un jeton à la fois.
Limites des jetons
Les modules LLM ont des limitations concernant le nombre maximal de jetons qui peuvent être utilisés en tant qu’entrée ou générés en tant que sortie. Cette limitation entraîne souvent la combinaison des jetons d’entrée et de sortie dans une fenêtre de contexte maximale.
Par exemple, GPT-4 prend en charge jusqu’à 8 192 jetons de contexte. La taille combinée des jetons d’entrée et de sortie ne peut pas dépasser 8 192.
Ensemble, la limite de jetons et la méthode de jeton d’un modèle déterminent la longueur maximale du texte qui peut être fournie en tant qu’entrée ou générée en tant que sortie.
Par exemple, considérez un modèle qui a une fenêtre de contexte maximale de 100 jetons. Le modèle traite nos exemples de phrases en tant que texte d’entrée :
I heard a dog bark loudly at a cat (J’ai entendu un chien aboyer après un chat)
À l’aide d’une méthode de tokenisation basée sur le mot, l’entrée est de neuf jetons. Cela laisse 91 jetons mot disponibles pour la sortie.
À l’aide d’une méthode de tokenisation basée sur des caractères, l’entrée est de 34 jetons (y compris des espaces). Cela laisse seulement 66 jetons caractères disponibles pour la sortie.
Tarification basée sur les jetons et limitation du taux
Les services d’IA générative utilisent souvent la tarification basée sur les jetons. Le coût de chaque requête dépend du nombre de jetons d’entrée et de sortie. La tarification peut différer entre l’entrée et la sortie. Par exemple, consultez tarification d’Azure OpenAI Service.
Les services IA génératives peuvent également être limités en ce qui concerne le nombre maximal de jetons par minute (TPM). Ces limites de débit peuvent varier en fonction de la région de service et du LLM. Pour plus d’informations sur des régions spécifiques, consultez quotas et limites de Azure OpenAI Service.