OpenAI
Cette page a été traduite automatiquement. Afficher l’article original en anglais.

Que sont les tokens et comment les compter?

Mise à jour : 19 days ago

Que sont les tokens?

Les tokens sont les éléments de base du texte que les modèles OpenAI traitent. 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 nombre de 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 peut varier selon la langue. Par exemple, « Cómo estás » (en espagnol, « Comment ça va? ») contient 5 tokens pour 10 caractères. Les textes non anglais produisent souvent un ratio tokens-caractères plus élevé, ce qui peut avoir une incidence sur les coûts et les limites.

Exemples

Voici quelques exemples de textes courants avec leur nombre approximatif de tokens :

  • La citation de Wayne Gretzky « You miss 100% of the shots you don’t take » = 11 tokens

  • La charte d’OpenAI = 476 tokens

  • La Déclaration d’indépendance des États-Unis = 1 695 tokens

Comment le nombre de tokens est calculé

Lorsque vous envoyez du texte à l’API :

  1. Le texte est divisé en tokens.

  2. Le modèle traite ces tokens.

  3. La réponse est générée sous forme de séquence de tokens, puis reconvertie en texte.

L’utilisation des tokens est suivie dans plusieurs catégories :

  • Tokens d’entrée – les tokens de votre requête.

  • Tokens de sortie – les tokens générés dans la réponse.

  • Tokens mis en cache – les tokens réutilisés dans l’historique de conversation (souvent facturés à un tarif réduit).

  • Tokens de raisonnement – dans certains modèles avancés, des « étapes de réflexion » supplémentaires sont incluses à l’interne avant de produire le résultat final.

Ces comptes apparaissent dans les métadonnées de réponse de votre API et sont utilisés pour la facturation et le suivi de l’utilisation.

Pour explorer davantage la tokenisation, vous pouvez utiliser notre outil interactif Tokenizer, qui vous permet de calculer le nombre de tokens et de voir comment le texte est divisé en tokens.

Sinon, si vous souhaitez tokeniser du texte par programmation, utilisez Tiktoken comme tokenizer BPE rapide, spécialement utilisé 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 actuels à grande capacité prennent en charge jusqu’à des centaines de milliers de tokens dans le contexte, bien que les limites pratiques puissent 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 un long texte en plus petits segments.

  • 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, selon le modèle et selon que les tokens sont en entrée, en sortie ou mis en cache. Consultez la page de tarification d’OpenAI pour connaître les tarifs en vigueur. 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 liste de tokens, traitent l’invite, puis reconvertissent les tokens prédits en mots que nous voyons dans la réponse.

Deux mots qui peuvent nous sembler identiques peuvent être générés sous forme de tokens différents selon leur structure dans le texte. Voyons comment l’API génère des valeurs de token pour le mot ‘red’ selon son contexte dans le texte :

Sentence split into color-coded tokens with Text selected over Token IDs
Token ID output as a list of integers with the Token IDs tab selected

Dans le premier exemple ci-dessus, le token « 2266 » pour ‘ red’ comprend un espace de fin (à noter : il s’agit d’ID de token donnés à titre d’exemple pour la démonstration).

Sentence split into color-coded token blocks: My favorite color is Red.
Tokenizer output with Token IDs selected and a list of numeric token IDs

Le token « 2296 » pour ‘ Red’ (avec un espace au début et une majuscule initiale) est différent du token « 2266 » pour ‘ red’ avec une lettre minuscule.

Tokenizer example splitting “Red is my favorite color.” into color-coded tokens
Tokenizer output with Token IDs selected and a list of token ID numbers

Lorsque ‘Red’ est utilisé au début d’une phrase, le token généré ne comprend pas d’espace au début. Le token « 7738 » est différent 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. Cela s’explique par le fait que, selon 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 sa position 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 »)

Cet article vous a-t-il été utile?