Passer au contenu

Compteur de Tokens Gratuit pour GPT-4, ChatGPT et Modèles d'IA

Compteur de tokens précis utilisant la bibliothèque tiktoken d'OpenAI. Comptez les tokens pour les modèles GPT-4, ChatGPT et GPT-3. Gérez les coûts d'API et optimisez les invites d'IA instantanément.

Compteur de Jetons

Encodage

Entrée invalide

Calculateur de chargement...
📚

Documentation

Qu’est-ce qu’un compteur de tokens ?

Un compteur de tokens mesure le nombre de tokens en lesquels un texte est découpé lorsqu’un modèle de langage d’IA le lit. Les tokens sont de petites unités de texte — des mots entiers, des parties de mots ou des signes de ponctuation — que des modèles comme GPT-4 et ChatGPT traitent à la place des caractères bruts. Cet outil utilise tiktoken, la bibliothèque de tokenisation open source publiée par OpenAI. Les résultats correspondent donc à ceux produits par les propres modèles et API d’OpenAI.

Comment fonctionne la tokenisation ?

Un tokenizer ne se contente pas de compter les mots. Il fait passer le texte dans un algorithme appelé encodage par paires d’octets (BPE). L’algorithme commence par les octets individuels du texte, puis fusionne à plusieurs reprises les paires adjacentes les plus fréquentes, en fonction de motifs appris à partir d’un vaste corpus pendant l’entraînement. Le résultat est un vocabulaire fixe de dizaines de milliers d’unités courantes : des mots courts entiers, des fragments de mots fréquents et des caractères isolés pour les éléments rares.

Ainsi, un mot anglais devient souvent un seul token, mais les mots longs ou inhabituels peuvent être divisés en deux tokens ou davantage. Les espaces sont généralement rattachés au début du token suivant plutôt que comptés séparément, et les signes de ponctuation constituent habituellement leurs propres tokens.

Encodages pris en charge par cet outil

Tiktoken propose plusieurs encodages, chacun associé à une famille de modèles OpenAI. Cet outil en prend en charge trois :

EncodageUtilisé parTaille approximative du vocabulaire
cl100k_baseModèles des familles GPT-3.5 et GPT-4, ChatGPTenviron 100 000 tokens
p50k_baseModèles GPT-3 ultérieursenviron 50 000 tokens
r50k_baseAnciens modèles GPT-3 et GPT-2environ 50 000 tokens

cl100k_base est sélectionné par défaut, car il couvre la famille de modèles la plus utilisée actuellement. Un même texte peut produire un nombre différent de tokens avec chaque encodage, car chacun a été entraîné sur des textes différents et fusionne les caractères selon des règles différentes.

Comment calculer un nombre de tokens

Il n’existe pas de formule arithmétique simple pour convertir un nombre de caractères ou de mots en nombre de tokens, car les fusions BPE dépendent du texte concerné et du vocabulaire appris. La seule méthode exacte consiste à faire passer le texte dans le tokenizer lui-même :

  1. Choisir l’encodage correspondant au modèle cible.
  2. Fournir le texte au tokenizer de cet encodage.
  3. Compter la liste obtenue d’identifiants de tokens. La longueur de cette liste correspond au nombre de tokens.

Pour le texte anglais, on peut estimer qu’un token correspond à environ quatre caractères ou à peu près trois quarts de mot. Il ne s’agit que d’une indication. Les nombres, le code, les textes non anglais et les graphies inhabituelles peuvent modifier fortement ce rapport.

Exemple de calcul

Prenons la phrase suivante :

« Tokenization splits text into pieces. »

Avec l’encodage cl100k_base, tiktoken la découpe en 7 tokens :

Token, ization, splits, text, into, pieces, .

On constate que « Tokenization » est lui-même divisé en deux tokens, « Token » et « ization », tandis que tous les autres mots restent entiers. Le point final constitue son propre token. C’est pourquoi une phrase de 37 caractères et de 5 mots produit 7 tokens, et non 6.

Pourquoi le nombre de tokens est important

Les fournisseurs d’IA facturent l’utilisation de leurs API au token, en comptant à la fois le texte envoyé et le texte généré en réponse. Le nombre de tokens permet donc d’anticiper le coût avant l’envoi d’une requête. Chaque modèle possède également une longueur de contexte maximale, c’est-à-dire une limite au nombre de tokens que peuvent contenir ensemble une requête et sa réponse. Cette limite varie selon le modèle et évolue avec la sortie de nouvelles versions. Il est donc préférable de la vérifier dans la documentation actuelle du modèle utilisé plutôt que de se fier à un souvenir.

Questions fréquentes

Qu’est-ce qu’un token dans les modèles de langage d’IA ?
Un token est une unité de texte qu’un modèle de langage lit comme un seul élément. Il peut s’agir d’un mot court entier, d’une partie d’un mot plus long, d’un signe de ponctuation ou d’un espace rattaché au mot suivant.

Pourquoi différents encodages donnent-ils des nombres de tokens différents pour un même texte ?
Chaque encodage a été entraîné sur son propre échantillon de textes et possède son propre vocabulaire d’unités courantes. Un mot suffisamment fréquent pour constituer un seul token dans un vocabulaire peut ne pas apparaître comme tel dans un autre ; il est alors découpé différemment.

La ponctuation compte-t-elle comme un token ?
Oui. Les signes de ponctuation sont généralement comptés comme leurs propres tokens. Il arrive aussi qu’ils soient fusionnés avec le caractère voisin, selon la fréquence à laquelle cette combinaison est apparue pendant l’entraînement du tokenizer.

Un token est-il la même chose qu’un mot ?
Non. Les mots courts et courants correspondent généralement à un token chacun. Les mots plus longs ou moins fréquents, ainsi que la plupart des mots qui ne sont pas en anglais, sont souvent divisés en deux tokens ou davantage.

Quelle est la précision de cet outil ?
Il compte les tokens à l’aide de la propre bibliothèque tiktoken d’OpenAI, en appliquant la même logique d’encodage qu’OpenAI utilise en interne. Le résultat correspond donc à celui qu’un appel à l’API OpenAI fournirait pour le même texte et le même encodage.

Cet outil peut-il compter les tokens de modèles qui ne sont pas ceux d’OpenAI ?
Il utilise les encodages de tiktoken, conçus pour les modèles d’OpenAI. Les autres fournisseurs, comme Anthropic ou Google, utilisent leurs propres tokenizers, qui peuvent produire des nombres différents pour un même texte.

Références

  1. OpenAI. « tiktoken. » GitHub, https://github.com/openai/tiktoken.
  2. Sennrich, Rico, et al. « Neural Machine Translation of Rare Words with Subword Units. » arXiv:1508.07909, 2016, http://arxiv.org/abs/1508.07909.
  3. Brown, Tom B., et al. « Language Models are Few-Shot Learners. » arXiv:2005.14165, 2020, http://arxiv.org/abs/2005.14165.