Que sont les tokens?
Les tokens sont les éléments de base du texte que traitent les modèles OpenAI. Ils peuvent être aussi courts qu’un seul caractère ou aussi longs qu’un mot complet, selon la langue et le contexte. Les espaces, la ponctuation et les parties de mots contribuent tous au décompte des tokens. C’est ainsi que l’API segmente votre texte à l’interne avant de générer une réponse.
Règles pratiques utiles pour l’anglais :
1 token ≈ 4 caractères
1 token ≈ ¾ d’un mot
100 tokens ≈ 75 mots
1 à 2 phrases ≈ 30 tokens
1 paragraphe ≈ 100 tokens
~1 500 mots ≈ 2 048 tokens
La tokenisation varie selon le modèle et l’encodage. Utilisez l’outil Tokenizer ou tiktoken.encoding_for_model(model) pour obtenir le décompte exact pour votre modèle cible.
Exemples
Voici quelques exemples de textes réels avec leur nombre approximatif de tokens :
La citation de Wayne Gretzky « Vous ratez 100 % des tirs que vous ne tentez pas » = 11 tokens
La Charte d’OpenAI = 476 tokens
La Déclaration d’indépendance des États-Unis = 1 695 tokens
Comment les décomptes de tokens sont calculés
Lorsque vous envoyez du texte à l’API :
Le texte est divisé en tokens.
Le modèle traite ces tokens.
La réponse est générée sous forme d’une séquence de tokens, puis reconvertie en texte.
L’utilisation des tokens est suivie dans plusieurs catégories :
Tokens d’entrée – tokens dans votre requête.
Tokens de sortie – tokens générés dans la réponse.
Tokens mis en cache – tokens réutilisés dans l’historique de conversation (souvent facturés à tarif réduit).
Tokens de raisonnement – dans certains modèles avancés, des « étapes de réflexion » supplémentaires sont incluses à l’interne avant la production de la sortie finale.
Ces décomptes apparaissent dans les métadonnées de votre réponse d’API et servent à la facturation et au suivi de l’utilisation.
Pour explorer davantage la tokenisation, vous pouvez utiliser notre outil Tokenizer interactif, qui vous permet de calculer le nombre de tokens et de voir comment le texte est divisé en tokens.
Vous pouvez aussi tokeniser du texte par programmation avec Tiktoken, un tokeniseur BPE rapide utilisé spécifiquement pour les modèles OpenAI.
Limites de tokens
Chaque modèle a une limite maximale combinée de tokens (entrée + sortie). Les modèles haute capacité actuels prennent en charge jusqu’à des centaines de milliers de tokens en contexte, même si les limites pratiques peuvent varier selon la version du modèle et votre niveau d’utilisation.
Si vous dépassez la limite, vous pouvez :
Raccourcir ou reformuler les invites.
Diviser les longs textes en fragments plus petits.
Résumer ou prétraiter les entrées avant de les envoyer.
Tarification des tokens
L’utilisation de l’API est facturée par token, avec des tarifs qui varient selon le modèle et selon qu’il s’agit de tokens d’entrée, de sortie ou mis en cache. Consultez la page des tarifs d’OpenAI pour connaître les prix actuels. Certains modèles de raisonnement peuvent utiliser plus de tokens à l’interne, mais visent à améliorer l’efficacité en réduisant le nombre de tokens nécessaires par tâche accomplie.
Explorer les tokens
L’API traite les mots selon leur contexte dans les données du corpus. Les modèles prennent l’invite, convertissent l’entrée en une liste de tokens, traitent l’invite, puis reconvertissent les tokens prédits en mots que nous voyons dans la réponse.
Ce qui peut nous sembler être deux mots identiques peut être généré sous forme de tokens différents selon leur structure dans le texte. Voyez comment l’API génère des valeurs de token pour le mot « red » selon son contexte dans le texte :
Dans le premier exemple ci-dessus, le token « 2266 » pour « red » comprend une espace de fin (remarque : il s’agit d’exemples d’ID de token à des fins de démonstration).
Le token « 2296 » pour « Red » (avec une espace initiale et une lettre majuscule au début) est différent du token « 2266 » pour « red » avec une lettre minuscule.
Lorsque « Red » est utilisé au début d’une phrase, le token généré n’inclut pas d’espace initiale. Le token « 7738 » est différent de ceux des deux exemples précédents du mot.
Observations :
Plus un token est probable ou fréquent, plus le numéro de token qui lui est attribué est bas :
Le token généré pour le point est le même (« 13 ») dans les 3 phrases. C’est parce que, dans le contexte, le point est utilisé de façon assez similaire dans l’ensemble des données du corpus.
Le token généré pour « red » varie selon son emplacement dans la phrase :
Minuscule au milieu d’une phrase : « red » - (token : « 2266 »)
Majuscule au milieu d’une phrase : « Red » - (token : « 2297 »)
Majuscule au début d’une phrase : « Red » - (token : « 7738 »)
